/* ============================================================
   The Barefoot Gardener — brand layer on top of Bootstrap 5.3
   Bootstrap does the grid, navbar, dropdown, offcanvas, carousel,
   pills/tabs, accordion, forms & utilities. This file is only the
   brand skin: tokens, type, colours and a few bespoke components
   (hero, parallax newsletter, case panel) Bootstrap can't express.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Bitter:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

:root{
  /* brand palette */
  --ink:#1E2F4D;
  --ink-deep:#182336;
  --gold:#B09010;
  --gold-soft:#C7AC3C;
  --pop:#E0312E;
  --pop-dark:#bb2521;
  --paper:#F5F1E7;
  --paper-2:#ECE5D5;
  --sage:#7C8A6B;
  --stone:#8A8474;
  --line:rgba(30,47,77,.14);

  --serif:'firelli','Bitter', Georgia, 'Times New Roman', serif;  /* titles */
  --sans:'ivyepic','Hanken Grotesk', system-ui, -apple-system, sans-serif; /* body */

  /* ---- Bootstrap theme overrides ---- */
  --bs-body-bg:var(--paper);
  --bs-body-color:#243049;
  --bs-body-font-family:var(--sans);
  --bs-body-font-size:1.0625rem;
  --bs-body-line-height:1.65;
  --bs-emphasis-color:var(--ink);
  --bs-link-color:var(--ink);
  --bs-link-hover-color:var(--pop);
  --bs-border-color:var(--line);
  --bs-primary:#E0312E;
  --bs-primary-rgb:224,49,46;
}

body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
::selection{background:var(--gold);color:#fff;}
img{max-width:100%;}

/* wider container to match the original 1240px canvas */
@media(min-width:1200px){.container{max-width:1240px;}}

/* ---------- type ---------- */
h1,h2,h3,h4,h5{font-family:var(--serif);font-weight:500;line-height:1.06;letter-spacing:-.01em;color:var(--ink);text-wrap:balance;}
.h-xl{font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.04;}
.h-lg{font-size:clamp(2rem,4.6vw,3.6rem);}
.h-md{font-size:clamp(1.5rem,2.6vw,2.2rem);}
.serif-it{font-style:italic;}
/* Hero heading is a single editable field: an <em> marks the italic-serif phrase. */
.hero h1 em{font-style:italic;font-weight:inherit;}
.lead{font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.6;font-weight:400;}
.text-muted-ink{color:var(--stone)!important;}
.measure{max-width:62ch;}
.measure-md{max-width:54ch;}
.measure-sm{max-width:48ch;}
.measure-xs{max-width:18ch;}
p{text-wrap:pretty;}

.eyebrow{
  font-family:var(--sans);font-size:.78rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  display:inline-flex;align-items:center;gap:.6em;margin:0 0 1.2rem;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold);display:inline-block;}
.eyebrow.center,.eyebrow.eyebrow--center{justify-content:center;}
.eyebrow--gold{color:var(--gold-soft);}
.eyebrow--gold::before{background:var(--gold-soft);}
.dot{color:var(--pop);font-weight:700;}

.section-pad{padding-block:clamp(64px,9vw,128px);}

/* ---------- buttons (theme Bootstrap .btn via vars) ---------- */
.btn{
  --bs-btn-border-radius:999px;
  --bs-btn-padding-x:1.5rem;--bs-btn-padding-y:.82rem;
  --bs-btn-font-family:var(--sans);--bs-btn-font-weight:600;--bs-btn-font-size:.98rem;
  display:inline-flex;align-items:center;gap:.55em;white-space:nowrap;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background-color .2s,color .2s,border-color .2s;
}
.btn .arr{transition:transform .25s;}
.btn:hover .arr{transform:translateX(3px);}
.btn-pop{--bs-btn-bg:var(--pop);--bs-btn-border-color:var(--pop);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--pop);--bs-btn-hover-border-color:var(--pop);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--pop-dark);--bs-btn-active-border-color:var(--pop-dark);}
.btn-pop:hover{transform:none;box-shadow:0 0 0 2px rgba(224,49,46,.14), 0 0 12px 1px rgba(224,49,46,.35);}
.btn-gold{--bs-btn-bg:var(--gold);--bs-btn-border-color:var(--gold);--bs-btn-color:#fff;
  --bs-btn-hover-bg:#9a7d0e;--bs-btn-hover-border-color:#9a7d0e;--bs-btn-hover-color:#fff;}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px var(--gold);}
.btn-ink{--bs-btn-bg:var(--ink);--bs-btn-border-color:var(--ink);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--ink-deep);--bs-btn-hover-border-color:var(--ink-deep);--bs-btn-hover-color:#fff;}
.btn-ink:hover{transform:translateY(-2px);box-shadow:0 10px 24px -10px rgba(0,0,0,.45);}
.btn-outline-ink{--bs-btn-color:var(--ink);--bs-btn-border-color:var(--line);--bs-btn-bg:transparent;
  --bs-btn-hover-bg:var(--ink);--bs-btn-hover-border-color:var(--ink);--bs-btn-hover-color:#fff;}
.btn-outline-cream{--bs-btn-color:var(--paper);--bs-btn-border-color:rgba(245,241,231,.4);--bs-btn-bg:transparent;
  --bs-btn-hover-bg:var(--paper);--bs-btn-hover-border-color:var(--paper);--bs-btn-hover-color:var(--ink);}

.link-arrow{font-family:var(--sans);font-weight:600;font-size:.95rem;color:var(--ink);
  display:inline-flex;align-items:center;gap:.5em;border-bottom:2px solid var(--pop);
  padding-bottom:2px;transition:gap .2s,color .2s;width:fit-content;text-decoration:none;}
.link-arrow:hover{gap:.85em;color:var(--pop);}
.link-arrow .arr{transition:transform .25s;}
.link-arrow:hover .arr{transform:translateX(3px);}

/* ============================================================
   NAVBAR
   ============================================================ */
.site-nav{padding-block:14px;transition:background-color .35s,box-shadow .35s,padding .35s;}
.site-nav .navbar-brand{position:relative;display:block;}
.site-nav .navbar-brand img.brand-logo{height:82px;width:auto;transition:height .35s,opacity .3s;}
.site-nav .navbar-brand .brand-logo--dark{position:absolute;top:0;left:0;}
/* default (over hero, not scrolled): show negative/light logo */
.site-nav .brand-logo--neg{opacity:1;}
.site-nav .brand-logo--dark{opacity:0;}
/* scrolled (cream bg): show dark logo */
.site-nav.scrolled .brand-logo--neg{opacity:0;}
.site-nav.scrolled .brand-logo--dark{opacity:1;}
.site-nav .nav-link{font-family:var(--sans);font-weight:500;font-size:.96rem;color:var(--ink);
  position:relative;padding:.4rem 0;margin-inline:.9rem;transition:color .2s;}
.site-nav .nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:-1px;height:2px;background:var(--pop);transition:right .28s;}
.site-nav .nav-link:hover,.site-nav .nav-link:focus{color:var(--pop);}
.site-nav .nav-link:hover::after{right:0;}
.site-nav .nav-link.active{color:var(--pop);}
.site-nav .nav-link.active::after{right:0;}
.site-nav .navbar-toggler{border:0;color:var(--ink);padding:6px;}
.site-nav .navbar-toggler:focus{box-shadow:none;}

/* dropdown */
.site-nav .dropdown-toggle{display:inline-flex;align-items:center;gap:.4em;background:none;border:0;}
.site-nav .dropdown-toggle::after{display:none;}
.site-nav .dropdown-toggle .chev{transition:transform .28s;}
.site-nav .dropdown.show .dropdown-toggle .chev{transform:rotate(180deg);}
.site-nav .dropdown-menu{--bs-dropdown-min-width:11rem;--bs-dropdown-padding-y:.5rem;
  --bs-dropdown-border-color:var(--line);--bs-dropdown-border-radius:14px;--bs-dropdown-bg:var(--paper);
  --bs-dropdown-link-hover-bg:var(--paper-2);--bs-dropdown-link-color:var(--ink);
  --bs-dropdown-link-hover-color:var(--pop);--bs-dropdown-link-active-bg:var(--paper-2);--bs-dropdown-link-active-color:var(--pop);
  box-shadow:0 24px 48px -22px rgba(30,47,77,.5);margin-top:12px;}
.site-nav .dropdown-item{font-family:var(--sans);font-weight:500;font-size:.94rem;border-radius:9px;padding:.6rem .9rem;width:auto;margin-inline:.4rem;}

/* transparent over hero, light text */
.site-nav.on-hero:not(.scrolled){background:transparent;}
.site-nav.on-hero:not(.scrolled) .nav-link{color:var(--paper);}
.site-nav.on-hero:not(.scrolled) .nav-link:hover{color:#fff;}
.site-nav.on-hero:not(.scrolled) .navbar-toggler{color:var(--paper);}
/* scrolled — frosted bg on ::before so the navbar isn't a containing block for
   the (position:fixed) mobile offcanvas menu. See the .site-header-2 note. */
.site-nav.scrolled{box-shadow:0 1px 0 var(--line);padding-block:8px;}
.site-nav::before{content:"";position:absolute;inset:0;z-index:-1;background:transparent;transition:background-color .35s;}
.site-nav.scrolled::before{background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);}
.site-nav.scrolled .navbar-brand img.brand-logo{height:50px;}

/* offcanvas (mobile drawer) — these overrides must ONLY apply while the
   drawer is actually a drawer (below the lg breakpoint). Above lg the
   .offcanvas class stays on the element but Bootstrap shows it inline,
   so unscoped rules here would wreck the desktop navbar. */
@media(max-width:991.98px){
  .site-nav .offcanvas{--bs-offcanvas-bg:var(--ink-deep);--bs-offcanvas-color:var(--paper);--bs-offcanvas-width:min(86vw,360px);}
  .site-nav .offcanvas .nav-link{font-family:var(--serif);font-size:1.6rem;color:var(--paper);margin-inline:0;padding:.5rem 0;border-bottom:1px solid rgba(245,241,231,.12);}
  .site-nav .offcanvas .nav-link::after{display:none;}
  .site-nav .offcanvas .dropdown-menu{--bs-dropdown-bg:transparent;border:0;box-shadow:none;margin:0;padding-left:1rem;}
  .site-nav .offcanvas .dropdown-item{font-family:var(--serif);font-size:1.15rem;color:var(--gold-soft);}
  .site-nav .offcanvas .btn-close{filter:invert(1) grayscale(1) brightness(1.6);}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;color:var(--paper);}
.hero__media{position:absolute;inset:0;overflow:hidden;}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 40%;}
.hero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(24,35,54,.35) 0%,rgba(24,35,54,0) 30%,rgba(24,35,54,.18) 55%,rgba(24,35,54,.82) 100%);}
.hero__inner{position:relative;z-index:2;padding-bottom:clamp(56px,9vh,110px);padding-top:140px;width:100%;}
.hero h1{color:#fff;margin-bottom:.35em;}
.hero .lead{max-width:46ch;color:rgba(255,255,255,.92);}
.hero__tag{font-family:var(--sans);font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  font-size:.82rem;color:var(--gold-soft);margin-bottom:1.6rem;display:flex;align-items:center;gap:.7em;}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:2rem;align-items:center;}
.scroll-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.7);
  display:flex;flex-direction:column;align-items:center;gap:8px;}
