

:root{
  --brown:#4A3C3A;
  --brown-deep:#332724;
  --brown-soft:#5C4D4A;
  --ivory:#F4EDE7;
  --ivory-warm:#EDE3DB;
  --cream:#E8DAD2;
  --blush:#EDB5A8;
  --blush-deep:#D89B8E;
  --serif:'Cormorant Garamond', 'EB Garamond', Garamond, serif;
  --sans:'Jost', 'Helvetica Neue', Helvetica, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--brown);color:var(--ivory);
  font-family:var(--sans);font-weight:300;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
::selection{background:var(--blush);color:var(--brown-deep)}

body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1000;opacity:.035;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
}

.scene{position:relative;overflow:hidden;background:var(--brown-deep)}
.scene .scene-img{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:grayscale(1) contrast(1.06) brightness(.92);z-index:1;
}
.scene .scene-tint{
  position:absolute;inset:0;z-index:2;
  background:linear-gradient(135deg,var(--brown) 0%,var(--brown-deep) 50%,var(--blush-deep) 130%);
  mix-blend-mode:multiply;opacity:.88;
}
.scene .scene-light{
  position:absolute;inset:0;z-index:3;
  background:linear-gradient(135deg,transparent 30%,rgba(237,181,168,.22) 100%);
  mix-blend-mode:screen;opacity:.55;
}
.scene .scene-vignette{
  position:absolute;inset:0;z-index:4;pointer-events:none;
  background:radial-gradient(ellipse at 50% 60%,transparent 35%,rgba(51,39,36,.55) 100%);
}
.scene .scene-content{position:relative;z-index:5}

.slide .scene-tint,
.slide .scene-light{
  -webkit-mask-image:radial-gradient(ellipse 130% 110% at 22% 72%, #000 22%, rgba(0,0,0,.55) 60%, transparent 95%);
  mask-image:radial-gradient(ellipse 130% 110% at 22% 72%, #000 22%, rgba(0,0,0,.55) 60%, transparent 95%);
}

header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:flex-end;
  padding:0 56px;
  height:200px;
  transition:background .6s ease,height .55s cubic-bezier(.4,0,.2,1),padding .4s ease,border-color .6s ease;
  border-bottom:1px solid transparent;
}
header.scrolled{
  height:76px;
}
header::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:rgba(51,39,36,.95);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  -webkit-mask-image:linear-gradient(to right, transparent 0%, transparent 25%, rgba(0,0,0,.6) 55%, #000 90%);
  mask-image:linear-gradient(to right, transparent 0%, transparent 25%, rgba(0,0,0,.6) 55%, #000 90%);
  opacity:0;
  transition:opacity .6s ease;
  pointer-events:none;
}
header.scrolled::before{opacity:1}
header > *{position:relative;z-index:1}
.brand-mark{
  position:fixed;top:0;left:40px;z-index:110;
  width:173px;height:173px;
  pointer-events:none;
  background:rgb(78,63,60);
  transition:width .55s cubic-bezier(.4,0,.2,1), height .55s cubic-bezier(.4,0,.2,1), top .55s cubic-bezier(.4,0,.2,1), background-color .55s cubic-bezier(.4,0,.2,1);
}
body.scrolled .brand-mark{width:144px;height:144px}

a.brand-mark{pointer-events:auto;cursor:pointer}
.brand-mark img{
  display:block;width:90%;height:90%;margin:auto;
  position:absolute;inset:0;
  
  user-select:none;
  -webkit-user-drag:none; user-drag:none;
  pointer-events:none;
  -webkit-touch-callout:none;
}

nav{transform:translateY(-40px);transition:transform .55s cubic-bezier(.4,0,.2,1)}
body.scrolled nav{transform:translateY(0)}
nav ul{display:flex;gap:42px;list-style:none;align-items:center}
nav a{
  color:var(--ivory);text-decoration:none;
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:400;
  position:relative;padding:6px 0;transition:color .3s ease;
}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--blush);transition:width .4s ease}
nav a:hover{color:var(--blush)}
nav a:hover::after{width:100%}
.cta-appt{
  border:1px solid rgba(237,181,168,.4);padding:11px 22px;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--blush);text-decoration:none;transition:all .4s ease;
}
.cta-appt:hover{background:var(--blush);color:var(--brown-deep);border-color:var(--blush)}

.hero{
  height:100vh;min-height:720px;position:relative;
  display:flex;flex-direction:column;justify-content:center;
  padding:140px 56px 80px;overflow:hidden;background:var(--brown-deep);
}
.slider{position:absolute;inset:0;z-index:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 2.4s cubic-bezier(.4,0,.2,1)}
.slide.active{opacity:1}
.slide .scene-img{transform:scale(1.04);transition:transform 8s ease-out}
.slide.active .scene-img{transform:scale(1.12) translate(-1.5%,-1%)}

.hero-inner{position:relative;z-index:5;max-width:1280px;width:100%;margin:0 auto}
.eyebrow{
  display:flex;align-items:center;gap:18px;
  font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--blush);
  margin-bottom:48px;opacity:0;animation:fadeUp 1.2s .4s forwards ease-out;
}
.eyebrow::before{content:"";display:inline-block;width:42px;height:1px;background:var(--blush)}
.hero h1{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(48px,8.4vw,128px);line-height:.98;letter-spacing:-.02em;
  color:var(--ivory);max-width:14ch;margin-bottom:56px;
  text-shadow:0 2px 40px rgba(51,39,36,.35);
}
.hero h1 .l1{display:block;opacity:0;animation:fadeUp 1.2s .55s forwards ease-out}
.hero h1 .l2{display:block;opacity:0;animation:fadeUp 1.2s .75s forwards ease-out}
.hero h1 em{font-style:italic;color:var(--blush);font-weight:400}

.hero-foot{
  display:flex;justify-content:space-between;align-items:flex-end;gap:60px;
  flex-wrap:wrap;border-top:1px solid rgba(232,218,210,.22);
  padding-top:32px;margin-top:80px;
  opacity:0;animation:fadeUp 1.2s 1.05s forwards ease-out;
}
.hero-sub{max-width:50ch;color:rgba(244,237,231,.85);font-size:17px;line-height:1.75;font-weight:300}
.hero-meta{
  display:flex;gap:48px;
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--cream);opacity:.85;
}
.hero-meta div span{display:block;color:var(--blush);margin-bottom:6px;font-size:11px;letter-spacing:.32em;opacity:.95}

.slider-controls{
  position:absolute;bottom:36px;left:56px;z-index:6;
  display:flex;gap:14px;align-items:center;
}
.slider-dot{
  width:36px;height:1px;background:rgba(244,237,231,.3);
  border:none;cursor:pointer;position:relative;overflow:hidden;padding:0;
  transition:background .4s ease;
}
.slider-dot::after{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:var(--blush)}
.slider-dot.active::after{width:100%;transition:width 15s linear}
.slider-caption{
  position:absolute;bottom:36px;right:56px;z-index:6;
  font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(244,237,231,.65);font-feature-settings:"tnum";
}
.slider-caption .place{color:var(--blush);margin-right:14px}

@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}

.manifesto{background:var(--ivory);color:var(--brown-deep);padding:160px 56px;position:relative}
.manifesto-inner{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 2.4fr;gap:80px;align-items:start;
}
.section-label{
  font-family:var(--sans);font-size:15px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--brown);font-weight:400;
}
.services .section-label,
.locations .section-label{color:var(--blush)}
.manifesto p{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(22px,2.4vw,32px);line-height:1.45;
  color:var(--brown-deep);letter-spacing:-.005em;
}
.manifesto p em{font-style:italic;color:var(--brown)}
.manifesto p+p{margin-top:28px}
.divider-mark{
  margin:80px auto 0;width:fit-content;
  display:flex;align-items:center;gap:16px;color:var(--blush-deep);
}
.divider-mark span{width:60px;height:1px;background:currentColor;opacity:.4}
.divider-mark .dot{width:5px;height:5px;background:currentColor;transform:rotate(45deg);opacity:.7}

.interlude{
  height:70vh;min-height:520px;
  position:relative;display:flex;align-items:flex-end;padding:80px 56px;
}
.interlude .scene-content{
  max-width:1280px;width:100%;margin:0 auto;
}
.interlude .place-mark{
  font-size:13px;letter-spacing:.4em;text-transform:uppercase;color:var(--blush);
  margin-bottom:18px;display:flex;align-items:center;gap:14px;
}
.interlude .place-mark::before{content:"";width:32px;height:1px;background:var(--blush)}
.interlude h3{
  font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:clamp(32px,4.2vw,56px);line-height:1.1;
  color:var(--ivory);max-width:18ch;letter-spacing:-.01em;
}
.break-desktop{display:none}
@media (min-width:961px){
  .interlude h3{max-width:30ch}
  .break-desktop{display:inline}
}

.interlude .scene-img{
  transform:scale(1.35);
  will-change:transform;
}
.interlude-body{
  font-family:var(--sans);
  font-weight:300;
  font-style:normal;
  font-size:17px;
  line-height:1.75;
  color:rgba(244,237,231,.85);
  max-width:50ch;
  margin-top:28px;
}
.interlude-body + .interlude-body{
  margin-top:18px;
}

