/* ================= DESIGN TOKENS — RUSTIC MILL HERITAGE ================= */
:root, [data-theme="light"] {
  /* Type scale */
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.8125rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 0.9375rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2.1rem, 1.3rem + 2.6vw, 3.6rem);
  --text-3xl: clamp(2.6rem, 1.2rem + 4vw, 5rem);

  /* Spacing */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  /* Palette — reclaimed mill wood + warm cream + sage + pink door */
  --color-bg:            #f4ece0;   /* warm parchment cream */
  --color-surface:       #fbf6ec;   /* aged paper */
  --color-surface-soft:  #ece0cf;   /* light sanded pine */
  --color-surface-deep:  #3a2417;   /* dark stained timber */
  --color-surface-deep2: #2a1810;   /* near-black walnut */
  --color-border:        #d8c7ad;
  --color-divider:       #e2d4bd;

  --color-text:          #2e2013;   /* dark walnut ink */
  --color-text-muted:    #6b5844;
  --color-text-faint:    #a08a6f;
  --color-text-inverse:  #f6ecdc;
  --color-text-on-deep-muted: #c9b79c;

  /* Reclaimed wood browns */
  --color-wood:          #8a4b2a;   /* warm reclaimed plank */
  --color-wood-deep:     #6d3819;
  --color-wood-rich:     #a55d34;
  --color-wood-tint:     #ecdcc8;

  /* Sage — painted trim accent */
  --color-sage:          #7d9077;
  --color-sage-deep:     #5f7359;
  --color-sage-tint:     #dde3d5;

  /* Pink door accent */
  --color-pink:          #e0968f;
  --color-pink-soft:     #ecb4ae;

  /* Heart red */
  --color-red:           #b32234;
  --color-red-soft:      #d94a5c;

  /* Antique gold (vintage frame + hairlines) */
  --color-gold:          #b8894b;
  --color-gold-soft:     #d8b27a;
  --color-gold-ink:      #7a4f1e;   /* deep readable gold for headings on parchment */

  --radius-sm:.4rem; --radius-md:.6rem; --radius-lg:.9rem; --radius-xl:1.2rem; --radius-full:9999px;
  --transition: 260ms cubic-bezier(.16,1,.3,1);
  --shadow-sm: 0 1px 3px rgba(58,36,23,.10);
  --shadow-md: 0 12px 30px rgba(58,36,23,.14);
  --shadow-lg: 0 26px 60px rgba(58,36,23,.22);

  --wrap: 1160px;
  --font-display: "Playfair Display", "Cormorant Garamond", Georgia, serif;
  --font-body: "Libre Franklin", "Work Sans", "Helvetica Neue", sans-serif;

  color-scheme: light;
}

[data-theme="dark"] {
  --color-bg:            #241610;
  --color-surface:       #2f1e14;
  --color-surface-soft:  #2a190f;
  --color-surface-deep:  #1c110a;
  --color-surface-deep2: #140c07;
  --color-border:        #4a3320;
  --color-divider:       #3a2717;

  --color-text:          #f0e2ce;
  --color-text-muted:    #c3ac8f;
  --color-text-faint:    #8f7657;
  --color-text-inverse:  #f6ecdc;
  --color-text-on-deep-muted: #c9b79c;

  --color-wood:          #c17a4a;
  --color-wood-deep:     #a55d34;
  --color-wood-rich:     #d08d54;
  --color-wood-tint:     #3a2416;

  --color-sage:          #9cad95;
  --color-sage-deep:     #7d9077;
  --color-sage-tint:     #2b331f;

  --color-pink:          #e6a49d;
  --color-pink-soft:     #efbdb7;

  --color-red:           #e05264;
  --color-red-soft:      #ef7a89;

  --color-gold:          #cfa563;
  --color-gold-soft:     #e2c493;
  --color-gold-ink:      #d6a95f;   /* bright readable gold for headings on dark walnut */

  --shadow-sm: 0 1px 3px rgba(0,0,0,.4);
  --shadow-md: 0 12px 30px rgba(0,0,0,.5);
  --shadow-lg: 0 26px 60px rgba(0,0,0,.6);
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --color-bg:#241610; --color-surface:#2f1e14; --color-surface-soft:#2a190f;
    --color-surface-deep:#1c110a; --color-surface-deep2:#140c07;
    --color-border:#4a3320; --color-divider:#3a2717;
    --color-text:#f0e2ce; --color-text-muted:#c3ac8f; --color-text-faint:#8f7657;
    --color-wood:#c17a4a; --color-wood-deep:#a55d34; --color-wood-rich:#d08d54; --color-wood-tint:#3a2416;
    --color-sage:#9cad95; --color-sage-deep:#7d9077; --color-sage-tint:#2b331f;
    --color-pink:#e6a49d; --color-pink-soft:#efbdb7; --color-red:#e05264; --color-red-soft:#ef7a89;
  }
}