.scroll-cue span{width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.7),transparent);animation:cue 3s infinite;}
@keyframes cue{0%{opacity:0;transform:scaleY(.3);transform-origin:top;}40%{opacity:1;}100%{opacity:0;transform:scaleY(1);transform-origin:bottom;}}

/* ============================================================
   INTRO
   ============================================================ */
.intro__statement{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.22;font-weight:400;letter-spacing:-.015em;color:var(--ink);}
.intro__statement b{font-weight:500;font-style:italic;color:var(--gold);}
.stat .n{font-family:var(--serif);font-size:2.4rem;line-height:1;color:var(--pop);}
.stat .l{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);margin-top:6px;font-weight:600;}
.stat-row{display:flex;flex-wrap:wrap;gap:36px;margin-top:28px;}
@media(max-width:767px){
  .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .stat .n{font-size:1.9rem;}
  .stat .l{font-size:.72rem;}
}

/* mobile nav phone/email icons (replace hamburger) */
.nav-contact{display:flex;align-items:center;gap:8px;}
.nav-contact a{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:1.1rem;color:var(--ink);border:1.5px solid var(--line);background:rgba(245,241,231,.6);transition:background .2s,color .2s,border-color .2s;}
.nav-contact a:hover{background:var(--pop);color:#fff;border-color:var(--pop);}
.site-nav.on-hero:not(.scrolled) .nav-contact a{color:var(--paper);border-color:rgba(245,241,231,.5);background:rgba(24,35,54,.28);}
.site-nav.on-hero:not(.scrolled) .nav-contact a:hover{background:var(--pop);border-color:var(--pop);color:#fff;}

/* ============================================================
   SERVICES
   ============================================================ */
.services{background:var(--paper-2);}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;}
.svc{background:var(--paper);border:1px solid var(--line);border-radius:18px;height:100%;
  padding:32px 30px 28px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s;}
.svc:hover{transform:translateY(-4px);box-shadow:0 26px 50px -28px rgba(30,47,77,.5);border-color:transparent;}
.svc__num{font-family:var(--serif);font-size:.95rem;color:var(--gold);font-style:italic;margin:0;}
.svc__ic{width:46px;height:46px;color:var(--ink);}
.svc__ic svg{width:100%;height:100%;stroke-width:1.4;}
.svc h3{font-size:1.5rem;margin-top:2px;}
.svc p{font-size:.98rem;line-height:1.55;color:color-mix(in srgb,var(--ink) 80%,transparent);margin:0;}
.svc__cta{font-family:var(--serif);font-style:italic;font-size:1.02rem;color:var(--pop);margin-top:auto;padding-top:6px;display:flex;align-items:center;gap:.4em;text-decoration:none;}
.svc__tags{display:flex;flex-wrap:wrap;gap:7px;}
.tag{font-size:.74rem;font-weight:600;color:var(--sage);background:color-mix(in srgb,var(--sage) 14%,transparent);padding:4px 10px;border-radius:999px;}
.svc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pop);transform:scaleY(0);transform-origin:top;transition:transform .4s;}
.svc:hover::before{transform:scaleY(1);}

/* Ad Hoc banner */
.adhoc{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(20px,3vw,44px);
  padding:clamp(26px,3vw,40px) clamp(28px,3.5vw,48px);background:var(--ink);color:var(--paper);
  border-radius:18px;text-decoration:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;}
