/* Shared tokens; each component owns its responsive rules. */
@font-face {
  font-family:"Jost";
  src:url("./assets/fonts/jost-variable.ttf") format("truetype");
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
}
@font-face {
  font-family:"Prata";
  src:url("./assets/fonts/prata-regular.ttf") format("truetype");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

:root  {
  --cream:#f7f2e7;
  --cream-alt:#efe7d4;
  --card-bg:#fffdf8;
  --green-900:#13251b;
  --green-800:#1e3326;
  --green-700:#2c4a38;
  --gold:#c9a23d;
  --gold-light:#e9d9a6;
  --ink:#272318;
  --ink-muted:#6b6555;
  --border:#e1d7be;
  --focus:#1a5f7a;
  --error:#b3261e;
  --success:#2c4a38;
  --font-serif:Georgia,"Times New Roman",serif;
  --font-sans:-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-nav:"Jost",var(--font-sans);
  --font-hero:"Prata",var(--font-serif);
  --max-width:1280px;
  --radius-card:20px;
  --radius-frame:24px;
  --radius-pill:999px;
  --shadow-card:0 12px 32px -24px rgb(19 37 27 / 35%);
  --space-1:.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:2rem;
  --space-5:clamp(3rem,5vw,5rem);
  --gutter:clamp(1.25rem,3vw,2rem);
  --header-offset:104px;
}

*  {
  box-sizing:border-box
}

html  {
  font-size:100%;
  scroll-behavior:smooth
}

body  {
  margin:0;
  font-family:var(--font-sans);
  background:var(--cream);
  color:var(--ink);
  line-height:1.6
}

img  {
  max-width:100%;
  display:block
}

h1,h2,h3  {
  font-family:var(--font-serif);
  font-weight:400;
  line-height:1.15;
  margin:0 0 1rem;
  color:var(--green-900);
  text-wrap:balance
}

h1  {
  font-size:clamp(2rem,4vw,3.25rem)
}

h2  {
  font-size:clamp(1.8rem,3vw,2.5rem);
  letter-spacing:-.025em
}

h3  {
  font-size:1.3rem;
  margin-bottom:.6rem
}

p  {
  margin:0 0 1rem
}

a  {
  color:var(--green-800);
  text-underline-offset:.2em
}

ul,ol  {
  padding-left:1.2rem
}

button,input,select  {
  font:inherit
}

button,a,summary  {
  -webkit-tap-highlight-color:transparent
}

[id]  {
  scroll-margin-top:var(--header-offset)
}

.container  {
  max-width:var(--max-width);
  margin-inline:auto;
  padding-inline:var(--gutter);
  position:relative;
  z-index:1
}

.sr-only,.hp-field  {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap
}

.sprite  {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}

.icon  {
  width:1.2em;
  height:1.2em;
  display:inline-block;
  vertical-align:-.15em;
  fill:none;
  flex-shrink:0
}

.icon-lg  {
  width:2rem;
  height:2rem
}

.icon-xl  {
  width:3rem;
  height:3rem
}

.icon-accent  {
  color:#8b7134
}

:is(a,button,input,select,summary):focus-visible,.skip-link:focus  {
  outline:3px solid var(--focus);
  outline-offset:4px
}

.section-dark :focus-visible,.section-dark-alt :focus-visible  {
  outline-color:var(--gold-light)
}

.skip-link  {
  position:fixed;
  left:1rem;
  top:1rem;
  padding:.8rem 1rem;
  background:var(--card-bg);
  z-index:200;
  transform:translateY(-200%)
}

.skip-link:focus  {
  transform:none
}

/* Buttons and links: actual hit areas, no overlapping pseudo-elements. */
.btn  {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  min-height:48px;
  padding:.8rem 1.35rem;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  font-weight:600;
  font-size:.95rem;
  line-height:1.35;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:background-color .18s,box-shadow .18s
}

.btn .icon  {
  width:1.55rem;
  height:1.55rem;
  padding:.25rem;
  border-radius:50%;
  background:rgb(255 255 255 / 16%)
}

.btn-primary  {
  background:var(--green-800);
  color:white
}

.btn-primary:hover  {
  background:var(--green-900);
  box-shadow:0 6px 20px -10px var(--green-900)
}

.btn-primary:disabled  {
  background:var(--ink-muted);
  cursor:default
}

.btn-gold  {
  background:linear-gradient(125deg,var(--gold-light),var(--gold));
  color:var(--green-900)
}

.btn-gold:hover  {
  background:var(--gold-light)
}

.btn-gold .icon  {
  background:rgb(255 255 255 / 30%)
}

.btn-outline,.btn-secondary  {
  background:transparent;
  color:var(--green-800);
  border-color:#8b8969
}

.btn-outline:hover,.btn-secondary:hover  {
  background:var(--cream-alt)
}

.btn-outline .icon  {
  background:none;
  padding:0;
  width:1.1em;
  height:1.1em
}

.btn-outline-dark  {
  color:white;
  border-color:rgb(255 255 255 / 55%)
}

.btn-outline-dark:hover  {
  background:rgb(255 255 255 / 10%)
}

.btn-large  {
  min-height:52px
}

.btn-round  {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--gold-light);
  color:var(--green-900);
  text-decoration:none;
  flex-shrink:0
}

.btn-round:hover  {
  background:var(--gold)
}

.link-arrow,.map-fallback-link,.map-link  {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  gap:.6rem;
  font-weight:600;
  font-size:.95rem
}

.link-arrow  {
  text-decoration:none
}

.link-arrow .icon  {
  border-radius:50%;
  background:var(--gold-light);
  padding:.3rem;
  width:1.8rem;
  height:1.8rem
}

/* Header */
.site-header  {
  background:var(--cream);
  border-bottom:1px solid var(--border);
  position:sticky;
  top:0;
  z-index:100
}

.header-inner  {
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding-block:.65rem
}

.logo  {
  display:flex;
  align-items:center;
  gap:.65rem;
  text-decoration:none;
  color:var(--green-900);
  flex-shrink:0
}

.logo-reference-frame {
  display:none;
}

.mobile-logo-sub {
  display:none;
}

.logo-mark-frame  {
  display:block;
  width:3.5rem;
  height:3.5rem;
  border-radius:50%;
  overflow:hidden;
  flex-shrink:0
}

.logo-mark  {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 40%;
  transform:scale(1.9);
  mix-blend-mode:multiply
}

.logo-full-frame  {
  display:none
}

.logo-text  {
  display:flex;
  flex-direction:column;
  line-height:1.3
}

.logo-word  {
  font-family:var(--font-serif);
  font-size:1.4rem;
  letter-spacing:.02em
}

.logo-sub  {
  font-size:.6rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--ink-muted)
}

.mobile-bottom-nav {
  display:none;
}

.mobile-bottom-nav-link {
  font-family:var(--font-nav);
  font-weight:500;
  letter-spacing:.025em;
}

.main-nav  {
  display:flex;
  align-items:center;
  gap:1.5rem
}

.main-nav ul  {
  list-style:none;
  display:flex;
  gap:1.25rem;
  margin:0;
  padding:0
}

.main-nav a:not(.btn)  {
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:.9rem;
  text-decoration:none
}

.main-nav a:not(.btn):hover  {
  text-decoration:underline
}

.nav-toggle  {
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border:1px solid var(--border);
  border-radius:50%;
  background:transparent;
  color:var(--green-900);
  cursor:pointer
}

.nav-toggle .icon-close,.nav-toggle[aria-expanded="true"] .icon-open  {
  display:none
}

.nav-toggle[aria-expanded="true"] .icon-close  {
  display:inline-block
}

@media(max-width:1099px)  {
  .header-inner  {
    justify-content:center;
    min-height:74px;
    padding-inline:64px
  }
  .logo-mark-frame  {
    width:2.8rem;
    height:2.8rem
  }
  .logo-word  {
    font-size:1.25rem
  }
  .logo-sub  {
    font-size:.52rem
  }
  .nav-toggle  {
    display:inline-flex;
    position:absolute;
    right:.75rem;
    top:50%;
    transform:translateY(-50%)
  }
  .main-nav  {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--cream);
    padding:1rem var(--gutter) 1.5rem;
    border-bottom:1px solid var(--border);
    box-shadow:var(--shadow-card);
    max-height:calc(100dvh - 74px);
    overflow-y:auto
  }
  .main-nav.is-open  {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:1rem
  }
  .main-nav ul  {
    flex-direction:column;
    gap:0
  }
  .main-nav a:not(.btn)  {
    padding:.65rem .5rem
  }
}

/* Sections and botanical accents */
.section  {
  padding-block:var(--space-5);
  position:relative;
  overflow:clip
}

.section-alt  {
  background:var(--cream-alt)
}

.section-dark  {
  background:var(--green-900);
  color:#f3efe2
}

.section-dark-alt  {
  background:var(--green-800);
  color:#f3efe2
}

:is(.section-dark,.section-dark-alt) h2  {
  color:#f3efe2
}

.section-head  {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:2rem
}

.section-head h2  {
  margin-bottom:.6rem
}

.section-lead  {
  color:var(--ink-muted);
  max-width:54ch
}

.section-head .section-lead  {
  margin:0
}

.eyebrow  {
  font-size:.7rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--ink-muted)
}

.note  {
  font-size:.9rem;
  color:var(--ink-muted)
}

.promo-banner  {
  padding:1.25rem 1.5rem;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  background:var(--card-bg)
}

.leaf-deco  {
  position:absolute;
  color:var(--green-700);
  opacity:.14;
  pointer-events:none;
  z-index:0;
  width:10rem;
  height:16rem
}

.leaf-hero-1,.leaf-procedures-1,.leaf-advantages-1  {
  top:-2rem;
  left:-4rem;
  transform:rotate(-25deg)
}

.leaf-hero-2,.leaf-about-2  {
  right:-3rem;
  bottom:-4rem;
  transform:rotate(150deg)
}

.leaf-hero-3,.leaf-about-1  {
  bottom:-5rem;
  left:-2rem;
  transform:rotate(25deg)
}

.leaf-hero-corner,.leaf-hero-corner-top  {
  color:var(--cream);
  opacity:.15;
  width:6rem;
  height:10rem;
  z-index:1
}

.leaf-hero-corner  {
  right:-1rem;
  bottom:1rem
}