.services{padding:160px 56px;position:relative;
  background:
    radial-gradient(ellipse 80% 70% at 70% 0%, rgba(108,86,80,.4) 0%, transparent 60%),
    radial-gradient(ellipse 100% 100% at 0% 100%, rgba(45,33,30,.5) 0%, transparent 70%),
    linear-gradient(135deg, var(--brown-deep) 0%, var(--brown) 35%, rgb(78,63,60) 100%);
}
.services-head{position:relative;z-index:1;isolation:isolate}
.audiences{position:relative;z-index:2}

.cp-watermark{
  position:absolute;
  top:-160px;left:0;right:0;bottom:0;
  pointer-events:none;user-select:none;
  z-index:-1;
  display:flex;align-items:center;justify-content:flex-start;
  overflow:hidden;
  color:var(--brown-soft);
  opacity:.16;
}
.cp-watermark svg{
  height:200%;
  width:auto;
  max-width:none;
  display:block;
  position:relative;
  top:20%;
  margin-right:auto;
  margin-left:4%;
}
.services-head{
  max-width:1280px;margin:0 auto;padding-bottom:100px;
  display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:end;
}
.services-head h2{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(36px,5vw,72px);line-height:1.02;letter-spacing:-.015em;color:var(--ivory);
}
.services-head h2 em{font-style:italic;color:var(--blush)}
.services-head .lede{
  font-size:17px;line-height:1.75;color:rgba(244,237,231,.7);
  font-weight:300;max-width:54ch;margin-top:24px;
}
.services-head .lede-sub{
  font-size:17px;line-height:1.75;color:rgba(244,237,231,.6);
  font-weight:300;max-width:54ch;margin-top:18px;
  font-style:normal;
  letter-spacing:.005em;
}
.services-head .lede-sub em{
  font-style:italic;color:var(--blush);font-weight:400;
}

.audiences{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  position:relative;
}
.audiences::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(to right,
    transparent 0%,
    rgba(232,218,210,.18) 12%,
    rgba(232,218,210,.18) 88%,
    transparent 100%);
}
.audience{
  padding:64px 40px 56px 40px;
  position:relative;
  transition:padding .6s cubic-bezier(.2,.7,.2,1);
  isolation:isolate;
}

.audience:not(:last-child)::before{
  content:"";position:absolute;
  top:0;bottom:0;right:0;width:1px;
  background:linear-gradient(to bottom,
    transparent 0%,
    rgba(232,218,210,.16) 18%,
    rgba(232,218,210,.16) 82%,
    transparent 100%);
}

.audience::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 80% 60% at 0% 0%,
    rgba(237,181,168,.08) 0%,
    rgba(237,181,168,.03) 40%,
    transparent 75%);
  opacity:0;
  transition:opacity .8s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.audience:hover::after{opacity:1}

.audience h3{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(28px,2.6vw,40px);line-height:1.04;
  letter-spacing:-.012em;color:var(--ivory);
  margin-bottom:28px;max-width:14ch;
  position:relative;
}

.audience .desc{
  font-size:16px;line-height:1.8;
  color:rgba(244,237,231,.7);font-weight:300;
  margin-bottom:44px;max-width:38ch;
  transition:color .55s ease;
}
.audience:hover .desc{color:rgba(244,237,231,.78)}

.audience .label{
  font-size:13px;letter-spacing:.36em;text-transform:uppercase;
  color:var(--blush);font-weight:400;
  margin-bottom:8px;
  padding-bottom:18px;
  position:relative;
  display:flex;align-items:center;gap:12px;
}
.audience .label::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(to right, rgba(237,181,168,.4) 0%, transparent 100%);
}
.calo-mark{
  color:var(--blush);
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
  font-size:1.15em;
  letter-spacing:.04em;
}
.audience .label.calo{
  color:rgba(232,218,210,.6);
  margin-top:36px;
  font-style:italic;
  letter-spacing:.04em;
  font-family:var(--serif);
  font-size:18px;
  text-transform:none;
  font-weight:400;
}
.audience .label.calo::after{
  background:linear-gradient(to right, rgba(232,218,210,.18) 0%, transparent 100%);
}
.audience .calo-list li{
  font-size:17px;
  color:rgba(244,237,231,.65);
  font-style:italic;
  font-weight:300;
}
.audience .calo-list li::before{
  background:rgba(232,218,210,.4);
}
.audience .calo-list li:hover{
  color:rgba(244,237,231,.85);
}

.audience ul{list-style:none;padding:0;margin:0}
.audience li{
  font-family:var(--serif);
  font-weight:400;font-size:18px;line-height:1.35;
  color:rgba(244,237,231,.85);
  padding:16px 4px 16px 0;
  position:relative;
  display:flex;align-items:center;gap:14px;
  cursor:default;
  transition:color .45s cubic-bezier(.2,.7,.2,1),
             padding-left .55s cubic-bezier(.2,.7,.2,1),
             letter-spacing .55s ease;
  border-bottom:1px solid rgba(232,218,210,.06);
}
.audience li:last-child{border-bottom:none}

.audience li::before{
  content:"";flex:none;
  width:6px;height:1px;
  background:var(--blush);
  transition:width .5s cubic-bezier(.2,.7,.2,1);
}

.audience li:hover{
  color:var(--ivory);
  padding-left:8px;
  letter-spacing:.005em;
}
.audience li:hover::before{width:16px}

.approach{background:var(--ivory-warm);color:var(--brown-deep);padding:160px 56px}
.approach-inner{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:5fr 3fr;gap:96px;align-items:center;
}
.approach-img{
  position:relative;
  width:100%;            
  aspect-ratio:1/1;
  background:var(--brown);
  overflow:hidden;
  
  max-height:calc(100vh - 320px);
}

@media (min-width: 1728px){
  .approach{ padding-left:253px; }
}
@media (min-width: 1500px){
  .approach-inner{ max-width:1500px; }
}
@media (min-width: 1900px){
  .approach-inner{ max-width:1700px; }
}
@media (min-width: 2300px){
  .approach-inner{ max-width:1900px; }
}

@media (orientation: portrait) and (min-width: 600px){
  .approach-img{ aspect-ratio:4/5; }
}
.approach-img .scene-img{
  background-image:url("https://images.unsplash.com/photo-1547656872-3d7d28f1d44b?auto=format&fit=crop&w=1200&q=85");
}
.approach-img::after{
  content:"";position:absolute;top:24px;left:24px;right:24px;bottom:24px;
  border:1px solid rgba(244,237,231,.45);pointer-events:none;z-index:6;
}
.approach-text h2{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(36px,4.4vw,60px);line-height:1.05;letter-spacing:-.015em;
  color:var(--brown-deep);margin:32px 0 36px;max-width:14ch;
}
.approach-text h2 em{font-style:italic;color:var(--blush-deep)}
.approach-text p{font-size:17px;line-height:1.75;color:var(--brown);font-weight:300;max-width:54ch;margin-bottom:20px}
.approach-meta{
  margin-top:56px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
  padding-top:32px;border-top:1px solid rgba(74,60,58,.18);
}
.approach-meta div .figure{
  font-family:var(--serif);font-weight:400;
  font-size:42px;line-height:1;color:var(--brown-deep);
  margin-bottom:8px;letter-spacing:-.02em;
}
.approach-meta div .figure em{font-style:italic;color:var(--blush-deep)}
.approach-meta div .label{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--brown);opacity:.7}

.patronage-slider{
  position:absolute;inset:0;z-index:0;
}
.patronage-slide{
  position:absolute;inset:0;opacity:0;
  transition:opacity 2.4s cubic-bezier(.4,0,.2,1);
}
.patronage-slide.active{opacity:1}

.patronage-slide .scene-img{
  transform:scale(1.04);
  transition:transform 16s ease-out;
  filter:grayscale(1) contrast(1.06) brightness(1.04);
}
.patronage-slide.active .scene-img{
  transform:scale(1.12) translate(-1.5%,-1%);
}
.patronage-slide .scene-tint{opacity:.62}
.patronage-slide .scene-light{opacity:.7}
.patronage-slide .scene-vignette{
  opacity:1;
  background:radial-gradient(ellipse at 50% 55%,transparent 50%,rgba(51,39,36,.42) 100%);
}

.patronage-slider-caption{
  position:absolute;
  right:36px;bottom:36px;
  z-index:7;
  font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:rgba(244,237,231,.65);
  font-feature-settings:"tnum";
}
.patronage-slider-caption .place{
  color:var(--blush);
  margin-right:14px;
}
@media (max-width:960px){
  .patronage-slider-caption{right:48px;bottom:48px;font-size:9px}
}

.pullquote{padding:0;position:relative;overflow:hidden}
.pullquote.scene{min-height:560px;display:flex;align-items:center;padding:140px 56px}
.pullquote .scene-img{
  background-image:url("https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=1920&q=85");
}
.pullquote .scene-tint{opacity:.92}
.pullquote::after{
  content:"";position:absolute;inset:60px 56px;z-index:5;
  border:1px solid rgba(232,218,210,.16);pointer-events:none;
}
.pullquote-inner{max-width:1000px;margin:0 auto;text-align:center;position:relative;z-index:6}
.quote-mark{font-family:var(--serif);font-style:italic;font-size:120px;line-height:.4;color:var(--blush);opacity:.7;margin-bottom:30px;display:block}
.pullquote blockquote{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(28px,3.6vw,48px);line-height:1.25;letter-spacing:-.01em;
  color:var(--ivory);text-shadow:0 2px 40px rgba(51,39,36,.4);
}
.pullquote blockquote em{font-style:italic;color:var(--blush)}
.pullquote cite{display:block;margin-top:48px;font-style:normal;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--cream);opacity:.85}
.pullquote cite span{color:var(--blush);margin-right:14px}