.adhoc:hover{transform:translateY(-3px);box-shadow:0 28px 54px -28px rgba(30,47,77,.7);color:var(--paper);}
.adhoc__ic{width:60px;height:60px;color:var(--gold-soft);}
.adhoc__ic svg{width:100%;height:100%;stroke-width:1.4;}
.adhoc__kicker{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin:0 0 4px;}
.adhoc__body h3{font-size:clamp(1.5rem,2.2vw,2rem);color:#fff;margin:0 0 8px;}
.adhoc__txt{font-size:.98rem;line-height:1.55;color:rgba(245,241,231,.8);margin:0;max-width:62ch;}
.adhoc__cta{font-family:var(--sans);font-weight:600;font-size:.96rem;color:#fff;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.5em;border:1.5px solid rgba(245,241,231,.35);border-radius:999px;padding:.8em 1.4em;transition:background .25s,border-color .25s;}
.adhoc:hover .adhoc__cta{background:var(--pop);border-color:var(--pop);}
.adhoc__cta .arr{transition:transform .25s;}
.adhoc:hover .adhoc__cta .arr{transform:translateX(3px);}
@media(max-width:820px){.adhoc{grid-template-columns:1fr;}.adhoc__cta{justify-self:start;}}

/* ============================================================
   APPROACH
   ============================================================ */
.step__n{font-family:var(--serif);font-size:1rem;color:#fff;background:var(--ink);width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.step__n--1{background:var(--ink);}
.step__n--2{background:var(--gold);}
.step__n--3{background:var(--sage);}
.step__n--4{background:var(--pop);}
.step h4{font-size:1.25rem;margin-bottom:8px;}
.step p{font-size:.94rem;color:color-mix(in srgb,var(--ink) 78%,transparent);margin:0;}

/* steps: 4-col grid on desktop (Glide unmounted), swipe slider on mobile */
.steps-glide{margin-top:clamp(28px,4vw,40px);}
.steps-glide .glide__slides{list-style:none;padding:0;}
.steps-glide__bullets{display:none;}
@media(min-width:768px){
  .steps-glide .glide__track{overflow:visible;}
  .steps-glide .glide__slides{display:grid!important;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,40px);width:auto!important;transform:none!important;}
  .steps-glide .glide__slide{width:auto!important;margin:0!important;}
}
@media(max-width:767px){
  .steps-glide__bullets{display:flex;justify-content:center;gap:9px;margin-top:24px;}
  .steps-glide .step{padding-right:6px;}
}

/* ============================================================
   PORTFOLIO
   ============================================================ */
.portfolio{background:var(--ink);color:var(--paper);overflow:hidden;}
.portfolio .eyebrow{color:var(--gold-soft);}
.portfolio .eyebrow::before{background:var(--gold-soft);}
.portfolio h2{color:#fff;}

/* pills switcher */
.port-switch{display:inline-flex;align-items:center;gap:4px;background:rgba(245,241,231,.08);border:1px solid rgba(245,241,231,.16);border-radius:999px;padding:6px;}
.port-switch__label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(245,241,231,.55);font-weight:700;padding:0 8px 0 12px;}
.port-switch .nav-link{font-family:var(--sans);font-weight:600;font-size:.9rem;color:rgba(245,241,231,.8);border-radius:999px;padding:9px 16px;transition:background .25s,color .25s;}
.port-switch .nav-link:hover{color:#fff;}
.port-switch .nav-link.active{background:var(--paper);color:var(--ink);}

/* carousel case */
.carousel-inner{border-radius:20px;}
.case{min-width:100%;display:grid;grid-template-columns:1.35fr 1fr;background:var(--ink-deep);border-radius:20px;overflow:hidden;}
.case__media{position:relative;overflow:hidden;min-height:520px;}
.case__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.case__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,rgba(24,35,54,.55));}
.case__panel{padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;justify-content:center;gap:14px;}
.case__cat{font-family:var(--sans);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft);margin:0;}
.case__title{font-size:clamp(1.7rem,2.6vw,2.5rem);color:#fff;margin:0;}
.case__desc{font-size:1.02rem;line-height:1.6;color:rgba(245,241,231,.82);margin:0;}
.case__facts{list-style:none;display:flex;gap:30px;margin:8px 0 4px;padding:0;flex-wrap:wrap;}
.case__facts li{display:flex;flex-direction:column;}
.case__facts b{font-family:var(--serif);font-size:1.15rem;color:var(--gold-soft);font-weight:500;}
.case__facts span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,241,231,.55);margin-top:2px;}
.case__link{font-family:var(--sans);font-weight:600;font-size:.95rem;color:#fff;display:inline-flex;align-items:center;gap:.5em;width:fit-content;margin-top:6px;border-bottom:2px solid var(--pop);padding-bottom:3px;transition:gap .2s;text-decoration:none;}
.case__link:hover{gap:.85em;color:#fff;}
.case__link .arr{transition:transform .25s;}
.case__link:hover .arr{transform:translateX(3px);}

/* carousel controls + indicators */
.case-carousel{position:relative;}
.case-carousel .carousel-control-prev,.case-carousel .carousel-control-next{
  width:50px;height:50px;top:auto;bottom:-74px;border-radius:50%;border:1.5px solid rgba(245,241,231,.3);
  background:transparent;opacity:1;transition:background .25s,color .25s,border-color .25s;}
.case-carousel .carousel-control-next{left:64px;right:auto;}
.case-carousel .carousel-control-prev{left:8px;}
.case-carousel .carousel-control-prev:hover,.case-carousel .carousel-control-next:hover{background:var(--paper);border-color:var(--paper);}
/* Carousel chevron glyphs — defined once, referenced by the case-carousel,
   slider-nav and portfolio slider-nav controls (ink = dark sections, cream = light). */
:root{
  --arrow-prev-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%231E2F4D' stroke-width='1.7'%3E%3Cpath d='M14 4l-7 7 7 7'/%3E%3C/svg%3E");
  --arrow-next-ink:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%231E2F4D' stroke-width='1.7'%3E%3Cpath d='M8 4l7 7-7 7'/%3E%3C/svg%3E");
  --arrow-prev-cream:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%23F5F1E7' stroke-width='1.7'%3E%3Cpath d='M14 4l-7 7 7 7'/%3E%3C/svg%3E");
  --arrow-next-cream:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 22 22' fill='none' stroke='%23F5F1E7' stroke-width='1.7'%3E%3Cpath d='M8 4l7 7-7 7'/%3E%3C/svg%3E");
}
.case-carousel .carousel-control-prev-icon,.case-carousel .carousel-control-next-icon{width:20px;height:20px;filter:none;
  background-image:none;position:relative;}
.case-carousel .carousel-control-prev-icon::after,.case-carousel .carousel-control-next-icon::after{
  content:"";position:absolute;inset:0;background:no-repeat center/20px;}
.case-carousel .carousel-control-prev-icon::after{background-image:var(--arrow-prev-cream);}
.case-carousel .carousel-control-next-icon::after{background-image:var(--arrow-next-cream);}
.case-carousel .carousel-control-prev:hover .carousel-control-prev-icon::after{background-image:var(--arrow-prev-ink);}
.case-carousel .carousel-control-next:hover .carousel-control-next-icon::after{background-image:var(--arrow-next-ink);}
.case-carousel .carousel-indicators{position:static;margin:26px 0 0;justify-content:flex-end;padding-right:6px;}
.case-carousel .carousel-indicators [data-bs-target]{width:9px;height:9px;border-radius:50%;border:0;background:rgba(245,241,231,.3);opacity:1;transition:background .25s,width .25s,border-radius .25s;margin-inline:5px;}
.case-carousel .carousel-indicators .active{background:var(--gold-soft);width:26px;border-radius:5px;}

/* variation B: three cards */
.case-card{background:var(--ink-deep);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;height:100%;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;}
.case-card:hover{transform:translateY(-4px);box-shadow:0 28px 50px -28px rgba(0,0,0,.6);}
.case-card__media{aspect-ratio:4/3;overflow:hidden;}
.case-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.case-card:hover .case-card__media img{transform:scale(1.06);}
.case-card__body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1;}
.case-card__cat{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);margin:0;}
.case-card__body h3{font-size:1.4rem;color:#fff;margin:0;}
.case-card__body p{font-size:.95rem;line-height:1.55;color:rgba(245,241,231,.78);margin:0;flex:1;}
.case-card__link{font-family:var(--sans);font-weight:600;font-size:.9rem;color:#fff;display:inline-flex;align-items:center;gap:.5em;border-bottom:2px solid var(--pop);padding-bottom:3px;width:fit-content;transition:gap .2s;text-decoration:none;}
.case-card__link:hover{gap:.85em;color:#fff;}
.case-card__link .arr{transition:transform .25s;}
.case-card__link:hover .arr{transform:translateX(3px);}

/* variation C: photo mosaic */
.gal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:200px;gap:14px;}
.gal figure{margin:0;position:relative;overflow:hidden;border-radius:14px;}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.gal figure:hover img{transform:scale(1.06);}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 18px 15px;
  background:linear-gradient(transparent,rgba(24,35,54,.85));
  font-family:var(--serif);font-size:1.05rem;color:#fff;opacity:0;transform:translateY(10px);transition:opacity .4s,transform .4s;}
.gal figure:hover figcaption{opacity:1;transform:none;}
.gal figcaption small{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);font-weight:600;margin-bottom:2px;}
.g-a{grid-column:span 3;grid-row:span 2;}
.g-b{grid-column:span 3;}
.g-c{grid-column:span 3;}
.g-d{grid-column:span 2;grid-row:span 2;}
.g-e{grid-column:span 2;}
.g-f{grid-column:span 2;}
@media(max-width:1000px){.gal{grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;}.gal figure{grid-column:span 2!important;grid-row:span 1!important;}}
@media(max-width:680px){.gal{grid-template-columns:1fr 1fr;}}
@media(max-width:820px){
  .case{grid-template-columns:1fr;}
  .case__media{min-height:300px;}
  .case__media::after{background:linear-gradient(180deg,transparent 60%,rgba(24,35,54,.55));}
  .case-carousel .carousel-control-prev,.case-carousel .carousel-control-next{bottom:auto;top:140px;}
  .case-carousel .carousel-control-prev{left:12px;}
  .case-carousel .carousel-control-next{left:auto;right:12px;}
  .case-carousel .carousel-indicators{margin-top:64px;justify-content:center;}
}

/* ============================================================
   ETHOS
   ============================================================ */
.ethos{background:var(--ink-deep);color:var(--paper);text-align:center;overflow:hidden;position:relative;}
.ethos .container{position:relative;z-index:2;}
.ethos__q{font-family:var(--serif);font-size:clamp(1.8rem,3.6vw,3.1rem);line-height:1.24;font-weight:400;letter-spacing:-.015em;max-width:20ch;margin:0 auto;color:var(--paper);}
.ethos__q em{color:var(--gold-soft);}
.ethos__mark{font-family:var(--serif);font-size:5rem;color:var(--pop);line-height:0;display:block;height:.4em;}
.ethos__sig{margin-top:34px;font-family:var(--sans);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(245,241,231,.6);font-weight:600;}
.ethos__leaves{position:absolute;inset:0;z-index:1;opacity:.07;background-image:radial-gradient(circle at 12% 30%,var(--gold) 0 2px,transparent 2px),radial-gradient(circle at 85% 70%,var(--pop) 0 2px,transparent 2px);background-size:140px 140px;}

/* ============================================================
   TEAM
   ============================================================ */
.team__media{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:5/4;box-shadow:0 30px 60px -34px rgba(30,47,77,.6);}
.team__media img{width:100%;height:100%;object-fit:cover;}
.team__note{position:absolute;left:14px;bottom:14px;font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:rgba(24,35,54,.62);backdrop-filter:blur(4px);padding:6px 12px;border-radius:999px;}
@media(max-width:820px){.team__media{aspect-ratio:16/10;}}

/* team slider */
.team-carousel{position:relative;border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -34px rgba(30,47,77,.6);}
.team-slide{margin:0;position:relative;aspect-ratio:1;background:var(--paper-2);}
.team-slide img{width:100%;height:100%;object-fit:cover;object-position:center 18%;}
.team-slide__cap{position:absolute;left:0;right:0;bottom:0;padding:50px 26px 22px;display:flex;flex-direction:column;gap:2px;
  background:linear-gradient(transparent,rgba(24,35,54,.9));}
.team-slide__name{font-family:var(--serif);font-size:1.45rem;color:#fff;line-height:1.1;}
.team-slide__role{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);}
.team-carousel .carousel-control-prev,.team-carousel .carousel-control-next{width:46px;height:46px;top:50%;transform:translateY(-50%);border-radius:50%;border:0;background:rgba(24,35,54,.5);backdrop-filter:blur(4px);opacity:1;margin:0 12px;transition:background .25s;}
.team-carousel .carousel-control-prev{left:0;}
.team-carousel .carousel-control-next{right:0;}
.team-carousel .carousel-control-prev:hover,.team-carousel .carousel-control-next:hover{background:var(--pop);}
.team-carousel .carousel-control-prev-icon,.team-carousel .carousel-control-next-icon{width:18px;height:18px;}
.team-carousel .carousel-indicators{margin-bottom:.6rem;}
.team-carousel .carousel-indicators [data-bs-target]{width:8px;height:8px;border-radius:50%;border:0;background:rgba(255,255,255,.5);opacity:1;transition:background .25s,width .25s,border-radius .25s;margin-inline:4px;}
.team-carousel .carousel-indicators .active{background:#fff;width:22px;border-radius:4px;}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testi{background:var(--paper-2);overflow:hidden;}
/* Project single: flow with the paper-coloured body sections above (no paper-2 band). */
.testi--flush{background:var(--paper);}
.quote{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:32px 30px;display:flex;flex-direction:column;gap:14px;height:100%;}
.quote__stars{color:var(--gold);letter-spacing:3px;font-size:.95rem;}
.quote p{font-family:var(--serif);font-size:1.18rem;line-height:1.5;color:var(--ink);margin:0;}
.quote__by{display:flex;flex-direction:column;gap:2px;padding-top:16px;margin-top:auto;border-top:1px solid var(--line);}
.quote__by .nm{font-weight:700;font-size:.96rem;color:var(--ink);}
.quote__by .rl{font-size:.84rem;color:var(--stone);}

/* full-width testimonials slider (Glide) */
.testi-glide{width:min(80%,1320px);margin:clamp(28px,4vw,48px) auto 0;}
@media(max-width:767px){.testi-glide{width:90%;}}
.testi-glide .glide__slide{height:auto;}
.testi-glide__controls,.glide-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:32px;}
/* When the slide count fits the desktop two-up view (<=2), render.php adds
   --mobile-only so the arrows/bullets only appear below the 992px breakpoint
   where the slider drops to one-up and navigation is actually needed. */
@media(min-width:992px){.testi-glide__controls--mobile-only{display:none;}}
/* Reorder to the unified layout: [‹] [• • •] [›]. display:contents lets the two
   arrow buttons sit directly in the flex row so the bullets can go between them. */
.testi-glide__controls .glide__arrows,.glide-nav .glide__arrows{display:contents;}
.testi-glide__controls .glide-arrow[data-glide-dir="<"],.glide-nav .glide-arrow[data-glide-dir="<"]{order:1;}
.testi-glide__controls .glide__bullets,.glide-nav .glide__bullets{order:2;}
.testi-glide__controls .glide-arrow[data-glide-dir=">"],.glide-nav .glide-arrow[data-glide-dir=">"]{order:3;}
.glide-arrow{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-size:1.15rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s;}
.glide-arrow:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.glide-arrow:active{transform:scale(.94);}
.testi-glide .glide__bullets,.glide-nav .glide__bullets{display:flex;gap:9px;align-items:center;position:static;transform:none;}
.glide-bullet{width:9px;height:9px;border-radius:50%;border:0;padding:0;background:rgba(30,47,77,.22);cursor:pointer;transition:background .25s,width .25s,border-radius .25s;}
.glide-bullet.glide__bullet--active{background:var(--pop);width:26px;border-radius:5px;}

/* ============================================================
   Unified slider nav — [‹] [• • •] [›] centered below the slider.
   Used by the Bootstrap carousels (portfolio, team) whose controls are
   moved out of the carousel into a .slider-nav row. Testimonials (Glide)
   matches this look via .glide-arrow / .glide-bullet above.
   ============================================================ */
/* Bootstrap carousels are mouse/pen-draggable via theme.js (touch swipes natively). */
.carousel-inner{cursor:grab;}
.carousel-inner.is-grabbing{cursor:grabbing;}
.carousel-inner.is-grabbing,.carousel-inner.is-grabbing *{user-select:none;}
.carousel-inner img{-webkit-user-drag:none;user-drag:none;}
.slider-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:28px;}
.slider-nav .carousel-control-prev,
.slider-nav .carousel-control-next{position:static;width:48px;height:48px;flex:0 0 auto;border-radius:50%;border:1.5px solid var(--line);background:transparent;opacity:1;display:inline-flex;align-items:center;justify-content:center;transition:background .25s,border-color .25s,transform .2s;}
.slider-nav .carousel-control-prev:hover,
.slider-nav .carousel-control-next:hover{background:var(--ink);border-color:var(--ink);}
.slider-nav .carousel-control-prev:active,
.slider-nav .carousel-control-next:active{transform:scale(.94);}
.slider-nav .carousel-control-prev-icon,
.slider-nav .carousel-control-next-icon{width:20px;height:20px;background:none;}
.slider-nav .carousel-control-prev-icon::after,
.slider-nav .carousel-control-next-icon::after{content:"";display:block;width:20px;height:20px;background-repeat:no-repeat;background-position:center;background-size:contain;}
.slider-nav .carousel-control-prev-icon::after{background-image:var(--arrow-prev-ink);}
.slider-nav .carousel-control-next-icon::after{background-image:var(--arrow-next-ink);}
.slider-nav .carousel-control-prev:hover .carousel-control-prev-icon::after{background-image:var(--arrow-prev-cream);}
.slider-nav .carousel-control-next:hover .carousel-control-next-icon::after{background-image:var(--arrow-next-cream);}
.slider-nav .carousel-indicators{position:static;margin:0;display:flex;gap:9px;align-items:center;}
.slider-nav .carousel-indicators [data-bs-target]{width:9px;height:9px;border-radius:50%;border:0;background:rgba(30,47,77,.22);opacity:1;margin:0;text-indent:0;transition:background .25s,width .25s,border-radius .25s;}
.slider-nav .carousel-indicators .active{background:var(--pop);width:26px;border-radius:5px;}

