/* Shared layout rules for desktop, tablet and phone, loaded after component CSS. */
:root{--page-gutter:clamp(16px,3.5vw,48px);--site-header-height:132px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--site-header-height) + 16px)}
body{min-width:0}
.wrap,.foot-grid,.bottom{width:calc(100% - var(--page-gutter) - var(--page-gutter));max-width:1240px}
.auth-layout{max-width:1120px}
main :is(p,li,dd,small),.content-file-info,.public-dossiers strong,.public-dossiers small{overflow-wrap:break-word}
:is(.site-heading-grid,.school-intro,.school-links-grid,.document-cards,.document-card,.pro-association-grid,.pro-stories,.project-themes,.project-steps,.naturo-home,.naturo-ways,.naturo-practical,.auth-layout,.contact-layout,.form-two,.form-three,.dashboard-layout,.admin-document-layout,.site-plan,.foot-grid)>*{min-width:0;max-width:100%}
input,select,textarea{min-width:0;max-width:100%}
.form-two label,.form-three label,.checkbox-line>span{min-width:0;overflow-wrap:break-word}
.button,.mini-button,.text-link,.filter,.view-buttons button,.auth-tabs a{min-height:44px;max-width:100%;white-space:normal}
.section-head,.actions,.agenda-toolbar,.naturo-contact-actions,.dashboard-top{min-width:0;flex-wrap:wrap}
.section-head>div,.contact-ribbon>div,.team-contact>div,.dossier-contact>div,.portal-callout>div{min-width:0}
.table-scroll,.calendar-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
.table-scroll:focus-visible,.calendar-scroll:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.calendar-mobile-hint{display:none}
.calendar-scroll[data-overflow="true"]+.calendar-hint .calendar-mobile-hint{display:block;margin-top:6px}
.site-heading-photo,.site-heading-compact .site-heading-photo,.naturo-page .site-heading-photo{height:auto;min-height:0}
.site-heading-photo>a{height:auto}
.site-heading-photo img{display:block;width:100%;height:auto;object-fit:contain}
.pro-association-picture,.home-association .pro-association-picture{height:auto;max-width:none}
.pro-association-picture img,.rounded-photo{width:100%;height:auto;object-fit:contain}
.pro-story-photo{height:auto;min-height:0}
.pro-story-photo img{height:auto;object-fit:contain}
.content-resource .content-visual img{max-width:100%;height:auto;object-fit:contain}
.content-image img{height:auto;max-height:none;object-fit:contain}
.content-gallery{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
.naturo-home-photo{position:relative;min-height:360px;height:100%;background:#edf3e7}
.naturo-home-photo>img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:contain;object-position:center}
.naturo-slide-photo{height:clamp(280px,52svh,520px)}
.catalogue-dialog{overflow-y:auto;overscroll-behavior:contain}
.catalogue-header h2{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:break-word;line-height:1.4}
.catalogue-header>div{min-width:0;flex:1}
.catalogue-stage{height:clamp(160px,55svh,640px);min-height:140px}
.naturo-reader-toolbar .button,.naturo-reader-toolbar .text-link{min-height:44px}
.bottom{padding-bottom:calc(76px + env(safe-area-inset-bottom))}

/* Origami keeps the original, pale treatment defined in site.css. */

@media(max-width:1320px){
 .nav{gap:16px}
 .brand{flex:1 1 auto;min-width:0}
 .brand span{min-width:0}
 .nav-actions{flex:0 0 auto;gap:8px}
 .icon-btn{width:44px;height:44px;padding:11px}
 .links{left:calc(-1 * (100vw - 100%)/2);right:calc(-1 * (100vw - 100%)/2);padding:16px var(--page-gutter) 24px;max-height:calc(100dvh - var(--site-header-height) - 12px);overflow-y:auto;overscroll-behavior:contain}
 .nav-group summary,.nav-home,.nav-contact,.nav-ludotheque{min-height:48px;font-size:15px}
 .mega a{min-height:44px;line-height:1.6}
}

@media(max-width:1199px){
 main{overflow:visible}
 main h1,main h2,main h3,main h4,.network-hero h1{white-space:normal;text-wrap:balance;overflow-wrap:break-word}
 .section{padding:clamp(36px,5vw,58px) 0}
 .home-association{padding:56px 0}
 .home-page .home-introduction h2,.home-page .school-intro-heading h2,.home-page .home-film-heading h2,.home-page .network-school-documents h2{font-size:clamp(28px,3.6vw,38px);line-height:1.35}
 .site-heading h1,.site-heading-compact h1{font-size:clamp(32px,4.3vw,46px);line-height:1.3}
 .school-intro,.home-schools .school-links-grid{grid-template-columns:minmax(0,1fr);gap:28px}
 .school-intro>div:first-child{max-width:none}
 .project-themes{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 .project-themes>a:last-child{grid-column:auto}
 .project-themes>a.navigation-card{min-height:110px}
 .document-cards{grid-template-columns:minmax(0,1fr)}
 .document-card{grid-template-columns:140px minmax(0,1fr);padding:26px;gap:28px}
 .document-card h3{font-size:26px;line-height:1.35}
 .document-card p,.document-card small,.document-card .text-link{font-size:14px}
 .pro-stories,.staff-grid,.home-events,.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .home-events>.event-card:last-child{grid-column:auto}
 .home-events>.event-card:nth-child(3):last-child{grid-column:1/-1}
 .home-events>.event-card:last-child .event-card-body{display:flex;flex-direction:column}
 .home-events .event-card p{display:block;overflow:visible;-webkit-line-clamp:unset}
 .project-steps,.naturo-ways{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .project-steps>article:last-child,.naturo-ways>article:last-child{grid-column:1/-1}
 .home-programmes .film-grid,.film-grid,.naturo-practical,.auth-layout,.contact-layout,.event-detail-grid,.dashboard-layout,.admin-document-layout{grid-template-columns:minmax(0,1fr);gap:28px}
 .resource-layout{grid-template-columns:minmax(0,1fr);gap:28px;padding:36px 0 56px}
 .resource-sidebar{position:static;max-height:none;overflow:visible}
 .resource-sidebar .sidebar-project{display:none}
 .section-navigation nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sector-folder{grid-column:1/-1}
 .content-resource{grid-template-columns:150px minmax(0,1fr);gap:24px}
 .pro-topics,.admin-portal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
 .agenda-toolbar{align-items:center;gap:18px}
 .month-navigation{min-width:0;flex:1;gap:16px}
 .month-navigation h2{min-width:0;font-size:28px}
 .view-buttons{display:flex;flex-wrap:wrap}
 .signup-panel{max-width:none;width:100%}
 .form-two{grid-template-columns:repeat(2,minmax(0,1fr))}
 .dashboard-top,.team-contact,.contact-ribbon,.dossier-contact,.project-cta,.pro-join>.wrap{align-items:flex-start;flex-direction:column;gap:22px}
 .portal-callout{align-items:flex-start}
 .portal-callout>div{flex:1 1 100%;min-width:0}
 .naturo-contact{align-items:flex-start;flex-wrap:wrap}
 .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
 .foot-column>a{font-size:13px;min-height:36px}
 .article{font-size:16px;line-height:1.85}
 .tag,.script-label,.eyebrow{line-height:1.65}
}

@media(min-width:768px) and (max-width:1199px){
 .site-heading-grid,.site-heading-compact .site-heading-grid{grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:28px;align-items:center}
 .site-heading-text-only .site-heading-grid{grid-template-columns:minmax(0,1fr)}
 .home-association .pro-association-grid,.pro-association-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:28px}
 .naturo-home{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .naturo-home>div{padding:28px}
 .naturo-contact-actions{flex:1 1 100%;flex-direction:row}
 .auth-card .form-two{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(min-width:768px) and (max-width:899px){
 .project-themes{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:1023px){
 .network-hero{display:block;min-height:0;background:var(--deep)}
 .network-hero::before{display:none}
 .network-hero-media{position:relative;inset:auto;z-index:auto;width:100%;aspect-ratio:16/9}
 .network-hero-poster,.network-hero-video{object-fit:contain;object-position:center}
 .network-hero-content{padding:36px 0 42px}
 .network-hero h1{font-size:clamp(29px,4.5vw,42px);line-height:1.3;margin:0 0 18px}
 .network-hero p{font-size:16px;line-height:1.8}
 .network-hero .home-tagline{font-size:clamp(22px,3vw,26px)}
 .network-hero .actions{justify-content:center;gap:14px}
}

@media(max-width:767px){
 .section{padding:38px 0}
 .section-head{align-items:flex-start;flex-direction:column;gap:16px}
 .site-heading{padding:24px 0 32px}
 .site-heading-grid,.site-heading-compact .site-heading-grid,.home-association .pro-association-grid,.pro-association-grid,.naturo-home,.naturo-practical,.content-resource,.contact-addresses,.territory-cards,.site-plan{grid-template-columns:minmax(0,1fr);gap:24px}
 .site-heading h1,.site-heading-compact h1{font-size:clamp(29px,7vw,38px);letter-spacing:-.5px}
 .site-heading-copy>p,.school-intro-description,.home-introduction>p{font-size:16px;line-height:1.85}
 .site-heading-photo{max-width:540px;justify-self:center;width:100%}
 .primary-partners{padding:8px 16px}
 .primary-partners-logos{gap:16px}
 .primary-partner-argonne img{width:118px}.primary-partner-caf img{width:32px}.primary-partner-water img{width:82px}
 .pro-stories,.staff-grid,.home-events,.event-grid,.project-steps,.naturo-ways,.project-themes,.pro-topics,.document-card,.form-two,.form-three{grid-template-columns:minmax(0,1fr)}
 .project-steps>article:last-child,.naturo-ways>article:last-child,.home-events>.event-card:nth-child(3):last-child{grid-column:auto}
 .project-themes>a.navigation-card{min-height:96px;padding:18px;grid-template-columns:36px minmax(0,1fr) 24px}
 .navigation-card .navigation-card-copy>strong{font-size:16px}
 .navigation-card .navigation-card-copy>small{font-size:14px}
 .document-card{padding:24px;gap:22px}
 .document-cover{width:min(170px,100%);min-height:0;justify-self:center}
 .document-cover img{max-height:none}
 .document-card h3{font-size:25px}
 .document-actions{align-items:stretch}
 .document-actions .button,.document-actions .text-link{width:100%}
 .content-resource{padding:22px;justify-items:center}
 .content-resource-copy{width:100%}
 .content-resource-copy p{font-size:15px}
 .section-navigation nav,.sector-folder{grid-template-columns:minmax(0,1fr)}
 .naturo-home-photo{height:clamp(290px,62svh,480px);min-height:0}
 .naturo-home>div{padding:28px 22px}
 .naturo-slide-photo{height:clamp(250px,52svh,430px);padding:12px}
 .naturo-carousel-controls{gap:10px;padding-inline:10px}
 .naturo-contact{align-items:flex-start;flex-direction:column}
 .naturo-contact-actions{align-items:stretch;width:100%}
 .naturo-contact-actions .button,.naturo-contact-actions .text-link{width:100%}
 .naturo-reader-toolbar{gap:10px}
 .naturo-reader-toolbar .button,.naturo-reader-toolbar .text-link{flex:1 1 auto}
 .agenda-toolbar{align-items:stretch;flex-direction:column}
 .month-navigation{width:100%;gap:12px}
 .month-navigation h2{flex:1;text-align:center;font-size:clamp(23px,5vw,28px)}
 .view-buttons button{flex:1;min-height:44px;font-size:14px}
 .filter{font-size:13px}
 .agenda-help{flex-direction:column;align-items:flex-start}
 .agenda-help p{flex-basis:auto}
 .agenda-help>.button{margin-left:0;width:100%}
 .catalogue-dialog{padding:16px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}
 .catalogue-header{gap:12px;align-items:flex-start}
 .catalogue-header h2{font-size:20px}
 .catalogue-instructions{font-size:13px;line-height:1.6}
 .catalogue-stage{height:clamp(140px,49svh,540px)}
 .public-dossiers>a{display:grid;grid-template-columns:32px minmax(0,1fr);gap:14px}
 .public-dossiers>a>span:last-child{grid-column:2}
 .contact-ribbon>.button,.team-contact>.button,.dossier-contact>.button,.project-cta>.button{width:100%}
 .admin-portal-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}
 .foot-grid{gap:28px 22px}
 .foot-brand{grid-column:1/-1}
 .foot-column>a{font-size:13px;min-height:40px}
 .bottom{flex-direction:column;gap:12px;font-size:11px;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}

@media(max-width:479px){
 .brand{gap:9px}.brand img{width:46px;height:48px}
 .brand strong{font-size:13px;line-height:1.4}.brand small{font-size:10px;letter-spacing:.3px}
 .nav{gap:10px;padding:12px 0}
 .nav-actions{gap:4px}
 .network-hero-content{padding:30px 0 36px}
 .network-hero .actions{align-items:stretch;flex-direction:column}
 .network-hero .button{width:100%;font-size:14px}
 .home-page .home-introduction h2,.home-page .school-intro-heading h2,.home-page .home-film-heading h2,.home-page .network-school-documents h2{font-size:29px}
 .content-gallery{grid-template-columns:minmax(0,1fr)}
 .naturo-numbers{padding:20px 8px;gap:10px}
 .naturo-numbers span{font-size:12px}
 .naturo-reader-toolbar .text-link{flex-basis:100%}
 .site-plan>section:nth-child(6)>ul{grid-template-columns:minmax(0,1fr)}
}

@media(max-height:500px) and (max-width:1320px){
 header{position:relative}
 .catalogue-stage{height:clamp(120px,40svh,240px);min-height:120px}
 .naturo-flyer-reader{padding:12px;gap:10px}
 .naturo-reader-toolbar .button,.naturo-reader-toolbar .text-link{min-height:40px}
}
@media(prefers-contrast:more){.origami-watermark::before,.primary-partners::before{display:none}}
@media print{
 .origami-watermark::before{display:none}
 .bottom{padding-bottom:22px}
}