.locations{padding:160px 56px 140px;position:relative;
  background:
    radial-gradient(ellipse 70% 65% at 80% 15%, rgba(108,86,80,.42) 0%, transparent 60%),
    radial-gradient(ellipse 90% 90% at 0% 80%, rgba(45,33,30,.55) 0%, transparent 65%),
    linear-gradient(105deg, var(--brown-deep) 0%, var(--brown) 40%, rgb(78,63,60) 100%);
}
.locations-inner{max-width:1280px;margin:0 auto}
.locations-head{
  display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:end;margin-bottom:32px;
}
.locations-head h2{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(36px,5vw,68px);line-height:1.05;letter-spacing:-.015em;color:var(--ivory);
}
.locations-head h2 em{font-style:italic;color:var(--blush)}
.locations-list{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  position:relative;
}
.locations-list::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(to right,
    transparent 0%,
    rgba(232,218,210,.18) 12%,
    rgba(232,218,210,.18) 88%,
    transparent 100%);
}
.location{
  cursor:default;display:flex;flex-direction:column;
  background:transparent;
  position:relative;
  isolation:isolate;
  transition:background .55s ease;
}
.location:not(:last-child)::before{
  content:"";position:absolute;
  top:0;bottom:0;right:0;width:1px;
  background:linear-gradient(to bottom,
    transparent 0%,
    rgba(232,218,210,.16) 12%,
    rgba(232,218,210,.16) 88%,
    transparent 100%);
  z-index:1;
}

.location::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 80% 60% at 0% 0%,
    rgba(237,181,168,.08) 0%,
    rgba(237,181,168,.03) 40%,
    transparent 75%);
  opacity:0;
  transition:opacity .8s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;
}
.location:hover::after{opacity:1}

.location .city-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--brown-deep)}

.location .city-img .scene-img{
  filter:grayscale(1) contrast(1.06) brightness(1.04);
  transition:
    transform 1.8s cubic-bezier(.2,.7,.2,1),
    filter 1s cubic-bezier(.4,0,.2,1);
}
.location .city-img .scene-tint{
  opacity:.62;
  transition:opacity 1s cubic-bezier(.4,0,.2,1);
}
.location .city-img .scene-light{
  opacity:.7;
  transition:opacity 1s cubic-bezier(.4,0,.2,1);
}
.location .city-img .scene-vignette{
  opacity:1;
  background:radial-gradient(ellipse at 50% 55%,transparent 50%,rgba(51,39,36,.42) 100%);
  transition:opacity 1s cubic-bezier(.4,0,.2,1);
}

.location:hover .city-img .scene-img{
  transform:scale(1.025);
  filter:grayscale(.95) contrast(1.04) brightness(.98);
}
.location:hover .city-img .scene-tint{ opacity:.31; }
.location:hover .city-img .scene-light{ opacity:.35; }
.location:hover .city-img .scene-vignette{ opacity:.5; }

.location .city-info{padding:40px 40px 44px 40px}

.location .city{
  font-family:var(--serif);font-weight:400;
  font-size:38px;line-height:1;letter-spacing:-.012em;
  color:var(--ivory);margin-bottom:16px;
}
.location.hq .city{}

.location .country{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cream);opacity:.55;
  padding-bottom:14px;margin-bottom:14px;
  position:relative;display:inline-block;
  font-feature-settings:"tnum";
}
.location .country::after{
  content:"";position:absolute;
  left:0;bottom:0;width:32px;height:1px;
  background:rgba(237,181,168,.4);
}

.location .coords{
  font-size:11px;letter-spacing:.18em;
  color:var(--cream);opacity:.42;
  font-feature-settings:"tnum";
  padding-bottom:14px;
  margin-bottom:14px;
  position:relative;
  display:inline-block;
}
.location .coords::after{
  content:"";position:absolute;
  left:0;bottom:0;width:32px;height:1px;
  background:rgba(237,181,168,.4);
}

.location .address{
  font-family:var(--serif);
  font-weight:400;font-size:16px;line-height:1.65;
  color:rgba(244,237,231,.78);
  font-style:normal;
  letter-spacing:.005em;
}
.location .address .firm{
  display:block;
  color:var(--ivory);
  font-weight:500;
  margin-bottom:6px;
  letter-spacing:.01em;
}
.location .address .email{
  display:block;
  margin-top:14px;
  font-family:var(--sans);
  font-weight:300;
  font-size:13px;
  letter-spacing:.04em;
  color:var(--ivory);
  text-decoration:none;
  width:fit-content;
  transition:color .3s ease;
}
.location .address .email:hover{
  color:var(--blush);
}

.location .badge{
  display:inline-block;
  font-family:var(--sans);
  font-size:10px;letter-spacing:.32em;
  color:var(--blush);
  margin-top:24px;
  text-transform:uppercase;
  padding-top:16px;
  border-top:1px solid rgba(237,181,168,.25);
}

.locations-map{
  max-width:1500px;
  margin:0 auto;
  padding:24px 0 0;
  position:relative;
  
  user-select:none;
  -webkit-user-drag:none; user-drag:none;
  -webkit-touch-callout:none;
}
.locations-map svg{
  -webkit-user-drag:none; user-drag:none;
}
.locations-map svg{
  width:100%;
  height:auto;
  max-height:620px;
  display:block;
  margin:0 auto;
  overflow:visible;
}

.locations-map svg{overflow:visible}

.locations-map .pin-group{
  --pin-delay:0s;
}

.locations-map .pin-shadow{
  fill:var(--ivory);
  opacity:.12;
  transform-origin:center;
  transform-box:fill-box;
  filter:blur(3px);
  animation:pinShadow 9s cubic-bezier(.4,0,.2,1) infinite;
  animation-delay:var(--pin-delay);
}
@keyframes pinShadow{
  0%, 33%, 100% {transform:scale(1.4); opacity:.10}
  10%           {transform:scale(2.2); opacity:.32}
  18%           {transform:scale(1.8); opacity:.20}
}

.locations-map .pin-core{
  fill:var(--ivory);
}
.locations-map .pin-sheen{
  
  transform-origin:center;
  transform-box:fill-box;
  animation:pinSheen 9s linear infinite;
  animation-delay:var(--pin-delay);
}
@keyframes pinSheen{
  0%   {transform:rotate(0deg);   opacity:0}
  3%   {                          opacity:.85}
  18%  {                          opacity:.85}
  33%  {transform:rotate(540deg); opacity:0}
  100% {transform:rotate(540deg); opacity:0}
}

.locations-map .pin-spec{
  fill:#fff;
  opacity:0;
  transform-origin:center;
  transform-box:fill-box;
  animation:pinSpec 9s cubic-bezier(.4,0,.2,1) infinite;
  animation-delay:var(--pin-delay);
}
@keyframes pinSpec{
  0%, 33%, 100% {opacity:0;  transform:rotate(0deg)   translate(0,0)}
  3%            {opacity:.95; transform:rotate(0deg)   translate(0,0)}
  10%           {opacity:.85; transform:rotate(180deg) translate(0,0)}
  18%           {opacity:.7;  transform:rotate(360deg) translate(0,0)}
  28%           {opacity:0;   transform:rotate(540deg) translate(0,0)}
}

.locations-map .pin-ring{
  fill:none;
  stroke:var(--ivory);
  stroke-width:1.4;
  opacity:0;
  transform-origin:center;
  transform-box:fill-box;
  animation:pinRing 9s cubic-bezier(.16,.85,.3,1) infinite;
  animation-delay:var(--pin-delay);
}
@keyframes pinRing{
  0%   {transform:scale(1);   opacity:.55; stroke-width:1.6}
  20%  {                      opacity:.20; stroke-width:1.0}
  33%  {transform:scale(3.4); opacity:0;   stroke-width:.4}
  100% {transform:scale(3.4); opacity:0;   stroke-width:.4}
}

.locations-map .pin-label{
  font-family:var(--sans);
  font-size:15px;
  fill:var(--ivory);
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:400;
  
  filter:drop-shadow(0 2px 3px rgba(20,15,14,.55))
         drop-shadow(0 0 12px rgba(20,15,14,.35));
  paint-order:stroke fill;
}
.locations-map .pin-label.hq{
  fill:var(--ivory);
  font-weight:400;
}
.locations-map .pin-sublabel{
  font-family:var(--serif);
  font-style:italic;
  font-size:18px;
  fill:var(--ivory);
  letter-spacing:.02em;
  font-weight:400;
  filter:drop-shadow(0 2px 4px rgba(20,15,14,.55))
         drop-shadow(0 0 14px rgba(20,15,14,.4));
  paint-order:stroke fill;
}
.locations-map .country-label{
  font-family:var(--sans);
  font-size:13px;
  fill:var(--ivory);
  opacity:.42;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-weight:400;
}

.locations-map .connector{
  fill:none;
  stroke:rgba(244,237,231,.55);
  stroke-width:1.5;
  stroke-dasharray:4 5;
  stroke-linecap:round;
}