/* Portfolio sits on a dark background — the shared slider-nav is inked for light
   sections, so lift its arrows and inactive dots here so they're visible. */
.portfolio .slider-nav .carousel-control-prev,
.portfolio .slider-nav .carousel-control-next{border-color:rgba(245,241,231,.45);}
.portfolio .slider-nav .carousel-control-prev-icon::after{background-image:var(--arrow-prev-cream);}
.portfolio .slider-nav .carousel-control-next-icon::after{background-image:var(--arrow-next-cream);}
.portfolio .slider-nav .carousel-control-prev:hover,
.portfolio .slider-nav .carousel-control-next:hover{background:var(--paper);border-color:var(--paper);}
.portfolio .slider-nav .carousel-control-prev:hover .carousel-control-prev-icon::after{background-image:var(--arrow-prev-ink);}
.portfolio .slider-nav .carousel-control-next:hover .carousel-control-next-icon::after{background-image:var(--arrow-next-ink);}
.portfolio .slider-nav .carousel-indicators [data-bs-target]{background:rgba(245,241,231,.3);}
.portfolio .slider-nav .carousel-indicators .active{background:var(--pop);}

/* WP admin bar (logged in): both headers are .fixed-top at top:0, so drop them
   below the admin bar. WP already pushes <html> down, so body padding is fine. */