.leaf-hero-corner-top  {
  left:-2rem;
  top:1rem;
  transform:rotate(150deg)
}

.leaf-contact-1  {
  top:-2rem;
  right:-2rem;
  color:var(--gold-light);
  transform:rotate(30deg)
}

.leaf-contact-2  {
  bottom:-4rem;
  left:-3rem;
  color:var(--gold);
  transform:rotate(-15deg)
}

/* Video hero: a calm glass panel keeps the offer legible over both film formats. */
.hero {
  overflow:clip;
}

.hero-stage {
  position:relative;
  display:flex;
  align-items:center;
  height:clamp(560px,calc(100svh - 200px),720px);
  min-height:560px;
  isolation:isolate;
  background:var(--green-900) url("assets/hero/hero-desktop-poster.webp") center / cover no-repeat;
}

.hero-video-layer {
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  background:#353a35 url("assets/hero/hero-desktop-poster.webp") center / cover no-repeat;
}

.hero-video {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transition:opacity .45s ease;
}

.hero-video.is-ready {
  opacity:1;
}

.hero-shade {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(90deg,rgb(9 23 17 / 54%),rgb(9 23 17 / 9%) 78%),
    linear-gradient(0deg,rgb(9 23 17 / 23%),transparent 40%);
}

.hero-stage-content {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  width:100%;
  min-height:100%;
  padding-block:1.5rem;
}

.hero-glass {
  width:min(620px,100%);
  padding:clamp(1.5rem,3vw,2.5rem);
  border:1px solid rgb(255 255 255 / 32%);
  border-radius:28px;
  background:rgb(13 35 26 / 72%);
  box-shadow:0 20px 55px rgb(0 0 0 / 24%),inset 0 1px rgb(255 255 255 / 15%);
  -webkit-backdrop-filter:blur(22px) saturate(115%);
  backdrop-filter:blur(22px) saturate(115%);
  color:#fffdf8;
}

.hero-glass :is(h1,p) {
  margin:0;
}

.hero-glass .eyebrow {
  margin-bottom:.95rem;
  color:var(--gold-light);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.17em;
  text-transform:uppercase;
}

.hero-glass h1 {
  max-width:14ch;
  color:#fffdf8;
  font-size:clamp(2.7rem,4vw,3.85rem);
  line-height:1.04;
  letter-spacing:-.04em;
  text-wrap:balance;
}

.hero-title-line {
  display:block;
}

.hero-slogan {
  margin-top:.9rem!important;
  color:#f5e9cd;
  font-family:var(--font-serif);
  font-size:1.08rem;
  font-style:italic;
  line-height:1.35;
}

.hero-subtitle {
  max-width:54ch;
  margin-top:.75rem!important;
  color:rgb(255 253 248 / 86%);
  font-size:.94rem;
  line-height:1.5;
}

.hero-glass .promo-card {
  display:flex;
  align-items:flex-start;
  gap:.8rem;
  margin-top:1.3rem;
  padding:1.1rem 0 0;
  border-top:1px solid rgb(255 255 255 / 29%);
}

.hero-glass .promo-card > .icon {
  width:1.65rem;
  height:1.65rem;
  margin-top:.1rem;
  color:var(--gold-light);
}

.hero-glass .promo-card strong {
  display:block;
  color:var(--gold-light);
  font-family:var(--font-serif);
  font-size:1.48rem;
  font-weight:400;
  line-height:1.1;
}

.hero-glass .promo-note {
  display:block;
  margin-top:.35rem;
  color:rgb(255 253 248 / 84%);
  font-size:.82rem;
  line-height:1.35;
}

