/* Keep the existing type, palette and spacing, with restrained page movement. */
html { scroll-behavior:smooth; }
body { transition:opacity 180ms ease; }
body.simple-leaving { opacity:0; }
.editorial-motion .editorial-reveal { transform:translateY(24px); transition:opacity 300ms ease, transform 350ms cubic-bezier(.2,.7,.2,1); transition-delay:0s !important; }
.editorial-motion .editorial-reveal.is-visible {transform:translateY(0);}
.banda-layout .hero-copy { inset-block-start:76%; }
.hero-purpose { max-width:30rem; margin:1.25rem auto 0; padding:0 1rem; font-family:var(--menu-font); font-size:clamp(.8rem,1vw,.95rem); line-height:1.55; font-weight:300; color:#fff; text-wrap:balance; }
.enquiry-mobile { display:none; }
.page-intro h1 { text-transform:none; }
.service-index { display:flex; justify-content:center; flex-wrap:wrap; gap:.7rem 1.2rem; }
.service-index a { padding:.25rem 0; }
.service-row { column-gap:clamp(2rem,7vw,8rem); padding-bottom:5rem; align-items:center; }
.service-row .page-photo { aspect-ratio:4/3; overflow:hidden; }
.service-row .page-photo img { height:100%; object-fit:cover; }
.service-copy p { max-width:27rem; }
.gallery-about-body { padding-top:1.25rem; }
.contact-page .contact-hero { display:flex; align-items:flex-end; min-height:100svh; overflow:visible; padding:10rem clamp(1.5rem,5.55vw,6rem) 4rem; }
.contact-page .contact-hero-copy { position:relative; inset:auto; bottom:auto; inline-size:min(40rem,100%); margin:0; }
.contact-page .contact-hero h1 { font-size:clamp(2.7rem,5.5vw,5rem); }
.contact-page .contact-intro-copy { max-width:31rem; font-size:.95rem; line-height:1.6; }
.contact-next { max-width:30rem; font-family:var(--menu-font); font-size:.85rem; line-height:1.6; margin:1.75rem 0 0; }
.contact-page .contact-details dd { overflow-wrap:anywhere; }
.contact-page .contact-details a { display:inline-flex; align-items:center; min-height:44px; color:inherit; text-underline-offset:5px; }
.contact-motion .contact-hero-copy > * { opacity:1; transform:none; transition:none; }
@media(max-width:767px) {
 .enquiry-desktop { display:none; }.enquiry-mobile {display:inline;}
 .conversation-trigger {max-width:none !important;}
 .banda-layout .hero-copy {inset-block-start:76%;}
 .hero-purpose {font-size:.8rem;max-width:24rem;margin-top:1rem;}
 .contact-page .contact-hero {padding:16rem 1.5rem 2.5rem;min-height:100svh;}
 .contact-page .contact-hero-copy {position:relative;inset:auto;inline-size:100%;}
 .contact-page .contact-hero h1 {font-size:clamp(2.6rem,10.5vw,3.6rem);}
 .contact-page .contact-details {grid-template-columns:1fr;gap:.9rem;}
 .contact-page .contact-details dd {font-size:.88rem;}
 .contact-page .contact-intro-copy {font-size:.92rem;}
 .contact-shade {background:linear-gradient(180deg,rgba(2,10,17,.35),rgba(2,10,17,.65) 25%,rgba(2,10,17,.94) 65%);}
 .service-row {padding-bottom:2rem;margin-bottom:2rem;gap:1.5rem;}
 .editorial-copy {padding-left:0;padding-right:0;}
 .menu-list a {font-size:clamp(1.4rem,5.4vw,2rem);}
}
@media(max-height:600px) {
 .banda-layout .hero {min-height:560px;}
 .contact-page .contact-hero {padding-top:9rem;}
}
@media(prefers-reduced-motion:reduce) {
 html{scroll-behavior:auto;} body,.explore-panel {transition:none !important;}
 .editorial-motion .editorial-reveal {opacity:1;transform:none;transition:none;}
}
img[src*="refined/yacht"] {object-position:center 66% !important;}
.contact-backdrop img {object-position:30% bottom;}
.page-intro .imagery-note {font-size:.72rem;line-height:1.5;margin-top:2rem;}
@media(max-width:767px) {.conversation-trigger::before {content:none !important;} .conversation-trigger {font-size:.61rem;}}
.contact-page .contact-hero {overflow:hidden;}
.contact-backdrop img {transform:none;}

/* One shared gutter keeps the photograph edges and navigation rule aligned. */
.banda-layout { --content-gutter:11.1vw; }
.banda-layout .editorial-header::after {left:var(--content-gutter);right:var(--content-gutter);}
.banda-layout:not(.inner-page) main > .editorial-container {max-width:none;padding-inline:var(--content-gutter);}
.banda-layout:not(.inner-page) main .editorial-row {margin-left:0;}
.banda-layout:not(.inner-page) main .editorial-column {width:100%;margin-left:0;padding-left:0;}
@media(max-width:64rem) {.banda-layout {--content-gutter:clamp(1.25rem,3.25vw,3.75rem);}}
/* A brief arrival animation gives the conversation page a smooth entrance. */
@media(prefers-reduced-motion:no-preference) {
 .contact-motion .contact-hero-copy > * {opacity:0;transform:translateY(16px);transition:opacity 380ms ease,transform 460ms cubic-bezier(.2,.7,.2,1);}
 .contact-motion.contact-ready .contact-hero-copy > * {opacity:1;transform:none;}
 .contact-motion .contact-hero-copy h1 {transition-delay:35ms;}
 .contact-motion .contact-hero-copy .contact-intro-copy {transition-delay:65ms;}
 .contact-motion .contact-hero-copy .contact-details {transition-delay:95ms;}
 .contact-motion .contact-hero-copy .contact-next {transition-delay:120ms;}
}
/* Keep keyboard focus visible without the rectangular close-button box. */
.close-menu:focus, .close-menu:focus-visible {outline:none !important;box-shadow:none;}
.close-menu:focus-visible .close-icon {border-bottom:1px solid currentColor;}
@media(hover:none) and (pointer:coarse) {.close-menu:focus-visible .close-icon {border-bottom:0;}}
/* A shared, quiet closing section across all four pages. */
.site-footer {padding:64px 0 24px;background:#424635;color:#f4ebd9;font-family:var(--menu-font);}
.footer-inner {margin:0 auto;padding-inline:11.1vw;}
.site-footer .footer-row {display:grid;grid-template-columns:1.4fr .8fr 1fr;gap:clamp(2rem,5vw,5rem);margin:0;}
.site-footer .footer-identity,.site-footer .footer-navigation,.site-footer .footer-enquiry {width:auto;margin:0;padding:0;}
.footer-symbol {display:block;width:48px;margin-bottom:24px;color:inherit;}
.footer-symbol svg {display:block;width:100%;fill:currentColor;}
.site-footer .footer-heading {margin:0 0 18px;}
.site-footer p {margin:0 0 14px;font-size:.87rem;line-height:1.7;font-weight:300;}
.footer-description {max-width:25rem;opacity:.8;}
.site-footer .footer-navigation ul {display:grid;gap:4px;}
.site-footer .footer-navigation li {width:auto;margin:0;}
.site-footer a {color:inherit;text-decoration:none;}
.site-footer .footer-navigation a {display:inline-flex;align-items:center;min-height:40px;font-size:.84rem;}
.footer-contact {display:inline-flex;gap:1rem;align-items:center;min-height:44px;border-bottom:1px solid rgba(244,235,217,.45);font-size:.83rem;}
.site-footer a:hover {text-decoration:underline;text-underline-offset:5px;}
.footer-bottom {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:44px;padding-top:20px;border-top:1px solid rgba(244,235,217,.25);}
.footer-bottom small,.footer-bottom a {font-size:.68rem;line-height:1.6;}
.footer-bottom a {display:inline-flex;align-items:center;min-height:40px;gap:12px;}
#contact-details,#contact-heading {scroll-margin-top:100px;}
@media(max-width:64rem) {.footer-inner {padding-inline:clamp(1.25rem,3.25vw,3.75rem);}}
@media(max-width:767px) {
 .site-footer {padding-top:44px;}
 .site-footer .footer-row {grid-template-columns:1fr;gap:30px;}
 .footer-symbol {width:40px;margin-bottom:20px;}
 .site-footer .footer-navigation ul {grid-template-columns:1fr 1fr;gap:4px 16px;}
 .footer-bottom {margin-top:30px;align-items:flex-start;}
 .footer-bottom small {max-width:180px;padding-top:10px;}
}
.contact-page .contact-header {transition:background-color 200ms ease;}
.contact-page .contact-header.is-scrolled {background:#020a11;}
@media(prefers-reduced-motion:reduce) {.contact-page .contact-header {transition:none;}}

/* Shared edges: content passes under the header rule on every desktop page. */
body {--content-gutter:11.1vw;transition:none;}
html {scrollbar-gutter:stable;}
.banda-layout .editorial-header::before {content:none;}
.gallery-about-page .gallery-about-rows {max-width:none;padding-inline:var(--content-gutter);}
.contact-page {overflow-y:auto;}
.contact-page .contact-hero {padding-inline:var(--content-gutter);}
.contact-page .contact-header {border-bottom:0;}
.contact-page .contact-header::before {content:"";position:absolute;inset-inline:var(--content-gutter);bottom:0;height:1px;background:var(--line);}
/* Use the original hero rule throughout the overlay transition. */
.banda-layout.menu-open.menu-over-hero > .editorial-header {opacity:1;pointer-events:none;}
.menu-header::before {content:none;}
.menu-header {border-bottom:0;}
.banda-layout.menu-open:not(.menu-over-hero) > .editorial-header,
.contact-page.menu-open > .contact-header {opacity:0;transition:opacity 180ms ease;}
/* Never draw a box around Discover or Close; keyboard focus uses an underline. */
.explore-trigger:focus,.explore-trigger:focus-visible,
.close-menu:focus,.close-menu:focus-visible {outline:none !important;box-shadow:none !important;}
.close-menu:focus-visible .close-icon {border:0;}
.explore-trigger:focus-visible::after,.close-menu:focus-visible::after {transform:scaleX(1);}
#asset-label {display:none;}
.expertise-enquiry {padding-top:0;padding-bottom:4rem;}
.expertise-enquiry .firm-contact {display:inline-flex;position:relative;white-space:normal;}
.expertise-enquiry .firm-contact::after {width:100%;transform:scaleX(1);}
.expertise-enquiry .firm-contact:hover::after {animation:enquiry-underline 550ms ease;}
@keyframes enquiry-underline {0%{transform:scaleX(1);transform-origin:right;}45%{transform:scaleX(0);transform-origin:right;}46%{transform-origin:left;}100%{transform:scaleX(1);transform-origin:left;}}
/* Banda-inspired footer: a mark, concise information and simple text navigation. */
.site-footer {padding-block:5rem 2rem;}
.site-footer .footer-row {grid-template-columns:1fr 1.4fr 1fr;align-items:start;gap:4rem;}
.footer-identity {grid-column:1;grid-row:1;}
.footer-enquiry {grid-column:2;grid-row:1;}
.footer-navigation {grid-column:3;grid-row:1;}
.footer-symbol {width:5rem;margin-bottom:1.5rem;}
.site-footer .footer-identity .footer-heading {font-size:.65rem;line-height:1.7;}
.site-footer .footer-identity p {display:none;}
.site-footer .footer-enquiry p {font-family:var(--font-display);font-style:italic;line-height:1.7;}
.site-footer .footer-navigation a {font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;}
.site-footer .footer-navigation ul {display:grid;grid-template-columns:1fr;}
.site-footer .footer-bottom {border:0;margin-top:2rem;}
@media(max-width:64rem) {body {--content-gutter:clamp(1.25rem,3.25vw,3.75rem);} .site-footer .footer-row {gap:2rem;}}
@media(max-width:767px) {
 .site-footer .footer-row {grid-template-columns:1fr;gap:2rem;}
 .footer-identity,.footer-enquiry,.footer-navigation {grid-column:1;grid-row:auto;}
 .footer-identity {order:0;}.footer-enquiry {order:1;}.footer-navigation {order:2;}
 .footer-symbol {width:4rem;}
 .site-footer {padding-top:3rem;}
}
@media(prefers-reduced-motion:reduce) {.expertise-enquiry .firm-contact:hover::after {animation:none;}}

/* UNHID motion study: long, soft reveals with a restrained 24px rise. */
@media(prefers-reduced-motion:no-preference) {
  .editorial-motion .editorial-reveal,
  .editorial-motion .unhid-reveal {
    opacity:0;
    transform:translate3d(0,24px,0);
    transition:
      opacity 1.1s cubic-bezier(.22,1,.36,1),
      transform 1.1s cubic-bezier(.22,1,.36,1);
    transition-delay:var(--reveal-delay,0s) !important;
    will-change:opacity,transform;
  }
  .editorial-motion .editorial-reveal.is-visible,
  .editorial-motion .unhid-reveal.is-visible {
    opacity:1;
    transform:translate3d(0,0,0);
  }
  .editorial-motion .editorial-photo.editorial-reveal,
  .editorial-motion .unhid-develop {
    opacity:0;
    transform:scale(1.04);
    transition:
      opacity 1.6s cubic-bezier(.22,1,.36,1),
      transform 1.8s cubic-bezier(.22,1,.36,1);
    will-change:opacity,transform;
  }
  .editorial-motion .editorial-photo.editorial-reveal.is-visible,
  .editorial-motion .unhid-develop.is-visible {
    opacity:1;
    transform:scale(1);
  }
  .contact-motion .contact-hero-copy > * {
    transform:translate3d(0,24px,0);
    transition:
      opacity 1.1s cubic-bezier(.22,1,.36,1),
      transform 1.1s cubic-bezier(.22,1,.36,1);
  }
  .contact-motion .contact-backdrop {
    opacity:0;
    transform:scale(1.04);
    transition:
      opacity 1.6s cubic-bezier(.22,1,.36,1),
      transform 1.8s cubic-bezier(.22,1,.36,1);
  }
  .contact-motion.contact-ready .contact-backdrop {
    opacity:1;
    transform:scale(1);
  }
  .word-write .motion-word {
    display:inline-block;
    opacity:0;
    transform:translateY(.5em);
    transition:
      opacity .5s cubic-bezier(.22,1,.36,1),
      transform .5s cubic-bezier(.22,1,.36,1);
    transition-delay:var(--word-delay,0s);
  }
  .word-write.is-written .motion-word {
    opacity:1;
    transform:translateY(0);
  }
}

/* The reference changes pages with a quiet whole-page crossfade. */
@keyframes trophy-route-out {to {opacity:0;}}
@keyframes trophy-route-in {from {opacity:0;}}
::view-transition-old(root) {
  animation:280ms cubic-bezier(.4,0,.2,1) both trophy-route-out;
}
::view-transition-new(root) {
  animation:520ms cubic-bezier(.22,1,.36,1) both trophy-route-in;
}
html.route-is-leaving body {opacity:0;transition:opacity 220ms cubic-bezier(.4,0,.2,1);}
html.route-is-arriving body {animation:trophy-route-in 520ms cubic-bezier(.22,1,.36,1) both;}
@media(prefers-reduced-motion:reduce) {
  .editorial-motion .unhid-reveal,
  .editorial-motion .unhid-develop,
  .word-write .motion-word {opacity:1;transform:none;transition:none;}
  ::view-transition-old(root),::view-transition-new(root) {animation:none;}
}

.menu-over-hero .menu-header .brand-mark {visibility:hidden;}

/* Banda footer dimensions and responsive grid, with our existing type and identity. */
.site-footer {display:block;min-height:0;padding:65px 0 40px;background:#424635;color:#f4ebd9;}
.site-footer .footer-inner {box-sizing:border-box;width:100%;max-width:1750px;margin:0 auto;padding:0 40px;}
.site-footer .footer-row {display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:0;margin:0 0 0 -21.75px;}
.site-footer .footer-identity,.site-footer .footer-enquiry,.site-footer .footer-navigation {box-sizing:border-box;grid-row:1;width:auto;margin:0;padding:0 0 0 21.75px;}
.site-footer .footer-identity {grid-column:2 / span 2;}
.site-footer .footer-enquiry {grid-column:4 / span 4;}
.site-footer .footer-navigation {grid-column:8 / span 4;}
.site-footer .footer-symbol {display:block;width:130px;max-width:100%;margin:0 0 21.75px;color:#303526;filter:drop-shadow(1px 1px 0 rgba(244,235,217,.15));}
.site-footer .footer-symbol svg {display:block;width:100%;fill:currentColor;}
.site-footer .footer-identity .footer-heading,.site-footer .footer-identity p,.site-footer .footer-bottom {display:none;}
.site-footer .footer-heading {margin:0 0 20px;font-family:var(--menu-font);font-size:14px;font-weight:400;line-height:1.5;letter-spacing:.3em;text-transform:uppercase;}
.site-footer .footer-enquiry p,.site-footer .footer-contact {font-family:var(--font-display);font-size:16px;font-weight:400;font-style:italic;line-height:1.5;}
.site-footer .footer-enquiry p {max-width:none;margin:0 0 20px;}
.site-footer .footer-contact {display:inline-block;min-height:0;padding:0;margin:0 0 20px;border:0;}
.site-footer .footer-contact span {display:none;}
.site-footer .footer-navigation ul {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-flow:row;gap:0;margin:0;padding:0;list-style:none;}
.site-footer .footer-navigation li {width:auto;margin:0 0 20px;}
.site-footer .footer-navigation a {display:inline-block;min-height:0;padding:0;color:inherit;font-family:var(--menu-font);font-size:14px;font-weight:400;letter-spacing:.2em;line-height:1.5;text-transform:uppercase;white-space:normal;}
.site-footer a:hover {text-decoration:none;opacity:.7;}
.site-footer a:focus-visible {outline:1px solid currentColor;outline-offset:4px;}
@media(max-width:1219px) {
.site-footer .footer-identity {grid-column:1 / span 3;}
.site-footer .footer-enquiry {grid-column:4 / span 4;}
.site-footer .footer-navigation {grid-column:8 / span 5;}
}
@media(max-width:768px) {.site-footer .footer-navigation ul {grid-template-columns:1fr;}}
@media(max-width:767px) {
.site-footer .footer-row {grid-template-columns:1fr;}
.site-footer .footer-identity,.site-footer .footer-enquiry,.site-footer .footer-navigation {grid-column:1;grid-row:auto;}
}
@media(max-width:480px) {
.site-footer .footer-inner {padding:0 21.75px;}
.site-footer .footer-symbol {width:80px;margin-bottom:40px;}
}

/* Reversible colour treatment: original photographs and crops stay intact. */
.banda-layout .slide img, .editorial-photo img,
.gallery-about-photo img, .page-photo img {
  filter: saturate(.96) contrast(1.01) sepia(.02);
}
.contact-backdrop { filter: saturate(.96) sepia(.02); }

/* Reuse the header's one-pixel underline and timing across text links. */
.site-footer .footer-navigation a, .site-footer .footer-contact,
.site-footer .footer-bottom a, .service-index a { position:relative; }
.header-action::after, .menu-list a::after, .menu-list button::after,
.site-footer .footer-navigation a::after, .site-footer .footer-contact::after,
.site-footer .footer-bottom a::after, .service-index a::after,
.expertise-enquiry .firm-contact::after {
  content:""; position:absolute; background:currentColor;
  height:1px; block-size:1px; width:100%; inline-size:100%;
  left:0; inset-inline-start:0; bottom:-.2rem;
  transform:scaleX(0); transform-origin:right center;
  transition:transform 360ms cubic-bezier(.22,1,.36,1); animation:none;
}
.header-action::after { bottom:.4rem; inset-block-end:.4rem; }
.header-action:hover::after, .header-action:focus-visible::after,
.menu-list a:hover::after, .menu-list a:focus-visible::after,
.menu-list button:hover::after, .menu-list button:focus-visible::after,
.site-footer .footer-navigation a:hover::after,
.site-footer .footer-navigation a:focus-visible::after,
.site-footer .footer-contact:hover::after, .site-footer .footer-contact:focus-visible::after,
.site-footer .footer-bottom a:hover::after, .site-footer .footer-bottom a:focus-visible::after,
.service-index a:hover::after, .service-index a:focus-visible::after,
.expertise-enquiry .firm-contact:hover::after,
.expertise-enquiry .firm-contact:focus-visible::after {
  transform:scaleX(1); transform-origin:left center; animation:none;
}
.site-footer a:hover { opacity:1; }
.service-index a:hover { text-decoration:none; }
.site-footer .footer-symbol {
  color:color-mix(in srgb, #303526 88%, #f4ebd9);
}
.site-footer .footer-enquiry p, .site-footer .footer-contact { font-weight:400; }
.site-footer .footer-bottom { display:flex; margin-top:20px; padding-top:0; }
@media(prefers-reduced-motion:reduce) {
 .header-action::after, .menu-list a::after, .menu-list button::after,
 .site-footer a::after, .service-index a::after { transition:none; }
}