footer{background:var(--brown-deep);padding:120px 56px 56px;color:var(--cream);position:relative}
.footer-inner{
  max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:60px;
  padding-bottom:80px;border-bottom:1px solid rgba(232,218,210,.1);
}
.footer-brand .mark{display:block;width:140px;height:140px;margin-bottom:24px;border:1px solid rgba(232,218,210,.1);box-sizing:border-box;}
.footer-brand p{font-size:13px;line-height:1.85;color:rgba(244,237,231,.6);max-width:36ch;margin-top:24px}
.footer-col h4{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--blush);font-weight:500;margin-bottom:24px}
.footer-col ul{list-style:none}
.footer-col li{font-size:13px;line-height:2;color:rgba(244,237,231,.7)}
.footer-col a{color:inherit;text-decoration:none;transition:color .3s ease}
.footer-col a:hover{color:var(--blush)}
.footer-col .addr{font-size:13px;line-height:1.85;color:rgba(244,237,231,.7);font-style:normal}
.footer-col .addr strong{color:var(--cream);font-weight:400;display:block;margin-bottom:6px}
.footer-bottom{
  max-width:1280px;margin:48px auto 0;
  display:flex;justify-content:space-between;align-items:center;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:rgba(244,237,231,.4);flex-wrap:wrap;gap:24px;
}
.footer-bottom a{
  color:inherit;text-decoration:none;
  transition:color .3s ease;
}
.footer-bottom a:hover{color:var(--blush)}

.klaro{
  
  --font-family: var(--sans);
  --title-font-family: var(--serif);
  --font-size: 14px;

  --border-radius: 0;
  --border-width: 1px;
  --border-style: solid;

  --dark1: var(--ivory);            
  --dark2: rgba(74,60,58,.12);      
  --dark3: var(--brown);            
  --light1: var(--brown-deep);      
  --light2: rgba(74,60,58,.18);     
  --light3: var(--ivory-warm);      
  --white1: var(--ivory);
  --white2: var(--ivory-warm);
  --white3: var(--cream);

  --green1: var(--brown-deep);
  --green2: var(--brown);
  --green3: var(--brown-soft);

  --blue1: var(--brown-deep);
  --blue2: var(--blush-deep);
  --blue3: var(--brown);

  --button-text-color: var(--ivory);
}

.klaro .cookie-notice,
.klaro .cookie-modal .cm-modal{
  font-family: var(--sans);
  color: var(--brown-deep);
  border: 1px solid rgba(74,60,58,.18) !important;
  box-shadow: 0 6px 32px rgba(51,39,36,.18) !important;
  border-radius: 0 !important;
}

.klaro .cookie-notice:not(.cookie-modal-notice){
  border-radius: 0 !important;
  box-shadow: 0 6px 32px rgba(51,39,36,.18) !important;
}

.klaro .cookie-modal .cm-modal.cm-klaro{
  border: 1px solid rgba(74,60,58,.22) !important;
  border-radius: 0 !important;
  box-shadow: 0 6px 32px rgba(51,39,36,.18) !important;
}

.klaro .cookie-notice:focus,
.klaro .cookie-modal:focus,
.klaro .cookie-modal .cm-modal:focus,
.klaro [tabindex]:focus{
  outline: none !important;
}
.klaro .cm-btn:focus,
.klaro .cm-link:focus,
.klaro button:focus,
.klaro a:focus{
  outline: none;
}
.klaro .cm-btn:focus-visible,
.klaro .cm-link:focus-visible,
.klaro button:focus-visible,
.klaro a:focus-visible{
  outline: 1px solid var(--brown-deep);
  outline-offset: 2px;
}

.klaro .cookie-notice{
  background: var(--ivory-warm) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: klaro-bg-fade-in .55s cubic-bezier(.4,0,.2,1) both;
}
.klaro .cookie-modal .cm-bg{
  background: rgba(51, 39, 36, 0.20) !important;      
  backdrop-filter: blur(16px) saturate(1.1) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.1) !important;
  animation: klaro-bg-fade-in .55s cubic-bezier(.4,0,.2,1) both;
}
.klaro .cookie-modal .cm-modal{
  background: rgba(237, 227, 219, 0.97);              
  animation: klaro-modal-fade-in .55s cubic-bezier(.4,0,.2,1) both;
  animation-delay: .08s;
}

@media (min-width: 1024px){
  .klaro .cookie-notice:not(.cookie-modal-notice){
    max-width: 460px !important;
  }
}

.klaro .cookie-notice .cn-body{
  padding: 26px 24px !important;
}
.klaro .cookie-modal .cm-modal .cm-header,
.klaro .cookie-modal .cm-modal .cm-body,
.klaro .cookie-modal .cm-modal .cm-footer{
  padding: 24px 36px !important;
}

.klaro .cookie-notice .cn-body{
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 0 !important;                       
}
.klaro .cookie-notice .cn-body > p{
  flex-basis: 100%;                        
  margin: 0 0 24px 0 !important;           
}

.klaro .cookie-notice .cn-body .cn-learn-more{
  flex: 0 0 auto;
  flex-grow: 0 !important;
  margin: 0 22px 0 0 !important;
}
.klaro .cookie-notice .cn-body .cn-buttons{
  display: inline-flex !important;
  align-items: center;
  gap: 12px;                               
  margin: 0 !important;
  flex: 0 0 auto;
}

.klaro .cookie-notice .cn-body .cn-buttons .cm-btn{
  margin: 0 !important;
}

.klaro .cookie-notice .cm-btn.cn-decline,
.klaro .cookie-notice .cm-btn.cm-btn-success{
  padding: 11px 18px !important;
}

.klaro .cookie-modal .cm-modal .cm-header,
.klaro .cookie-modal .cm-modal .cm-footer{
  border: 0 !important;
  position: relative;
}
.klaro .cookie-modal .cm-modal .cm-header::after,
.klaro .cookie-modal .cm-modal .cm-footer::before{
  content: "";
  position: absolute;
  left: 36px;
  right: 36px;
  height: 1px;
  background: rgba(74,60,58,.18);
}
.klaro .cookie-modal .cm-modal .cm-header::after{ bottom: 0; }
.klaro .cookie-modal .cm-modal .cm-footer::before{ top: 0; }

.klaro .cookie-notice .cm-btn.cn-decline,
.klaro .cookie-notice .cm-btn.cm-btn-success,
.klaro .cookie-modal .cm-btn.cn-decline,
.klaro .cookie-modal .cm-btn.cm-btn-decline,
.klaro .cookie-modal .cm-btn.cm-btn-success,
.klaro .cookie-modal .cm-btn.cm-btn-success-var{
  background: transparent !important;
  border: 1px solid rgba(74,60,58,.4) !important;
  color: var(--brown-deep) !important;
  padding: 11px 22px !important;
  font-family: var(--sans);
  font-size: 11px !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  display: inline-block;
  line-height: 1.2;
  transition: color .4s ease, border-color .4s ease !important;
}
.klaro .cookie-notice .cm-btn.cn-decline:hover,
.klaro .cookie-notice .cm-btn.cm-btn-success:hover,
.klaro .cookie-modal .cm-btn.cn-decline:hover,
.klaro .cookie-modal .cm-btn.cm-btn-decline:hover,
.klaro .cookie-modal .cm-btn.cm-btn-success:hover,
.klaro .cookie-modal .cm-btn.cm-btn-success-var:hover{
  background: transparent !important;
  color: var(--blush-deep) !important;
  border-color: var(--blush-deep) !important;
}

.klaro .cm-link.cn-learn-more{
  background: transparent !important;
  border: 0 !important;
  color: var(--brown-deep) !important;
  padding: 11px 0 !important;
  font-family: var(--sans);
  font-size: 11px !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  text-decoration-color: transparent !important;
  display: inline-block;
  line-height: 1.2;
  transition: color .4s ease !important;
}
.klaro .cm-link.cn-learn-more:hover{
  color: var(--blush-deep) !important;
}

.klaro .cookie-notice .cm-btn.cn-decline::after,
.klaro .cookie-modal .cm-btn.cn-decline::after,
.klaro .cookie-modal .cm-btn.cm-btn-decline::after{
  content: none !important;
}

.klaro .cookie-notice .cn-body p a:hover,
.klaro .cookie-modal p a:hover{
  color: var(--blush-deep);
  border-bottom-color: var(--blush-deep);
}

.klaro .cookie-modal .cm-modal .cm-footer-buttons{
  justify-content: flex-end !important;
  align-items: center;
  gap: 18px;
}

@keyframes klaro-bg-fade-in{
  from{ opacity: 0 }
  to  { opacity: 1 }
}
@keyframes klaro-modal-fade-in{
  from{ opacity: 0 }
  to  { opacity: 1 }
}

@keyframes klaro-fade-out{
  to{ opacity: 0 }
}
.klaro .cookie-modal.klaro-closing .cm-bg,
.klaro .cookie-modal.klaro-closing .cm-modal,
.klaro .cookie-notice.klaro-closing{
  animation: klaro-fade-out .35s cubic-bezier(.4,0,.2,1) both !important;
  animation-delay: 0s !important;
}
.klaro .cookie-notice .cn-body p,
.klaro .cookie-modal p{
  color: var(--brown);
  font-size: 14px;
  line-height: 1.65;
}
.klaro .cookie-notice .cn-body p a,
.klaro .cookie-modal p a{
  color: var(--brown-deep);
  border-bottom: 1px solid rgba(74,60,58,.3);
  text-decoration: none;
}
.klaro .cookie-notice .cn-body p a:hover,
.klaro .cookie-modal p a:hover{
  color: var(--blush);
  border-bottom-color: var(--blush);
}

