/* Production product layer: shared accessibility, booking, media, and itinerary components. */
:root{--content-max:1280px}
[hidden]{display:none!important}
.reveal{opacity:1!important;transform:none!important;transition:none!important}
button,a,input,select,textarea{min-height:44px}
textarea{font:inherit}
.site-nav a[aria-current="page"]{color:var(--lime)}
.media-frame video,.media-frame img{display:block;width:100%;height:100%;object-fit:cover}
.media-frame figcaption{font-size:.875rem;line-height:1.5}
.hero-video video{display:block;width:100%;height:100%;object-fit:cover}
.hero-video figcaption{z-index:4}
.detail-image{z-index:2;width:min(39%,620px);overflow:visible}
.detail-image::after{display:none!important}
.detail-image>span{left:auto!important;right:18px!important;top:18px!important;width:110px!important;height:110px!important;transform:rotate(-6deg)!important;box-shadow:6px 6px 0 var(--bp-ink)!important}
.detail-hero .hero-deck{position:relative;z-index:3;display:block;width:min(43%,560px);margin-left:0}
.detail-hero .hero-deck a{display:inline-block;margin-top:24px}
.about-intro-compact{min-height:680px}
.about-intro-compact .about-portrait{top:100px}
.about-intro-compact .about-portrait::before{display:none}
.about-intro-compact .about-statement{bottom:100px}
.booking-paths{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.booking-paths a{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border:1px solid var(--bp-signal);border-radius:999px;font-weight:700}
.booking-paths .booking-primary{background:var(--bp-signal);color:var(--bp-ink)}
.booking-paths .booking-secondary{color:var(--white)}
.full-brief fieldset{margin:0;padding:0;border:0}
.full-brief legend{padding:0;margin:0 0 20px;font:400 clamp(32px,5vw,64px)/1 var(--display)}
.form-help{display:block;margin-top:7px;color:var(--border);font-size:.8rem;line-height:1.45}
.form-privacy{margin:18px 0;color:var(--border);font-size:.82rem;line-height:1.5}
.itinerary-section{padding:clamp(70px,9vw,130px) var(--edge);background:var(--bp-paper);color:var(--bp-ink)}
.itinerary-head{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,6vw,90px);align-items:end;max-width:var(--content-max);margin:0 auto 52px}
.itinerary-head h2{margin:0;font:400 clamp(48px,7vw,104px)/.9 var(--display);text-transform:uppercase}
.itinerary-head p{margin:0;color:var(--muted);line-height:1.65}
.itinerary{max-width:var(--content-max);margin:auto;border-top:1px solid var(--border)}
.itinerary-item{display:grid;grid-template-columns:minmax(140px,.35fr) 1fr;gap:clamp(22px,5vw,72px);padding:28px 0;border-bottom:1px solid var(--border)}
.itinerary-time{display:grid;align-content:start;gap:5px}
.itinerary-time span{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.itinerary-time strong{font:400 2rem var(--display)}
.itinerary-content{display:grid;grid-template-columns:minmax(120px,.4fr) 1fr;gap:8px 26px;align-items:start}
.itinerary-content>p{margin:0;color:var(--muted);line-height:1.55}
.itinerary-content h3{margin:0;font-size:clamp(1.25rem,2vw,1.75rem)}
.itinerary-content>p:last-child{grid-column:2}
.itinerary-markers{grid-column:2;display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.itinerary-markers span{padding:6px 10px;border:1px solid var(--bp-ink);border-radius:999px;font-size:.72rem;font-weight:700}
.itinerary-markers span[data-marker="meal"]{background:var(--bp-signal)}
.empty-state{padding:clamp(35px,6vw,80px);border:1px solid var(--border);background:var(--white)}
.empty-state h2{margin:0 0 12px;font:400 clamp(42px,7vw,88px)/.95 var(--display)}
.empty-state p{max-width:680px;color:var(--muted);line-height:1.65}
.empty-state a{display:inline-flex;margin-top:18px;padding:12px 18px;border-radius:999px;background:var(--bp-signal);color:var(--bp-ink);font-weight:700}
.capability-row{grid-template-columns:1.25fr .8fr 50px}
.service-tabs button{grid-template-columns:1fr}
.brief-row{grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr)}
.brief-row label,.brief-row input,.brief-row select,.brief-row textarea,.full-brief button{font-family:var(--body)!important}
.detail-proof h2{margin:0;color:var(--white);font:400 clamp(31px,4vw,55px)/1 var(--display)}
.detail-proof .media-frame{display:grid;grid-template-rows:1fr auto}
.detail-proof .media-frame figcaption{padding:12px 16px;background:var(--bp-paper);color:var(--bp-ink)}
.page-marker:empty{display:none}
@media(max-width:700px){
  .itinerary-head,.itinerary-item,.itinerary-content{grid-template-columns:1fr}
  .itinerary-content>p:last-child,.itinerary-markers{grid-column:1}
  .booking-paths{display:grid}.booking-paths a{width:100%}
  .page-hero h1,.hero h1{overflow-wrap:anywhere}
  .capability-row{grid-template-columns:1fr 30px}
  .brief-row{grid-template-columns:1fr}.brief-row input,.brief-row select,.brief-row textarea{grid-column:1}
  .detail-image{width:88%}
  .detail-image>span{right:12px!important;top:12px!important;width:86px!important;height:86px!important;font-size:11px!important;box-shadow:4px 4px 0 var(--bp-ink)!important}
  .about-intro-compact{min-height:650px;padding-top:70px}
  .about-intro-compact .about-portrait{top:70px}
  .about-intro-compact .about-statement{bottom:48px}
}
@media(max-width:400px){.itinerary-section{padding-inline:20px}.itinerary-item{padding-block:22px}}
@media(max-width:900px){
  .detail-hero{min-height:0;padding-bottom:0}
  .detail-hero .hero-deck{width:100%;margin-left:0;padding-bottom:38px}
  .detail-image{position:relative;right:auto;bottom:auto;width:min(100%,620px);height:clamp(270px,48vw,340px);margin:10px 0 -70px auto}
  .detail-brief{padding-top:165px}
}
@media(max-width:600px){
  .detail-hero .hero-deck{padding-bottom:24px}
  .detail-image{right:auto;bottom:auto;width:100%;height:280px;margin:8px 0 -55px;transform:rotate(1deg)}
  .detail-brief{padding-top:140px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* 2026 responsive and typography pass.
   The scale follows the approved AIUEO typography specimen while preserving
   Bebas Neue and Inter as the established brand faces. */
:root{
  --type-display-xl:96px;
  --type-display-lg:72px;
  --type-display-md:56px;
  --type-display-sm:40px;
  --type-heading-1:32px;
  --type-heading-2:24px;
  --type-heading-3:20px;
  --type-body-large:18px;
  --type-body-regular:18px;
  --type-body-small:16px;
  --type-caption:18px;
  --type-overline:16px;
  --type-button:18px;
}

body{font-size:var(--type-body-regular);line-height:1.333}
html{-webkit-text-size-adjust:100%;font-synthesis:none}
h1,h2,h3{overflow-wrap:normal;word-break:normal}
.hero h1{font-size:var(--type-display-xl);line-height:1.042;letter-spacing:-.02em}
.page-hero h1,.manifesto h2,.services-heading h2,.field-heading h2,.collab-copy h2{font-size:var(--type-display-lg);line-height:1.056;letter-spacing:-.015em}
.method-title h2,.team-strip h2,.services-index-head h2,.detail-flow h2,.itinerary-head h2{font-size:var(--type-display-md);line-height:1.071;letter-spacing:-.01em}
.manifesto-note p,.service-copy h3,.services-chooser h2,.detail-brief h2,.empty-state h2{font-size:var(--type-display-sm);line-height:1.1;letter-spacing:-.005em}
.lead-story h2,.event-info h2,.detail-proof h2{font-size:var(--type-heading-1);line-height:1.188;letter-spacing:0}
.belief h3,.team-card h3,.capability-row h3,.flow-grid h3,.story-card h3,.gallery-tile h3{font-size:var(--type-heading-2);line-height:1.25;letter-spacing:0}
.service-includes,.method-track p,.values span,.resource-card p,.hero-actions p,.hero-deck p,.manifesto-copy,.about-statement,.belief p,.team-card p,.capability-row p,.services-index-head p,.services-chooser p,.detail-brief>div>p,.brief-points span,.flow-grid p,.detail-proof p,.story-card p,.lead-story p,.gallery-tile p,.contact-details a,.contact-details span,.form-help,.form-privacy,.itinerary-head p,.itinerary-content>p,.empty-state p,.media-frame figcaption{font-size:var(--type-body-small);line-height:1.375}
.overline,.section-tag,.story-meta,.panel-kicker,.detail-brief aside,.brief-points b,.service-type,.resource-card>span,.resource-feature span,.collab-copy>p,.gallery-tile>span,.belief>span,.language-switcher,.footer-bottom{font-size:var(--type-overline);line-height:1.375}
.pill-button,.booking-paths a,.service-detail-link,.services-chooser a,.empty-state a,.full-brief button,.nav-contact{font-size:var(--type-button);line-height:1.111;font-weight:600}
.site-nav{font-size:var(--type-body-small);line-height:1.375}
.method-track span{font-size:18px;line-height:1}
.hero h1,.page-hero h1,.manifesto h2,.services-heading h2,.field-heading h2,.collab-copy h2,.method-title h2,.team-strip h2,.services-index-head h2,.detail-flow h2,.itinerary-head h2,.manifesto-note p,.service-copy h3,.services-chooser h2,.detail-brief h2,.empty-state h2,.lead-story h2,.event-info h2,.detail-proof h2,.belief h3,.team-card h3,.capability-row h3,.flow-grid h3,.story-card h3,.gallery-tile h3{font-family:var(--display);font-weight:400}
.hero h1>span{color:var(--white);-webkit-text-stroke:0;opacity:1}
.hero h1 strong{font-weight:400}
.overline span{white-space:nowrap}
.menu-toggle,.site-nav,.pill-button,.nav-contact,.booking-paths a,.service-detail-link,.services-chooser a,.empty-state a,.full-brief button,.overline,.section-tag,.story-meta,.panel-kicker,.detail-brief aside,.service-type,.language-switcher{font-family:var(--body)}
.team-grid.team-roster{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.team-roster .team-card{min-height:440px;transform:none}
.team-roster .team-card img{object-position:center top}

/* Geometric UI marks keep one visual identity at every breakpoint. */
.pill-button span,.nav-contact span,.full-brief button b,.utility-button,.service-stamp,.page-marker,.detail-image>span{flex:none;aspect-ratio:1;border-radius:50%}
.pill-button span,.nav-contact span,.full-brief button b{font-family:Arial,sans-serif;font-weight:400;line-height:1}
.menu-toggle{min-height:44px}
.menu-toggle i{flex:none;width:18px;height:2px;border-radius:2px;transition:transform .2s var(--ease)}

@media(max-width:900px){
  :root{
    --type-display-xl:80px;
    --type-display-lg:60px;
    --type-display-md:48px;
    --type-display-sm:36px;
    --type-heading-1:30px;
    --type-body-regular:17px;
    --type-body-small:15px;
    --type-caption:16px;
    --type-overline:13px;
    --type-button:16px;
  }
  .hero h1,.page-hero h1,.manifesto h2,.services-heading h2,.field-heading h2,.collab-copy h2,.method-title h2,.team-strip h2,.services-index-head h2,.detail-flow h2,.itinerary-head h2,.manifesto-note p,.service-copy h3,.services-chooser h2,.detail-brief h2,.empty-state h2{letter-spacing:0}
  .page-marker{width:90px;height:90px}
  .service-stamp{width:92px;height:92px}
  .detail-image>span{width:110px!important;height:110px!important;font-size:15px!important}
  .team-grid.team-roster{grid-template-columns:repeat(2,minmax(0,1fr))}
  .method-track span{font-size:16px}
  .menu-toggle{display:grid;grid-template-columns:auto 18px;grid-template-rows:1fr 1fr;column-gap:9px;align-items:center;font-size:12px;line-height:1}
  .menu-toggle span{grid-column:1;grid-row:1/3}
  .menu-toggle i{grid-column:2;margin:0}
  .menu-toggle i:first-of-type{grid-row:1;align-self:end;margin-bottom:3px}
  .menu-toggle i:last-child{display:block;grid-row:2;align-self:start;margin-top:3px}
  .menu-toggle[aria-expanded="true"] i:first-of-type{transform:translateY(8px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] i:last-child{transform:translateY(-8px) rotate(-45deg)}
}

@media(max-width:600px){
  :root{
    --type-display-xl:56px;
    --type-display-lg:48px;
    --type-display-md:40px;
    --type-display-sm:32px;
    --type-heading-1:30px;
    --type-heading-2:24px;
    --type-heading-3:20px;
    --type-body-large:16px;
    --type-body-regular:16px;
    --type-body-small:14px;
    --type-caption:14px;
    --type-overline:11px;
    --type-button:16px;
  }

  /* Home hero: ordered content with no image/ticket collision. */
  .hero{height:auto;min-height:0;padding:112px var(--edge) 44px;overflow:hidden}
  .hero:before,.hero-schematic{inset:64px var(--edge) 22px}
  .hero-copy{position:relative;inset:auto;width:100%}
  .hero h1{margin-top:32px}
  .hero h1>span{max-width:none}
  .hero h1 em,.hero h1 strong{margin-left:0}
  .hero-actions{position:relative;top:auto;display:grid;width:100%;margin:28px 0 0;gap:18px}
  .hero-actions p{max-width:100%}
  .pill-button{width:100%;min-width:0;justify-content:space-between;margin:0}
  .hero-image{position:relative;inset:auto;width:100%;height:230px;min-height:0;margin:38px 0 0;transform:rotate(-1deg)}
  .hero-image figcaption{display:flex;font-size:10px;gap:8px}
  .hero-ticket{position:relative;inset:auto;width:100%;min-height:0;margin:18px 0 0;padding:20px;transform:none}
  .hero-ticket small{margin-bottom:12px}
  .hero-ticket b{font-size:var(--type-heading-2)}
  .hero-ticket p{font-size:var(--type-body-small);line-height:1.375}

  /* Editorial collage becomes a clean mobile story stack. */
  .manifesto{padding-block:72px}
  .manifesto-stage{display:grid;gap:24px;min-height:0;margin-top:40px}
  .manifesto h2,.manifesto-photo,.manifesto-note,.manifesto-copy{position:relative;inset:auto;width:100%;max-width:none;margin:0}
  .manifesto-photo{height:300px}
  .photo-a{transform:rotate(1deg)}
  .photo-b{transform:rotate(-1deg)}
  .manifesto-note{padding:22px;transform:rotate(.75deg)}
  .manifesto-copy{font-size:var(--type-body-regular);line-height:1.5}
  .values{margin-top:44px}

  /* Browsers and card collections show all content without cropped neighbors. */
  .services-section,.method-section,.field-section,.collab-section,.team-strip,.services-index,.news-grid,.events-board{padding-block:72px}
  .services-heading h2,.field-heading h2{margin-top:36px}
  .services-browser{margin-top:42px;gap:32px}
  .service-tabs{display:grid;grid-template-columns:1fr 1fr;overflow:visible;margin:0;gap:0}
  .service-tabs button{min-width:0;min-height:64px;padding:12px;font-size:var(--type-body-small);line-height:1.25}
  .service-detail{display:block}
  .service-visual{height:280px}
  .service-stamp{width:92px;height:92px;font-size:13px}
  .service-copy{padding:24px}
  .method-track{margin-top:48px}
  .method-track span{font-size:14px}
  .method-track li,.method-track li+li{min-height:0;padding:24px 0}
  .method-track b{margin-top:18px;font-size:var(--type-heading-2)}
  .resource-switcher,.gallery-controls{display:flex;flex-wrap:wrap;overflow:visible;gap:8px}
  .resource-grid,.team-grid,.story-list,.gallery-wall{display:grid;grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:auto;overflow:visible;margin-right:0;gap:24px}
  .gallery-wall>.gallery-tile{grid-column:auto;grid-row:auto}
  .team-grid.team-roster{grid-template-columns:1fr}
  .resource-card,.team-card,.team-card:last-child,.story-card,.gallery-tile,.gallery-tile.text{grid-column:auto;grid-row:auto;min-width:0;width:100%;height:auto;min-height:340px;transform:none}
  .resource-note,.resource-polaroid,.gallery-tile.text{min-height:280px}
  .resource-event{display:block;min-height:340px}
  .resource-event time{margin:30px 0}
  .team-card:nth-child(2){transform:none}
  .story-card{min-height:300px}
  .gallery-wall{padding-top:32px}
  .gallery-tile img{position:absolute;inset:0;width:100%;height:100%}

  /* Inner pages: no negative margins or absolute content collisions. */
  .page-hero{min-height:0;padding:116px var(--edge) 48px}
  .page-hero .overline{margin-bottom:34px}
  .page-hero .hero-deck{margin-top:32px}
  .page-marker{position:relative;inset:auto;width:90px;height:90px;margin:34px 0 0 auto}
  .about-intro,.about-intro-compact{display:grid;gap:28px;min-height:0;padding:72px var(--edge)}
  .about-intro .about-portrait,.about-intro-compact .about-portrait,.about-intro .about-statement,.about-intro-compact .about-statement{position:relative;inset:auto;width:100%;margin:0}
  .about-intro .about-portrait,.about-intro-compact .about-portrait{height:330px;transform:rotate(1deg)}
  .about-intro .about-statement,.about-intro-compact .about-statement{font-size:var(--type-body-regular);line-height:1.5}
  .detail-hero{padding-bottom:48px}
  .detail-image{position:relative;inset:auto;width:100%;height:280px;margin:32px 0 0;transform:rotate(1deg)}
  .detail-image>span{right:12px!important;top:12px!important;width:110px!important;height:110px!important;font-size:15px!important}
  .detail-brief{padding-top:72px;padding-bottom:72px}
  .detail-proof figure{min-height:320px}
  .lead-story figure{height:300px}
  .lead-story div{padding:28px}
  .lead-story h2{margin-top:36px}
  .gallery-controls{padding-top:36px}
  .gallery-controls button{flex:1 1 132px;white-space:normal}

  .collab-copy h2{margin:40px 0 24px}
  .collab-copy em{margin-left:0;font-size:var(--type-heading-2)}
  .site-footer{grid-template-columns:1fr;gap:28px;padding-top:54px}
  .footer-brand{width:132px;height:44px}
  .site-footer>p,.footer-links,.footer-contact{grid-column:1}
  .footer-links{font-size:var(--type-body-small)}
  .footer-bottom{margin-top:30px}
}

@media(max-width:360px){
  :root{--type-display-xl:52px;--type-display-lg:44px;--type-display-md:38px}
  .overline{gap:8px}
  .overline span{padding:6px 8px}
  .service-tabs{grid-template-columns:1fr}
  .hero-image{height:205px}
  .hero-image figcaption span:nth-child(2){display:none}
}
