/* Home and category discovery. Shared navigation and footer live in portal-layout.css. */
.route-home .site-main>.layout,.route-categories .site-main>.layout,.route-category .site-main>.layout{min-height:0}
.route-home .site-main main{padding:0 0 150px}
.route-home .home-intro{height:0}
.route-home .home-module{margin:0 0 34px}
.route-home .site-rail{pointer-events:none}
.route-home .rail-head{pointer-events:auto}
.route-home .home-module--all>h2{margin:0 0 14px}
.route-home .home-module--all:first-of-type>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.route-home .home-wall{--grid-columns:14;grid-template-columns:repeat(14,minmax(0,1fr));gap:clamp(9px,.78vw,16px);align-items:start;grid-auto-flow:dense}
.route-home .home-wall--lead{width:calc(100% + var(--portal-rail) + var(--portal-gap));margin-left:calc(0px - var(--portal-rail) - var(--portal-gap))}
.route-home .home-rail-spacer{display:block;grid-column:1;grid-row:1/span 2;aspect-ratio:1;visibility:hidden;pointer-events:none}
.route-home .home-wall--with-ad>.ad-slot--home-feed{grid-column:5/span 6;grid-row:2;align-self:stretch;width:100%;min-height:105px;margin:0}
.route-home .home-wall .card{border:0;border-radius:clamp(11px,.8vw,17px);box-shadow:0 6px 13px #075f6633}
.route-home .home-wall .card:hover{transform:translateY(-4px);box-shadow:0 10px 22px #075f6640}
.route-home .home-wall .card--hero,.route-home .home-wall .card--medium{grid-column:span 3;grid-row:span 3}
.route-home .home-wall .card--medium{grid-column:span 2;grid-row:span 2}
.route-home .home-wall .card--small::after{opacity:0;transition:opacity .15s ease}
.route-home .home-wall .card--small strong{opacity:0;transform:translateY(5px);transition:opacity .15s ease,transform .15s ease}
.route-home .home-wall .card--small:hover::after,.route-home .home-wall .card--small:focus-visible::after,.route-home .home-wall .card--small:hover strong,.route-home .home-wall .card--small:focus-visible strong{opacity:1;transform:none}
.route-home .home-wall .card--hero strong,.route-home .home-wall .card--medium strong{font-size:clamp(1rem,1.3vw,1.45rem);left:15px;right:15px;bottom:17px}
.route-home .home-wall .card--medium small,.route-home .home-wall .card--hero small{display:none}
.route-home .home-module--categories{width:calc(100% + var(--portal-rail) + var(--portal-gap));margin-left:calc(0px - var(--portal-rail) - var(--portal-gap))}
.route-home .home-module--categories:first-of-type{padding-left:calc(var(--portal-rail) + var(--portal-gap))}
.route-home .home-module--categories:first-of-type ~ .home-module .home-rail-spacer{display:none}
.category-tiles,.category-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(224px,1fr));gap:clamp(10px,1vw,20px)}
.category-tile{display:flex;align-items:center;gap:10px;min-width:0;min-height:112px;padding:7px 11px 7px 7px;border-radius:17px;background:#fff;box-shadow:0 9px 17px #05607232;color:#163e59;text-decoration:none;transition:transform .17s ease,box-shadow .17s ease}
.category-tile:hover{transform:translateY(-3px);box-shadow:0 14px 24px #0560723a}
.category-tile-art{display:grid;place-items:center;flex:0 0 94px;width:94px;height:94px;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#e8fff9,#97e7e7);color:#0c7ca5}
.category-tile-art img{display:block;width:100%;height:100%;object-fit:cover}
.category-tile-placeholder{font-size:2.3rem}
.category-tile strong{min-width:0;font-size:clamp(.78rem,.85vw,.94rem);line-height:1.3;overflow-wrap:anywhere}
.category-tile--all .category-tile-art--all{place-content:center;grid-template-columns:repeat(2,18px);grid-template-rows:repeat(2,18px);gap:7px;background:#e9f7ff}
.category-tile-art--all i{display:block;width:18px;height:18px;border:4px solid #0b91df;border-radius:5px}
.route-home .category-group{margin:24px 0 0}
.route-home .category-group .cards{--grid-columns:14;grid-template-columns:repeat(14,minmax(0,1fr));gap:clamp(9px,.78vw,16px)}
.route-home .category-group .section-heading{margin-bottom:10px}
.route-home .category-group .section-heading h3{margin:0;font-size:1.1rem}
.route-home .ad-slot--home-feed{border:0;border-radius:0;background:#d8fff2b3;box-shadow:none}
.route-categories .site-main main,.route-category .site-main main{padding:0 0 150px}
.route-categories .category-index{min-height:0}
.route-categories .site-rail{pointer-events:none}
.route-categories .rail-head{pointer-events:auto}
@media(min-width:901px){.route-home .site-main>.layout:has(>main>.empty-state){min-height:max(0px,calc(100svh - 40px - 330px))}}
/* Half-card tracks reserve only the quick rail's space in the first two rows. */
.route-categories .category-directory{grid-template-columns:repeat(14,minmax(0,1fr));grid-auto-flow:dense;gap:14px;width:calc(100% + var(--portal-rail) + var(--portal-gap));margin:0 0 0 calc(0px - var(--portal-rail) - var(--portal-gap));align-items:stretch}
.route-categories .category-directory::before{content:"";grid-column:1;grid-row:2;visibility:hidden;pointer-events:none}
.route-categories .category-directory-title{display:grid;place-items:center;grid-column:1/span 5;grid-row:1;min-width:0;min-height:112px;margin-left:calc(var(--portal-rail) + var(--portal-gap));padding:16px;border-radius:15px;background:#fff;box-shadow:0 7px 15px #0560722b;text-align:center}
.route-categories .category-directory-title span{margin:0;color:#0b3a55;font-size:clamp(1.4rem,1.6vw,2rem);font-weight:850;line-height:1.2;letter-spacing:-.03em}
.route-categories .category-directory .category-tile{grid-column:span 2;gap:11px;min-height:112px;padding:8px;border-radius:15px;box-shadow:0 7px 15px #0560722b}
.route-categories .category-directory .category-tile:hover{box-shadow:0 11px 21px #05607238}
.route-categories .category-directory .category-tile-art{flex-basis:96px;width:96px;height:96px;border-radius:10px}
.route-categories .category-directory .category-tile strong{font-size:clamp(.86rem,.82vw,1rem);font-weight:850;line-height:1.3}
.route-categories .category-directory-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(140px,240px);align-items:center;gap:clamp(24px,4vw,80px);width:calc(100% + var(--portal-rail) + var(--portal-gap));margin:38px 0 0 calc(0px - var(--portal-rail) - var(--portal-gap));padding:42px clamp(24px,2vw,42px) 48px;background:#fff;color:#173e5b}
.route-categories .category-directory-copy{min-width:0;max-width:1050px}
.route-categories .category-directory-copy .crumb{margin:0 0 12px;color:#496a7e;font-size:.88rem}
.route-categories .category-directory-copy h1{margin:0 0 18px;color:#0b3a55;font-size:clamp(1.6rem,2.2vw,2.2rem);font-weight:850;line-height:1.2}
.route-categories .category-directory-copy p:not(.crumb){max-width:90ch;margin:0 0 14px;font-size:1rem;line-height:1.75}
.route-categories .category-directory-copy p:last-child{margin-bottom:0}
.route-categories .category-directory-art{display:block;justify-self:center;width:min(100%,230px);height:auto;color:#0b91df}
@media(max-width:1800px){.route-categories .category-directory{grid-template-columns:repeat(12,minmax(0,1fr))}}
@media(max-width:1400px){.route-categories .category-directory{grid-template-columns:repeat(10,minmax(0,1fr));gap:12px}}
@media(max-width:1100px){.route-categories .category-directory{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:950px){.route-categories .category-directory{grid-template-columns:repeat(6,minmax(0,1fr))}.route-categories .category-directory-title{grid-column:1/span 4}}
.route-category .category-list-page h1{margin:0 0 20px;color:#0b3a55;font-size:clamp(1.8rem,2.4vw,2.7rem)}
.route-category .category-list-page .crumb{margin-bottom:7px;color:#2e7180}
.route-category .category-list-page .cards{--grid-columns:12;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(9px,.8vw,16px);margin:0 0 32px}
.route-category .category-list-page .card--hero{grid-column:span 3;grid-row:span 3}
.route-category .category-list-page .card--medium{grid-column:span 2;grid-row:span 2}
.route-category .category-list-page .related-categories{margin:36px 0 0}
.route-category .category-list-page .category-description{max-width:none;margin:50px 0 0;padding:28px 32px;border:0;border-radius:0;background:#fff;box-shadow:none}
.route-category .category-list-page .category-description h2{margin:0 0 12px;color:#0c3753}
.route-category .category-list-page .category-description p{max-width:85ch;margin:0;line-height:1.7}
@media(max-width:1600px){.route-home .home-wall{--grid-columns:11;grid-template-columns:repeat(11,minmax(0,1fr))}.route-home .home-wall--compact .card--hero{grid-column:span 2;grid-row:span 2}.route-home .category-group .cards{--grid-columns:11;grid-template-columns:repeat(11,minmax(0,1fr))}.route-category .category-list-page .cards{--grid-columns:10;grid-template-columns:repeat(10,minmax(0,1fr))}}
@media(max-width:1080px){.route-home .home-wall{--grid-columns:8;grid-template-columns:repeat(8,minmax(0,1fr))}.route-home .category-group .cards{--grid-columns:8;grid-template-columns:repeat(8,minmax(0,1fr))}.route-category .category-list-page .cards{--grid-columns:8;grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:900px){.route-home .home-wall--lead,.route-home .home-module--categories,.route-categories .category-directory{width:100%;margin-left:0}.route-home .home-module--categories:first-of-type{padding-left:0}.route-home .home-rail-spacer,.route-categories .category-directory::before{display:none}}
@media(max-width:650px){.route-home .site-main main{padding-bottom:34px}.route-home .home-module{margin-bottom:28px}.route-home .home-wall,.route-home .category-group .cards{--grid-columns:4;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.route-home .home-wall .card--hero{grid-column:span 2;grid-row:span 2}.route-home .home-wall .card--medium{grid-column:span 2;grid-row:span 2}.route-home .home-wall .card--small strong{opacity:1;transform:none;font-size:.7rem}.route-home .home-wall .card--small::after{opacity:1}.category-tiles,.category-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.category-tile{min-height:82px;gap:7px;padding:5px;border-radius:12px}.category-tile-art{flex-basis:69px;width:69px;height:69px;border-radius:9px}.category-tile strong{font-size:.76rem}.category-tile--all .category-tile-art--all{grid-template-columns:repeat(2,12px);grid-template-rows:repeat(2,12px);gap:5px}.category-tile-art--all i{width:12px;height:12px;border-width:3px;border-radius:3px}.route-categories .category-directory-title{grid-column:1/-1;min-height:76px}.route-category .category-list-page .cards{--grid-columns:4;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.route-category .category-list-page .card--hero{grid-column:span 2;grid-row:span 2}.route-category .category-list-page .category-description{margin-top:30px;padding:22px 18px}}
@media(max-width:650px){.route-home .site-main main,.route-categories .site-main main,.route-category .site-main main{padding-bottom:100px}}
@media(max-width:390px){.route-home .home-wall,.route-home .category-group .cards,.route-category .category-list-page .cards{--grid-columns:3;grid-template-columns:repeat(3,minmax(0,1fr))}.category-tiles,.category-directory{grid-template-columns:1fr}.route-categories .category-directory-title{grid-column:1}.category-tile{min-height:80px}}
@media(max-width:1600px){.route-home .home-wall--with-ad>.ad-slot--home-feed{grid-column:5/span 5}}
@media(max-width:1080px){.route-home .home-wall--with-ad>.ad-slot--home-feed{grid-column:4/span 4}.route-home .home-wall--with-ad .card--hero{grid-column:span 2;grid-row:span 2}}
@media(max-width:650px){.route-home .home-wall--with-ad>.ad-slot--home-feed{grid-column:1/-1;grid-row:3;min-height:92px}}
@media(prefers-reduced-motion:reduce){.category-tile,.route-home .home-wall .card--small strong{transition:none}.category-tile:hover,.route-home .home-wall .card:hover{transform:none}}

@media(max-width:900px){
  .route-categories .category-directory{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;width:100%;margin-left:0}
  .route-categories .category-directory::before{display:none}
  .route-categories .category-directory-title{grid-column:1/span 4;margin-left:0}
  .route-categories .category-directory-info{grid-template-columns:minmax(0,1fr) 150px;gap:25px;width:100%;margin-top:32px;margin-left:0;padding:34px 28px 38px}
  .route-categories .category-directory-art{width:150px}
}
@media(max-width:650px){
  .route-categories .category-directory{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .route-categories .category-directory-title{grid-column:1/-1;min-height:76px;padding:16px;border-radius:13px}
  .route-categories .category-directory-title span{font-size:1.5rem}
  .route-categories .category-directory .category-tile{gap:8px;min-height:82px;padding:6px;border-radius:12px}
  .route-categories .category-directory .category-tile-art{flex-basis:68px;width:68px;height:68px;border-radius:8px}
  .route-categories .category-directory .category-tile strong{font-size:.85rem;line-height:1.3}
  .route-categories .category-directory-info{display:block;margin-top:26px;padding:28px 22px 34px}
  .route-categories .category-directory-copy h1{margin-bottom:15px;font-size:1.75rem}
  .route-categories .category-directory-copy p:not(.crumb){font-size:.94rem;line-height:1.7}
  .route-categories .category-directory-art{display:none}
}
@media(max-width:390px){
  .route-categories .category-directory{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
  .route-categories .category-directory-title{grid-column:1/-1}
  .route-categories .category-directory .category-tile{gap:7px;min-height:76px}
  .route-categories .category-directory .category-tile-art{flex-basis:56px;width:56px;height:56px}
  .route-categories .category-directory .category-tile strong{font-size:.8rem}
}
