/* Shared responsive layout. Desktop art direction stays in styles.css/pages.css. */
.menu-toggle{display:none}
.hero>*,.section-heading>*,.contact>*,.mobile-story>*,.business-grid>*,.price-grid>*{min-width:0}
img,video{max-width:100%}
.section-heading h1,.section-heading h2,.service h3,.world-card h3{overflow-wrap:break-word}
.floating-contact{min-height:48px}
.lightbox-close{width:48px;height:44px}
.contact-in-view .floating-contact{visibility:hidden;pointer-events:none}
@media(max-width:1100px){input,select,textarea{font-size:16px}label{font-size:14px}}
@media(max-width:900px){
  .header{height:auto;min-height:90px;position:relative;flex-wrap:wrap;align-items:center;gap:14px;padding-block:18px}
  .header .brand-mark{font-size:44px}
  .header .brand-name{font-size:11px;letter-spacing:1.6px}
  .header .brand-name small{font-size:8px;letter-spacing:4px}
  .header nav{flex:0 0 100%;display:flex;max-width:none;gap:8px;flex-wrap:wrap;justify-content:flex-start}
  .header nav>a:not(.nav-cta){display:flex;align-items:center;min-height:48px;font-size:15px;padding:10px 14px}
  .header .nav-cta{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:14px;padding:11px 16px}
  .navigation-ready .menu-toggle{display:flex;align-items:center;justify-content:center;gap:10px;min-width:88px;min-height:48px;padding:10px 13px;border:1px solid #39465e;border-radius:5px;background:#111722;color:#e6edfb;font-size:14px}
  .menu-icon{display:flex;flex-direction:column;gap:4px;width:17px}
  .menu-icon i{display:block;height:1.5px;background:currentColor;width:17px;transition:transform .2s}
  .menu-toggle[aria-expanded=true] .menu-icon i:first-child{transform:translateY(2.75px) rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-icon i:last-child{transform:translateY(-2.75px) rotate(-45deg)}
  .navigation-ready .header nav{display:none}
  .navigation-ready .header.nav-open nav{display:flex;flex-direction:column;align-items:stretch;border-top:1px solid var(--line);padding-top:14px}
  .header nav>a[aria-current=page]{background:#17243c;border-radius:5px}
  .hero,.home-hero{gap:25px}
  .hero h1,.home-hero h1,.business-hero h1{font-size:clamp(42px,6.2vw,56px);letter-spacing:-2.6px}
  .price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .price-card h3{min-height:54px}
  .section-heading>p{font-size:14px}
}
@media(max-width:760px){
  html{scroll-padding-top:20px}
  body{font-size:16px}
  .section,.header,.footer{padding-inline:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  .hero,.home-hero,.business-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding-top:27px;padding-bottom:40px;gap:30px}
  .hero h1,.home-hero h1,.business-hero h1,.inner-hero h1{font-size:clamp(42px,12vw,60px);line-height:1.13;letter-spacing:-2.5px}
  .hero h1{margin-bottom:24px}
  .eyebrow,.mobile-story .eyebrow{font-size:10px;line-height:1.8;letter-spacing:1.3px;flex-wrap:wrap;gap:8px;margin-bottom:20px}
  .hero-description{font-size:16px;line-height:1.8;margin-bottom:27px}
  .hero-copy>.button{width:100%;min-width:0;font-size:15px;min-height:56px;padding-inline:20px}
  .hero-bottom{font-size:11px;flex-wrap:wrap;gap:8px;margin-top:24px}
  .hero-bottom a{display:inline-flex;align-items:center;min-height:44px}
  .hero-bottom-line{max-width:24px}
  .hero-visual,.business-hero .hero-visual{height:auto;aspect-ratio:1 / 1}
  .home-collage{height:clamp(350px,100vw,470px);gap:10px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
  .collage-main>span{font-size:12px;line-height:1.6;padding:45px 13px 18px}
  .collage-small>span{font-size:9px;letter-spacing:1px;left:8px;bottom:10px;padding:6px}
  .photo-tag{font-size:9px;letter-spacing:1px;top:16px;left:16px;max-width:calc(100% - 32px)}
  .photo-caption{font-size:14px;left:23px;right:23px;bottom:25px}
  .service-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;font-size:13px;padding:21px 20px;text-align:center}
  .service-strip i{display:none}
  .section-heading{display:block;margin-bottom:27px}
  .section-heading>p{font-size:15px;line-height:1.8;margin-top:20px;margin-bottom:0}
  h2{font-size:clamp(29px,8vw,37px);letter-spacing:-1.1px;line-height:1.25}
  .worlds,.portfolio{padding-top:58px;padding-bottom:50px}
  .world-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .world-card{height:430px}
  .world-card>div{padding:24px}
  .world-card h3{font-size:34px}
  .world-card p:not(.eyebrow){font-size:15px;line-height:1.7;margin-bottom:20px}
  .world-link{font-size:14px;min-height:48px;gap:15px}
  .mobile-story{grid-template-columns:32px minmax(0,1fr);gap:16px;padding-block:36px}
  .mobile-symbol{width:31px;height:48px;align-self:start;margin-top:6px}
  .mobile-story h2{font-size:27px;line-height:1.3;letter-spacing:-.7px}
  .mobile-story p:not(.eyebrow){font-size:15px;line-height:1.8;margin-top:17px}
  .mobile-story>.text-link{grid-column:2;font-size:14px}
  .text-link,.text-button{font-size:14px;min-height:48px}
  .text-button{padding:12px}
  .home-selection{padding-block:55px 35px}
  .selection-grid,.more-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .selection-grid .photo,.selection-grid .photo:nth-child(2),.more-gallery .photo{height:260px}
  .selection-grid .photo:last-child{grid-column:span 2;height:280px}
  .photo>span{font-size:13px;gap:12px;line-height:1.5;padding:35px 16px 16px}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .gallery .photo{height:240px}
  .gallery .photo-wide{height:280px;grid-column:span 2}
  .services{padding-block:25px 50px}
  .service{grid-template-columns:23px minmax(0,1fr) 48px;gap:10px;padding-block:25px}
  .service-number{font-size:12px}
  .service h3{font-size:20px;line-height:1.4}
  .service p{font-size:15px;line-height:1.75}
  .service>a{width:48px;height:48px;font-size:24px}
  .inner-hero{padding-block:32px}
  .quick-links{gap:10px}
  .quick-links a{display:inline-flex;align-items:center;font-size:14px;min-height:48px;padding:10px 14px}
  .people-section{padding-block:35px}
  .people-event-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:300px 230px;gap:12px}
  .event-feature{grid-row:auto;grid-column:span 2}
  .people-event-grid .photo{height:100%}
  .section-tail{display:block}
  .section-tail p{font-size:15px;line-height:1.7;margin-block:20px 7px}
  .section-tail .text-link{font-size:14px}
  .studio-feature-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .studio-feature .photo{height:auto;aspect-ratio:1 / 1}
  .studio-feature h3{font-size:25px;margin-top:20px}
  .studio-feature p{font-size:15px;line-height:1.75}
  .occasion-list article{grid-template-columns:23px minmax(0,1fr) 48px;gap:8px 12px}
  .occasion-list article>span{grid-row:span 2;font-size:12px;align-self:start;padding-top:5px}
  .occasion-list h3{font-size:23px}
  .occasion-list p{grid-column:2;font-size:15px;line-height:1.7}
  .occasion-list a{grid-column:3;grid-row:1 / span 2;width:48px;height:48px}
  .more-memories{padding-block:25px}
  .business-solutions{padding-block:15px 48px}
  .business-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .business-feature>img{height:280px}
  .business-feature>div{padding:24px}
  .business-feature p:not(.eyebrow),.business-offerings p{font-size:15px;line-height:1.75}
  .business-offerings h3{font-size:24px;line-height:1.35}
  .business-offerings article>span{font-size:12px}
  .work-video{padding-bottom:48px}
  .work-video video{max-height:70dvh}
  .pricing{padding-top:10px;padding-bottom:48px}
  .price-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .price-card{padding:25px}
  .price-card h3{min-height:0;font-size:21px;line-height:1.4;margin-bottom:20px}
  .price-value{font-size:40px;margin-bottom:15px}
  .price-consult{font-size:30px}
  .currency{font-size:17px}
  .price-description{font-size:15px;line-height:1.75;margin-bottom:20px}
  .price-card .text-link{font-size:15px;min-height:52px}
  .price-note{font-size:14px;line-height:1.8;margin-top:22px}
  .process{padding-block:38px}
  .process h2{font-size:31px}
  .process ol{grid-template-columns:minmax(0,1fr);gap:27px;margin-top:30px}
  .process li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:0 14px}
  .process li>span{grid-row:span 2;font-size:12px;padding-top:5px}
  .process h3{font-size:19px;margin:0 0 9px}
  .process li p{font-size:15px;line-height:1.75;max-width:none}
  .contact{grid-template-columns:minmax(0,1fr);gap:30px;padding-block:58px}
  .contact h2{font-size:clamp(35px,10.8vw,45px);letter-spacing:-1.6px}
  .contact-copy>p:not(.eyebrow){font-size:16px;line-height:1.8}
  .direct-contact{font-size:14px;line-height:1.75;margin-top:23px;min-height:48px}
  .direct-contact span{font-size:15px}
  form{padding:24px;min-width:0}
  .form-top{font-size:10px;line-height:1.8;letter-spacing:1px;gap:8px}
  label{font-size:14px;line-height:1.6;margin-top:20px}
  input,select,textarea{font-size:16px;min-height:52px;max-width:100%;padding:13px 12px}
  .optional{font-size:12px}
  textarea{min-height:120px}
  form .button{min-height:56px;font-size:15px;gap:14px;padding:14px 16px}
  .form-note{font-size:12px;line-height:1.75}
  .footer{flex-wrap:wrap;align-items:flex-start;gap:25px;padding-top:32px;padding-bottom:calc(105px + env(safe-area-inset-bottom))}
  .footer>p,.footer>p span,.copyright{font-size:12px;line-height:1.8}
  .copyright{width:100%}
  .floating-contact{right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));padding:13px 18px;min-height:50px;font-size:14px}
  .back-link{font-size:14px;min-height:44px;padding-block:10px;margin-bottom:15px}
  dialog{width:calc(100% - 20px);max-height:calc(100dvh - 24px);padding:48px 10px 16px}
  dialog img{max-height:calc(100dvh - 155px);height:auto;object-fit:contain}
  dialog p{font-size:14px;line-height:1.6}
  .lightbox-close{top:2px;right:3px;width:48px;height:44px}
}
@media(max-width:480px){
  .gallery,.more-gallery,.selection-grid{grid-template-columns:minmax(0,1fr)}
  .gallery .photo,.gallery .photo-wide,.more-gallery .photo,.selection-grid .photo,.selection-grid .photo:nth-child(2),.selection-grid .photo:last-child{grid-column:auto;height:auto;aspect-ratio:4 / 3}
  .selection-grid .photo:nth-child(2){aspect-ratio:4 / 5}
  .people-event-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:14px}
  .people-event-grid .photo{height:auto;aspect-ratio:4 / 3}
  .people-event-grid .event-feature{grid-column:auto}
  .world-card{height:440px}
  .hero-description br,.section-heading>p br,.contact-copy>p:not(.eyebrow) br{display:none}
}
@media(max-width:360px){
  .section,.header,.footer{padding-inline:16px}
  .header .brand-mark{font-size:39px}
  .header .brand-name{font-size:10px;letter-spacing:1.3px}
  .header .brand-name small{font-size:7px;letter-spacing:3.5px}
  .navigation-ready .menu-toggle{min-width:80px;padding:10px}
  .hero h1,.home-hero h1,.business-hero h1,.inner-hero h1{font-size:41px;letter-spacing:-2.2px}
  .hero-bottom{font-size:10px;gap:6px}
  .hero-bottom-line{max-width:12px;margin-inline:0}
  form{padding:19px}
  .mobile-story{grid-template-columns:minmax(0,1fr)}
  .mobile-story>.text-link{grid-column:1}
  .mobile-symbol{display:none}
}
@media(prefers-reduced-motion:reduce){.menu-icon i{transition:none}}