.admin-bar #header{top:32px;}
@media screen and (max-width:782px){.admin-bar #header{top:46px;}}
/* The offcanvas drawer (#siteMenu) is position:fixed at top:0, so the WP admin bar
   (z-index:99999) covers its top 32/46px incl. the close button. Drop it likewise. */
.admin-bar .site-menu{top:32px;height:calc(100% - 32px);}
@media screen and (max-width:782px){.admin-bar .site-menu{top:46px;height:calc(100% - 46px);}}

/* ============================================================
   Site header (variant 2) — hamburger LEFT, logo CENTRE, CTA RIGHT.
   The future whole-site header. Solid paper bar; pages using it pad the
   body so content clears the fixed bar (body.bfg-header-site).
   ============================================================ */
body.bfg-header-site{--bfg-header-h:74px;padding-top:var(--bfg-header-h);}
/* Solid + condensed by default — this is also the scrolled state and covers any
   inner page with no hero behind the bar. The frosted bg lives on ::before, NOT
   the header itself: an element with backdrop-filter becomes the containing block
   for position:fixed descendants, which would shrink the offcanvas menu to the
   bar's size. Keeping the filter on a pseudo-element avoids that. */
.site-header-2{background:transparent;transition:background-color .35s;}
.site-header-2::before{content:"";position:absolute;inset:0;z-index:-1;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background-color .35s,border-color .35s;}
.site-header-2__bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--bfg-header-h);transition:min-height .35s;}
.site-header-2__menu{display:inline-flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;color:var(--ink);font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.04em;padding:8px 4px;transition:color .3s;}
.site-header-2 .hamburger{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:24px;height:18px;}
.site-header-2 .hamburger span{display:block;height:2px;width:100%;background:var(--ink);border-radius:2px;transition:background-color .3s;}
.site-header-2__menu-label{text-transform:uppercase;}
/* Centred brand: light (neg) + dark logos crossfaded like the homepage navbar. */
.site-header-2__brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;}
.site-header-2__brand .brand-logo{height:48px;width:auto;display:block;transition:height .35s,opacity .3s;}
.site-header-2__brand .brand-logo--dark{position:absolute;top:0;left:0;opacity:1;}
.site-header-2__brand .brand-logo--neg{opacity:0;}
.site-header-2__cta{margin-left:auto;white-space:nowrap;}
/* Mobile contact icons (shown in place of the CTA below md) — reuse .nav-contact
   circle style; sit at the right edge and go light while transparent over the hero. */
.site-header-2__contact{margin-left:auto;}
.site-header-2.on-hero:not(.scrolled) .nav-contact a{color:var(--paper);border-color:rgba(245,241,231,.5);background:rgba(24,35,54,.28);}
.site-header-2.on-hero:not(.scrolled) .nav-contact a:hover{background:var(--pop);border-color:var(--pop);color:#fff;}

/* Transparent + enlarged while over the hero (before the page is scrolled). On
   scroll the .scrolled class wins and it falls back to the solid state above. */
.site-header-2.on-hero:not(.scrolled)::before{background:transparent;backdrop-filter:none;border-bottom-color:transparent;}
.site-header-2.on-hero:not(.scrolled) .site-header-2__bar{min-height:108px;}
.site-header-2.on-hero:not(.scrolled) .brand-logo{height:82px;}
.site-header-2.on-hero:not(.scrolled) .brand-logo--neg{opacity:1;}
.site-header-2.on-hero:not(.scrolled) .brand-logo--dark{opacity:0;}
.site-header-2.on-hero:not(.scrolled) .site-header-2__menu{color:var(--paper);}
.site-header-2.on-hero:not(.scrolled) .hamburger span{background:var(--paper);}

/* Let the hero sit behind the (transparent) fixed header — the .subhero's own
   padding-top keeps its breadcrumbs/heading clear of the bar. The full homepage
   .hero (when shown with the site header, e.g. the future-homepage) is pulled up
   the same way so it stays full-bleed with no gap above it. */
body.bfg-header-site .subhero,
body.bfg-header-site .hero{margin-top:calc(-1 * var(--bfg-header-h));}

@media(max-width:575px){
  body.bfg-header-site{--bfg-header-h:64px;}
  .site-header-2__brand .brand-logo{height:34px;}
  .site-header-2.on-hero:not(.scrolled) .site-header-2__bar{min-height:88px;}
  .site-header-2.on-hero:not(.scrolled) .brand-logo{height:56px;}
}
.site-menu .site-menu__nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.site-menu .site-menu__nav a{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--ink);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line);transition:color .2s;}
.site-menu .site-menu__nav a:hover{color:var(--pop);}
/* Two-tier drill-down (walker markup in inc/nav.php, behaviour in theme.js):
   the chevron beside a parent slides its .site-menu__sub panel in over the body. */
.site-menu .offcanvas-body{position:relative;overflow-x:hidden;}
.site-menu__nav .menu-item-has-children{display:flex;align-items:stretch;}
.site-menu__nav .menu-item-has-children > a{flex:1 1 auto;}
.site-menu__expand{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:52px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--stone);font-size:1.05rem;cursor:pointer;transition:color .2s;}
.site-menu__expand:hover{color:var(--pop);}
/* inset:0 fills the offcanvas-body padding box, so re-apply the body's own padding
   to line the sub-panel links up with the top tier. */