/* ================= BASE ================= */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem}
body{min-height:100dvh;line-height:1.65;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);transition:background var(--transition),color var(--transition)}
/* Site-wide antique paper grain — unifies every section into one heirloom piece */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("assets/paper_grain.jpg");background-size:420px 420px;background-repeat:repeat;opacity:.5;mix-blend-mode:multiply}
[data-theme="dark"] body::before{opacity:.22;mix-blend-mode:overlay}
header,main,footer{position:relative;z-index:1}
img,picture,video,svg,iframe{display:block;max-width:100%;height:auto}
ul[role=list]{list-style:none}
h1,h2,h3,h4{text-wrap:balance;line-height:1.08;font-weight:600}
p{text-wrap:pretty;max-width:64ch}
a{color:inherit;text-decoration:none}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit}
a,button{transition:color var(--transition),background var(--transition),border-color var(--transition),box-shadow var(--transition),transform var(--transition)}
::selection{background:var(--color-red);color:#fff}
:focus-visible{outline:2px solid var(--color-wood);outline-offset:3px;border-radius:var(--radius-sm)}
.skip-link{position:absolute;left:-999px;top:0;z-index:200;background:var(--color-wood-deep);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 var(--radius-md) 0}
.skip-link:focus{left:0}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.wrap{width:min(var(--wrap),100% - 2.5rem);margin-inline:auto}
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.section--soft{background:var(--color-surface-soft)}

/* Wood-grain divider strip between sections */
.woodstrip{height:14px;background-image:url("assets/wood_texture.jpg");background-size:cover;background-position:center;box-shadow:inset 0 3px 6px rgba(0,0,0,.28),inset 0 -3px 6px rgba(0,0,0,.28)}

.eyebrow{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.26em;text-transform:uppercase;font-weight:700;color:var(--color-wood-deep);margin-bottom:var(--space-4)}
[data-theme="dark"] .eyebrow{color:var(--color-wood-rich)}
.eyebrow--light{color:var(--color-pink-soft)}
.section__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:1.04;letter-spacing:-.01em;margin-bottom:var(--space-6)}
.section__head{max-width:46rem;margin-bottom:var(--space-16)}
.section__intro{color:var(--color-text-muted);font-size:var(--text-lg)}

/* ================= BUTTONS ================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:var(--text-sm);font-weight:700;letter-spacing:.02em;padding:.9rem 1.7rem;border-radius:var(--radius-md);border:1.5px solid transparent;white-space:nowrap}
.btn--sm{padding:.6rem 1.2rem}
.btn--primary{background:var(--color-red);color:#fff;box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:#8f1728;transform:translateY(-2px);box-shadow:var(--shadow-md)}
[data-theme="dark"] .btn--primary:hover{background:var(--color-red-soft)}
.btn--wood{background:var(--color-wood-deep);color:#fff;box-shadow:var(--shadow-sm)}
.btn--wood:hover{background:var(--color-wood);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn--ghost{border-color:currentColor;color:var(--color-text-inverse);background:transparent}
.btn--ghost:hover{background:rgba(255,255,255,.14);transform:translateY(-2px)}

/* ================= HEADER ================= */
.header{position:sticky;top:0;z-index:100;background:color-mix(in oklab,var(--color-bg) 90%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}
.header.is-scrolled{border-color:var(--color-divider);box-shadow:var(--shadow-sm)}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);height:4.75rem}
.brand{display:flex;align-items:center;gap:.7rem}
.brand__mark{color:var(--color-red);width:2.3rem;flex:none}
.brand__mark svg,.brand__mark img{width:100%;height:auto;display:block}
.brand__text{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--color-text)}
.brand__sub{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--color-wood-deep);font-weight:700;margin-top:.2rem}
[data-theme="dark"] .brand__sub{color:var(--color-wood-rich)}
.nav{display:flex;gap:var(--space-6)}
.nav a{font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);position:relative}
.nav a::after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:2px;background:var(--color-red);transition:width var(--transition)}
.nav a:hover{color:var(--color-text)}
.nav a:hover::after{width:100%}
.header__actions{display:flex;align-items:center;gap:var(--space-4)}
.theme-toggle{width:2.3rem;height:2.3rem;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-text-muted);border:1px solid var(--color-border)}
.theme-toggle:hover{color:var(--color-red);border-color:var(--color-red)}