.klaro .cm-link.cn-learn-more,
.klaro .cm-link{
  color: var(--brown-deep) !important;
  border-bottom: 0 !important;
  text-decoration: underline;
  text-decoration-color: rgba(74,60,58,.3);
  text-underline-offset: 3px;
  transition: color .3s ease, text-decoration-color .3s ease;
}
.klaro .cm-link.cn-learn-more:hover,
.klaro .cm-link:hover{
  color: var(--blush) !important;
  text-decoration-color: var(--blush);
}
.klaro .cookie-modal .cm-modal .cm-header h1,
.klaro .cookie-modal .cm-modal .cm-header h1.title{
  font-family: var(--serif);
  font-weight: 400;
  color: var(--brown-deep);
  letter-spacing: -.005em;
  font-size: 26px;
}

.klaro .cookie-notice .cn-body h2{
  flex-basis: 100%;                  
  margin: 0 0 10px 0;
  font-family: var(--serif);
  font-weight: 400;
  color: var(--brown-deep);
  letter-spacing: -.005em;
  font-size: 22px;
  line-height: 1.2;
}

.klaro .cookie-modal .cm-purpose .cm-list-title,
.klaro .cookie-modal .cm-services .cm-list-title,
.klaro .cm-list-title{
  color: var(--brown-deep) !important;
  font-family: var(--sans) !important;
  font-weight: 400 !important;
  letter-spacing: .01em;
}

.klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input:checked + .cm-list-label .slider,
.klaro .cookie-modal .cm-list-input.required:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input.required:checked + .cm-list-label .slider{
  background: var(--brown) !important;
  opacity: 0.8 !important;
}

.klaro .cm-required,
.klaro .cm-opt-out{
  color: var(--brown-deep) !important;
  opacity: 0.6;
}

.klaro .cookie-modal .cm-modal .cm-body ul.cm-services li p.purposes,
.klaro .cookie-modal .cm-modal .cm-body ul.cm-purposes li p.purposes{
  color: var(--brown-deep) !important;
  opacity: 0.6;
}

.klaro .cookie-modal .slider,
.klaro .cookie-notice .slider,
.klaro .cookie-modal .slider::before,
.klaro .cookie-notice .slider::before{
  box-shadow: none !important;
}
.klaro .cookie-modal .cm-purpose .cm-list-description,
.klaro .cookie-modal .cm-services .cm-list-description{
  color: var(--brown);
}

.klaro .cookie-notice .cm-btn,
.klaro .cookie-modal .cm-btn{
  font-family: var(--sans);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: 11px 22px;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}

.klaro .cookie-notice .cm-btn-decline,
.klaro .cookie-modal .cm-btn-decline{
  background: transparent;
  color: var(--brown-deep);
  border: 1px solid rgba(74,60,58,.4);
}
.klaro .cookie-notice .cm-btn-decline:hover,
.klaro .cookie-modal .cm-btn-decline:hover{
  background: var(--brown-deep);
  color: var(--ivory);
  border-color: var(--brown-deep);
}

.cp-cookie-trigger{
  display:inline-block;
  font-family:var(--sans);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brown-deep);
  background:transparent;
  border:1px solid rgba(74,60,58,.4);
  padding:11px 22px;
  cursor:pointer;
  text-decoration:none;
  transition:background .3s ease,color .3s ease,border-color .3s ease;
}
.cp-cookie-trigger:hover{
  background:var(--brown-deep);
  color:var(--ivory);
  border-color:var(--brown-deep);
}

html.from-legal header{height:76px}
html.from-legal nav{transform:translateY(0)}
html.from-legal .brand-mark{width:144px;height:144px}
@media (max-width:960px){
  html.from-legal header{height:72px}
  
  html.from-legal .brand-mark{width:94px;height:94px}
}

.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal.delay-1{transition-delay:.1s}.reveal.delay-2{transition-delay:.2s}
.reveal.delay-3{transition-delay:.3s}.reveal.delay-4{transition-delay:.4s}
.reveal.delay-5{transition-delay:.5s}

@media (max-width:1727px) and (min-width:961px){
  
  .hero,
  .manifesto,
  .services,
  .approach,
  .pullquote.scene,
  .locations,
  .interlude,
  footer{padding-left:253px}
}
@media (max-width:960px){
  /* Mobile main page: header height + nav transform are CONSTANT, so the
     CTA stays at the same y-position whether scrolled or not — same setup
     as legal pages. The brand-mark still grows/shrinks (113→94) on its
     own. Only iOS adds a translateY on the CTA itself for the
     "snap-to-logo-top" effect (see is-ios block further down). */
  header{padding:0 24px;height:72px}
  header.scrolled{padding:0 24px;height:72px}
  nav{transform:translateY(0)}
  body.scrolled nav{transform:translateY(0)}
  /* Match the from-legal arrival state to the constant 72px height too,
     so transitioning back from a legal page doesn't trigger a header
     height animation on mobile. */
  html.from-legal header{height:72px}
  .brand-mark{top:0;left:20px;width:113px;height:113px}
  body.scrolled .brand-mark{width:94px;height:94px}

  nav ul{gap:24px}
  nav a:not(.cta-appt){display:none}
  
  .hero{
    padding:140px 24px 200px;
    height:auto;
    min-height:calc(100svh + 160px);
    justify-content:flex-start;
  }
  .hero-foot{
    margin-top:48px;
    padding-top:24px;
    flex-direction:column;
    align-items:flex-start;
    gap:28px;
  }
  
  .slider-caption{right:24px;bottom:80px;font-size:9px}
  .slider-controls{left:24px;bottom:36px}
  .manifesto,.services,.approach,.locations,footer{padding-left:24px;padding-right:24px}
  .pullquote.scene{padding:100px 24px}
  
  .hero,.manifesto,.services,.approach,.pullquote.scene,.locations,footer{padding-left:134px}
  
  .interlude{
    padding-top:160px; padding-bottom:160px;
    padding-left:134px; padding-right:24px;
    height:auto;
    min-height:520px;
  }
  .manifesto-inner,.services-head,.approach-inner,.locations-head,.interlude .scene-content{grid-template-columns:1fr;gap:30px}
  .interlude .coordinates{text-align:left}
  
  .locations-list::before{display:none}
  .location:not(:last-child)::before{display:none}
  .location::after{display:none}
  
  .location:hover .city-img .scene-img{
    transform:none;
    filter:grayscale(.92) contrast(1.06) brightness(1.04);
  }
  .location:hover .city-img .scene-tint{opacity:.62}
  .location:hover .city-img .scene-light{opacity:.7}
  .location:hover .city-img .scene-vignette{opacity:1}
  
  .locations-map{
    max-width:none;
    width:100vw;
    margin-left:-134px;
    padding:24px 0 0;
    overflow:hidden;
  }
  .locations-map svg{
    width:135vw;
    max-height:none;
    margin-left:-15vw;
  }
  
  .locations-map .country-austria{ transform:translate(-160px, 25px); }

  .cp-watermark{
    overflow:visible;
    opacity:.18;
    left:-134px;
    right:-24px;
    justify-content:center;
  }
  .cp-watermark svg{
    height:auto;
    width:140vw;
    max-width:none;
    margin-left:0;
    margin-right:0;
    top:0;
  }

  .approach{padding-top:0}
  
  .approach-text p{max-width:42ch}
  .approach-img{
    width:100vw;
    margin-left:-134px;
    aspect-ratio:1/1;
    max-height:none;
  }
  .approach-text{margin-top:80px;max-width:calc(100vw - 158px)}

  .audiences{grid-template-columns:1fr;border-right:none}
  
  .services-head{padding-bottom:80px}
  .audience{padding:0!important;border:none!important}
  .audience + .audience{padding-top:80px!important}
  
  .audiences::before{display:none}
  .audience:not(:last-child)::before{display:none}
  .audience::after{display:none}
  .audience:hover .desc{color:rgba(244,237,231,.7)}

  .audience li{padding:10px 4px 10px 0; transition:none}
  .audience li:hover{
    color:rgba(244,237,231,.85);   
    padding-left:0;
    letter-spacing:normal;
  }
  .audience .calo-list li:hover{
    color:rgba(244,237,231,.65);   
  }
  .audience li:hover::before{width:6px}

  .audience h3{margin-bottom:18px}
  .audience .desc{margin-bottom:28px}
  .audience .label.calo{margin-top:24px}

  .approach-meta{grid-template-columns:1fr 1fr}
  .locations-list{grid-template-columns:1fr;border-right:none}
  .location{border-right:none;border-bottom:1px solid rgba(232,218,210,.14)}
  .location:last-child{border-bottom:none}
  .location .city-info{padding:40px 0 44px 0!important}
  
  .footer-inner{grid-template-columns:1fr 1fr;gap:40px}
  .footer-brand{grid-column:1 / -1}
  .footer-col:nth-of-type(4){display:none}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .hero-meta{flex-direction:column;gap:18px}
  .pullquote::after{inset:30px 24px}
}

body.legal-body{
  background:var(--ivory) !important;
  color:var(--brown) !important;
}

body.legal-body .brand-mark{
  width:94px !important;
  height:94px !important;
  top:0 !important;
  transition:none !important;
  pointer-events:auto !important;
  cursor:pointer;
}
@media (min-width:961px){
  body.legal-body .brand-mark{
    width:144px !important;
    height:144px !important;
  }
}