.site-menu__sub{list-style:none;margin:0;padding:var(--bs-offcanvas-padding-y,1rem) var(--bs-offcanvas-padding-x,1rem);display:flex;flex-direction:column;gap:2px;position:absolute;inset:0;z-index:3;background:var(--bs-offcanvas-bg,#fff);transform:translateX(100%);transition:transform .32s ease;overflow-y:auto;overscroll-behavior:contain;}
.site-menu__sub.open{transform:translateX(0);}
.site-menu__sub a{display:block;font-family:var(--serif);font-size:1.5rem;color:var(--ink);text-decoration:none;padding:10px 0;border-bottom:1px solid var(--line);transition:color .2s;}
.site-menu__sub a:hover{color:var(--pop);}
.site-menu__sub-head{margin-bottom:6px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.site-menu__back{display:inline-flex;align-items:center;gap:.4em;background:none;border:0;padding:4px 0;color:var(--stone);font-family:var(--sans);font-weight:600;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .2s;}
.site-menu__back:hover{color:var(--pop);}
/* Footer block: email/phone contact links → centred CTA. */
.site-menu__foot{margin-top:32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;}
.site-menu__social{display:flex;gap:12px;}
.site-menu__social a{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;color:var(--ink);font-size:1.15rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s;}
.site-menu__social a:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.site-menu__contact{display:inline-flex;align-items:center;gap:.65em;color:var(--stone);text-decoration:none;font-size:1rem;transition:color .2s;}
.site-menu__contact i{font-size:1.05rem;color:var(--gold);flex:0 0 auto;}
.site-menu__contact:hover{color:var(--pop);}
.site-menu__contact:hover i{color:var(--pop);}
.site-menu__cta{align-self:center;margin-top:16px;}

/* ============================================================
   NEWSLETTER — parallax
   ============================================================ */
.news{position:relative;color:var(--paper);overflow:hidden;isolation:isolate;}
.news__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;background-attachment:fixed;}
.news::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(24,35,54,.78),rgba(24,35,54,.62) 50%,rgba(24,35,54,.82));}
.news__inner{padding-block:clamp(48px,6.5vw,84px);}
.news h2{color:#fff;}
.news .h-lg{font-size:clamp(1.6rem,3vw,2.4rem);}
.news-notify{margin:1.8rem auto 0;width:100%;max-width:480px;}
.news-notify form{display:flex;gap:10px;background:rgba(245,241,231,.1);border:1px solid rgba(245,241,231,.3);
  border-radius:999px;padding:7px 7px 7px 22px;backdrop-filter:blur(8px);transition:border-color .25s,background .25s;}
.news-notify form:focus-within{border-color:var(--gold-soft);background:rgba(245,241,231,.16);}
.news-notify input{flex:1;min-width:0;background:none;border:0;color:#fff;font-family:var(--sans);font-size:1rem;}
.news-notify input::placeholder{color:rgba(245,241,231,.6);}
.news-notify input:focus{outline:none;}
.news-notify button{font-family:var(--sans);font-weight:600;font-size:.96rem;white-space:nowrap;cursor:pointer;
  background:var(--pop);color:#fff;border:0;border-radius:999px;padding:.8em 1.5em;display:inline-flex;align-items:center;gap:.5em;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;}
.news-notify button:hover{transform:none;box-shadow:0 0 0 2px rgba(224,49,46,.14), 0 0 12px 1px rgba(224,49,46,.35);}
.news-notify button .arr{transition:transform .25s;}
.news-notify button:hover .arr{transform:translateX(3px);}
.news-notify small{display:block;margin-top:14px;font-size:.84rem;color:rgba(245,241,231,.65);text-align:center;}
.news-notify .news-thanks{display:none;font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--gold-soft);text-align:center;padding:6px 0;}
.news-notify.sent form{display:none;}
.news-notify.sent .news-thanks{display:block;}
.news-notify.sent small{display:none;}
@media(max-width:680px){
  .news__bg{background-attachment:scroll;}
  .news-notify form{flex-direction:column;border-radius:20px;padding:14px;}
  .news-notify input{text-align:center;padding:6px 0;}
  .news-notify button{justify-content:center;}
}

/* ============================================================
   Formidable override — make the Sign up form (ID 2) wear the
   .news-notify pill design (mirrors the holding page treatment).
   ============================================================ */
.news-notify .with_frm_style{max-width:none;}
.news-notify .frm_forms form{display:flex;gap:10px;background:rgba(245,241,231,.1);border:1px solid rgba(245,241,231,.3);
  border-radius:999px;padding:7px 7px 7px 22px;backdrop-filter:blur(8px);transition:border-color .25s,background .25s;}
.news-notify .frm_forms form:focus-within{border-color:var(--gold-soft);background:rgba(245,241,231,.16);}
.news-notify .frm_forms .frm_form_fields{flex:1 1 auto;min-width:0;}
.news-notify .frm_forms fieldset{border:0;margin:0;padding:0;min-inline-size:0;width:100%;}
.news-notify .frm_fields_container{display:flex;gap:10px;align-items:center;width:100%;}
.news-notify .frm_form_field{flex:1 1 auto;min-width:0;margin:0!important;}
.news-notify .frm_form_field:has(.frm_submit){flex:0 0 auto;}
.news-notify .frm_form_field.frm_verify{display:none!important;}
.news-notify .frm_primary_label,.news-notify .frm_screen_reader{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.news-notify .with_frm_style input[type=email]{
  width:100%;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important;
  color:#fff!important;font-family:var(--sans)!important;font-size:1rem!important;padding:0!important;min-height:0!important;
}
.news-notify .with_frm_style input[type=email]::placeholder{color:rgba(245,241,231,.6)!important;opacity:1;}
.news-notify .with_frm_style input[type=email]:focus{outline:none!important;box-shadow:none!important;background:none!important;}
.news-notify .frm_submit{margin:0!important;padding:0!important;}
.news-notify .with_frm_style .frm_button_submit{
  font-family:var(--sans)!important;font-weight:600!important;font-size:.96rem!important;white-space:nowrap;cursor:pointer;
  background:var(--pop)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:.8em 1.5em!important;
  display:inline-flex;align-items:center;gap:.5em;box-shadow:none!important;transition:box-shadow .3s;min-height:0!important;margin:0!important;
}
.news-notify .with_frm_style .frm_button_submit:hover{box-shadow:0 12px 26px -12px var(--pop)!important;}
.news-notify .frm_error_style,.news-notify .frm_error{
  font-family:var(--sans);font-size:.85rem;color:#ffd9d8;background:none;border:0;margin:8px 0 0;padding:0;text-align:center;
}
.news-notify .frm_forms .frm_error_style{display:block;}
.news-notify .frm_message{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--gold-soft);padding:6px 0;background:none;border:0;margin:0;text-align:center;}
.news-notify .frm_message p{margin:0;color:inherit;}
@media(max-width:640px){
  .news-notify .frm_forms form{flex-direction:column;border-radius:20px;padding:14px;}
  .news-notify .frm_fields_container{flex-direction:column;align-items:stretch;}
  .news-notify .frm_form_field{width:100%;}
  .news-notify .frm_form_field:has(.frm_submit){flex:1 1 auto;width:100%;}
  .news-notify .frm_submit{width:100%;display:flex;}
  .news-notify .with_frm_style input[type=email]{text-align:center;padding:6px 0!important;}
  .news-notify .with_frm_style .frm_button_submit{justify-content:center!important;width:100%!important;}
}

/* ============================================================
   FAQ (Bootstrap accordion, brand skin)
   ============================================================ */
.faq-aside{position:sticky;top:110px;}
.faq-card{background:var(--paper-2);border-radius:18px;padding:34px 32px;border:1px solid var(--line);}
.faq-card h3{font-size:1.5rem;margin-bottom:10px;}
.faq-card p{font-size:.98rem;color:var(--stone);margin-bottom:22px;}
.faq .accordion,.staff__qa{--bs-accordion-bg:transparent;--bs-accordion-border-color:var(--line);--bs-accordion-border-width:1px;
  --bs-accordion-active-bg:transparent;--bs-accordion-active-color:var(--ink);--bs-accordion-btn-color:var(--ink);
  --bs-accordion-color:var(--ink);--bs-accordion-btn-focus-box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent);
  --bs-accordion-btn-padding-y:1.5rem;--bs-accordion-btn-padding-x:0;--bs-accordion-body-padding-x:0;--bs-accordion-body-padding-y:0;}
.faq .accordion-item,.staff__qa .accordion-item{border-left:0;border-right:0;background:transparent;}
.faq .accordion-item:first-of-type,.faq .accordion-item:last-of-type,.staff__qa .accordion-item:first-of-type,.staff__qa .accordion-item:last-of-type{border-radius:0;}
.faq .accordion-button,.staff__qa .accordion-button{font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.4rem);font-weight:500;background:transparent;box-shadow:none;}
.faq .accordion-button:not(.collapsed),.staff__qa .accordion-button:not(.collapsed){color:var(--ink);background:transparent;box-shadow:none;}
.faq .accordion-button::after,.staff__qa .accordion-button::after{width:1.1rem;height:1.1rem;background-size:1.1rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23E0312E' stroke-width='1.6'%3E%3Cpath d='M8 1v14M1 8h14'/%3E%3C/svg%3E");transition:transform .3s;}
.faq .accordion-button:not(.collapsed)::after,.staff__qa .accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23E0312E' stroke-width='1.6'%3E%3Cpath d='M1 8h14'/%3E%3C/svg%3E");transform:none;}
.faq .accordion-body,.staff__qa .accordion-body{color:color-mix(in srgb,var(--ink) 80%,transparent);font-size:1rem;max-width:60ch;padding-bottom:1.5rem;}
@media(max-width:991px){.faq-aside{position:static;}}

/* ============================================================
   About page — staff member profiles (image + Q&A accordion)
   ============================================================ */
.staff__row + .staff__row{margin-top:clamp(48px,7vw,96px);}
.staff__intro{max-width:60ch;}
/* Staff photo slider — Featured Image + gallery stitched into one Glide. The
   image card is .staff-glide__frame; controls sit below it in a global .glide-nav
   row (matches the homepage team slider: [‹] [•••] [›], red active bullet). */
.staff-glide{position:relative;}
.staff-glide__frame{border-radius:16px;overflow:hidden;background:var(--paper-2);box-shadow:0 18px 40px -24px rgba(24,35,54,.35);}
.staff-glide .glide__slide{height:auto;}
.staff-glide img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;}
@media(min-width:992px){.staff__row .staff-glide{position:sticky;top:110px;}}
/* "The rest of the team" — Glide slider of compact staff cards below the main
   profiles (cards reuse .team-slide; controls use the global .glide-nav row). */
.staff-sub{margin-top:clamp(56px,8vw,104px);}
.staff-sub__head{margin-bottom:clamp(22px,3vw,38px);}
.staff-sub__head h2{margin:0;}
.staff-sub-glide{position:relative;overflow:hidden;}
.staff-sub-glide .glide__slide{height:auto;}

/* ============================================================
   Inner-page hero (sub-hero) + breadcrumbs — barefoot/page-hero block
   ============================================================ */