.hero-cta-row {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

.hero-glass .hero-cta-row {
  margin-top:1.35rem;
}

.hero-glass .btn-outline {
  color:#fffdf8;
  border-color:rgb(255 255 255 / 70%);
  background:rgb(255 255 255 / 8%);
}

.hero-glass .btn-outline:hover {
  background:rgb(255 255 255 / 19%);
}

.hero-glass a:focus-visible {
  outline-color:var(--gold-light);
}

.hero-foot {
  padding-block:.85rem 1rem;
}

.hero-trio {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1rem;
  list-style:none;
  padding:0;
  margin:0 auto .45rem;
  max-width:820px;
  color:var(--ink-muted);
  font-size:.76rem;
  line-height:1.4;
  text-align:center;
}

.hero-trio li {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
}

.hero-trio .icon {
  width:1.35rem;
  height:1.35rem;
  color:#8b7134;
}

.hero-disclaimer {
  margin:0;
  color:var(--ink-muted);
  font-size:.7rem;
  line-height:1.4;
  text-align:center;
}

@media(min-width:900px) {
  :root {
    --header-offset:1.5rem;
  }
  .site-header {
    position:absolute;
    inset:0 0 auto;
    background:transparent;
    border-bottom:0;
  }
  .header-inner {
    min-height:116px;
    justify-content:flex-start;
    padding-block:1rem;
  }
  .site-header .logo {
    flex-direction:row-reverse;
    color:var(--cream);
    gap:.6rem;
    padding:4px 12px 4px 6px;
    border:1px solid transparent;
    border-radius:18px;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .site-header .logo-reference-frame {
    position:relative;
    display:block;
    width:248px;
    height:56px;
    overflow:hidden;
    flex:0 0 auto;
  }
  .site-header .logo-reference {
    position:absolute;
    top:-118px;
    left:0;
    display:block;
    width:248px;
    max-width:none;
    height:auto;
    clip-path:none;
    filter:url(#logo-wordmark-light) drop-shadow(0 1px 2px rgb(0 0 0 / 75%));
  }
  .site-header .mobile-logo-sub {
    display:none;
  }
  .site-header .logo-mark-frame {
    position:relative;
    width:3.75rem;
    height:3.75rem;
    flex:0 0 3.75rem;
    overflow:hidden;
    border:1px solid transparent;
    background:transparent;
    box-shadow:none;
  }
  .site-header .logo-mark {
    position:absolute;
    top:0;
    left:50%;
    width:110px;
    max-width:none;
    height:auto;
    transform:translateX(-50%);
    object-fit:contain;
    object-position:center top;
    mix-blend-mode:normal;
    /* Crop in the transparent gap between the emblem and source lettering. */
    clip-path:inset(0 0 32% 0);
    filter:drop-shadow(0 1px 2px rgb(0 0 0 / 60%));
  }
  .site-header .logo-text {
    display:none;
  }
  .site-header .logo-word {
    font-size:1.7rem;
    text-shadow:0 2px 12px rgb(0 0 0 / 35%);
  }
  .site-header .logo-sub {
    color:var(--gold-light);
    font-size:.62rem;
    letter-spacing:.12em;
    text-shadow:0 1px 8px rgb(0 0 0 / 45%);
  }
  .site-header .main-nav,
  .site-header .nav-toggle {
    display:none;
  }
  .mobile-bottom-nav {
    position:fixed;
    z-index:90;
    top:18px;
    right:clamp(16px,2.5vw,36px);
    left:auto;
    display:flex;
    width:auto;
    flex-direction:row;
    align-items:center;
    gap:4px;
    padding:8px;
    transform:none;
    border:1px solid rgb(255 255 255 / 32%);
    border-radius:24px;
    background:rgb(13 35 26 / 72%);
    box-shadow:0 20px 55px rgb(0 0 0 / 24%),inset 0 1px rgb(255 255 255 / 15%);
    -webkit-backdrop-filter:blur(24px) saturate(150%);
    backdrop-filter:blur(24px) saturate(150%);
  }
  .mobile-bottom-nav-link {
    display:flex;
    min-width:68px;
    min-height:62px;
    flex:0 0 auto;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:7px 8px;
    border-radius:16px;
    color:var(--cream);
    font-family:var(--font-nav);
    font-size:.76rem;
    font-weight:600;
    letter-spacing:.01em;
    line-height:1.15;
    text-align:center;
    text-decoration:none;
    transition:background-color .2s ease,color .2s ease,transform .2s ease;
  }
  .mobile-bottom-nav-link .icon {
    width:24px;
    height:24px;
    color:var(--gold-light);
    transition:transform .2s ease,color .2s ease;
  }
  .mobile-bottom-nav-link span {
    white-space:nowrap;
  }
  .mobile-bottom-nav-link:hover,
  .mobile-bottom-nav-link:focus-visible {
    color:var(--cream);
    background:rgb(255 253 248 / 10%);
  }
  .mobile-bottom-nav-link:focus-visible {
    outline:2px solid var(--gold-light);
    outline-offset:2px;
  }
  .mobile-bottom-nav-link.is-active {
    background:rgb(255 253 248 / 11%);
    box-shadow:inset 0 0 0 1px rgb(233 217 166 / 25%);
  }
  .mobile-bottom-nav-link.is-active .icon {
    transform:none;
  }
  .mobile-bottom-nav-link.is-active::before {
    content:none;
  }
  .mobile-bottom-nav-link.is-active::after {
    position:absolute;
    top:auto;
    bottom:-5px;
    left:50%;
    width:24px;
    height:3px;
    transform:translateX(-50%);
    border-radius:999px;
    background:var(--gold-light);
    box-shadow:0 0 12px rgb(233 217 166 / 65%);
    content:"";
  }
  .hero-stage {
    height:100vh;
    height:100svh;
    min-height:0;
  }
  .hero-stage-content {
    max-width:none;
    padding:116px clamp(20px,2vw,32px) 28px;
  }
  .hero-stage-content.container {
    padding-inline:clamp(20px,2vw,32px);
  }
  .hero-glass {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    width:min(377px,100%);
    min-height:clamp(620px,78svh,720px);
    padding:clamp(2rem,4vw,3rem) clamp(1.5rem,3vw,2.5rem);
    border-radius:40px;
  }
  .hero-glass .eyebrow {
    margin-bottom:1.1rem;
    font-size:clamp(.9rem,1.1vw,1.05rem);
  }
  .hero-glass h1 {
    max-width:none;
    font-family:var(--font-hero);
    font-size:clamp(1.25rem,2vw,1.4rem);
    line-height:1.05;
    letter-spacing:-.02em;
    text-transform:uppercase;
  }
  .hero-title-line {
    max-width:100%;
  }
  .hero-slogan {
    margin-top:1.1rem!important;
    color:rgb(255 253 248 / 91%);
    font-family:var(--font-sans);
    font-size:clamp(1.1rem,1.6vw,1.45rem);
    font-style:normal;
    line-height:1.45;
  }
  .hero-subtitle {
    max-width:70ch;
    margin-top:1rem!important;
    font-size:.9rem;
    line-height:1.45;
  }
  .hero-glass .promo-card strong {
    font-family:var(--font-hero);
    font-size:1.05rem;
    line-height:1.2;
    letter-spacing:.01em;
    text-transform:uppercase;
  }
  .hero-glass .promo-card {
    margin-top:1.6rem;
    padding-top:1.3rem;
  }
  .hero-glass .hero-cta-row {
    margin-top:1.65rem;
    flex-direction:column;
    align-items:stretch;
  }
  .hero-glass .hero-cta-row .btn {
    width:100%;
    min-height:48px;
    padding-inline:.7rem;
    font-size:.82rem;
  }
}

@media(max-width:1099px) {
  .hero-stage {
    height:clamp(600px,calc(100svh - 74px),760px);
  }
  .hero-glass {
    width:min(377px,100%);
  }
  .hero-glass h1 {
    font-size:clamp(1.25rem,2vw,1.4rem);
  }
}

@media(min-width:900px) and (max-width:1099px) {
  .header-inner {
    min-height:116px;
    justify-content:flex-start;
    padding-block:1rem;
  }
  .hero-stage {
    height:100vh;
    height:100svh;
    min-height:0;
  }
}

@media(max-width:768px) {
  html {
    scroll-behavior:auto;
  }
  body {
    padding-bottom:calc(98px + env(safe-area-inset-bottom));
  }
  .mobile-bottom-nav {
    position:fixed;
    z-index:90;
    right:12px;
    bottom:max(8px,env(safe-area-inset-bottom));
    left:12px;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:stretch;
    gap:1px;
    max-width:744px;
    margin-inline:auto;
    padding:10px 7px calc(8px + env(safe-area-inset-bottom));
    border:1px solid rgb(233 217 166 / 34%);
    border-radius:24px;
    background:linear-gradient(135deg,rgb(0 77 62 / 86%),rgb(0 57 48 / 76%));
    box-shadow:0 14px 36px rgb(10 50 38 / 27%),inset 0 1px rgb(255 255 255 / 22%),inset 0 -1px rgb(201 162 61 / 24%);
    -webkit-backdrop-filter:blur(28px) saturate(160%);
    backdrop-filter:blur(28px) saturate(160%);
  }
  .mobile-bottom-nav-link {
    position:relative;
    display:flex;
    min-width:0;
    min-height:66px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:7px 1px 5px;
    border-radius:16px;
    color:var(--cream);
    font-size:.7rem;
    font-weight:650;
    line-height:1.1;
    text-align:center;
    text-decoration:none;
    transition:color .2s ease,background-color .2s ease,transform .2s ease;
  }
  .mobile-bottom-nav-link .icon {
    position:relative;
    z-index:1;
    width:25px;
    height:25px;
    color:var(--gold-light);
    transition:color .22s ease,transform .22s ease;
  }
  .mobile-bottom-nav-link:hover,
  .mobile-bottom-nav-link:focus-visible {
    color:var(--cream);
    background:rgb(255 253 248 / 10%);
  }
  .mobile-bottom-nav-link:focus-visible {
    outline:2px solid var(--focus);
    outline-offset:2px;
  }
  .mobile-bottom-nav-link:active {
    transform:scale(.96);
  }
  .mobile-bottom-nav-link.is-active {
    color:var(--cream);
    background:transparent;
    box-shadow:none;
  }
  .mobile-bottom-nav-link.is-active .icon {
    color:var(--gold-light);
    transform:translateY(-12px) scale(1.02);
  }
  .mobile-bottom-nav-link.is-active::before {
    position:absolute;
    top:-8px;
    left:50%;
    width:44px;
    height:44px;
    transform:translateX(-50%);
    border-radius:50%;
    border:1px solid rgb(233 217 166 / 84%);
    background:linear-gradient(145deg,rgb(0 77 62 / 95%),rgb(0 57 48 / 97%));
    box-shadow:0 4px 12px rgb(19 37 27 / 28%),0 0 0 1px rgb(201 162 61 / 34%);
    content:"";
    animation:nav-pop .24s ease-out both;
  }
  @keyframes nav-pop {
    from { opacity:0; transform:translate(-50%,5px) scale(.86); }
    to { opacity:1; transform:translate(-50%,0) scale(1); }
  }
  body.nav-menu-open .mobile-bottom-nav {
    display:none;
  }
}

@media(max-width:639px) {
  :root {
    --header-offset:1rem;
  }
  .site-header {
    margin-bottom:-149px;
    background:transparent;
    border-bottom-color:transparent;
    transition:transform .24s ease,opacity .18s ease,visibility 0s linear .24s,background-color .2s ease,border-color .2s ease,backdrop-filter .2s ease;
  }
  .site-header .header-inner {
    min-height:149px;
  }
  .site-header .logo {
    flex-direction:column;
    gap:0;
  }
  .site-header .logo-reference-frame {
    position:relative;
    display:block;
    width:clamp(176px,54vw,208px);
    height:clamp(37px,11.4vw,44px);
    overflow:hidden;
    flex-shrink:0;
  }
  .site-header .logo-reference {
    position:absolute;
    top:0;
    left:0;
    display:block;
    width:100%;
    height:auto;
    transform:translateY(-69%);
    filter:url(#logo-wordmark-light) drop-shadow(0 1px 3px rgb(0 0 0 / 85%));
  }
  .site-header .mobile-logo-sub {
    display:none;
  }
  .site-header .logo-mark-frame {
    position:relative;
    display:block;
    width:clamp(72px,21vw,82px);
    height:clamp(72px,21vw,82px);
    border-radius:0;
    overflow:hidden;
    order:-1;
  }
  .site-header .logo-mark {
    position:absolute;
    top:0;
    left:50%;
    width:clamp(144px,42vw,164px);
    max-width:none;
    height:auto;
    transform:translateX(-50%);
    mix-blend-mode:normal;
    clip-path:inset(0 0 30% 0);
    filter:drop-shadow(0 1px 3px rgb(0 0 0 / 55%));
  }
  .site-header .logo-text {
    display:none;
  }
  .site-header .logo-text {
    color:#f3efe2;
    text-shadow:0 1px 8px rgb(0 0 0 / 35%);
  }
  .site-header .logo-sub {
    display:none;
  }
  .site-header .nav-toggle {
    color:#f3efe2;
    border-color:rgb(243 239 226 / 72%);
    background:rgb(9 23 17 / 28%);
    backdrop-filter:blur(8px);
  }
  .site-header.is-scrolled {
    transform:translateY(-105%);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }
  body.nav-menu-open .site-header {
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    background:rgb(247 242 231 / 94%);
    border-bottom-color:var(--border);
    backdrop-filter:blur(14px);
  }
  body.nav-menu-open .site-header .logo-text {
    color:var(--green-900);
    text-shadow:none;
  }
  body.nav-menu-open .site-header .logo-sub {
    color:var(--ink-muted);
  }
  body.nav-menu-open .site-header .nav-toggle {
    color:var(--green-900);
    border-color:var(--border);
    background:transparent;
    backdrop-filter:none;
  }
  .main-nav.is-open {
    position:fixed;
    inset:149px 0 0;
    z-index:99;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    align-items:stretch;
    gap:1rem;
    max-height:none;
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:1.25rem var(--gutter) max(1.25rem,env(safe-area-inset-bottom));
    background:var(--cream);
    border-bottom:0;
    box-shadow:none;
  }
  .main-nav.is-open ul {
    flex:1;
    justify-content:space-evenly;
    gap:.25rem;
    padding-block:.25rem 1rem;
  }
  .main-nav.is-open a:not(.btn) {
    min-height:52px;
    padding:.65rem .5rem;
    font-size:1.05rem;
  }
  .main-nav.is-open .header-cta {
    min-height:56px;
    justify-content:center;
    border-radius:999px;
  }
  body.nav-menu-open {
    overflow:hidden;
  }
  .hero-stage {
    height:clamp(660px,calc(100svh - 74px),800px);
    background-image:url("assets/hero/hero-mobile-poster.webp");
  }
  .hero-video-layer {
    background-image:url("assets/hero/hero-mobile-poster.webp");
    background-position:center top;
  }
  .hero-video {
    object-position:center top;
  }
  .hero-shade {
    background:linear-gradient(180deg,rgb(9 23 17 / 8%),rgb(9 23 17 / 30%) 42%,rgb(9 23 17 / 58%));
  }
  .hero-stage-content {
    flex-direction:column;
    justify-content:flex-start;
    align-items:stretch;
    padding-block:5.25rem 3.25rem;
  }
  .hero-glass {
    display:none;
  }
  .hero-foot {
    padding-block:1.1rem;
  }
  .hero-trio {
    gap:.45rem;
  }
  .hero-trio li {
    flex-direction:column;
    gap:.3rem;
  }
  .hero-trio .icon {
    width:1.5rem;
    height:1.5rem;
  }
}

/* Shared image frames used by procedure, studio and contact sections. */
.photo-frame {
  position:relative;
  margin:0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius-frame);
  background:var(--cream-alt);
}

.photo-placeholder {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:4/3;
}

.photo-tint {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgb(19 37 27 / 10%),transparent);
  pointer-events:none
}

.photo-media {
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* Cards: equal desktop height, compact image-and-copy rows on phones. */
.cards-grid  {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:1rem
}

.card  {
  min-width:0;
  padding:1.5rem;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  background:var(--card-bg);
  box-shadow:var(--shadow-card)
}

.card p  {
  font-size:.92rem;
  color:var(--ink-muted);
  margin-bottom:0
}

.card-icon .icon-lg  {
  width:2.75rem;
  height:2.75rem;
  padding:.5rem;
  background:#f4ebd6;
  border-radius:50%;
  margin-bottom:.75rem
}

.procedure-section-head {
  align-items:center;
  margin-bottom:clamp(1.75rem,3vw,2.75rem);
}

.procedure-section-head h2 {
  margin:.25rem 0 .75rem;
  font-family:var(--font-hero);
  font-size:clamp(2.35rem,5vw,4.8rem);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:1.04;
}

.procedure-eyebrow {
  margin:0;
  color:#9b792b;
  font-family:var(--font-nav);
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.34em;
  text-transform:uppercase;
}

.procedure-heading-rule {
  display:block;
  width:6.5rem;
  height:2px;
  margin:0 0 1rem;
  background:linear-gradient(90deg,#9a7829,var(--gold-light),#9a7829);
}

.procedure-section-head .section-lead {
  font-family:var(--font-nav);
  font-size:clamp(1rem,1.6vw,1.24rem);
  font-weight:300;
  letter-spacing:.025em;
}

.procedure-all-link {
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  min-height:50px;
  padding:.78rem 1.1rem .78rem 1.45rem;
  overflow:hidden;
  border:1px solid rgb(154 120 41 / 45%);
  border-radius:var(--radius-pill);
  background:linear-gradient(110deg,#f4dfa5 0%,#d7ae45 52%,#b98622 100%);
  box-shadow:0 12px 28px -18px rgb(93 64 9 / 65%);
  color:var(--green-900);
  font-family:var(--font-nav);
  font-weight:600;
  text-decoration:none;
}

.procedure-all-link::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-25% auto -25% -55%;
  width:42%;
  transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgb(255 255 255 / 62%),transparent);
  animation:procedure-gold-shine 4.8s ease-in-out infinite;
}

.procedure-all-link .icon {
  width:1.85rem;
  height:1.85rem;
  padding:.35rem;
  border-radius:50%;
  background:rgb(255 255 255 / 28%);
}

.procedure-cards {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.8rem,1.4vw,1.25rem);
}

.procedure-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:44rem;
  overflow:hidden;
  border:1px solid rgb(154 120 41 / 62%);
  border-radius:24px;
  background:var(--green-900);
  box-shadow:0 18px 40px -28px rgb(19 37 27 / 60%);
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease;
}

.procedure-card:is(:hover,:focus-within) {
  transform:translateY(-4px);
  border-color:rgb(201 162 61 / 88%);
  box-shadow:0 24px 50px -26px rgb(19 37 27 / 72%);
}

.procedure-card-open {
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:100%;
  padding:0;
  border:0;
  border-radius:inherit;
  background:transparent;
  color:transparent;
  cursor:zoom-in;
}

.procedure-card-open:focus-visible {
  outline:3px solid var(--gold-light);
  outline-offset:-5px;
}

.procedure-card-media {
  position:relative;
  isolation:isolate;
  display:grid;
  place-items:center;
  aspect-ratio:4/5;
  overflow:hidden;
  background:linear-gradient(145deg,#e7dfd2,#f6f0e5);
}

.procedure-card-media::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:-8%;
  background:
    linear-gradient(rgb(20 48 36 / 16%),rgb(20 48 36 / 16%)),
    var(--procedure-image) center / cover no-repeat;
  filter:blur(18px) saturate(.75);
  opacity:.38;
  transform:scale(1.08);
}

.procedure-card-media img {
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  box-shadow:0 12px 28px rgb(13 36 27 / 16%);
  filter:saturate(.9) contrast(.99);
  transition:filter .35s ease;
}

.procedure-card:first-child .procedure-card-media img {
  object-position:50% 43%;
}

.procedure-card:nth-child(2) .procedure-card-media img {
  object-fit:cover;
  object-position:52% 50%;
}

.procedure-card:nth-child(3) .procedure-card-media img {
  object-position:50% 42%;
}

.procedure-card:hover .procedure-card-media img {
  filter:saturate(1) contrast(1.02);
}

.procedure-card-body {
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:14.5rem;
  padding:clamp(1.1rem,1.7vw,1.45rem);
  background:
    radial-gradient(circle at 82% 18%,rgb(72 113 86 / 23%),transparent 38%),
    linear-gradient(145deg,#173b2e,#0e281e);
  color:#f7f0df;
  text-align:left;
}

.procedure-card-body h3 {
  margin:0 0 .65rem;
  color:#fffaf0;
  font-family:var(--font-hero);
  font-size:clamp(1.45rem,2.25vw,2rem);
  font-weight:400;
}

.procedure-card-body p {
  max-width:34ch;
  margin:0 0 .9rem;
  color:rgb(255 250 240 / 94%);
  font-family:var(--font-nav);
  font-size:clamp(1rem,1.08vw,1.08rem);
  font-weight:400;
  letter-spacing:.01em;
  line-height:1.6;
}

.procedure-card-more {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin:0 0 1rem;
  color:#e7cb76;
  font-family:var(--font-nav);
  font-size:.88rem;
  font-weight:650;
  letter-spacing:.025em;
}

.procedure-card-more .icon {
  width:1rem;
  height:1rem;
}

.procedure-card-cta {
  position:relative;
  isolation:isolate;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  margin-top:auto;
  overflow:hidden;
  border:1px solid rgb(233 217 166 / 86%);
  border-radius:3px;
  background:rgb(226 195 119 / 5%);
  box-shadow:0 0 20px rgb(226 195 119 / 15%),inset 0 0 14px rgb(226 195 119 / 8%);
  color:#f2d986;
  font-family:var(--font-nav);
  font-size:.76rem;
  font-weight:650;
  letter-spacing:.2em;
  text-decoration:none;
  text-transform:uppercase;
  transition:border-color .25s ease,background-color .25s ease,box-shadow .25s ease,transform .25s ease;
  z-index:3;
}

.procedure-card-cta::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-35% auto -35% -45%;
  width:34%;
  transform:skewX(-24deg);
  background:linear-gradient(90deg,transparent,rgb(255 244 202 / 62%),transparent);
  animation:procedure-outline-shine 4.2s ease-in-out infinite;
}

.procedure-card-cta::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(110deg,transparent 15%,rgb(207 164 58 / 13%) 50%,transparent 85%);
  opacity:.55;
}