body.legal-body header{
  height:76px !important;
  padding:0 56px !important;
  background:var(--ivory) !important;
  border-bottom:1px solid rgba(74,60,58,.08) !important;
  transition:none !important;
}
body.legal-body header::before{
  display:none !important;
}
@media (max-width:960px){
  body.legal-body header{
    height:72px !important;
    padding:0 24px !important;
    /* Mobile legal pages: drop the ivory header bar entirely; the page
       reads as one continuous canvas with just the brand-mark in the
       corner and the PRIVATE ENQUIRY pill (which already has its own
       backdrop blur) floating in the top-right. */
    background: transparent !important;
    border-bottom: none !important;
  }
}

body.legal-body nav{
  transform:none !important;
  transition:none !important;
}
body.legal-body nav a{
  color:var(--brown) !important;
}
body.legal-body nav a::after{
  background:var(--brown-deep) !important;
}
body.legal-body nav a:hover{
  color:var(--brown-deep) !important;
}
/* Desktop only: legal pages force the CTA to its light (brown) theme.
   On mobile the colour is dynamic — handled by `.cta-appt.over-light`
   below + JS scroll detection in script.js, so the pill flips to dark
   when it scrolls over the footer. */
@media (min-width: 961px) {
  body.legal-body .cta-appt{
    color:var(--brown) !important;
    border-color:rgba(74,60,58,.4) !important;
  }
  body.legal-body .cta-appt:hover{
    background:var(--brown-deep) !important;
    color:var(--ivory) !important;
    border-color:var(--brown-deep) !important;
  }
}

.legal-page{
  padding:160px 56px 140px;
  position:relative;
  min-height:80vh;
}
.legal-inner{
  max-width:760px;
  margin:0 auto;
  position:relative;
}
@media (max-width:1727px) and (min-width:961px){
  .legal-inner{padding-left:200px}
}
@media (max-width:960px){
  
  .legal-page{padding:120px 24px 80px 134px}
  .legal-inner{padding-left:0}
}

.legal-eyebrow{
  font-family:var(--sans);
  font-size:13px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--brown-soft);
  margin-bottom:36px;
  display:flex;align-items:center;gap:18px;
}
.legal-eyebrow::before{
  content:"";display:inline-block;width:42px;height:1px;
  background:var(--brown-soft);
}

.legal-title{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(40px,5.5vw,72px);
  line-height:1.05;letter-spacing:-.015em;
  color:var(--brown-deep);
  margin-bottom:24px;
}
.legal-title em{font-style:normal;color:inherit}

.legal-meta{
  font-family:var(--sans);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brown-soft);opacity:.7;
  margin-bottom:80px;padding-bottom:48px;
  border-bottom:1px solid rgba(74,60,58,.12);
}

.legal-lede{
  font-family:var(--serif);font-weight:400;font-style:italic;
  font-size:23px;line-height:1.55;
  color:var(--brown);
  margin-bottom:32px;
}

.legal-page h2{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(26px,2.8vw,34px);
  line-height:1.2;letter-spacing:-.005em;
  color:var(--brown-deep);
  margin-top:64px;margin-bottom:20px;
}

.legal-page h3{
  font-family:var(--serif);font-weight:500;
  font-size:20px;line-height:1.3;
  color:var(--brown-deep);
  margin-top:32px;margin-bottom:10px;
}

.legal-page p{
  font-family:var(--serif);font-weight:400;
  font-size:19px;line-height:1.7;
  color:var(--brown);
  margin-bottom:18px;
}

.legal-page a{
  color:var(--brown-deep);
  border-bottom:1px solid rgba(74,60,58,.3);
  text-decoration:none;
  transition:border-color .3s ease,color .3s ease;
}
.legal-page a:hover{
  color:var(--blush-deep);
  border-bottom-color:var(--blush-deep);
}

.legal-list{margin-bottom:24px;padding-left:0;list-style:none}
.legal-list li{
  font-family:var(--serif);font-size:19px;line-height:1.7;
  color:var(--brown);
  position:relative;padding-left:24px;margin-bottom:6px;
}
.legal-list li::before{
  content:"";position:absolute;left:0;top:15px;
  width:8px;height:1px;background:var(--brown-soft);
}

.legal-dl{margin-bottom:24px}
.legal-dl dt{
  font-family:var(--sans);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brown-soft);
  margin-top:18px;margin-bottom:4px;
}
.legal-dl dd{
  font-family:var(--serif);font-size:19px;line-height:1.55;
  color:var(--brown);
  margin-left:0;
}
.legal-dl dd a{font-size:19px}
.legal-dl em{
  font-family:var(--sans);font-style:italic;
  font-size:11px;letter-spacing:.05em;
  color:var(--blush-deep);
  text-transform:none;
}

.enquiry-overlay{
  position:fixed; inset:0; z-index:9000;
  display:flex; align-items:center; justify-content:center;
  background:rgba(20,15,14,.42);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility 0s linear .35s;
  padding:24px;
}
.enquiry-overlay.open{
  opacity:1; visibility:visible;
  transition:opacity .35s ease, visibility 0s linear 0s;
}

.enquiry-modal{
  position:relative;
  background:var(--ivory);
  color:var(--brown-deep);
  width:min(560px, 100%);
  max-height:calc(100vh - 48px);
  overflow:auto;
  padding:56px 56px 44px;
  border-radius:2px;
  box-shadow:0 30px 80px -20px rgba(20,15,14,.45),
             0 8px 24px -8px rgba(20,15,14,.25);
  transform:translateY(12px) scale(.985);
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.enquiry-overlay.open .enquiry-modal{
  transform:translateY(0) scale(1);
}

.enquiry-close{
  position:absolute; top:16px; right:16px;
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:0;
  font-family:var(--serif); font-weight:300;
  font-size:28px; line-height:1;
  color:var(--brown-soft);
  cursor:pointer;
  transition:color .2s ease, transform .2s ease;
}
.enquiry-close:hover{ color:var(--brown-deep); transform:rotate(90deg); }

.enquiry-eyebrow{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--blush-deep);
  margin-bottom:18px;
}
.enquiry-title{
  font-family:var(--serif); font-weight:300; font-style:italic;
  font-size:32px; line-height:1.15; letter-spacing:-.01em;
  color:var(--brown-deep);
  margin:0 0 20px;
}
.enquiry-lede{
  font-family:var(--sans); font-weight:300;
  font-size:15px; line-height:1.65;
  color:var(--brown);
  margin:0 0 36px;
}

.enquiry-modal-section{
  padding-top:22px;
  border-top:1px solid rgba(74,60,58,.14);
  margin-bottom:20px;
}
.enquiry-label{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--brown-soft); opacity:.75;
  margin-bottom:10px;
}
.enquiry-email{
  font-family:var(--serif); font-weight:400;
  font-size:21px; letter-spacing:-.005em;
  color:var(--brown-deep);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.enquiry-email:hover{ color:var(--blush-deep); border-bottom-color:var(--blush-deep); }

.enquiry-offices{
  list-style:none; padding:0; margin:0;
}
.enquiry-offices li{
  display:flex; align-items:baseline;
  gap:18px;
  padding:10px 0;
  border-bottom:1px solid rgba(74,60,58,.08);
}
.enquiry-offices li:last-child{ border-bottom:0; }
.enquiry-offices .city{
  font-family:var(--sans); font-weight:400;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--brown-soft);
  width:80px; flex-shrink:0;
}
.enquiry-offices a{
  font-family:var(--serif); font-weight:400;
  font-size:17px;
  color:var(--brown-deep);
  text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
}
.enquiry-offices a:hover{ color:var(--blush-deep); border-bottom-color:var(--blush-deep); }

.enquiry-foot{
  margin-top:32px; padding-top:22px;
  border-top:1px solid rgba(74,60,58,.14);
  font-family:var(--sans); font-style:italic; font-weight:300;
  font-size:13px; line-height:1.5;
  color:var(--brown-soft);
}

@media (max-width:520px){
  .enquiry-modal{ padding:44px 28px 32px; }
  .enquiry-title{ font-size:26px; }
}

.enquiry-section{
  height:auto; min-height:0;
  display:block;
  
  padding-top:140px;
  padding-bottom:140px;
  align-items:initial;
}
.enquiry-section-inner{
  position:relative; z-index:5;
  max-width:1280px; margin:0 auto;
  display:grid;
  grid-template-columns: 5fr 6fr;
  gap:96px;
  align-items:start;
}

.enquiry-section .section-label{ color:var(--blush); }
.enquiry-section .approach-text h2{ color:var(--ivory); }
.enquiry-section .approach-text p{ color:rgba(244,237,231,.85); }

.enquiry-form{
  position:relative;
  background:var(--ivory-warm);
  padding:56px 56px 48px;
  border:1px solid rgba(74,60,58,.22);
  border-radius:0;
  box-shadow:0 6px 32px rgba(51,39,36,.18);
  display:flex; flex-direction:column; gap:32px;
  overflow:hidden;
  transition:height .45s cubic-bezier(.2,.7,.2,1),
             opacity .55s ease,
             visibility 0s linear 0s;
}

.enquiry-form.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .55s ease,
             visibility 0s linear .55s;
}
.form-row{
  display:grid; grid-template-columns:1fr 1fr; gap:32px;
}
.form-field{
  display:flex; flex-direction:column; gap:10px;
}
.form-label{
  font-family:var(--sans);
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--brown-soft);
}
.form-label em{
  font-style:normal; font-weight:300;
  letter-spacing:.18em;
  color:var(--brown-soft); opacity:.6;
  margin-left:4px;
}