.subhero{position:relative;min-height:62svh;display:flex;align-items:flex-end;color:var(--paper);}
.subhero--short{min-height:54svh;}
.subhero__media{position:absolute;inset:0;overflow:hidden;}
.subhero__media img{width:100%;height:100%;object-fit:cover;object-position:center 42%;}
.subhero__media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(24,35,54,.55) 0%,rgba(24,35,54,.2) 38%,rgba(24,35,54,.45) 62%,rgba(24,35,54,.86) 100%);}
.subhero__inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,6vh,72px);padding-top:150px;}
.subhero h1{color:#fff;margin:0;}
.subhero .lead{max-width:52ch;color:rgba(255,255,255,.92);margin-top:1rem;}
.crumb{display:flex;align-items:center;gap:.55em;flex-wrap:wrap;font-family:var(--sans);font-size:.84rem;font-weight:600;letter-spacing:.02em;margin-bottom:1.2rem;}
.crumb a{color:var(--gold-soft);text-decoration:none;transition:color .2s;}
.crumb a:hover{color:#fff;}
.crumb i{font-size:.7em;opacity:.6;}
.crumb span{color:rgba(245,241,231,.7);}
/* Rank Math breadcrumbs, skinned to match .crumb inside the page hero. */
.subhero .rank-math-breadcrumb{margin-bottom:1.2rem;}
.subhero .rank-math-breadcrumb p{margin:0;display:flex;align-items:center;gap:.55em;flex-wrap:wrap;font-family:var(--sans);font-size:.84rem;font-weight:600;letter-spacing:.02em;color:rgba(245,241,231,.7);}
.subhero .rank-math-breadcrumb a{color:var(--gold-soft);text-decoration:none;transition:color .2s;}
.subhero .rank-math-breadcrumb a:hover{color:#fff;}
.subhero .rank-math-breadcrumb .separator{opacity:.6;}
/* Drop the eyebrow tag on the mini hero on mobile — the banner is tight on phones. */
@media(max-width:767px){.subhero .hero__tag{display:none;}}

/* ============================================================
   Portfolio archive — filterable work grid (archive-bfg_project)
   ============================================================ */
.work-list{background:var(--paper);}
.work-filter{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:6px;margin-bottom:clamp(28px,4vw,44px);}
.work-filter__btn{font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--ink);background:none;border:0;border-radius:999px;padding:9px 18px;cursor:pointer;transition:background .25s,color .25s;}
.work-filter__btn:hover{color:var(--pop);}
.work-filter__btn.active{background:var(--ink);color:#fff;}
.work-card{display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s;}
.work-card:hover{transform:translateY(-5px);box-shadow:0 30px 56px -30px rgba(30,47,77,.55);border-color:transparent;color:inherit;}
.work-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper-2);}
.work-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.work-card:hover .work-card__media img{transform:scale(1.06);}
.work-card__cat{position:absolute;top:14px;left:14px;font-family:var(--sans);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(24,35,54,.55);backdrop-filter:blur(4px);padding:6px 12px;border-radius:999px;}
.work-card__body{padding:22px 24px 24px;display:flex;flex-direction:column;gap:8px;flex:1;}
.work-card__body h3{font-size:1.4rem;margin:0;}
.work-card__loc{font-size:.9rem;color:var(--stone);display:flex;align-items:center;gap:.45em;}
.work-card__loc i{color:var(--gold);}
.work-card__more{font-family:var(--sans);font-weight:600;font-size:.9rem;color:var(--pop);display:inline-flex;align-items:center;gap:.5em;margin-top:4px;transition:gap .2s;}
.work-card:hover .work-card__more{gap:.85em;}
/* theme.js hides the whole column so the grid reflows (no empty gaps). */
.work-card-col[hidden]{display:none;}

/* ============================================================
   Project detail (single-bfg_project)
   ============================================================ */
.proj{background:var(--paper);}
.proj__lead{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3;font-weight:400;color:var(--ink);letter-spacing:-.01em;}
/* Gold highlight inside the intro lead — matches the homepage .intro__statement b
   and .svc-detail__lead b so a bold phrase reads the same everywhere. */
.proj__lead b{font-weight:500;font-style:italic;color:var(--gold);}
.proj p{color:color-mix(in srgb,var(--ink) 82%,transparent);}
.proj-meta{background:var(--paper-2);border:1px solid var(--line);border-radius:18px;padding:26px 28px;}
.proj-meta dl{margin:0;display:flex;flex-direction:column;}
.proj-meta .row-item{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);}
.proj-meta .row-item:last-child{border-bottom:0;padding-bottom:0;}
.proj-meta .row-item:first-child{padding-top:0;}
.proj-meta dt{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);font-weight:700;margin:0;}
.proj-meta dd{margin:0;font-weight:600;color:var(--ink);text-align:right;font-size:.98rem;}
.proj-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.proj-chip{font-size:.82rem;font-weight:600;color:var(--ink);background:#fff;border:1px solid var(--line);padding:6px 13px;border-radius:999px;text-decoration:none;transition:background .2s,color .2s,border-color .2s;}
.proj-chip:hover{background:var(--ink);color:#fff;border-color:var(--ink);}
.proj-figure{margin:0;border-radius:18px;overflow:hidden;}
.proj-figure img{width:100%;height:100%;object-fit:cover;display:block;}
.proj-block h2{margin-bottom:.5rem;}

/* Generic Text block (barefoot/text) — full container width. Optional heading +
   a proj__lead-style gold-<b> title line + WYSIWYG body. */
.text-block__heading{margin-bottom:.5rem;}
.text-block__lead{margin-bottom:1.1rem;}
.text-block__body{color:color-mix(in srgb,var(--ink) 82%,transparent);}
.text-block__body > :last-child{margin-bottom:0;}

/* Full-width gallery slider (Glide) under the intro. Symmetric padding gives the
   gallery + story sections breathing room top AND bottom, so the last story
   section's image isn't flush against the (differently-coloured) prev/next band. */
.gallery-wide-sec{background:var(--paper);overflow:hidden;padding-block:clamp(40px,6vw,72px);}
.proj-section{padding-block:clamp(40px,6vw,72px);}
.gallery-wide{width:100%;padding-inline:clamp(16px,4vw,48px);}
.gallery-wide .glide__slide{height:auto;}
.gallery-wide__item{margin:0;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2);}
.gallery-wide__item img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-wide__controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:28px;}
.gallery-wide__controls .glide__arrows{display:contents;}
.gallery-wide__controls .glide-arrow[data-glide-dir="<"]{order:1;}
.gallery-wide__controls .glide__bullets{order:2;display:flex;gap:9px;align-items:center;position:static;transform:none;}
.gallery-wide__controls .glide-arrow[data-glide-dir=">"]{order:3;}

/* Single full-width testimonial (1 quote → no slider, 1 column). */
.testi-single{width:min(86%,820px);margin:clamp(28px,4vw,48px) auto 0;}

/* Previous / next project bar — two links, prev left, next right. The arrow sits
   on the TITLE row (vertically centred to it), with the label indented above. */
.next-proj{background:var(--paper-2);}
.next-proj__row{display:flex;justify-content:space-between;align-items:start;gap:24px;flex-wrap:wrap;}
.next-proj__link{display:grid;column-gap:16px;text-decoration:none;color:var(--ink);padding:8px 0;max-width:48%;}
.next-proj__link.is-prev{grid-template-columns:auto 1fr;}
/* margin-left:auto keeps "Next" against the right edge even when there's no "Previous". */
.next-proj__link.is-next{grid-template-columns:1fr auto;margin-left:auto;}
.next-proj .np-label{grid-row:1;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);font-weight:700;margin-bottom:6px;}
.next-proj .np-title{grid-row:2;font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.15;color:var(--ink);transition:color .2s;}
.next-proj__link:hover .np-title{color:var(--pop);}
.next-proj .np-arrow{grid-row:2;align-self:center;font-size:1.6rem;color:var(--gold);}
.is-prev .np-label,.is-prev .np-title{grid-column:2;}
.is-prev .np-arrow{grid-column:1;}
.is-next .np-label,.is-next .np-title{grid-column:1;text-align:right;}
.is-next .np-arrow{grid-column:2;}
@media(max-width:575px){.next-proj__link{max-width:100%;}}

/* ============================================================
   Services archive — image service cards (archive-bfg_service)
   ============================================================ */
.svc-list{background:var(--paper);}
/* Reusable inner-page intro strip (barefoot/section-intro) — same paper field as
   the services archive's intro so they read as one consistent component. */
.section-intro{background:var(--paper);}
.svc-card{display:flex;flex-direction:column;height:100%;background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s;text-decoration:none;color:inherit;position:relative;}
.svc-card:hover{transform:translateY(-5px);box-shadow:0 30px 56px -30px rgba(30,47,77,.55);border-color:transparent;color:inherit;}
.svc-card__media{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--paper-2);}
.svc-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1);}
.svc-card:hover .svc-card__media img{transform:scale(1.06);}
.svc-card__num{position:absolute;top:14px;left:16px;font-family:var(--serif);font-style:italic;font-size:1rem;color:#fff;
  background:rgba(24,35,54,.5);backdrop-filter:blur(4px);width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.svc-card__body{padding:26px 26px 28px;display:flex;flex-direction:column;gap:12px;flex:1;}
.svc-card__ic{width:40px;height:40px;color:var(--gold);}
.svc-card__ic svg{width:100%;height:100%;stroke-width:1.4;}
.svc-card h3{font-size:1.45rem;margin:0;}
.svc-card p{font-size:.97rem;line-height:1.55;color:color-mix(in srgb,var(--ink) 80%,transparent);margin:0;flex:1;}
.svc-card__more{font-family:var(--sans);font-weight:600;font-size:.92rem;color:var(--pop);display:inline-flex;align-items:center;gap:.5em;margin-top:4px;transition:gap .2s;}
.svc-card:hover .svc-card__more{gap:.85em;}

/* Single service page — detail (main + sticky sidebar) */
.svc-detail{background:var(--paper);}
.svc-detail__lead{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.3;font-weight:400;color:var(--ink);letter-spacing:-.01em;}
.svc-detail__lead b{font-weight:500;font-style:italic;color:var(--gold);}
.svc-detail p{color:color-mix(in srgb,var(--ink) 82%,transparent);}
.incl{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;}
.incl li{display:flex;align-items:flex-start;gap:.7em;font-size:1rem;color:var(--ink);}
.incl li i{color:var(--pop);font-size:1.05em;margin-top:.15em;flex:none;}
@media(max-width:600px){.incl{grid-template-columns:1fr;}}
.svc-aside{position:sticky;top:108px;display:flex;flex-direction:column;gap:18px;}
.svc-aside__card{background:var(--ink);color:var(--paper);border-radius:18px;padding:30px 28px;}
.svc-aside__card h3{color:#fff;font-size:1.4rem;margin:0 0 8px;}
.svc-aside__card p{color:rgba(245,241,231,.8);font-size:.96rem;margin:0 0 18px;}
.svc-nav{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:14px;}
.svc-nav h4{font-family:var(--sans);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);font-weight:700;margin:8px 12px 10px;}
.svc-nav a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-radius:11px;text-decoration:none;color:var(--ink);font-weight:500;font-size:.98rem;transition:background .2s,color .2s;}
.svc-nav a i{color:var(--gold);transition:transform .2s;}
.svc-nav a:hover{background:var(--paper-2);color:var(--pop);}
.svc-nav a:hover i{color:var(--pop);transform:translateX(2px);}
.svc-nav a.current{background:var(--paper-2);color:var(--pop);}
.svc-nav a.current i{color:var(--pop);}
@media(max-width:991px){.svc-aside{position:static;}}