.procedure-card-cta:is(:hover,:focus-visible) {
  transform:translateY(-2px);
  border-color:#f5dc8d;
  background:rgb(226 195 119 / 12%);
  box-shadow:0 0 28px rgb(226 195 119 / 28%),inset 0 0 18px rgb(226 195 119 / 14%);
}

@keyframes procedure-outline-shine {
  0%,22% { left:-45%;opacity:0; }
  34% { opacity:1; }
  64% { left:120%;opacity:.9; }
  72%,100% { left:120%;opacity:0; }
}

@keyframes procedure-gold-shine {
  0%,24% { left:-55%;opacity:0; }
  36% { opacity:1; }
  65% { left:125%;opacity:.85; }
  74%,100% { left:125%;opacity:0; }
}

body.procedure-dialog-open,
body.image-viewer-open {
  overflow:hidden;
}

.procedure-dialog {
  width:min(1120px,calc(100% - 2rem));
  max-width:none;
  max-height:calc(100dvh - 2rem);
  padding:0;
  overflow:hidden;
  border:1px solid rgb(201 162 61 / 58%);
  border-radius:26px;
  background:#f5eedf;
  color:var(--green-900);
  box-shadow:0 34px 90px rgb(7 21 15 / 48%);
}

.procedure-dialog::backdrop {
  background:rgb(7 20 14 / 72%);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
}

.procedure-dialog-layout {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(20rem,.85fr);
  min-height:min(78dvh,720px);
}

.procedure-dialog-close {
  position:absolute;
  z-index:2;
  top:1rem;
  right:1rem;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  padding:0 0 .15rem;
  border:1px solid rgb(255 255 255 / 68%);
  border-radius:50%;
  background:rgb(18 42 31 / 72%);
  color:white;
  font-family:var(--font-nav);
  font-size:1.75rem;
  line-height:1;
  cursor:pointer;
  transition:background-color .2s ease,transform .2s ease;
}

.procedure-dialog-close:is(:hover,:focus-visible) {
  transform:rotate(7deg);
  background:var(--green-900);
}

.procedure-dialog-media {
  display:grid;
  place-items:center;
  min-height:0;
  padding:1rem;
  overflow:hidden;
  background:linear-gradient(145deg,#ded5c5,#f7f1e6);
}

.procedure-dialog-image-button {
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  min-height:0;
  padding:0;
  overflow:hidden;
  border:0;
  border-radius:18px;
  background:transparent;
  cursor:zoom-in;
}

.procedure-dialog-image-button:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:3px;
}

.procedure-dialog-media img {
  width:100%;
  height:min(74dvh,680px);
  object-fit:contain;
  border-radius:18px;
  transition:filter .25s ease,transform .3s ease;
}

.procedure-dialog-image-button:is(:hover,:focus-visible) img {
  filter:brightness(.82);
  transform:scale(1.015);
}

.procedure-dialog-zoom-label {
  position:absolute;
  left:50%;
  bottom:1rem;
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:42px;
  padding:.55rem .9rem .55rem .6rem;
  border:1px solid rgb(255 255 255 / 45%);
  border-radius:999px;
  background:rgb(8 42 31 / 78%);
  color:#fff8e8;
  font-family:var(--font-nav);
  font-size:.78rem;
  font-weight:650;
  letter-spacing:.06em;
  box-shadow:0 12px 30px rgb(3 17 12 / 38%);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  transform:translateX(-50%);
  transition:background-color .2s ease,transform .2s ease;
  white-space:nowrap;
}

.procedure-dialog-zoom-label > span {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:linear-gradient(135deg,#f7e7b0,#c89f3e);
  color:var(--green-900);
  font-size:1.15rem;
  line-height:1;
}

.procedure-dialog-image-button:is(:hover,:focus-visible) .procedure-dialog-zoom-label {
  background:rgb(6 34 25 / 92%);
  transform:translateX(-50%) translateY(-3px);
}

.image-viewer {
  width:min(1440px,calc(100% - 1.5rem));
  max-width:none;
  height:calc(100dvh - 1.5rem);
  max-height:none;
  padding:0;
  overflow:hidden;
  border:1px solid rgb(226 194 111 / 58%);
  border-radius:24px;
  background:rgb(5 25 18 / 96%);
  color:#fff8e9;
  box-shadow:0 32px 100px rgb(0 0 0 / 65%);
}

.image-viewer::backdrop {
  background:rgb(2 12 8 / 88%);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}

.image-viewer-shell {
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  height:100%;
}

.image-viewer-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem 1rem;
  border-bottom:1px solid rgb(231 203 130 / 22%);
  background:rgb(6 34 25 / 88%);
}