.enquiry-form input[type="text"],
.enquiry-form input[type="email"],
.enquiry-form input[type="tel"],
.enquiry-form textarea,
.enquiry-form select{
  font-family:var(--sans); font-weight:300;
  font-size:16px; line-height:1.5;
  color:var(--brown-deep);
  background:transparent;
  border:0; border-bottom:1px solid rgba(74,60,58,.22);
  border-radius:0;
  padding:8px 0 10px;
  width:100%;
  transition:border-color .25s ease;
  appearance:none; -webkit-appearance:none;
}
.enquiry-form textarea{
  resize:none; min-height:0;
  overflow-y:auto;
  font-family:var(--sans);
}
.enquiry-form input::placeholder,
.enquiry-form textarea::placeholder{
  color:var(--brown-soft); opacity:.55;
  font-weight:300;
}
.enquiry-form input:focus,
.enquiry-form textarea:focus,
.enquiry-form select:focus{
  outline:none;
  border-bottom-color:var(--brown-deep);
}

.form-select{
  position:relative;
}
.form-select::after{
  content:""; position:absolute;
  right:6px; top:50%;
  width:8px; height:8px;
  border-right:1px solid var(--brown-soft);
  border-bottom:1px solid var(--brown-soft);
  transform:translateY(-70%) rotate(45deg);
  pointer-events:none;
  opacity:.6;
}
.enquiry-form select{
  cursor:pointer;
  padding-left:12px;
  padding-right:24px;
}
.enquiry-form select option{
  padding-left:12px;
}

.form-consent{
  display:flex; align-items:flex-start; gap:14px;
  font-family:var(--sans); font-weight:300;
  font-size:13px; line-height:1.55;
  color:var(--brown);
  cursor:pointer;
}
.form-consent input[type="checkbox"]{
  appearance:none; -webkit-appearance:none;
  width:18px; height:18px;
  border:1px solid rgba(74,60,58,.35);
  border-radius:2px;
  background:transparent;
  cursor:pointer; flex-shrink:0;
  margin-top:1px;
  position:relative;
  transition:border-color .2s ease, background .2s ease;
}
.form-consent input[type="checkbox"]:hover{ border-color:var(--brown-deep); }
.form-consent input[type="checkbox"]:checked{
  background:var(--brown-deep); border-color:var(--brown-deep);
}
.form-consent input[type="checkbox"]:checked::after{
  content:""; position:absolute;
  left:5px; top:1px;
  width:5px; height:10px;
  border-right:1.5px solid var(--ivory);
  border-bottom:1.5px solid var(--ivory);
  transform:rotate(45deg);
}

.form-submit{
  align-self:flex-start;
  display:inline-flex; align-items:center; justify-content:center; gap:18px;
  padding:18px 36px;
  background:transparent;
  border:1px solid var(--blush-deep);
  border-radius:1px;
  font-family:var(--sans); font-weight:400;
  font-size:12px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--blush-deep);
  cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
  min-width:280px;
}
.form-submit:hover{
  background:var(--blush-deep);
  color:var(--ivory);
}
.form-submit .arrow{ transition:transform .25s ease; }
.form-submit:hover .arrow{ transform:translateX(4px); }

@media (max-width:980px){
  .enquiry-section{ padding-top:96px; padding-bottom:96px; }
  .enquiry-section-inner{
    grid-template-columns:1fr; gap:56px;
  }
  .enquiry-form{ padding:64px 28px 32px; }
  .form-row{ grid-template-columns:1fr; gap:32px; }
  .form-submit{ width:100%; min-width:0; }
}

.enquiry-step-indicator{
  display:flex; align-items:center; gap:14px;
  margin-top:56px;
  font-family:var(--sans);
  font-size:11px; letter-spacing:.28em; text-transform:uppercase;
  color:rgba(244,237,231,.55);
}
.enquiry-step-indicator .step-current{
  color:var(--blush);
  font-feature-settings:"tnum";
  transition:color .35s ease;
}
.enquiry-step-indicator .step-sep,
.enquiry-step-indicator .step-total{
  color:rgba(244,237,231,.4);
  font-feature-settings:"tnum";
}
.enquiry-step-indicator .step-rule{
  display:inline-block; width:32px; height:1px;
  background:rgba(244,237,231,.3);
  margin:0 4px;
}
.enquiry-step-indicator .step-label{
  color:rgba(244,237,231,.7);
}

.form-step{
  display:none;
  opacity:0;
  transform:translateY(8px);
  transition:opacity .28s ease, transform .28s ease;
}
.form-step.active{
  display:flex;
  flex-direction:column;
  gap:32px;
  opacity:1;
  transform:translateY(0);
}

.form-header{
  display:flex; align-items:center; justify-content:flex-end;
  gap:16px;
  margin-bottom:-12px;
}
.form-step-label{
  font-family:var(--serif);
  font-weight:400;
  font-size:34px;
  letter-spacing:-.005em;
  color:var(--brown-deep);
  text-transform:none;
}
.form-back{
  display:inline-flex; align-items:center; gap:14px;
  background:transparent; border:0; padding:0;
  font-family:var(--sans); font-weight:400;
  font-size:12px; letter-spacing:.28em; text-transform:uppercase;
  color:var(--brown-soft);
  cursor:pointer;
  transition:color .2s ease, transform .2s ease;
}
.form-back:hover{ color:var(--brown-deep); }
.form-back .arrow.back{ transition:transform .25s ease; }
.form-back:hover .arrow.back{ transform:translateX(-4px); }

.form-sub{
  margin:0;
  font-family:var(--sans); font-weight:300;
  font-size:16px; line-height:1.5;
  color:var(--brown);
  max-width:none;
}

.form-actions{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  margin-top:8px;
}
.form-actions .form-submit{ align-self:auto; margin-left:auto; }

.form-actions-submit{
  justify-content:space-between;
  gap:32px;
  flex-wrap:wrap;
}
.form-actions-submit .form-consent{
  flex:1 1 280px;
  margin:0;
}

@media (max-width:980px){
  .form-actions-submit{
    flex-direction:column; align-items:stretch; gap:20px;
  }
  .form-actions-submit .form-submit{ align-self:stretch; }
  .enquiry-step-indicator{ margin-top:36px; }
}

.form-field{ position:relative; }

.form-field.has-error input,
.form-field.has-error textarea,
.form-field.has-error select{
  border-bottom-color:rgba(139,58,42,.25);
}

.form-error{
  position:absolute;
  top:100%; left:0;
  margin-top:4px;
  font-family:var(--sans);
  font-weight:400;
  font-size:11px;
  letter-spacing:.06em;
  color:#8B3A2A;
  opacity:0;
  transform:translateY(-4px);
  transition:opacity .25s ease, transform .25s ease;
  pointer-events:none;
}
.form-field.has-error .form-error{
  opacity:1;
  transform:translateY(0);
}

.form-submit.is-disabled{
  opacity:.32;
  pointer-events:none;
  cursor:default;
}

.form-submit.has-states{
  display:inline-grid;
  grid-template-columns:auto;
  position:relative;
  overflow:hidden;
}
.form-submit.has-states > .state{
  grid-area:1 / 1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  white-space:nowrap;
  transition:transform .5s cubic-bezier(.4,0,.2,1), opacity .5s ease;
}

.form-submit.has-states .state-idle{
  opacity:1; transform:translateX(0);
}
.form-submit.has-states .state-loading,
.form-submit.has-states .state-success{
  opacity:0; transform:translateX(-32px);
  pointer-events:none;
}

.form-submit.is-loading .state-idle{
  opacity:0; transform:translateX(32px);
}
.form-submit.is-loading .state-loading{
  opacity:1; transform:translateX(0);
}

.form-submit.is-success .state-idle{
  opacity:0; transform:translateX(32px);
}
.form-submit.is-success .state-loading{
  opacity:0; transform:translateX(32px);
}
.form-submit.is-success .state-success{
  opacity:1; transform:translateX(0);
}

.form-submit.is-loading,
.form-submit.is-success{
  pointer-events:none;
}

.form-submit .spinner{
  animation:cp-spin 0.9s linear infinite;
  transform-origin:50% 50%;
}
@keyframes cp-spin{
  to{ transform:rotate(360deg); }
}

.form-thanks{
  text-align:center;
  align-items:center !important;
  position:relative;
  gap:24px !important;
  padding-top:8px;
}

.thanks-close-x{
  position:absolute;
  top:20px; right:20px;
  width:24px; height:24px;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:0;
  color:var(--brown-deep);
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transition:opacity .35s ease;
  z-index:5;
}
.enquiry-form:not(.is-hidden) .thanks-close-x{
  opacity:.6;
  pointer-events:auto;
  transition-delay:.4s;
}
.thanks-close-x:hover{ opacity:1 !important; }

.thanks-icon{
  width:64px; height:64px;
  color:var(--blush-deep);
  margin:8px auto 4px;
}
.thanks-icon svg{ width:100%; height:100%; }