/* ============================================================
   CTA band — barefoot/cta-band block
   ============================================================ */
.cta-band{position:relative;color:var(--paper);overflow:hidden;isolation:isolate;text-align:center;}
.cta-band__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(24,35,54,.82),rgba(24,35,54,.88));}
.cta-band h2{color:#fff;max-width:20ch;margin:0 auto;}
.cta-band p{color:rgba(245,241,231,.9);max-width:50ch;margin:1rem auto 0;}

/* ============================================================
   CONTACT (Bootstrap forms, brand skin)
   ============================================================ */
.contact .form-label{font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--stone);margin-bottom:6px;}
.contact .form-control,.contact .form-select{border:1.5px solid var(--line);background-color:#fff;border-radius:12px;padding:.7rem 1rem;font-family:var(--sans);font-size:1rem;color:var(--ink);}
.contact .form-select{padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%231E2F4D' stroke-width='1.6'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;background-size:15px 15px;}
.contact .form-control:focus,.contact .form-select:focus{border-color:var(--gold);box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent);}
.contact textarea.form-control{min-height:120px;}
.form-note{font-size:.82rem;color:var(--stone);margin-top:4px;}

/* Contact form rendered by Formidable — match the design's native .form-control look,
   including the red btn-pop submit. Formidable's own markup/classes differ from the
   static design, so these mirror the tokens above (with !important to beat frm styles). */
.contact .frm_forms,
.contact .with_frm_style{max-width:none;}
.contact .frm_forms fieldset{border:0;margin:0;padding:0;min-inline-size:0;}
.contact .frm_form_fields .frm_form_field{margin:0 0 1.1rem;}
.contact .frm_primary_label{display:block;font-size:.82rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--stone);margin-bottom:6px;padding:0;}
.contact .frm_required{color:var(--pop);}
.contact .frm_forms input[type=text],
.contact .frm_forms input[type=email],
.contact .frm_forms input[type=tel],
.contact .frm_forms input[type=number],
.contact .frm_forms select,
.contact .frm_forms textarea{
	width:100%!important;border:1.5px solid var(--line)!important;background-color:#fff!important;border-radius:12px!important;
	padding:.7rem 1rem!important;font-family:var(--sans);font-size:1rem;color:var(--ink)!important;box-shadow:none!important;}
.contact .frm_forms textarea{min-height:120px;}
.contact .frm_forms input:focus,
.contact .frm_forms select:focus,
.contact .frm_forms textarea:focus{
	border-color:var(--gold)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--gold) 22%,transparent)!important;outline:none!important;}
.contact .frm_submit{margin:0;padding:0;clear:both;}
.contact .frm_forms .frm_button_submit{
	display:inline-flex;align-items:center;gap:.5em;background:var(--pop)!important;color:#fff!important;border:0!important;
	font-family:var(--sans);font-weight:600;font-size:1rem;line-height:1.2;border-radius:999px!important;padding:.85rem 1.7rem!important;
	cursor:pointer;box-shadow:0 10px 24px -12px var(--pop)!important;transition:transform .2s,box-shadow .25s;width:auto!important;}
.contact .frm_forms .frm_button_submit:hover{transform:translateY(-1px);box-shadow:0 14px 30px -10px var(--pop);}
.contact .frm_forms .frm_button_submit::after{content:"→";font-size:1.05em;line-height:1;}
/* Two-up layout: replace Formidable 6's 12-col grid with a clean 2-col grid. Fields
   tagged frm_half take one column (Name/Email, Phone/Village); the rest span full. */
.contact .frm_fields_container{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:1rem 1.2rem!important;}
.contact .frm_fields_container > .frm_form_field{grid-column:1 / -1!important;margin:0!important;}
.contact .frm_fields_container > .frm_form_field.frm_half{grid-column:span 1!important;}
.contact .frm_fields_container > .frm_verify,
.contact .frm_form_field.frm_verify{display:none!important;}
@media(max-width:575px){.contact .frm_fields_container{grid-template-columns:1fr!important;}.contact .frm_fields_container > .frm_form_field.frm_half{grid-column:1 / -1!important;}}
.contact__info-sticky{position:sticky;top:120px;}
@media(max-width:991px){.contact__info-sticky{position:static;}}
.ci{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);}
.ci:first-child{padding-top:0;}
.ci:last-child{border-bottom:0;}
.ci__ic{width:40px;height:40px;flex:none;color:var(--gold);}
.ci__ic svg{width:100%;height:100%;}
.ci__ic .bi{font-size:30px;line-height:1;}
.ci h4{font-family:var(--sans);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--stone);font-weight:700;margin-bottom:4px;}
.ci p{margin:0;font-size:1.06rem;color:var(--ink);}
.ci a{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:1.5px solid color-mix(in srgb,var(--gold) 55%,transparent);padding-bottom:1px;transition:color .2s,border-color .2s;}
.ci a:hover{color:var(--pop);border-color:var(--pop);}
.villages{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}
.villages span{font-size:.82rem;color:var(--ink);background:color-mix(in srgb,var(--sage) 16%,transparent);padding:5px 12px;border-radius:999px;}
.soon{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(224,49,46,.12);color:var(--pop);padding:3px 9px;border-radius:999px;font-weight:700;margin-left:8px;}
.social-links{margin:0;display:flex;flex-direction:column;gap:6px;}
.social-links a{font-size:1.06rem;color:var(--ink);font-weight:600;border-bottom:0;padding-bottom:0;width:fit-content;}
.social-links a:hover{color:var(--pop);}
.social-handle{font-family:var(--sans);font-weight:400;font-size:.92rem;color:var(--stone);margin-left:.45em;}
.social-links a:hover .social-handle{color:inherit;}
.social-row{display:flex;flex-direction:column;gap:6px;margin-top:2px;}
.social-btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--sans);font-weight:600;font-size:1.06rem;
  color:var(--ink);width:fit-content;transition:color .2s;}
.social-btn i{font-size:1.05em;line-height:1;color:var(--gold);transition:color .2s;}
.social-btn:hover{color:var(--pop);}
.social-btn:hover i{color:var(--pop);}

/* ============================================================
   INSTAGRAM STRIP
   ============================================================ */
.insta{background:var(--paper);padding-top:clamp(48px,7vw,90px);padding-bottom:clamp(48px,7vw,90px);}
.insta__head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,46px);}
.insta__head .eyebrow{margin-bottom:.7rem;}
.insta__head .eyebrow i{font-size:1.05em;}
.insta__head h2{margin:0;}
.insta-glide{overflow:hidden;}
.insta-glide .glide__slide{height:auto;}
.insta__cell{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--paper-2);border-radius:4px;}
.insta__cell img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.insta__cell:hover img{transform:scale(1.07);}
.insta__ic{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb,var(--ink) 55%,transparent);color:#fff;font-size:1.7rem;
  opacity:0;transition:opacity .3s;}
.insta__cell:hover .insta__ic{opacity:1;}
.insta__note{text-align:center;font-size:.82rem;color:var(--stone);margin:14px 0 0;padding-bottom:clamp(28px,4vw,46px);}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--ink-deep);color:rgba(245,241,231,.78);}
.footer__logo{height:150px;width:auto;max-width:100%;}
.footer h5{font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-soft);font-weight:700;margin:0 0 16px;}
.footer h5 a{color:inherit;text-decoration:none;transition:color .2s;}
.footer h5 a:hover{color:#fff;}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.footer ul a,.footer li{font-size:.96rem;color:rgba(245,241,231,.78);transition:color .2s;text-decoration:none;}
.footer ul a:hover{color:#fff;}
.footer__intro p{font-size:.95rem;max-width:34ch;}
.footer__bottom{border-top:1px solid rgba(245,241,231,.14);font-size:.84rem;color:rgba(245,241,231,.55);}
.footer__bottom a{color:rgba(245,241,231,.55);text-decoration:none;}
.footer__bottom a:hover{color:#fff;}

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1.1s cubic-bezier(.2,.8,.2,1),transform 1.1s cubic-bezier(.2,.8,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}.scroll-cue span{animation:none;}}