.image-viewer-heading {
  display:flex;
  align-items:center;
  gap:.8rem;
  min-width:0;
  font-family:var(--font-nav);
  font-size:.88rem;
  font-weight:600;
}

.image-viewer-heading > span:first-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.image-viewer-scale {
  flex:none;
  color:var(--gold-light);
  font-variant-numeric:tabular-nums;
}

.image-viewer-controls {
  display:flex;
  align-items:center;
  gap:.45rem;
}

.image-viewer-control,
.image-viewer-reset,
.image-viewer-close {
  display:grid;
  place-items:center;
  height:42px;
  padding:0;
  border:1px solid rgb(255 255 255 / 30%);
  border-radius:999px;
  background:rgb(255 255 255 / 8%);
  color:#fff;
  font-family:var(--font-nav);
  cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease,transform .2s ease;
}

.image-viewer-control,
.image-viewer-close {
  width:42px;
  font-size:1.35rem;
}

.image-viewer-reset {
  min-width:64px;
  padding-inline:.75rem;
  color:var(--gold-light);
  font-size:.78rem;
  font-weight:650;
}

.image-viewer-control:is(:hover,:focus-visible),
.image-viewer-reset:is(:hover,:focus-visible),
.image-viewer-close:is(:hover,:focus-visible) {
  border-color:var(--gold-light);
  background:rgb(219 183 91 / 18%);
  transform:translateY(-1px);
}

.image-viewer-control:disabled {
  opacity:.35;
  cursor:not-allowed;
  transform:none;
}

.image-viewer-stage {
  position:relative;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  background:
    radial-gradient(circle at center,rgb(28 69 53 / 60%),transparent 58%),
    #061811;
  scrollbar-color:rgb(222 189 105 / 72%) rgb(255 255 255 / 8%);
  touch-action:none;
  cursor:zoom-in;
}

.image-viewer-stage:focus-visible {
  outline:2px solid var(--gold-light);
  outline-offset:-3px;
}

.image-viewer-canvas {
  display:grid;
  place-items:center;
  min-width:100%;
  min-height:100%;
}

.image-viewer-canvas.is-zoomed {
  cursor:grab;
}

.image-viewer-canvas.is-zoomed:active {
  cursor:grabbing;
}

.image-viewer-image {
  display:block;
  max-width:none;
  max-height:none;
  border-radius:12px;
  box-shadow:0 22px 55px rgb(0 0 0 / 48%);
  user-select:none;
  -webkit-user-drag:none;
}

.image-viewer-hint {
  margin:0;
  padding:.65rem 1rem;
  color:rgb(255 248 232 / 72%);
  font-family:var(--font-nav);
  font-size:.76rem;
  line-height:1.4;
  text-align:center;
}

.procedure-dialog-body {
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(2rem,4vw,4rem);
}

.procedure-dialog-eyebrow {
  margin:0 0 .65rem;
  color:#9b792b;
  font-family:var(--font-nav);
  font-size:.72rem;
  font-weight:650;
  letter-spacing:.24em;
  text-transform:uppercase;
}

.procedure-dialog-body h2 {
  margin:0 0 .85rem;
  font-family:var(--font-hero);
  font-size:clamp(2.25rem,4.5vw,4.4rem);
  letter-spacing:-.045em;
}

.procedure-dialog-body h2.is-long {
  font-size:clamp(2rem,2.9vw,3rem);
  letter-spacing:-.055em;
}

.procedure-dialog-body > p:not(.procedure-dialog-eyebrow) {
  color:var(--green-700);
  font-family:var(--font-nav);
  font-size:clamp(1rem,1.35vw,1.12rem);
  font-weight:350;
  line-height:1.7;
}

.procedure-dialog-note {
  margin-top:.25rem;
  padding-top:1rem;
  border-top:1px solid rgb(154 120 41 / 34%);
  font-size:.9rem!important;
}

.procedure-dialog-cta {
  align-self:flex-start;
  margin-top:.6rem;
}

@media(max-width:719px) {
  .procedure-section-head {
    align-items:flex-start;
  }
  .procedure-section-head h2 {
    font-size:clamp(2.35rem,12vw,3.2rem);
  }
  .procedure-all-link {
    width:100%;
  }
  .procedure-cards {
    grid-template-columns:minmax(0,1fr);
  }
  .procedure-card {
    display:grid;
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    min-height:244px;
  }
  .procedure-card-media {
    height:100%;
    min-height:244px;
    aspect-ratio:auto;
  }
  .procedure-card-media img {
    object-fit:cover;
    box-shadow:none;
  }
  .procedure-card-body {
    min-height:244px;
    padding:1rem;
    text-align:left;
  }
  .procedure-card-body h3 {
    font-size:1.35rem;
  }
  .procedure-card-body p {
    margin-inline:0;
    font-size:.94rem;
    font-weight:400;
    line-height:1.5;
  }
  .procedure-card-more {
    margin-bottom:.75rem;
    font-size:.8rem;
  }
  .procedure-card-cta {
    min-height:44px;
    font-size:.68rem;
    letter-spacing:.12em;
  }
  .procedure-dialog {
    width:calc(100% - 1rem);
    max-height:calc(100dvh - 1rem);
    overflow:auto;
    border-radius:20px;
  }
  .procedure-dialog-layout {
    grid-template-columns:minmax(0,1fr);
    min-height:0;
  }
  .procedure-dialog-media {
    min-height:46dvh;
    padding:.75rem;
  }
  .procedure-dialog-media img {
    height:46dvh;
    border-radius:14px;
  }
  .procedure-dialog-image-button {
    border-radius:14px;
  }
  .procedure-dialog-zoom-label {
    bottom:.65rem;
    min-height:38px;
    font-size:.72rem;
  }
  .procedure-dialog-body {
    padding:1.5rem;
  }
  .procedure-dialog-body h2 {
    font-size:2.25rem;
  }
  .procedure-dialog-close {
    position:fixed;
    top:calc(.75rem + env(safe-area-inset-top));
    right:.75rem;
  }
  .image-viewer {
    width:100%;
    height:100dvh;
    border:0;
    border-radius:0;
  }
  .image-viewer-toolbar {
    align-items:flex-start;
    padding:calc(.55rem + env(safe-area-inset-top)) .65rem .55rem;
  }
  .image-viewer-heading {
    display:none;
  }
  .image-viewer-controls {
    width:100%;
    justify-content:center;
  }
  .image-viewer-close {
    margin-left:auto;
  }
  .image-viewer-hint {
    padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom));
    font-size:.68rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  .procedure-all-link::before,
  .procedure-card-cta::before {
    animation:none;
    display:none;
  }
  .procedure-card-media img,
  .procedure-card-cta,
  .procedure-card {
    transition:none;
  }
}
.card-procedure-body  {
  display:flex;
  flex-direction:column;
  flex:1;
  min-width:0;
  padding:1.1rem;
  gap:.6rem
}

.card-procedure-body h3  {
  margin:0;
  font-size:1.3rem
}

.card-procedure-body p  {
  line-height:1.55;
  margin-bottom:.25rem
}

.card-procedure .btn-round  {
  align-self:flex-end;
  margin-top:auto
}

.photo-frame-sm  {
  flex-shrink:0;
  width:100%;
  border:0;
  border-radius:0
}

.photo-frame-sm .photo-placeholder  {
  aspect-ratio:4/3;
  background:linear-gradient(135deg,var(--cream-alt),var(--card-bg))
}

.photo-frame-sm .photo-media  {
  filter:saturate(.88)
}

.photo-frame-sm-3 .photo-media  {
  transform:scale(2.1);
  transform-origin:100% 58%
}

.photo-frame-sm-4 .photo-placeholder  {
  background:radial-gradient(ellipse at 50% 80%,var(--gold-light),transparent 75%),var(--cream)
}

.photo-frame-sm-4 .icon  {
  color:#8b7134;
  margin-top:1.5rem
}

.photo-badge  {
  position:absolute;
  top:.8rem;
  left:.8rem;
  right:.8rem;
  text-align:center;
  padding:.45rem .6rem;
  border:1px solid var(--border);
  border-radius:var(--radius-pill);
  background:var(--card-bg);
  color:var(--green-800);
  font-size:.75rem
}

#procedures > .container > .note  {
  margin:1.5rem 0 0
}

@media(min-width:640px)  {
  .cards-grid-2,.cards-grid-3,.cards-grid-5  {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

@media(min-width:1100px)  {
  .cards-grid-3  {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .cards-grid-5  {
    grid-template-columns:repeat(5,minmax(0,1fr))
  }
}

@media(max-width:639px)  {
  .card-procedure  {
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)
  }
  .card-procedure .photo-placeholder  {
    height:100%;
    min-height:208px;
    aspect-ratio:auto
  }
  .card-procedure-body  {
    padding:1rem
  }
  .card-procedure-body h3  {
    font-size:1.2rem;
    text-wrap:initial
  }
  .card-procedure-body p  {
    font-size:.85rem
  }
  .photo-badge  {
    top:.6rem;
    left:.5rem;
    right:.5rem;
    font-size:.72rem
  }
  .cards-compact  {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.75rem
  }
  .cards-compact .card  {
    padding:1rem
  }
  .cards-compact h3  {
    font-size:1.1rem;
    text-wrap:initial;
    hyphens:auto;
    overflow-wrap:anywhere
  }
  .cards-compact p  {
    font-size:.85rem
  }
  #advantages .card-icon  {
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:.3rem 1rem;
    padding:1.25rem
  }
  #advantages .card-icon .icon  {
    grid-row:span 2;
    margin:0
  }
  #advantages .card-icon h3  {
    margin:0
  }
}

/* DOM and visual section order match, including keyboard navigation. */
.layout-grid  {
  display:grid;
  grid-template-columns:minmax(0,1fr)
}

@media(min-width:1100px)  {
  .layout-grid  {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)
  }
  .grid-area-procedures,.grid-area-about,.grid-area-results,.grid-area-prices,.grid-area-contact  {
    grid-column:1/-1
  }
  .grid-area-advantages > .container  {
    max-width:640px;
    margin-right:0
  }
  .grid-area-find > .container  {
    max-width:640px;
    margin-left:0
  }
  #advantages .cards-grid  {
    gap:.75rem
  }
  #advantages .card  {
    padding:1rem
  }
  #advantages h3  {
    font-size:1.05rem;
    text-wrap:initial;
    hyphens:auto;
    overflow-wrap:anywhere
  }
  #advantages .card p  {
    font-size:.85rem
  }
}