.enquiry-form .thanks-title{
  font-family:var(--serif); font-weight:400;
  font-size:38px; line-height:1.1;
  letter-spacing:-.01em;
  color:var(--brown-deep);
  margin:0;
  max-width:none;
  font-style:normal;
}
.enquiry-form .thanks-subtitle{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:18px; line-height:1.4;
  color:var(--blush-deep);
  margin:0;
}
.enquiry-form .thanks-rule{
  width:100%; max-width:64px;
  border:0; border-top:1px solid rgba(74,60,58,.22);
  margin:8px auto;
}
.enquiry-form .thanks-body{
  font-family:var(--sans); font-weight:300;
  font-size:14px; line-height:1.7;
  color:var(--brown-soft);
  margin:0;
  max-width:42ch;
}

.thanks-actions{
  width:100%;
  justify-content:center !important;
  margin-top:8px;
}

.thanks-actions .form-submit,
.form-step[data-step="1"] .form-actions .form-submit{ margin-left:0 !important; }
.form-step[data-step="1"] .form-actions{ justify-content:center; }
.thanks-close-btn{
  min-width:200px !important;
}

.enquiry-step-indicator{
  transition:opacity .4s ease;
}

.enquiry-step-indicator .step-row{
  display:inline-flex; align-items:center; gap:14px;
  transition:opacity .35s ease;
}
.enquiry-step-indicator .step-success{
  display:none;
  opacity:0;
  color:var(--blush);
  transition:opacity .45s ease;
}
.enquiry-step-indicator.is-success .step-row{
  display:none;
}
.enquiry-step-indicator.is-success .step-success{
  display:inline-flex;
  opacity:1;
}

.hp-field{
  position:absolute !important;
  left:-9999px; top:-9999px;
  width:1px; height:1px;
  overflow:hidden;
}

.form-error-banner{
  font-family:var(--sans); font-weight:400;
  font-size:13px; line-height:1.55;
  letter-spacing:.04em;
  color:#8B3A2A;
  padding:12px 16px;
  border:1px solid rgba(139,58,42,.25);
  background:rgba(139,58,42,.06);
}
.form-error-banner a{
  color:#8B3A2A;
  text-decoration:underline;
}
.form-error-banner a:hover{ text-decoration:none; }

.form-toggle{
  position:relative;
  display:inline-grid;
  grid-template-columns:auto;
  align-items:center;
  background:transparent;
  border:1px solid var(--blush-deep);
  padding:11px 22px;
  font-family:var(--sans); font-weight:400;
  font-size:11px; line-height:1.5; letter-spacing:.24em; text-transform:uppercase;
  color:var(--blush-deep);
  cursor:pointer;
  overflow:hidden;
  transition:background .4s ease, color .4s ease, border-color .4s ease;
  margin:0;
}
.form-toggle:hover{
  background:var(--blush);
  color:var(--brown-deep);
  border-color:var(--blush);
}

.form-toggle.is-active{
  background:var(--blush);
  color:var(--brown-deep);
  border-color:var(--blush);
  cursor:default;
  pointer-events:none;
}
.form-toggle.is-active:hover{
  background:var(--blush);
  color:var(--brown-deep);
}

.form-toggle > .state{
  grid-area:1 / 1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  white-space:nowrap;
  transition:transform .5s cubic-bezier(.4,0,.2,1), opacity .5s ease;
}

.form-toggle .state-start{ opacity:1; transform:translateX(0); }
.form-toggle .state-step1,
.form-toggle .state-step2,
.form-toggle .state-received{
  opacity:0;
  transform:translateX(-32px);
  pointer-events:none;
}

.form-toggle[data-state="step1"] .state-start{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="step1"] .state-step1{ opacity:1; transform:translateX(0); }

.form-toggle[data-state="step2"] .state-start{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="step2"] .state-step1{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="step2"] .state-step2{ opacity:1; transform:translateX(0); }

.form-toggle[data-state="received"] .state-start{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="received"] .state-step1{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="received"] .state-step2{ opacity:0; transform:translateX(32px); }
.form-toggle[data-state="received"] .state-received{ opacity:1; transform:translateX(0); }

.form-thanks .thanks-icon path{
  stroke-dasharray:36;
  stroke-dashoffset:36;
}
.form-step.form-thanks.active .thanks-icon path{
  
  animation:cp-tick-loop 6s .35s infinite cubic-bezier(.65,0,.35,1);
}
@keyframes cp-tick-loop{
  0%   { opacity:0; stroke-dashoffset:36; }   
  1%   { opacity:1; stroke-dashoffset:36; }   
  13%  { opacity:1; stroke-dashoffset:0;  }   
  78%  { opacity:1; stroke-dashoffset:0;  }   
  90%  { opacity:0; stroke-dashoffset:0;  }   
  100% { opacity:0; stroke-dashoffset:36; }   
}

.enquiry-form input:-webkit-autofill,
.enquiry-form input:-webkit-autofill:hover,
.enquiry-form input:-webkit-autofill:focus,
.enquiry-form input:-webkit-autofill:active,
.enquiry-form textarea:-webkit-autofill,
.enquiry-form textarea:-webkit-autofill:hover,
.enquiry-form textarea:-webkit-autofill:focus,
.enquiry-form select:-webkit-autofill{
  -webkit-text-fill-color:var(--brown-deep) !important;
  -webkit-box-shadow:0 0 0 1000px var(--ivory-warm) inset !important;
  caret-color:var(--brown-deep);
  transition:background-color 9999s ease-in-out 0s;
}

.submit-label-short{ display:none; }
@media (max-width:960px){
  .submit-label-full{ display:none; }
  .submit-label-short{ display:inline; }
}

.received-label-short{ display:none; }
@media (max-width:960px){
  .received-label-full{ display:none; }
  .received-label-short{ display:inline; }
}

/* ─── Mobile header (any device): drop the right-to-left brown fade and
   instead give the PRIVATE ENQUIRY button its own backdrop-blur, so it
   reads against busy hero / scrolled content without the full-width
   overlay obscuring photography behind the rest of the header. */
@media (max-width: 960px) {
  /* No header fade overlay on mobile — the desktop ::before stays
     opacity:0 and never animates in. */
  header::before { display: none; }

  /* Frosted-glass effect just behind the CTA pill.
     - display:inline-block + translateZ(0) force a GPU compositing layer
       so iOS Safari actually renders the backdrop-filter (it silently
       no-ops on inline <a> and on descendants of a transformed parent).
     - On Android the CTA's `transform` is constant and the transition
       list deliberately excludes `transform`, so it never animates. */
  .cta-appt {
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    display: inline-block;
    transform: translateZ(0);
    transition: color .4s ease, background-color .4s ease, border-color .4s ease,
                transform .55s cubic-bezier(.4,0,.2,1);
  }

  /* Light-bg theme: applied via .over-light class (toggled by script.js
     when the CTA's vertical center sits inside .manifesto / .approach
     / .legal-page). !important so it wins over any later cascade rules
     (e.g. body.legal-body .cta-appt on desktop), keeping the colour
     authoritative regardless of source order. */
  .cta-appt.over-light {
    color: var(--brown) !important;
    border-color: rgba(74,60,58,.4) !important;
  }
  /* Click/tap feedback is the SAME in both themes — always the original
     dark-mode press effect (blush bg, dark text, blush border). The
     resting colour can switch theme as the user scrolls, but the act of
     pressing the button looks identical everywhere. */
  .cta-appt:hover,
  .cta-appt.over-light:hover {
    background: var(--blush) !important;
    color: var(--brown-deep) !important;
    border-color: var(--blush) !important;
  }
}

/* iPhone only — UA-detected via the inline head script (must come before
   first paint, so html.is-ios is set when CSS first applies, otherwise
   the CTA jumps instead of animating). */
@media (max-width: 960px) {
  /* Page extends under the status bar (viewport-fit=cover); env() padding
     keeps logo + CTA at their normal visual y-position. */
  html.is-ios header,
  html.is-ios header.scrolled {
    padding-top: env(safe-area-inset-top);
  }
  html.is-ios .brand-mark {
    top: env(safe-area-inset-top);
  }
  /* (transform .55s is now in the base mobile transition list above —
     no separate is-ios override needed. Keeping a single transition
     declaration avoids cascade conflicts that prevent the colour
     transition from completing on iOS Safari.) */
  /* CTA lifted (top aligns with the top edge of the brand-mark) whenever
     the logo is in its compact 94px state — scrolled, on legal pages,
     and during the from-legal arrival frame. */
  html.is-ios body.scrolled .cta-appt,
  html.is-ios body.legal-body .cta-appt,
  html.is-ios.from-legal .cta-appt {
    transform: translateZ(0) translateY(-16px);
  }
}

/* iOS Safari only — fade-overlay at the top of the hero that matches
   the status-bar tint color, fading to transparent so it visually
   bridges Safari's tinted bar into the dark hero photo. Scrolls with
   the page, so once the user scrolls and Safari hides its chrome,
   the gradient also moves up and out of view. */
@media (max-width:960px){
  @supports (-webkit-touch-callout: none){
    .hero::before{
      content:"";
      position:absolute;
      top:0; left:0; right:0;
      height:100px;
      /* Matches body bg / Safari status-bar tint = var(--brown) #4A3C3A */
      background:linear-gradient(
        to bottom,
        #4A3C3A 0%,
        rgba(74,60,58,.7) 45%,
        rgba(74,60,58,0) 100%
      );
      z-index:1;
      pointer-events:none;
    }
  }
}

/* Mobile only — hide the arrow on Step 2's Submit Enquiry button.
   Continue, Back, Start Enquiry keep their arrows. */
@media (max-width:960px){
  .form-step[data-step="2"] .state-idle .arrow{
    display:none;
  }
}