/* ================= HERO ================= */
.hero{position:relative;min-height:min(90vh,820px);display:flex;align-items:flex-end;color:var(--color-text-inverse);overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:-1}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(42,24,16,.30) 0%,rgba(42,24,16,.35) 38%,rgba(42,24,16,.90) 100%)}
.hero__inner{padding-block:clamp(var(--space-16),12vw,var(--space-32)) clamp(var(--space-12),7vw,var(--space-20));max-width:46rem}
.hero__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;line-height:1.02;letter-spacing:-.015em;margin-bottom:var(--space-6);text-shadow:0 2px 24px rgba(0,0,0,.3)}
.hero__title em{font-style:italic;color:var(--color-pink-soft)}
.hero__lead{font-size:var(--text-lg);color:#f0e6d6;max-width:40rem;margin-bottom:var(--space-8)}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-10)}
.hero__badges{display:flex;flex-wrap:wrap;gap:var(--space-4) var(--space-8);font-size:var(--text-sm);color:#ecdfcd}
.hero__badges li{display:flex;align-items:center;gap:.5rem}
.hero__badges li:not(:first-child)::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--color-pink-soft);margin-right:.6rem;margin-left:-.55rem}
.hero__badges strong{font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:var(--color-pink-soft)}

/* ================= HERITAGE ================= */
.heritage{position:relative;color:var(--color-text-inverse);background:var(--color-surface-deep2);overflow:hidden}
.heritage::before{content:"";position:absolute;inset:0;background-image:url("assets/wood_texture.jpg");background-size:cover;background-position:center;opacity:.16;mix-blend-mode:overlay}
.heritage__grid{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(var(--space-10),6vw,var(--space-24));align-items:center}
.heritage__body .eyebrow{color:var(--color-pink-soft)}
.heritage__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;line-height:1.05;margin-bottom:var(--space-6);color:#fbf3e6}
.heritage__body p{color:var(--color-text-on-deep-muted);font-size:var(--text-lg);margin-bottom:var(--space-6)}
.heritage__body p strong{color:#fbf3e6;font-weight:600}
.heritage__figure{position:relative}
.heritage__figure img{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:3px solid var(--color-wood-deep)}
.heritage__caption{position:absolute;left:1rem;bottom:1rem;background:var(--color-surface-deep2);color:var(--color-text-on-deep-muted);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:.5rem 1rem;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.14)}

/* ============ ANIMATED MILL WATERMARK (turning water wheel + flowing water) ============ */
.millmark{position:absolute;left:0;right:0;top:50%;z-index:0;display:flex;justify-content:center;pointer-events:none;transform:translateY(calc(-50% + var(--wm-shift,0px)));will-change:transform}
.millmark__svg{width:min(58%,640px);height:auto;color:var(--color-wood-deep);opacity:.16;mix-blend-mode:multiply}
[data-theme="dark"] .millmark__svg{color:var(--color-gold-soft);opacity:.13;mix-blend-mode:screen}
.millmark__wheel{transform-box:fill-box;transform-origin:center;animation:mm-wheel 9s linear infinite}
.millmark__flow{animation:mm-flow 3.4s linear infinite}
@keyframes mm-wheel{to{transform:rotate(360deg)}}
@keyframes mm-flow{to{transform:translateX(-40px)}}
@media (prefers-reduced-motion:reduce){
  .millmark__wheel,.millmark__flow{animation:none}
}