/* Studio: a standalone screen with the complete, uncropped 4:3 photo. */
.studio-page  {
  min-height:100svh;
  display:flex;
  align-items:center
}

.studio-page > .container  {
  width:100%
}

.photo-frame-about  {
  max-width:1180px;
  margin-inline:auto
}

.photo-frame-about .photo-placeholder  {
  height:auto;
  aspect-ratio:4/3;
  background:var(--green-900)
}

.photo-frame-about .photo-media  {
  position:static;
  width:100%;
  height:auto;
  object-fit:contain
}

.about-media-copy  {
  padding:1.5rem;
  background:var(--card-bg);
  color:var(--ink);
  font-size:1rem;
  display:flex;
  flex-direction:column;
  justify-content:center
}

.about-media-copy p  {
  font-size:.95rem
}

.about-media-copy .about-kicker  {
  margin:0 0 .55rem;
  color:#9b792b;
  font-family:var(--font-nav);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.18em;
  line-height:1.45;
  text-transform:uppercase
}

.about-media-copy .btn  {
  align-self:flex-start
}

.about-results .section-lead  {
  font-size:.9rem
}

.results-gallery-head  {
  max-width:58ch;
  margin-top:clamp(2.5rem,5vw,4.5rem);
  margin-bottom:1.35rem
}

.results-gallery-head .eyebrow  {
  margin-bottom:.45rem;
  color:#9b792b;
  font-family:var(--font-nav);
  font-weight:700
}

.results-gallery-head h3  {
  margin-bottom:.65rem;
  font-size:clamp(1.75rem,3vw,2.5rem)
}

.results-gallery-head p:last-child  {
  margin:0;
  color:var(--ink-muted)
}

.results-gallery  {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(.7rem,2vw,1.5rem)
}

.result-photo-card  {
  margin:0;
  overflow:hidden;
  border:1px solid rgb(159 125 48 / 42%);
  border-radius:clamp(16px,2.2vw,26px);
  background:var(--green-900);
  box-shadow:0 18px 48px rgb(19 37 27 / 12%)
}

.result-photo-open  {
  position:relative;
  display:block;
  width:100%;
  padding:0;
  overflow:hidden;
  border:0;
  background:#f4f0e7;
  cursor:zoom-in
}

.result-photo-open img  {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:contain;
  background:#f4f0e7;
  transition:filter .25s ease,transform .35s ease
}

.result-photo-open:is(:hover,:focus-visible) img  {
  filter:saturate(1.03) contrast(1.02);
  transform:scale(1.012)
}

.result-photo-open:focus-visible  {
  outline:3px solid var(--gold-light);
  outline-offset:-5px
}

.result-photo-zoom  {
  position:absolute;
  right:.8rem;
  bottom:.8rem;
  display:grid;
  place-items:center;
  width:2.45rem;
  height:2.45rem;
  border:1px solid rgb(245 224 166 / 72%);
  border-radius:50%;
  color:#fff7df;
  background:rgb(19 55 42 / 82%);
  box-shadow:0 8px 22px rgb(0 0 0 / 18%);
  backdrop-filter:blur(8px)
}

.result-photo-card figcaption  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.9rem 1.1rem;
  color:#f3efe2;
  font-family:var(--font-nav);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase
}

.result-photo-card figcaption span:last-child  {
  color:#e8cd7d;
  font-size:.72rem
}

@media(max-width:520px)  {
  .results-gallery  {
    gap:.65rem
  }
  .result-photo-card figcaption  {
    align-items:flex-start;
    flex-direction:column;
    gap:.12rem;
    padding:.7rem .75rem;
    font-size:.72rem
  }
  .result-photo-card figcaption span:last-child  {
    font-size:.62rem
  }
  .result-photo-zoom  {
    right:.5rem;
    bottom:.5rem;
    width:2rem;
    height:2rem
  }
}

@media(min-width:1100px)  {
  .photo-frame-about  {
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(340px,.75fr);
    align-items:stretch
  }
  .photo-frame-about .photo-placeholder  {
    height:auto;
    min-height:0;
    aspect-ratio:4/3
  }
  .about-media-copy  {
    position:relative;
    z-index:1;
    padding:clamp(2rem,3.5vw,3.25rem);
    color:#f3efe2;
    background:linear-gradient(145deg,rgb(25 65 50 / 96%),var(--green-900))
  }
  .about-media-copy h2,.about-media-copy p  {
    color:#f3efe2
  }
  .about-media-copy .about-kicker  {
    color:#e8cd7d
  }
}

/* Help is OUTSIDE the iframe: an opaque third-party error cannot hide it. */
.find-inner  {
  display:grid;
  gap:1.5rem
}

.find-address  {
  display:flex;
  align-items:start;
  gap:.6rem
}

.find-address .icon  {
  margin-top:.25rem
}

.find-metro  {
  color:var(--ink-muted);
  font-size:.9rem
}

.map-col  {
  min-width:0
}

.map-card  {
  height:280px;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  overflow:hidden;
  background:var(--cream-alt);
  box-shadow:var(--shadow-card)
}

.map-embed  {
  width:100%;
  height:100%;
  display:block;
  border:0
}

.map-help  {
  margin:.75rem 0 0;
  color:var(--ink-muted);
  font-size:.82rem;
  line-height:1.5
}

.map-fallback-link  {
  font-size:.88rem
}

.map-fallback-link:hover  {
  text-decoration-thickness:2px
}

@media(min-width:640px) and (max-width:1099px)  {
  .find-inner  {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)
  }
}

@media(min-width:1280px)  {
  .find-inner  {
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:1rem
  }
}

/* The contact and first-visit invitation share one continuous panel. */
.contact-panel  {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(1.5rem,4vw,4rem);
  min-height:330px;
  padding:clamp(1.5rem,4vw,3.25rem);
  border:1px solid rgb(214 173 75 / 34%);
  border-radius:clamp(20px,3vw,32px);
  overflow:hidden;
  background:
    radial-gradient(circle at 90% 18%,rgb(57 126 88 / 30%),transparent 36%),
    linear-gradient(125deg,#10281d,#174331 58%,#102a20);
  box-shadow:0 22px 54px rgb(10 45 32 / 18%)
}

.contact-panel::after  {
  content:"";
  position:absolute;
  top:12%;
  bottom:12%;
  left:50%;
  width:1px;
  background:linear-gradient(transparent,rgb(233 217 166 / 54%),transparent);
  pointer-events:none
}

.contact-panel-details,.contact-panel-offer  {
  position:relative;
  z-index:1;
  min-width:0;
  align-self:center
}

.contact-panel-kicker  {
  margin:0 0 .65rem;
  color:#e4c77e;
  font-family:var(--font-nav);
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase
}

.contact-panel h2  {
  max-width:18ch;
  margin:0 0 1.15rem;
  color:#fff9ec;
  font-family:var(--font-hero);
  font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:400;
  line-height:1.18;
  letter-spacing:-.035em
}

.contact-phone  {
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  min-height:52px;
  color:#fff9ec;
  font-family:var(--font-nav);
  font-size:clamp(1.45rem,2.5vw,2.15rem);
  font-weight:500;
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1;
  letter-spacing:.005em;
  white-space:nowrap;
  text-decoration:none;
  transition:color .2s ease
}

.contact-phone:hover,.contact-phone:focus-visible  {
  color:#e9d9a6
}

.contact-phone .icon  {
  flex:none;
  width:1.6rem;
  height:1.6rem
}

.contact-hours  {
  margin:.35rem 0 0;
  color:rgb(255 250 238 / 78%);
  font-family:var(--font-nav);
  font-size:.98rem
}

.messenger-row  {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.35rem
}

.contact-panel-offer > p:not(.contact-panel-kicker)  {
  max-width:50ch;
  margin:0;
  color:rgb(255 250 238 / 84%);
  font-family:var(--font-nav);
  font-size:1.03rem;
  line-height:1.55
}

.contact-panel-offer-actions  {
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:1.5rem
}

.contact-panel .leaf-deco  {
  z-index:0;
  width:8rem;
  height:13rem;
  opacity:.24;
  transform-origin:50% 94%;
  animation:contact-leaf-sway 8s ease-in-out infinite alternate
}

.contact-panel .leaf-contact-1  {
  top:-3.5rem;
  right:-1.8rem;
  color:#c5d3a5;
  --leaf-start:24deg;
  --leaf-end:31deg
}

.contact-panel .leaf-contact-2  {
  bottom:-3.5rem;
  left:-2.3rem;
  color:#d8bb72;
  --leaf-start:-19deg;
  --leaf-end:-11deg;
  animation-delay:-4s
}

.contact-panel .leaf-contact-3  {
  right:31%;
  bottom:-5.5rem;
  color:#9fb98d;
  --leaf-start:146deg;
  --leaf-end:153deg;
  animation-delay:-2s
}

@keyframes contact-leaf-sway  {
  from { transform:rotate(var(--leaf-start)) translateX(-2px); }
  to { transform:rotate(var(--leaf-end)) translateX(3px); }
}

@media(max-width:760px)  {
  .contact-panel  {
    grid-template-columns:1fr;
    gap:1.5rem
  }
  .contact-panel::after  {
    top:50%;
    bottom:auto;
    left:1.5rem;
    width:calc(100% - 3rem);
    height:1px;
    background:linear-gradient(90deg,rgb(233 217 166 / 55%),transparent)
  }
  .contact-panel-offer  {
    padding-top:1.5rem
  }
  .contact-panel .leaf-contact-3  {
    right:-1rem;
    bottom:-4rem
  }
}

@media(prefers-reduced-motion:reduce)  {
  .contact-panel .leaf-deco  {
    animation:none;
    transform:rotate(var(--leaf-start))
  }
}

/* Price list: a separate emerald-and-gold dialog opened from navigation. */
.price-launch-section  {
  padding-block:clamp(2.5rem,6vw,5rem)
}

.price-launch-card  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  padding:clamp(1.5rem,4vw,3rem);
  border:1px solid rgb(216 177 75 / 62%);
  border-radius:var(--radius-frame);
  color:#f7f0df;
  background:
    radial-gradient(circle at 85% 20%,rgb(63 126 96 / 32%),transparent 38%),
    linear-gradient(135deg,#0c2e23,#174d3a);
  box-shadow:0 24px 64px rgb(12 46 35 / 18%)
}

.price-launch-card h2  {
  margin:.35rem 0 .55rem;
  color:#fffaf0
}

.price-launch-card p  {
  max-width:58ch;
  margin:0;
  color:rgb(247 240 223 / 78%)
}

.price-launch-card .eyebrow  {
  color:#e8cd7d
}

body.price-dialog-open  {
  overflow:hidden
}

.price-dialog  {
  width:min(1480px,calc(100% - 1.5rem));
  max-width:none;
  height:calc(100dvh - 1.5rem);
  max-height:none;
  padding:0;
  overflow:hidden;
  border:1px solid rgb(224 188 92 / 65%);
  border-radius:28px;
  color:var(--ink);
  background:#f5f0e4;
  box-shadow:0 36px 110px rgb(0 0 0 / 52%)
}

.price-dialog::backdrop  {
  background:rgb(3 20 14 / 82%);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px)
}

