/* Shared touch behavior; the desktop editorial layout remains in style.css. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.locked{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.menu-icon{display:none}
.footer-left img{height:auto}
input,select,textarea{min-width:0;max-width:100%}
.project-buttons button:disabled{opacity:.35;cursor:default}
#lightboxImage{touch-action:pan-y pinch-zoom}
.section>*,.section-row>*,.form-grid>*,.offer-links>a>span{min-width:0}

@media(max-width:1000px){
 :root{--gutter:clamp(18px,4.5vw,40px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--header-height:calc(80px + var(--safe-top))}
 html{scroll-padding-top:calc(var(--header-height) + 20px)}
 #header{height:var(--header-height);display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;padding:calc(10px + var(--safe-top)) max(var(--gutter),env(safe-area-inset-right,0px)) 10px max(var(--gutter),env(safe-area-inset-left,0px))}
 #header .identity{justify-self:start;min-width:0;min-height:48px}
 #header .identity img{width:76px;height:60px;object-fit:contain}
 #header .identity span{display:none}
 #header .language-switch{margin:0;gap:0}
 #header .language-switch a{display:grid;place-items:center;min-width:44px;min-height:44px;font-size:.875rem;padding:4px;line-height:1.2}
 #header #menuToggle{display:grid;place-items:center;min-width:44px;width:44px;min-height:44px;height:44px;padding:0}
 #menuToggle .menu-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .menu-icon{display:flex;flex-direction:column;justify-content:center;gap:6px;width:18px;height:20px}
 .menu-icon i{display:block;height:1.5px;width:100%;background:currentColor}
 dialog{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;overscroll-behavior:contain}
 #menu[open]{display:flex;flex-direction:column;padding:calc(100px + var(--safe-top)) var(--gutter) calc(28px + var(--safe-bottom));overflow-y:auto}
 #menu>.close,#lightbox>.close{position:fixed;top:calc(14px + var(--safe-top));right:max(var(--gutter),env(safe-area-inset-right,0px));min-height:48px;padding:12px 20px;font-size:.9375rem;background:#132951}
 #menu nav{margin:0;gap:2px;width:100%;align-items:stretch}
 #menu nav a{display:flex;align-items:center;min-height:54px;padding:8px 0;font-size:clamp(1.875rem,6vw,3rem);line-height:1.2;letter-spacing:-.035em;overflow-wrap:anywhere;hyphens:auto}
 #menu nav a:hover{transform:none}
 #menu .menu-bottom{display:grid;grid-template-columns:1fr 1fr;gap:22px;position:static;margin:40px 0 0;padding-top:25px;border-top:1px solid #ffffff26;font-size:.8125rem;line-height:1.6}
 #menu .menu-bottom p{font-size:.8125rem}
 #menu .menu-bottom img{display:none}
 .project-title{margin-bottom:0}
 .project-track{overscroll-behavior-x:contain;scroll-padding:0;will-change:auto}
 .project-slide{min-width:0}
 .project-controls{display:grid;grid-template-columns:1fr auto;gap:20px 12px;align-items:center}
 .project-controls>span{font-size:.875rem}
 .project-buttons{gap:8px}
 .project-buttons button{min-height:44px;min-width:64px;padding:10px 12px;border:1px solid #ffffff45;border-radius:30px;font-size:.875rem;color:#fff}
 .project-controls>a{grid-column:1/-1;display:flex;justify-content:center;align-items:center;min-height:48px;padding:12px 18px;border:1px solid #ffffff50;border-radius:40px;font-size:.875rem;line-height:1.4;text-align:center}
 #lightbox[open]{display:grid;grid-template-rows:minmax(0,1fr) auto auto auto;justify-content:stretch;align-content:stretch;place-items:center;gap:10px;padding:calc(78px + var(--safe-top)) max(var(--gutter),env(safe-area-inset-right,0px)) calc(12px + var(--safe-bottom)) max(var(--gutter),env(safe-area-inset-left,0px));overflow:hidden}
 #lightboxImage{min-height:0;max-height:100%;width:auto;height:auto;max-width:100%;object-fit:contain}
 .lightbox-bar{margin:0;width:100%;gap:8px;font-size:.875rem}
 .lightbox-bar button{min-height:44px;min-width:74px;padding:10px 14px;font-size:.875rem}
 #photoCredit{font-size:.75rem;line-height:1.5;text-align:center;margin:0}
 #photoSource{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 12px;font-size:.875rem;line-height:1.4;margin:0;text-align:center}
}

@media(max-width:800px){
 :root{--section-space:60px}
 .section{padding:var(--section-space) var(--gutter)}
 p{font-size:1.0625rem;line-height:1.65}
 h1,h2,h3{hyphens:auto;overflow-wrap:anywhere}
 .eyebrow{font-size:.8125rem;line-height:1.5;letter-spacing:.045em}
 .page-heading{padding-top:calc(var(--header-height) + 42px);padding-bottom:42px}
 .page-heading h1,html[lang="de"] .page-heading h1{font-size:clamp(2.125rem,8.8vw,3.5rem);line-height:1.12;letter-spacing:-.045em;margin-top:24px}
 .page-heading>p{font-size:1.125rem;line-height:1.55;margin-top:24px}
 .hero-cinematic{--hero-entry-scale:1.16;--hero-frame-height:max(520px,100svh);height:calc(var(--hero-frame-height) + clamp(120px,22svh,200px));min-height:0}
 .hero-cinematic .hero-photo{height:var(--hero-frame-height);min-height:0}
 .hero-cinematic .hero-info{bottom:calc(44px + var(--safe-bottom));left:var(--gutter);right:var(--gutter)}
 .hero-cinematic .hero-info h1{font-size:clamp(2rem,7.8vw,3.125rem);line-height:1.14;letter-spacing:-.035em;margin-top:18px;max-width:100%}
 .hero-cinematic .hero-info small{font-size:.75rem;line-height:1.5;margin-top:16px}
 .hero-cinematic .hero-photo>img{object-position:52% center}
 .hero-scroll-line{bottom:calc(20px + var(--safe-bottom))}
 .hero-cinematic .hero-photo:after{inset:15% 0 0;background:linear-gradient(180deg,transparent 30%,#08152740 58%,#07121fce)}
 .intro-logo{width:min(82vw,460px)}
 .intro h2{font-size:clamp(1.875rem,6.9vw,2.875rem);line-height:1.18;margin-bottom:32px}
 .intro-secondary{margin:0;max-width:none}
 .intro-secondary>p{margin-bottom:35px}
 .facts{gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
 .facts strong{font-size:2.5rem;margin-bottom:14px}
 .facts span{font-size:.875rem;line-height:1.5;hyphens:auto;overflow-wrap:anywhere}
 .facts span br{display:none}
 .project-pin{padding-top:60px;padding-bottom:45px}
 .project-slide{gap:25px}
 .project-title h2,html[lang="de"] .project-title h2{font-size:clamp(2.125rem,8vw,3.25rem);line-height:1.12;letter-spacing:-.04em;overflow-wrap:anywhere;hyphens:auto}
 .project-copy p{font-size:1.0625rem;line-height:1.6}
 .project-copy>a{display:inline-block;min-height:44px;padding:11px 0}
 .project-copy small{font-size:.75rem;line-height:1.5;margin-top:16px}
 .image-cta{height:65svh;min-height:420px;max-height:700px}
 .image-cta>div{padding:var(--gutter)}
 .image-cta a{font-size:clamp(2.125rem,8.5vw,3.75rem);line-height:1.12;overflow-wrap:anywhere;hyphens:auto}
 .section-row{gap:20px;flex-wrap:wrap}
 .section-row>div:has(.circle){display:flex;flex-shrink:0;gap:10px}
 .circle{min-width:48px;min-height:48px;margin:0}
 .quote{margin-top:32px}
 .quote p{font-size:clamp(1.75rem,6.8vw,2.25rem);line-height:1.3;min-height:0}
 .quote>span{font-size:.8125rem;line-height:1.5;margin-top:25px}
 .marquee{padding:24px 0}
 .news h2,.contact h2,.founder-copy h2{font-size:clamp(2rem,8vw,3.25rem);line-height:1.14}
 .news-grid{grid-template-columns:1fr;gap:40px;margin-top:36px}
 .news-grid img{width:100%;height:auto;max-height:none;aspect-ratio:auto;background:none}
 .news-grid a:hover img{transform:none}
 .news-grid h3{font-size:1.75rem;margin-top:20px}
 .news-grid p{font-size:1rem}
 .news-grid .eyebrow{font-size:.75rem;margin-top:16px}
 .founder-section{gap:32px}
 .founder-photo{max-width:420px;width:100%}
 .founder-photo img{height:auto;max-height:none;object-fit:contain}
 .founder-copy h2{margin-top:22px}
 .founder-copy .founder-role{font-size:.9375rem}
 .founder-copy>p{font-size:1.0625rem}
 .pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:12px 22px;font-size:.9375rem;line-height:1.45}
 .program-jumps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px;padding-top:0;padding-bottom:32px}
 .program-jumps a{display:flex;align-items:center;min-height:48px;font-size:1rem;overflow-wrap:anywhere;hyphens:auto}
 .program-detail{gap:30px;scroll-margin-top:calc(var(--header-height) + 10px)}
 .program-detail h2{font-size:clamp(2rem,8vw,3.25rem);line-height:1.13;margin:24px 0}
 .program-detail p{margin-bottom:25px}
 .offer-cover,.programme-cover{margin:0;padding:0 var(--gutter)}
 .offer-cover img,.offer-cover.programme-cover img{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:auto}
 .offer-cover figcaption,.program-detail figcaption{font-size:.75rem;line-height:1.5}
 .offer-intro,.offer-example,.offer-faq,.uk-example,.contact-options{grid-template-columns:minmax(0,1fr);gap:26px}
 .offer-intro h2,.offer-example h2,.offer-faq h2,.related-offers h2,.contact-options h2,.programme-gallery h2,.uk-example h2,.final-note h2,.sources h2{font-size:clamp(2rem,7.5vw,3.125rem);line-height:1.15;margin-bottom:24px}
 .offer-intro .eyebrow{padding-top:0}
 .offer-intro p{margin-bottom:20px}
 .benefit-grid{grid-template-columns:minmax(0,1fr);row-gap:32px;padding-top:28px}
 .benefit-grid h3{font-size:clamp(1.625rem,6.7vw,2.125rem);line-height:1.2;margin:20px 0 14px}
 .benefit-grid p{font-size:1rem;line-height:1.65}
 .offer-example p,.uk-example p{font-size:1.0625rem}
 .offer-example .small-note{font-size:.875rem}
 .programme-facts dl{grid-template-columns:minmax(0,1fr);gap:26px;margin:30px 0}
 .programme-facts dt{font-size:clamp(2.125rem,8.8vw,3rem);line-height:1.15;overflow-wrap:anywhere}
 .programme-facts dd{font-size:1rem;margin-top:12px;max-width:none}
 .programme-facts>p{font-size:.875rem}
 .programme-photo-grid{grid-template-columns:1fr;gap:32px}
 .programme-photo-grid figcaption{font-size:1rem;line-height:1.5;margin-top:14px}
 .programme-photo-grid small{font-size:.75rem}
 .offer-faq details{padding:18px 0}
 .offer-faq summary{min-height:44px;align-items:center;gap:18px;font-size:1.125rem;line-height:1.45}
 .offer-faq summary span{font-size:1.625rem}
 .offer-faq details p{margin:18px 0 0;font-size:1rem;line-height:1.65}
 .offer-cta h2{font-size:clamp(2.25rem,9vw,3.75rem);line-height:1.12;margin:26px 0}
 .related-offers h2{margin-top:25px}
 .offer-links{grid-template-columns:minmax(0,1fr)}
 .offer-links a{font-size:clamp(1.375rem,5.8vw,1.875rem);line-height:1.35;padding:22px 0;gap:18px;hyphens:auto;overflow-wrap:anywhere}
 .offer-links a>span:last-child{flex-shrink:0}
 .process-step{grid-template-columns:44px minmax(0,1fr);gap:22px 16px}
 .step-number{font-size:2.25rem}
 .process-step h2{font-size:clamp(1.625rem,6.5vw,2.375rem);line-height:1.2;margin-bottom:18px}
 .process-step img{grid-column:1/-1;height:auto;max-height:none;aspect-ratio:auto}
 .gallery{padding-top:0}
 .gallery-intro{gap:20px;margin-top:25px}
 .gallery-intro p{font-size:1.0625rem}
 .gallery-filters{top:var(--header-height);flex-wrap:nowrap;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;padding:12px 0 18px;scrollbar-width:none}
 .gallery-filters button{min-height:44px;padding:10px 13px;white-space:nowrap;font-size:.875rem;flex-shrink:0}
 .gallery-filters>span{display:none}
 .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}
 .gallery-item{width:100%;min-width:0}
 .gallery-item img{width:100%;height:auto;max-height:none;aspect-ratio:auto;background:none}
 .gallery-item>span{font-size:.8125rem;line-height:1.5;gap:12px}
 .gallery-item>span small{font-size:.75rem;flex-shrink:0}
 .sources>a{min-height:44px;font-size:1rem;margin:16px 0 0;padding:10px 0;overflow-wrap:anywhere}
 .contact{display:block}
 .contact form{margin-top:32px;max-width:100%}
 .form-grid{grid-template-columns:minmax(0,1fr);gap:0}
 label{font-size:.9375rem;margin-bottom:22px}
 input,textarea,select{font-size:1rem;min-height:52px;padding:14px 0;line-height:1.5}
 select{padding-right:25px;text-overflow:ellipsis}
 textarea{min-height:130px}
 .contact button[type="submit"]{width:100%}
 .form-note,#formStatus{font-size:.875rem;line-height:1.6}
 .contact-direct{padding-top:0}
 .contact-direct>a{font-size:clamp(1.125rem,4.9vw,1.75rem);min-height:44px;padding:8px 0;margin-bottom:10px;overflow-wrap:anywhere}
 .contact-direct>p{font-size:1rem}
 footer{grid-template-columns:minmax(0,1fr);gap:30px;padding-top:48px;padding-bottom:calc(28px + var(--safe-bottom))}
 .footer-left img{width:160px;height:auto;margin-bottom:24px}
 .footer-left>span{font-size:.75rem;line-height:1.6}
 .footer-left p,.footer-right p{font-size:1rem;margin-top:20px}
 footer nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding-top:8px;font-size:.875rem;line-height:1.5}
 footer nav a{display:flex;align-items:center;min-height:48px;padding:10px 0;overflow-wrap:anywhere;hyphens:auto}
 .footer-right{grid-column:auto}
 .footer-right h2{font-size:clamp(1.875rem,7.5vw,2.5rem);line-height:1.18;margin:18px 0}
 .footer-bottom{font-size:.75rem;margin-top:30px}
 .footer-bottom a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem}
}

@media(max-width:520px){
 .gallery-grid{grid-template-columns:minmax(0,1fr)}
 .gallery-item>span{font-size:.875rem}
 .program-jumps{grid-template-columns:minmax(0,1fr);gap:2px}
 .offer-heading>.pill,.offer-cta>.pill,.final-note>.pill{width:100%}
}
@media(max-width:380px){
 :root{--gutter:16px;--section-space:52px}
 #header .identity img{width:68px;height:54px}
 .facts{grid-template-columns:1fr;gap:0}
 .facts>div{display:grid;grid-template-columns:60px 1fr;gap:16px;align-items:center;padding:18px 0;border-top:1px solid var(--line)}
 .facts strong{margin:0;font-size:2.25rem}
 .facts span{font-size:.9375rem}
 .hero-cinematic .hero-info h1{font-size:1.875rem}
 .hero-cinematic .hero-info small{max-width:250px}
}
@media(max-width:1000px) and (max-height:520px) and (orientation:landscape){
 .hero-cinematic{height:auto;min-height:0;--hero-frame-height:480px}
 .hero-cinematic .hero-photo{height:480px;min-height:0;position:relative}
 .hero-cinematic .hero-info h1{font-size:2.5rem;max-width:80%}
 .hero-cinematic .hero-info{bottom:50px}
 .hero-cinematic .hero-explore{display:none}
 #menu[open]{padding-top:calc(78px + var(--safe-top))}
 #menu nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 35px}
 #menu nav a{font-size:1.875rem;min-height:48px}
 #menu .menu-bottom{margin-top:24px}
}
@media(max-width:800px) and (prefers-reduced-motion:reduce){
 .hero-cinematic{height:var(--hero-frame-height);min-height:0}
 .hero-cinematic .hero-photo{height:var(--hero-frame-height);min-height:0;position:relative}
}