/* ================= WELCOME ================= */
.welcome{position:relative;overflow:hidden;background:linear-gradient(180deg,#f6eede 0%,#efe4cf 100%)}
.welcome::before{content:"";position:absolute;left:0;right:0;top:-20%;bottom:-20%;background-image:url("assets/mill_watermark.jpg");background-size:120% auto;background-position:center calc(42% + var(--wm-shift,0px));background-repeat:no-repeat;opacity:.5;mix-blend-mode:multiply;pointer-events:none;will-change:transform}
.welcome::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 40%,rgba(246,238,222,0) 30%,rgba(239,228,207,.72) 100%);pointer-events:none}
[data-theme="dark"] .welcome{background:linear-gradient(180deg,#2a1810 0%,#221209 100%)}
[data-theme="dark"] .welcome::before{opacity:.14;mix-blend-mode:screen}
[data-theme="dark"] .welcome::after{background:radial-gradient(120% 90% at 50% 40%,rgba(42,24,16,0) 30%,rgba(34,18,9,.7) 100%)}
.welcome__grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(var(--space-10),6vw,var(--space-24));align-items:center}

/* Framed vintage portrait */
.welcome__figure{position:relative;padding:.9rem;background:linear-gradient(155deg,#fbf4e6,#f0e3ca);border-radius:calc(var(--radius-lg) + .5rem);box-shadow:0 2px 0 rgba(255,255,255,.7) inset,var(--shadow-lg);border:1px solid rgba(138,75,42,.28)}
.welcome__figure::before{content:"";position:absolute;inset:.5rem;border:1px solid var(--color-gold,#b8894b);border-radius:calc(var(--radius-lg) + .1rem);pointer-events:none;z-index:3}
.welcome__figure img{display:block;width:100%;border-radius:var(--radius-lg);box-shadow:0 10px 26px rgba(58,36,23,.28);border:2px solid var(--color-wood-deep);position:relative;z-index:1}
[data-theme="dark"] .welcome__figure{background:linear-gradient(155deg,#3a2417,#2a1810);border-color:rgba(184,137,75,.4)}
.welcome__signature{position:absolute;left:50%;transform:translateX(-50%);bottom:-1.35rem;z-index:4;display:inline-flex;align-items:center;gap:.55rem;background:linear-gradient(180deg,#4a2c19,#3a2417);color:#f7ead2;font-family:var(--font-display);font-style:italic;font-size:1.28rem;font-weight:600;letter-spacing:.01em;padding:.6rem 1.7rem;border-radius:var(--radius-full);box-shadow:0 8px 22px rgba(58,36,23,.4);border:1px solid var(--color-gold,#b8894b);white-space:nowrap}
.welcome__signature::before,.welcome__signature::after{content:"";width:1.6rem;height:1px;background:linear-gradient(90deg,transparent,var(--color-gold,#b8894b))}
.welcome__signature::after{background:linear-gradient(90deg,var(--color-gold,#b8894b),transparent)}
.welcome__badge{position:absolute;top:1.35rem;left:1.35rem;z-index:4;display:inline-flex;align-items:center;gap:.5rem;background:var(--color-red);color:#fff;font-family:var(--font-display);font-size:.98rem;letter-spacing:.01em;padding:.5rem 1rem .5rem .85rem;border-radius:var(--radius-full);box-shadow:0 6px 18px rgba(58,36,23,.35);border:1.5px solid var(--color-gold,#d8b27a);white-space:nowrap}
.welcome__badge svg{flex:none;color:#fff}
.welcome__badge .badge-heart{flex:none;width:22px;height:22px;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(58,20,16,.35))}
.welcome__badge strong{font-weight:700}
.welcome__body p{color:var(--color-text-muted);font-size:var(--text-lg);margin-bottom:var(--space-8)}
.brand-emph{color:var(--color-red);font-weight:700}
/* Care team (mirrors welcome, image on right) */
.team__grid{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(var(--space-10),6vw,var(--space-24));align-items:center}
.team__figure{max-width:24rem;justify-self:center}
.team__signature{font-size:1.15rem;padding:.6rem 1.5rem}
/* A.A.S. credential seal */
.credential-seal{display:inline-flex;align-items:center;gap:.75rem;margin-top:var(--space-8);padding:.6rem 1.1rem .6rem .7rem;background:linear-gradient(180deg,#fbf4e6,#f2e6cd);border:1px solid rgba(138,75,42,.32);border-radius:var(--radius-full);box-shadow:0 4px 14px rgba(58,36,23,.12),0 1px 0 rgba(255,255,255,.7) inset}
[data-theme="dark"] .credential-seal{background:linear-gradient(180deg,#3a2417,#2a1810);border-color:rgba(184,137,75,.4);box-shadow:0 4px 14px rgba(0,0,0,.3)}
.credential-seal__mark{flex:none;display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(58,36,23,.2);border:1px solid rgba(138,75,42,.25);overflow:hidden}
.credential-seal__mark img{width:30px;height:30px;object-fit:contain;display:block}
[data-theme="dark"] .credential-seal__mark{background:#f4ece0}
.credential-seal__text{display:flex;flex-direction:column;line-height:1.15;font-family:var(--font-body);font-size:.82rem;color:var(--color-text-muted);letter-spacing:.01em}
.credential-seal__text strong{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.06em;color:var(--color-red)}
.pullquote{font-family:var(--font-display);font-style:italic;font-size:clamp(1.4rem,1rem+1.4vw,2rem);line-height:1.25;color:var(--color-wood-deep);border-left:3px solid var(--color-red);padding-left:var(--space-6);margin:var(--space-8) 0;max-width:none}
[data-theme="dark"] .pullquote{color:var(--color-wood-rich)}
.pullquote__ornament{display:block;color:var(--color-red);font-size:1rem;margin-bottom:.4rem;font-style:normal}
.factlist{display:grid;gap:var(--space-5);border-top:1px solid var(--color-divider);padding-top:var(--space-8)}
.factlist dt{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-wood-deep);font-weight:700;margin-bottom:.25rem}
[data-theme="dark"] .factlist dt{color:var(--color-wood-rich)}
.factlist dd{color:var(--color-text);font-size:var(--text-sm)}

/* ================= SERVICES ================= */
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
/* Services — aged parchment with faint mill watermark, matching welcome */
.services.section--soft{background:linear-gradient(180deg,#f3e9d6 0%,#ece0cd 100%)}
.services{position:relative;overflow:hidden}
.services::before{content:"";position:absolute;left:0;right:0;top:-20%;bottom:-20%;z-index:0;background-image:url("assets/mill_watermark.jpg");background-size:130% auto;background-position:center calc(30% + var(--wm-shift,0px));background-repeat:no-repeat;opacity:.4;mix-blend-mode:multiply;pointer-events:none;will-change:transform}
.services::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(120% 80% at 50% 42%,rgba(243,233,214,0) 34%,rgba(236,224,205,.75) 100%);pointer-events:none}
[data-theme="dark"] .services.section--soft{background:linear-gradient(180deg,#2a190f 0%,#221209 100%)}
[data-theme="dark"] .services::before{opacity:.12;mix-blend-mode:screen}
[data-theme="dark"] .services::after{background:radial-gradient(120% 80% at 50% 42%,rgba(42,25,15,0) 34%,rgba(34,18,9,.72) 100%)}
.services > .wrap{position:relative;z-index:1}
.services .eyebrow{color:var(--color-gold-ink)}
.services .section__title{color:var(--color-wood-deep)}

.service-card{position:relative;background:linear-gradient(158deg,#fdf7ea,#f4e9d3);border:1px solid rgba(138,75,42,.22);border-top:3px solid var(--color-gold);border-radius:var(--radius-md);padding:var(--space-8) var(--space-6);box-shadow:var(--shadow-sm),0 1px 0 rgba(255,255,255,.6) inset;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}
.service-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);border-top-color:var(--color-red)}
[data-theme="dark"] .service-card{background:linear-gradient(158deg,#33200f,#2a190f);border-color:rgba(184,137,75,.28)}
.service-card__icon{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:var(--radius-full);background:radial-gradient(circle at 35% 30%,#f2e2c2,#e6cd9c);color:var(--color-gold-ink);font-size:1.1rem;margin-bottom:var(--space-4);border:1px solid var(--color-gold);box-shadow:0 1px 3px rgba(58,36,23,.18)}
[data-theme="dark"] .service-card__icon{background:radial-gradient(circle at 35% 30%,#4a3418,#33230f);color:var(--color-gold-ink)}
.service-card h3{font-family:var(--font-display);font-size:1.35rem;font-weight:600;margin-bottom:.4rem;color:var(--color-wood-deep)}
[data-theme="dark"] .service-card h3{color:var(--color-gold-ink)}
.service-card p{font-size:var(--text-sm);color:var(--color-text-muted)}
.services__more{position:relative;z-index:1;text-align:center;font-family:var(--font-display);font-style:italic;font-size:var(--text-lg);color:var(--color-wood-deep);margin:var(--space-12) auto 0}
[data-theme="dark"] .services__more{color:var(--color-text-muted)}

/* ================= CONDITIONS ================= */
.conditions__grid{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(var(--space-10),6vw,var(--space-20));align-items:start}
.conditions__head p{color:var(--color-text-muted);font-size:var(--text-lg);margin-bottom:var(--space-8)}
.conditions__list{column-count:3;column-gap:var(--space-8)}
.conditions__list li{break-inside:avoid;display:flex;align-items:flex-start;gap:.6rem;padding:.5rem 0;font-size:var(--text-sm);border-bottom:1px solid var(--color-divider)}
.conditions__list li::before{content:"\2665";color:var(--color-red);font-size:.85rem;line-height:1.5;flex:none}

/* ================= PRICING ================= */
/* Pricing — aged parchment surround with faint mill watermark, gold-framed wood card */
.pricing{position:relative;overflow:hidden;background:linear-gradient(180deg,#f3e9d6 0%,#ece0cd 100%)}
.pricing::before{content:"";position:absolute;left:0;right:0;top:-20%;bottom:-20%;z-index:0;background-image:url("assets/mill_watermark.jpg");background-size:150% auto;background-position:center calc(35% + var(--wm-shift,0px));background-repeat:no-repeat;opacity:.42;mix-blend-mode:multiply;pointer-events:none;will-change:transform}
.pricing::after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(110% 80% at 50% 45%,rgba(243,233,214,0) 30%,rgba(236,224,205,.7) 100%);pointer-events:none}
[data-theme="dark"] .pricing{background:linear-gradient(180deg,#2a190f 0%,#221209 100%)}
[data-theme="dark"] .pricing::before{opacity:.12;mix-blend-mode:screen}
[data-theme="dark"] .pricing::after{background:radial-gradient(110% 80% at 50% 45%,rgba(42,25,15,0) 30%,rgba(34,18,9,.7) 100%)}
.pricing > .wrap{position:relative;z-index:1}
.pricing .price-card{max-width:44rem;margin-inline:auto;text-align:center;position:relative;color:var(--color-text-inverse);border-radius:var(--radius-xl);padding:clamp(var(--space-10),6vw,var(--space-16));box-shadow:var(--shadow-lg),0 0 0 1px rgba(184,137,75,.5);border:3px solid var(--color-gold);overflow:hidden}
.price-card::after{content:"";position:absolute;inset:0;z-index:-2;background-image:url("assets/wood_texture.jpg");background-size:cover;background-position:center}
.price-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(160deg,rgba(42,24,16,.86),rgba(42,24,16,.94))}
.price-card__amount{font-family:var(--font-display);font-size:clamp(5rem, 3rem + 9vw, 8.5rem);font-weight:700;line-height:.85;color:#fff;letter-spacing:-.02em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.price-card__currency{font-size:.5em;vertical-align:top;color:var(--color-red-soft);margin-right:.1em;position:relative;display:inline-block;transform-style:preserve-3d}
/* Whole $45 hops around energetically, then staggers and drops dead, then revives */
.price-hop{display:inline-block;transform-origin:50% 100%;animation:price-hop-die 4.2s cubic-bezier(.3,.7,.4,1) infinite}
@keyframes price-hop-die{
  /* --- lively hopping around --- */
  0%{transform:translate(0,0) rotate(0deg) scaleY(1) scaleX(1);opacity:1}
  5%{transform:translate(0,0) rotate(0deg) scaleY(.82) scaleX(1.12);opacity:1}
  11%{transform:translate(-.18em,-.55em) rotate(-6deg) scaleY(1.1) scaleX(.92);opacity:1}
  17%{transform:translate(-.22em,0) rotate(-3deg) scaleY(.86) scaleX(1.08);opacity:1}
  24%{transform:translate(.16em,-.6em) rotate(7deg) scaleY(1.1) scaleX(.92);opacity:1}
  31%{transform:translate(.2em,0) rotate(3deg) scaleY(.86) scaleX(1.08);opacity:1}
  38%{transform:translate(-.1em,-.5em) rotate(-5deg) scaleY(1.08) scaleX(.94);opacity:1}
  45%{transform:translate(0,0) rotate(0deg) scaleY(.9) scaleX(1.06);opacity:1}
  /* --- getting tired: smaller, wobblier hops --- */
  52%{transform:translate(.06em,-.26em) rotate(4deg) scaleY(1.03) scaleX(.98);opacity:1}
  58%{transform:translate(-.05em,0) rotate(-4deg) scaleY(.94) scaleX(1.04);opacity:.98}
  63%{transform:translate(.03em,-.12em) rotate(3deg) scaleY(1) scaleX(1);opacity:.96}
  /* --- the death: stagger, tip over, collapse and sink --- */
  68%{transform:translate(-.04em,0) rotate(-10deg) scaleY(.96) scaleX(1.04);opacity:.94}
  74%{transform:translate(.05em,0) rotate(14deg) scaleY(.9) scaleX(1.08);opacity:.9}
  80%{transform:translate(.14em,.1em) rotate(46deg) scaleY(.8) scaleX(1.12);opacity:.78}
  88%{transform:translate(.26em,.34em) rotate(80deg) scaleY(.62) scaleX(1.2);opacity:.4}
  94%{transform:translate(.32em,.5em) rotate(90deg) scaleY(.42) scaleX(1.24);opacity:.12}
  /* --- flatlined, then springs back to life for the next loop --- */
  97%{transform:translate(.32em,.54em) rotate(90deg) scaleY(.36) scaleX(1.26);opacity:0}
  100%{transform:translate(0,0) rotate(0deg) scaleY(1) scaleX(1);opacity:1}
}
/* The $ glyph itself spins like a flipping coin and glows like molten fire */
.dollar-spin{display:inline-block;position:relative;z-index:2;animation:dollar-flip 1.6s linear infinite;background:linear-gradient(180deg,#fff6c9 0%,#ffd23f 30%,#ff8a1e 62%,#ff3d1e 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 0 6px rgba(255,150,40,.9)) drop-shadow(0 -2px 10px rgba(255,90,20,.7))}
@keyframes dollar-flip{0%{transform:rotateY(0deg)}100%{transform:rotateY(360deg)}}
/* Flames rising behind the $ */
.flame{position:absolute;left:50%;bottom:-.05em;z-index:1;width:.62em;height:.9em;transform:translateX(-50%);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(50% 60% at 50% 75%,#fff2b0 0%,#ffd23f 28%,#ff8a1e 58%,#ff3d1e 82%,rgba(255,61,30,0) 100%);mix-blend-mode:screen;filter:blur(.5px);pointer-events:none;transform-origin:50% 100%}
.flame--1{animation:flame-flicker .7s ease-in-out infinite}
.flame--2{width:.42em;height:.62em;left:38%;animation:flame-flicker .5s ease-in-out infinite .15s}
.flame--3{width:.42em;height:.62em;left:62%;animation:flame-flicker .58s ease-in-out infinite .3s}
@keyframes flame-flicker{0%,100%{transform:translateX(-50%) scaleY(1) scaleX(1) rotate(-2deg);opacity:.92}25%{transform:translateX(-50%) scaleY(1.28) scaleX(.86) rotate(3deg);opacity:1}50%{transform:translateX(-50%) scaleY(.9) scaleX(1.12) rotate(-3deg);opacity:.8}75%{transform:translateX(-50%) scaleY(1.18) scaleX(.92) rotate(2deg);opacity:1}}
@media (prefers-reduced-motion:reduce){.price-hop,.price-card__currency,.dollar-spin,.flame{animation:none!important}.price-hop{transform:none!important;opacity:1!important}.flame{display:none}.dollar-spin{filter:none}}
.price-card__unit{color:var(--color-text-on-deep-muted);font-size:var(--text-base);margin:var(--space-3) auto var(--space-6)}
.price-card__tag{display:inline-block;font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;font-weight:700;color:var(--color-red-soft);padding:.5rem 1.2rem;border:1px solid rgba(217,74,92,.5);border-radius:var(--radius-full)}
.payments{margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,.16)}
.payments__label{display:block;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-red-soft);font-weight:700;margin-bottom:var(--space-4)}
.payments ul{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3) var(--space-6);list-style:none;font-size:var(--text-sm);color:#f0e6d6}
.payments li{display:flex;align-items:center;gap:.5rem}
.payments li::before{content:"\2665";color:var(--color-red-soft);font-size:.8rem}

/* ---- Therapeutic injections (inside dark price card) ---- */
.injections{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid rgba(255,255,255,.16);text-align:left}
.injections__label{display:block;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-red-soft);font-weight:700;text-align:center;margin-bottom:var(--space-3)}
.injections__note{color:var(--color-text-on-deep-muted);font-size:var(--text-sm);line-height:1.6;text-align:center;max-width:34rem;margin:0 auto var(--space-6)}
.injections__list{list-style:none;display:grid;gap:var(--space-4);margin:0 auto;max-width:34rem}
.injections__list li{position:relative;padding:var(--space-4) var(--space-5);border:1px solid rgba(184,137,75,.32);border-radius:var(--radius-md);background:rgba(20,11,6,.34);display:grid;gap:.3rem}
.injections__list li::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:var(--radius-md) 0 0 var(--radius-md);background:linear-gradient(180deg,var(--color-gold-soft),var(--color-gold))}
.injections__name{display:flex;align-items:baseline;gap:.4rem;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-gold-soft);letter-spacing:.01em}
.injections__name .injections__brand{flex:0 1 auto;min-width:0}
.injections__price{margin-left:auto;font-family:var(--font-body);font-size:.82rem;font-weight:700;letter-spacing:.02em;color:#2a1810;background:linear-gradient(180deg,var(--color-gold-soft),var(--color-gold));padding:.2rem .6rem;border-radius:var(--radius-full);white-space:nowrap;box-shadow:0 1px 3px rgba(20,11,6,.4)}
.injections__brand{font-family:var(--font-body);font-size:.72em;font-weight:600;font-style:italic;color:var(--color-text-on-deep-muted);letter-spacing:0}
.injections__desc{font-size:var(--text-sm);color:#f0e6d6;line-height:1.5}
.injections__desc em{font-style:italic;color:var(--color-red-soft);white-space:nowrap}
.injections__advisory{margin:var(--space-6) auto 0;max-width:34rem;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-on-deep-muted);text-align:center;font-style:italic;border-top:1px dashed rgba(184,137,75,.28);padding-top:var(--space-4)}

/* ================= VISIT ================= */
.visit__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-10),6vw,var(--space-20));align-items:center}
.visit__body p{color:var(--color-text-muted);font-size:var(--text-lg);margin-bottom:var(--space-8)}
.visit__details{display:grid;gap:var(--space-6);margin-bottom:var(--space-10)}
.visit__details dt{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-wood-deep);font-weight:700;margin-bottom:.35rem}
[data-theme="dark"] .visit__details dt{color:var(--color-wood-rich)}
.visit__details dd{color:var(--color-text);font-size:var(--text-base);line-height:1.5}
.visit__map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:3px solid var(--color-wood-deep);aspect-ratio:4/3}
.visit__map iframe{width:100%;height:100%;border:0;filter:saturate(.92)}

/* ================= FOOTER ================= */
.footer{position:relative;background:var(--color-surface-deep2);color:var(--color-text-inverse);padding-block:var(--space-16) var(--space-8);overflow:hidden}
.footer::before{content:"";position:absolute;inset:0;background-image:url("assets/wood_texture.jpg");background-size:cover;background-position:center;opacity:.12;mix-blend-mode:overlay}
.footer__inner,.footer__legal{position:relative}
.footer__inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-8);padding-bottom:var(--space-10);border-bottom:1px solid rgba(255,255,255,.12)}
.footer__brand{display:flex;align-items:center;gap:var(--space-4)}
.footer__brand .brand__mark{color:var(--color-red-soft);width:2.6rem}
.footer__name{font-family:var(--font-display);font-size:1.5rem;font-weight:700}
.footer__tag{color:var(--color-text-on-deep-muted);font-style:italic;font-family:var(--font-display);font-size:1.05rem}
.footer__meta{text-align:right;color:var(--color-text-on-deep-muted);font-size:var(--text-sm);display:grid;gap:.4rem;align-content:center}
.footer__legal{text-align:center;color:var(--color-text-on-deep-muted);font-size:var(--text-xs);margin-top:var(--space-8)}

/* ================= REVEAL ANIMATION ================= */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.is-visible{opacity:1;transform:none}

/* ================= RESPONSIVE ================= */
@media (max-width:960px){
  .service-grid{grid-template-columns:repeat(2,1fr)}
  .welcome__grid,.team__grid,.conditions__grid,.visit__grid,.heritage__grid{grid-template-columns:1fr;gap:var(--space-12)}
  .welcome__figure,.team__figure{max-width:24rem;margin-inline:auto}
  .team__figure{order:-1}
  .heritage__grid{direction:ltr}
  .conditions__list{column-count:2}
  .footer__meta{text-align:left}
}
@media (max-width:640px){
  .nav{display:none}
  .header__inner{height:4.25rem}
  .brand__name{font-size:1.2rem}
  .service-grid{grid-template-columns:1fr 1fr;gap:var(--space-4)}
  .service-card{padding:var(--space-6) var(--space-5)}
  .conditions__list{column-count:1}
  .footer__inner{flex-direction:column}
  .footer__meta{text-align:left}
  .hero__badges{gap:var(--space-2) var(--space-5)}
  .hero__badges li:not(:first-child)::before{margin-left:-.5rem}
}
@media (max-width:400px){
  .service-grid{grid-template-columns:1fr}
}

/* Beating anatomical heart logo */
@keyframes hoh-beat{
  0%,100%{transform:scale(1)}
  12%{transform:scale(1.12)}
  24%{transform:scale(.985)}
  36%{transform:scale(1.06)}
  50%{transform:scale(1)}
}
.heart-pulse{transform-origin:center;animation:hoh-beat 1.15s cubic-bezier(.4,0,.3,1) infinite;will-change:transform}
/* SVG geometry needs fill-box; raster <img> logos use the default border-box origin */
svg .heart-pulse,g.heart-pulse{transform-box:fill-box}
img.heart-pulse{transform-box:border-box;display:block}