.price-dialog-shell  {
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  height:100%
}

.price-dialog-header  {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1rem clamp(1rem,3vw,2rem);
  color:#fff7df;
  background:
    radial-gradient(circle at 80% 0,rgb(77 145 110 / 30%),transparent 38%),
    linear-gradient(135deg,#08291e,#15513d);
  box-shadow:0 12px 30px rgb(8 41 30 / 20%)
}

.price-dialog-brand  {
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0
}

.price-dialog-brand-mark  {
  position:relative;
  display:block;
  width:64px;
  height:64px;
  flex:0 0 64px;
  overflow:hidden
}

.price-dialog-brand-mark img  {
  position:absolute;
  top:-4px;
  left:-34px;
  width:132px;
  max-width:none;
  height:auto;
  filter:drop-shadow(0 2px 4px rgb(0 0 0 / 40%))
}

.price-dialog-brand-wordmark  {
  position:relative;
  display:block;
  width:250px;
  height:50px;
  overflow:hidden
}

.price-dialog-brand-wordmark img  {
  position:absolute;
  top:-115px;
  left:0;
  width:250px;
  max-width:none;
  height:auto;
  filter:url(#logo-wordmark-light) drop-shadow(0 1px 2px rgb(0 0 0 / 65%))
}

.price-dialog-close  {
  display:grid;
  place-items:center;
  width:2.75rem;
  height:2.75rem;
  padding:0;
  border:1px solid rgb(232 205 125 / 58%);
  border-radius:50%;
  color:#fff7df;
  background:rgb(255 255 255 / 9%);
  font-size:1.75rem;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease
}

.price-dialog-close:is(:hover,:focus-visible)  {
  background:rgb(232 205 125 / 20%);
  transform:rotate(5deg)
}

.price-dialog-close svg  {
  display:block;
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round
}

.price-dialog-scroll  {
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-color:#b89543 #e8e0d1
}

.price-dialog-content  {
  width:min(1380px,100%);
  margin-inline:auto;
  padding:clamp(1.4rem,3vw,3rem)
}

.price-dialog-content > h2  {
  margin-bottom:1rem;
  color:#0b3829;
  font-family:var(--font-nav);
  font-size:clamp(2rem,4vw,3.25rem);
  font-weight:500;
  letter-spacing:-.035em
}

.price-dialog .promo-banner  {
  border-color:rgb(197 157 55 / 48%);
  background:linear-gradient(135deg,#fffaf0,#f4e6bc)
}

.price-dialog .note  {
  margin-block:1rem 1.5rem;
  color:#655f55
}

.price-group-title  {
  display:flex;
  align-items:center;
  gap:.75rem;
  margin:2rem 0 .85rem;
  color:#0e4936;
  font-family:var(--font-nav);
  font-size:clamp(1.2rem,2vw,1.55rem);
  font-weight:650;
  letter-spacing:.01em
}

.price-group-title::before  {
  content:"";
  width:2rem;
  height:2px;
  flex:0 0 auto;
  background:linear-gradient(90deg,#b5892f,#f0d78c)
}

.table-wrap  {
  margin-bottom:1rem;
  overflow:hidden;
  border:1px solid rgb(187 148 47 / 42%);
  border-radius:20px;
  background:#fffdf8;
  box-shadow:0 14px 34px rgb(16 60 45 / 8%)
}

.price-table  {
  width:100%;
  border-collapse:collapse;
  background:#fffdf8;
  font-family:var(--font-nav);
  font-variant-numeric:tabular-nums
}

.price-table th,.price-table td  {
  text-align:left;
  padding:.9rem .8rem;
  border-bottom:1px solid rgb(187 148 47 / 24%);
  font-size:clamp(.76rem,1vw,.9rem);
  line-height:1.45
}

.price-table th  {
  color:#fff8e7;
  background:linear-gradient(135deg,#0d3a2b,#176047);
  font-size:.76rem;
  font-weight:650;
  letter-spacing:.035em
}

.price-table tbody tr  {
  transition:background .2s ease
}

.price-table tbody tr:nth-child(even)  {
  background:#faf4e8
}

.price-table tbody tr:hover  {
  background:#f4ead2
}

.price-table tr:last-child td  {
  border-bottom:0
}

.price-table td:first-child  {
  color:#103d2e;
  font-weight:650
}

.price-actions-cell  {
  width:148px;
  min-width:148px
}

.price-row-actions  {
  display:grid;
  gap:.45rem
}

.price-action  {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:2.25rem;
  padding:.48rem .72rem;
  border:1px solid #c69732;
  border-radius:999px;
  color:#123b2d;
  font-family:var(--font-nav);
  font-size:.7rem;
  font-weight:750;
  letter-spacing:.035em;
  text-align:center;
  text-decoration:none;
  background:linear-gradient(115deg,#f7e5aa,#d7a92f 58%,#f1d986);
  box-shadow:0 8px 18px rgb(177 129 29 / 18%);
  transition:transform .2s ease,filter .2s ease,box-shadow .2s ease
}

.price-action-call  {
  color:#123b2d;
  background:linear-gradient(115deg,#e9c968,#b98224 58%,#dfbd5d);
  border-color:#b78022
}

/* Touch targets: 44 px minimum on touch screens (price dialog actions were 36 px). */
@media (pointer: coarse)  {
  .price-action  {
    min-height:2.75rem
  }
}

.price-action:is(:hover,:focus-visible)  {
  filter:brightness(1.06);
  transform:translateY(-1px);
  box-shadow:0 11px 24px rgb(177 129 29 / 24%)
}

@media(max-width:899px)  {
  .price-launch-card  {
    align-items:flex-start;
    flex-direction:column
  }
  .price-dialog  {
    width:calc(100% - .5rem);
    height:calc(100dvh - .5rem);
    border-radius:20px
  }
  .price-dialog-header  {
    padding:.75rem .85rem
  }
  .price-dialog-brand-mark  {
    width:50px;
    height:50px;
    flex-basis:50px
  }
  .price-dialog-brand-mark img  {
    top:-3px;
    left:-26px;
    width:103px
  }
  .price-dialog-brand-wordmark  {
    width:190px;
    height:40px
  }
  .price-dialog-brand-wordmark img  {
    top:-87px;
    width:190px
  }
  .price-dialog-content  {
    padding:1.1rem .85rem 2rem
  }
  .table-wrap  {
    border:0;
    border-radius:0;
    overflow:visible;
    background:none;
    box-shadow:none
  }
  .price-table  {
    background:none
  }
  .price-table thead  {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip-path:inset(50%)
  }
  .price-table,.price-table tbody,.price-table tr,.price-table td  {
    display:block;
    width:100%
  }
  .price-table tr  {
    margin-bottom:.9rem;
    padding:1rem;
    border:1px solid rgb(188 148 47 / 42%);
    border-radius:18px;
    background:linear-gradient(145deg,#fffdf8,#f8efde);
    box-shadow:0 12px 28px rgb(15 64 47 / 10%)
  }
  .price-table tbody tr:nth-child(even),.price-table tbody tr:hover  {
    background:linear-gradient(145deg,#fffdf8,#f8efde)
  }
  .price-table td  {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.35rem 0;
    border:0;
    text-align:right;
    white-space:normal;
    overflow-wrap:anywhere
  }
  .price-table td::before  {
    content:attr(data-label);
    color:#6d6659;
    font-weight:500;
    text-align:left
  }
  .price-table td[data-label="Абонемент 6"]::before  {
    content:"Абонемент 6 сеансов"
  }
  .price-table td[data-label="Абонемент 10"]::before  {
    content:"Абонемент 10 сеансов"
  }
  .price-table td[data-label="Процедура"]  {
    margin-bottom:.55rem;
    padding-bottom:.7rem;
    border-bottom:1px solid rgb(188 148 47 / 28%);
    color:#0b3d2c;
    font-size:1rem;
    font-weight:750;
    text-align:left
  }
  .price-table td[data-label="Процедура"]::before,
  .price-table .price-actions-cell::before  {
    content:none
  }
  .price-actions-cell  {
    min-width:0;
    margin-top:.7rem;
    padding-top:.75rem;
    border-top:1px solid rgb(188 148 47 / 28%)
  }
  .price-row-actions  {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem
  }
}

@media(min-width:640px) and (max-width:899px)  {
  .price-table tbody  {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:1rem
  }
  .price-table tr  {
    margin:0
  }
}

/* A clear, calm safety note in the studio's emerald and gold palette. */
.contraindications-section  {
  position:relative;
  overflow:hidden;
  color:#f6f0e3;
  background:
    radial-gradient(circle at 92% 8%,rgb(93 143 111 / 18%),transparent 30%),
    linear-gradient(140deg,#0d2b20,#153f2e 60%,#0d3024)
}

.contraindications-section::before  {
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgb(224 191 112 / 30%);
  border-radius:30px;
  pointer-events:none
}

.contraindications-section > .container  {
  position:relative;
  z-index:1
}

.contraindications-heading  {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);
  align-items:end;
  gap:clamp(1rem,4vw,4rem);
  margin-bottom:clamp(1.8rem,4vw,3rem);
  padding-bottom:clamp(1.4rem,3vw,2rem);
  border-bottom:1px solid rgb(224 191 112 / 38%)
}

.contraindications-heading .eyebrow  {
  margin:0 0 .75rem;
  color:#e4c77e;
  font-family:var(--font-nav);
  letter-spacing:.18em
}

.contraindications-heading h2  {
  margin:0;
  color:#fff9ed;
  font-family:var(--font-hero);
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:400;
  letter-spacing:-.035em
}

.contraindications-heading > p  {
  max-width:59ch;
  margin:0;
  color:rgb(255 250 238 / 84%);
  font-family:var(--font-nav);
  font-size:clamp(1rem,1.5vw,1.16rem);
  line-height:1.55
}

.contraindications-list  {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
  counter-reset:contraindication;
  list-style:none;
  margin:0;
  padding:0;
}

.contraindications-list li  {
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:1rem;
  min-height:5.5rem;
  padding:1.25rem 1.35rem;
  border:1px solid rgb(233 217 166 / 32%);
  border-radius:16px;
  background:rgb(255 253 247 / 7%);
  font-family:var(--font-nav);
  font-size:clamp(1rem,1.25vw,1.12rem);
  line-height:1.5;
  text-wrap:pretty;
  counter-increment:contraindication
}

.contraindications-list li::before  {
  content:counter(contraindication,decimal-leading-zero);
  flex:0 0 2rem;
  color:#e4c77e;
  font-family:var(--font-hero);
  font-size:1.05rem;
  line-height:1.45
}

.contraindications-note  {
  max-width:90ch;
  margin:clamp(1.5rem,3vw,2.5rem) 0 0;
  padding:1rem 1.3rem 1rem 1.5rem;
  border-left:3px solid #d6ad4b;
  color:#f8efd8;
  background:rgb(228 199 126 / 10%);
  font-family:var(--font-nav);
  font-size:1rem;
  line-height:1.65
}

@media(max-width:760px)  {
  .contraindications-section::before  {
    inset:8px;
    border-radius:22px
  }
  .contraindications-heading  {
    grid-template-columns:1fr;
    align-items:start;
    gap:1rem
  }
  .contraindications-list  {
    grid-template-columns:1fr
  }
  .contraindications-list li  {
    min-height:0;
    padding:1rem
  }
}

/* Booking: endpoint, field names and request contract remain unchanged. */
.booking-layout  {
  display:grid;
  gap:2rem;
  align-items:start
}

.booking-intro .note  {
  font-size:1rem;
  line-height:1.7
}

.booking-intro .btn  {
  margin-top:.5rem
}

.booking-form  {
  display:grid;
  gap:1.25rem;
  padding:1.5rem;
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  background:var(--card-bg);
  box-shadow:var(--shadow-card);
  min-width:0
}

.form-field  {
  display:flex;
  flex-direction:column;
  gap:.35rem;
  min-width:0
}

.form-field label  {
  font-weight:600
}

.form-field input,.form-field select  {
  width:100%;
  min-width:0;
  min-height:48px;
  padding:.75rem;
  border:1px solid #a69e89;
  border-radius:10px;
  font-size:1rem;
  background:var(--card-bg);
  color:var(--ink)
}

#booking-service {
  accent-color:#15513d;
}

#booking-service option:checked {
  background:#15513d;
  color:#fffdf8;
}

@supports (appearance:base-select) {
  #booking-service,
  #booking-service::picker(select) {
    appearance:base-select;
  }

  #booking-service::picker(select) {
    margin-top:.35rem;
    width:anchor-size(width);
    max-height:min(55dvh,28rem);
    overflow-y:auto;
    padding:.35rem;
    border:1px solid rgb(21 81 61 / 35%);
    border-radius:12px;
    background:var(--card-bg);
    box-shadow:0 16px 32px rgb(19 37 27 / 18%);
  }

  #booking-service option {
    padding:.55rem .75rem;
    border-radius:8px;
    white-space:normal;
  }

  #booking-service option:is(:checked,:hover,:focus-visible) {
    background:#15513d;
    color:#fffdf8;
  }
}

.form-field input[aria-invalid="true"],.form-field select[aria-invalid="true"]  {
  border-color:var(--error)
}

.form-field-checkbox label  {
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:start;
  gap:.75rem;
  font-size:.9rem;
  font-weight:400;
  cursor:pointer
}

.form-field-checkbox input[type="checkbox"]  {
  width:24px;
  height:24px;
  min-height:0;
  padding:0;
  margin:.2rem 0 0;
  accent-color:var(--green-700)
}

.consent-copy a  {
  display:inline-flex;
  align-items:center;
  min-height:44px
}

.field-error  {
  color:var(--error);
  font-size:.85rem;
  margin:0;
  min-height:1.6em
}

.booking-status  {
  font-weight:600;
  overflow-wrap:anywhere
}

.booking-status:empty  {
  display:none
}

.booking-status.success  {
  color:var(--success);
  font-weight:400
}

.booking-status.error  {
  color:var(--error)
}

.booking-status-summary  {
  list-style:none;
  padding:0;
  margin:1rem 0;
  font-weight:400
}

.booking-status .btn  {
  display:flex;
  margin-top:.75rem
}

@media(min-width:768px)  {
  .booking-layout  {
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:clamp(2rem,6vw,6rem)
  }
  .booking-form  {
    padding:2rem
  }
}

@media(max-width:639px)  {
  .booking-form  {
    padding:1.25rem
  }
}

.contacts-info  {
  font-style:normal;
  max-width:75ch
}

.contacts-info p  {
  margin-bottom:.6rem
}

.contacts-info a[href^="tel:"]  {
  display:inline-flex;
  align-items:center;
  min-height:44px
}

.site-ending  {
  position:relative;
  overflow:clip;
  isolation:isolate;
  border-top:1px solid rgb(233 217 166 / 26%);
  background:
    radial-gradient(ellipse at 7% 75%,rgb(89 132 88 / 15%),transparent 38%),
    radial-gradient(ellipse at 93% 18%,rgb(72 112 78 / 18%),transparent 40%),
    linear-gradient(135deg,#11251a,#183225 54%,#11251a);
  color:#f3efe2
}

.site-ending .leaf-deco  {
  width:clamp(8rem,15vw,13rem);
  height:clamp(13rem,24vw,21rem);
  color:#a1b58c;
  opacity:.22;
  transform-origin:50% 88%;
  animation:ending-leaf-sway 11s ease-in-out infinite alternate
}

.site-ending .leaf-ending-left  {
  --leaf-angle:-18deg;
  top:-2.5rem;
  left:-3.8rem
}

.site-ending .leaf-ending-left-small  {
  --leaf-angle:22deg;
  bottom:-8rem;
  left:1.5rem;
  opacity:.12;
  animation-delay:-5s
}

.site-ending .leaf-ending-right  {
  --leaf-angle:158deg;
  right:-3.8rem;
  bottom:-5.5rem;
  animation-delay:-3s
}

.site-ending .leaf-ending-right-small  {
  --leaf-angle:196deg;
  top:-9rem;
  right:1rem;
  opacity:.12;
  animation-delay:-7s
}

@keyframes ending-leaf-sway  {
  from { transform:rotate(var(--leaf-angle)) translateX(-2px); }
  to { transform:rotate(calc(var(--leaf-angle) + 5deg)) translateX(3px); }
}

.quote-band  {
  position:relative;
  padding:clamp(2.6rem,5vw,4rem) 0 clamp(2rem,4vw,3rem);
  text-align:center;
  color:inherit
}

.quote-band .container,.footer-inner  {
  position:relative;
  z-index:1
}

.quote-band p  {
  font-family:var(--font-serif);
  font-style:italic;
  font-size:clamp(1.2rem,2.6vw,1.6rem);
  margin:0
}

.site-footer  {
  position:relative;
  padding:1.75rem 0 clamp(2.8rem,5vw,4rem);
  text-align:center;
  color:#d8d9cb
}

.site-footer::before  {
  content:"";
  display:block;
  width:min(38rem,calc(100% - 2 * var(--gutter)));
  height:1px;
  margin:0 auto 1.75rem;
  background:linear-gradient(90deg,transparent,rgb(233 217 166 / 54%),transparent)
}

.footer-disclaimer  {
  max-width:85ch;
  margin:.5rem auto 0;
  font-size:.8rem
}

@media(prefers-reduced-motion:reduce)  {
  html  {
    scroll-behavior:auto
  }
  *,*::before,*::after  {
    transition:none!important
  }
  .site-ending .leaf-deco  {
    animation:none;
    transform:rotate(var(--leaf-angle))
  }
}

@media(max-width:639px)  {
  .site-ending .leaf-deco  {
    width:7rem;
    height:11.5rem;
    opacity:.12
  }
  .site-ending .leaf-ending-left  { left:-4.5rem; }
  .site-ending .leaf-ending-right  { right:-4.5rem; }
  .site-ending .leaf-ending-left-small,
  .site-ending .leaf-ending-right-small  { opacity:.07; }
}

/* Legal pages (privacy.html, consent.html): readable single column on the site's palette. */
.legal-doc  {
  max-width:46rem
}
.legal-doc h1  {
  margin:1rem 0 .5rem;
  font-size:clamp(1.8rem,4vw,2.6rem)
}
.legal-doc h2  {
  margin-top:2rem;
  font-size:clamp(1.2rem,2.6vw,1.5rem)
}
.legal-doc :is(p,li)  {
  line-height:1.65
}
.legal-doc :is(ul,ol)  {
  padding-left:1.25rem
}
.legal-doc li + li  {
  margin-top:.45rem
}

/* Cookie consent banner (site/analytics.js): shown until the visitor accepts or declines Yandex Metrica. */
.cookie-banner  {
  position:fixed;
  left:1rem;
  right:1rem;
  bottom:calc(1rem + env(safe-area-inset-bottom));
  z-index:1000;
  max-width:40rem;
  margin:0 auto;
  padding:1rem 1.15rem;
  border:1px solid rgb(198 151 50 / 45%);
  border-radius:1.1rem;
  color:#123b2d;
  background:#fbf7ee;
  box-shadow:0 18px 44px rgb(18 59 45 / 22%)
}
.cookie-banner p  {
  margin:0 0 .8rem;
  font-size:.92rem;
  line-height:1.5
}
.cookie-banner-actions  {
  display:flex;
  flex-wrap:wrap;
  gap:.6rem
}
.cookie-banner-actions .btn  {
  min-height:2.75rem
}
@media (max-width:899px)  {
  .cookie-banner  {
    bottom:calc(5.5rem + env(safe-area-inset-bottom))
  }
}
