html{-webkit-text-size-adjust:100%}

/* Layout: crisp white + black bands from the VIVE logo, wide heavy caps-feel headlines, one handwritten copper word each, chevron motif as wayfinding. */
:root{
  --paper:#FFFFFF;      /* logo white */
  --paper-2:#F8F1EA;    /* warm copper-tinted white */
  --ink:#0E0E0E;        /* logo black */
  --ink-soft:#4B4540;
  --berry:#0E0E0E;      /* dark band */
  --hot:#AD6020;        /* copper, deepened for text/buttons on white */
  --butter:#D88A45;     /* copper, brightened for use on black */
  --brand:#C47329;      /* exact logo copper */
  --ph:#F6DDC4;         /* placeholder highlight */
  --on-dark:#FFFFFF;
  --line:rgba(14,14,14,.13);
  --f-display:"Archivo", "Arial Black", Impact, sans-serif;
  --f-script:"Nothing You Could Do", "Segoe Script", "Bradley Hand", cursive;
  --f-body:"DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --radius:18px;
  --wrap:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--f-body);-webkit-font-smoothing:antialiased}
a{color:inherit}
h1,h2,h3{font-family:var(--f-display);font-weight:850;font-stretch:118%;line-height:1;letter-spacing:-.01em;text-wrap:balance;margin:0}
h1{font-size:clamp(2.6rem,7.4vw,6.2rem)}
h2{font-size:clamp(2rem,4.6vw,3.6rem)}
h3{font-size:clamp(1.3rem,2.2vw,1.65rem);letter-spacing:-.01em;line-height:1.1}
p{margin:0}
.script{font-family:var(--f-script);font-weight:400;font-stretch:100%;color:var(--hot);letter-spacing:.02em;font-size:1.12em;line-height:.9}
.eyebrow{display:inline-flex;align-items:center;gap:.7em;font:700 .78rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.16em;color:var(--hot)}
.eyebrow::before{content:"";flex:none;width:.95em;height:.8em;background:currentColor;clip-path:polygon(50% 0,100% 50%,100% 100%,50% 50%,0 100%,0 50%)}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.band{padding-block:clamp(64px,9vw,120px)}
.band.berry{background:var(--berry);color:var(--on-dark);border-block:1px solid var(--line)}
.band.berry .eyebrow{color:var(--butter)}
.band.berry .script{color:var(--butter)}
.band.blush{background:var(--paper-2)}
.prose{max-width:62ch;display:grid;gap:1.05em;font-size:1.08rem}
.prose strong{font-weight:700}
.ph{background:var(--ph);color:#0E0E0E;padding:0 .3em;border-radius:4px;font-weight:500;box-decoration-break:clone;-webkit-box-decoration-break:clone}
:focus-visible{outline:3px solid var(--hot);outline-offset:3px;border-radius:6px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font:700 .95rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;padding:1.1em 1.7em;border-radius:4px;background:var(--hot);color:#fff;border:2px solid var(--hot);transition:transform .2s ease, box-shadow .2s ease;box-shadow:4px 4px 0 var(--ink)}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink);box-shadow:none}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.band.berry .btn{box-shadow:4px 4px 0 var(--butter)}
.band.berry .btn.ghost{color:var(--on-dark);border-color:var(--on-dark)}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}
.row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px}
.logo{display:inline-flex;align-items:center;text-decoration:none}
.logo img{display:block;height:50px;width:auto}
.wm-white{display:none!important}
.nav{display:flex;gap:4px;align-items:center}
.nav a{text-decoration:none;font-weight:500;padding:.5em .8em;border-radius:999px}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--hot);border-radius:0}
.nav .btn{padding:.75em 1.2em;margin-left:8px;box-shadow:3px 3px 0 var(--ink)}
.menu-btn{display:none;background:none;border:2px solid var(--ink);color:var(--ink);border-radius:999px;font:700 .9rem var(--f-body);padding:.5em 1em;cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:inline-block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;background:var(--paper);border-bottom:1px solid var(--line);padding:12px max(20px,env(safe-area-inset-right,0px)) 20px max(20px,env(safe-area-inset-left,0px))}
  .nav.open{display:flex}
  .nav a{padding:.8em 1em}
  .nav .btn{margin:8px 0 0;justify-content:center}
}

/* ticker */
.ticker{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;border-block:2px solid var(--ink)}
.ticker-track{display:inline-flex;gap:2.2em;padding:.95em 0;font:800 1.05rem/1 var(--f-display);font-stretch:120%;text-transform:uppercase;letter-spacing:.04em;animation:tick 38s linear infinite}
.ticker-track span::after{content:"⌃";margin-left:2.2em;color:var(--brand);font-weight:900}
@keyframes tick{to{transform:translateX(-50%)}}

/* hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,7vw,96px);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.35fr .9fr;gap:clamp(28px,5vw,64px);align-items:center}
.hero-grid > *{min-width:0}
.hero h1 .script{display:inline-block;transform:rotate(-3deg)}
.hero .sub{font-size:clamp(1.08rem,1.6vw,1.28rem);max-width:46ch;margin:26px 0 32px;color:var(--ink-soft)}
.trust-row{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:30px;font-size:.92rem;font-weight:500}
.trust-row span{display:inline-flex;gap:.45em;align-items:center}
.trust-row span::before{content:"";width:11px;height:9px;background:var(--brand);clip-path:polygon(50% 0,100% 50%,100% 100%,50% 50%,0 100%,0 50%)}
.photo{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:220px 220px var(--radius) var(--radius);background:
  linear-gradient(160deg, var(--brand) 0 38%, #0E0E0E 38.2%);display:grid;place-items:end center;overflow:hidden;border:2px solid var(--ink)}
.photo .label{background:var(--paper);color:var(--ink);font:500 .78rem/1.3 var(--f-body);padding:.5em .9em;border-radius:999px;margin-bottom:18px;text-align:center;max-width:85%}
.sticker{position:absolute;width:136px;height:136px;border-radius:50%;background:#0E0E0E;color:#fff;display:grid;place-items:center;text-align:center;font:800 .74rem/1.15 var(--f-display);font-stretch:118%;text-transform:uppercase;letter-spacing:.06em;padding:18px;border:10px solid #fff;outline:2px solid #0E0E0E;transform:rotate(-10deg)}
.sticker b{display:block;font:400 1.55rem/1.1 var(--f-script);text-transform:none;color:#E39A57;letter-spacing:.02em}
.hero .sticker{left:-26px;bottom:34px}
.hero-photo{position:relative}

/* problem */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(28px,6vw,90px);align-items:start}
.split > *{min-width:0}
.big-quote{font:400 clamp(1.6rem,2.8vw,2.3rem)/1.3 var(--f-script);color:var(--butter);margin-top:28px}
.worry-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:10px}
.worry-list li{padding:14px 18px;border-radius:6px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-left:3px solid var(--butter);font-weight:500}
.worry-list li::before{content:"“";font:400 1.4rem/0 var(--f-script);color:var(--butter);margin-right:.35em;vertical-align:-.3em}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.review{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);padding:26px;display:flex;flex-direction:column;gap:16px;min-width:0}
.review:nth-child(2){transform:rotate(1.2deg)}
.review:nth-child(3){transform:rotate(-1deg)}
.stars{color:var(--hot);letter-spacing:.15em;font-size:1.1rem}
.review blockquote{margin:0;font-size:1.06rem;line-height:1.5}
.review .who{margin-top:auto;font-size:.85rem;color:var(--ink-soft);font-weight:500}
.review-note{margin-top:22px;font-size:.88rem;color:var(--ink-soft)}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:44px}
.svc{background:var(--paper);border:2px solid var(--ink);border-radius:var(--radius);padding:30px;display:flex;flex-direction:column;gap:14px;min-width:0}
.svc .tag{align-self:flex-start;font:700 .72rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.14em;background:var(--ink);color:var(--paper);padding:.6em .9em;border-radius:3px}
.svc dl{margin:4px 0 0;display:grid;gap:10px}
.svc dt{font:700 .74rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.14em;color:var(--hot)}
.svc dd{margin:4px 0 0}
.svc .price{font:800 1.15rem/1.3 var(--f-display);font-stretch:112%;margin-top:6px}
.gfe{font-size:.9rem;line-height:1.45;padding:12px 14px;border-radius:6px;background:var(--paper-2);border-left:3px solid var(--hot)}
.gfe b{font-weight:700}
.svc.wide{grid-column:1/-1}
.wide-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.wide-grid > *{min-width:0}
@media (max-width:760px){.wide-grid{grid-template-columns:1fr}}
.rewards-note{font-size:.86rem;line-height:1.5;color:var(--ink-soft);padding-top:10px;border-top:1px dashed var(--line)}
.rewards-note b{color:var(--ink);font-weight:700}
.pairing{font-size:.95rem;line-height:1.5;padding:14px 16px;border-radius:6px;background:var(--paper-2);border-left:3px solid var(--brand)}
.pairing b{font-weight:700}
.prf-book{display:grid;gap:10px;margin-top:auto;padding-top:10px}
.prf-book .btn{justify-content:center;padding:.85em 1.1em;font-size:.88rem}
.svc .row{margin-top:auto;padding-top:10px}
.svc .btn{padding:.85em 1.3em;font-size:.95rem}
.link{font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-color:var(--hot)}

/* meet */
.meet .photo{border-radius:var(--radius) var(--radius) 220px 220px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:48px;counter-reset:s}
.step{min-width:0;border-top:3px solid var(--butter);padding-top:20px;display:grid;gap:10px;align-content:start}
.step .n{font:400 2.6rem/1 var(--f-script);color:var(--butter)}
.step p{color:rgba(255,255,255,.82);font-size:.98rem}

/* promise / values */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.value{min-width:0;padding:28px;border-radius:var(--radius);background:var(--paper);border:2px solid var(--ink);display:grid;gap:12px;align-content:start}

/* final cta */
.final{text-align:center}
.final h2{font-size:clamp(2.4rem,6vw,5rem);max-width:16ch;margin:0 auto 32px}
.final .row{justify-content:center}

/* menu lists + membership */
.tiers{list-style:none;padding:0;margin:4px 0 0;border-top:1px solid var(--line)}
.tiers li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.tiers li b{font-weight:700}
.tiers li > div{min-width:0}
.mbadge{display:inline-block;margin-left:6px;padding:.3em .65em;border-radius:3px;background:var(--brand);color:#fff;font:700 .66rem/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;vertical-align:2px}
.tiers li.member-row{background:var(--ink);color:var(--paper);margin-inline:-12px;padding-inline:12px;border-radius:6px;border-bottom-color:transparent}
.tiers li.member-row span,.tiers li.member-row .tier-note{color:var(--paper);opacity:.85}
@media (max-width:560px){
  .hours .tiers li{display:grid;grid-template-columns:1fr auto;column-gap:12px;row-gap:2px;align-items:start}
  .hours .tiers li > span{white-space:nowrap;font-weight:600;color:var(--ink)}
  .hours .tiers li.member-row > span{color:var(--paper)}
  .hours .tiers li b{font-size:.98rem}
  .hours .mbadge{display:table;margin:6px 0 2px}
}

.tiers li.member-row .mbadge{opacity:1;color:#fff}
.tier-note{display:block;margin-top:3px;font-size:.84rem;color:var(--ink-soft);font-weight:400;line-height:1.4}
.tiers li span{color:var(--ink-soft);white-space:nowrap;font-weight:500}
.perks{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.perks li{display:flex;gap:.8em;align-items:baseline;font-weight:500}
.perks li::before{content:"";flex:none;width:12px;height:10px;background:var(--butter);clip-path:polygon(50% 0,100% 50%,100% 100%,50% 50%,0 100%,0 50%)}
.price-big{font:900 clamp(2.6rem,6vw,4.4rem)/1 var(--f-display);font-stretch:118%;letter-spacing:-.01em}
.price-big small{font:500 1rem/1 var(--f-body);letter-spacing:0;opacity:.8;margin-left:.3em}
.fine{font-size:.88rem;opacity:.75}
.homecare{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.homecare > div{min-width:0;border-top:3px solid var(--hot);padding-top:18px;display:grid;gap:8px;align-content:start}
.homecare .n{font:400 2.2rem/1 var(--f-script);color:var(--hot)}
@media (max-width:760px){.homecare{grid-template-columns:1fr}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:14px;border-block:1px solid var(--line)}
.stats > div{padding:16px 12px 14px 0;min-width:0}
.stats b{display:block;font:900 clamp(1.7rem,3vw,2.3rem)/1 var(--f-display);font-stretch:118%;color:var(--hot);font-variant-numeric:tabular-nums}
.stats span{display:block;margin-top:6px;font-size:.8rem;line-height:1.3;color:var(--ink-soft);font-weight:500}
@media (max-width:520px){.stats{grid-template-columns:repeat(2,1fr)}}

.team{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:44px}
.member{min-width:0;display:grid;gap:10px;align-content:start}
.avatar{aspect-ratio:1;max-width:100%;border-radius:50%;border:8px solid var(--on-dark);outline:2px solid var(--butter);background:linear-gradient(160deg,var(--brand) 0 40%,#0E0E0E 40.2%);display:grid;place-items:center;font:900 3rem/1 var(--f-display);font-stretch:120%;color:#fff;margin-bottom:8px}
.avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;border-radius:50%;display:block}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.facts{list-style:none;padding:0;margin:4px 0 0;display:grid;gap:6px;font-size:.92rem;color:rgba(255,255,255,.82)}
.facts li{display:flex;gap:.6em;align-items:baseline}
.facts li::before{content:"";flex:none;width:9px;height:8px;background:var(--butter);clip-path:polygon(50% 0,100% 50%,100% 100%,50% 50%,0 100%,0 50%)}
.treats{font-size:.9rem;color:#fff;border-top:1px solid rgba(255,255,255,.18);padding-top:10px;margin-top:4px}
.treats b{color:var(--butter);font-weight:700}
.team-quote{margin:48px 0 0;max-width:56ch;font:400 clamp(1.4rem,2.4vw,1.9rem)/1.35 var(--f-script);color:var(--butter)}
.team-quote cite{display:block;margin-top:10px;font:500 .9rem/1 var(--f-body);font-style:normal;color:rgba(255,255,255,.75)}
.member .role{font:700 .74rem/1.2 var(--f-body);text-transform:uppercase;letter-spacing:.14em;color:var(--butter)}
.member p{color:rgba(255,255,255,.82);font-size:.97rem}
@media (max-width:960px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.team{grid-template-columns:1fr}.avatar{max-width:220px}}

.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}
.ig-tile{aspect-ratio:1;max-width:100%;min-width:0;border-radius:var(--radius);display:flex;flex-direction:column;justify-content:space-between;padding:20px;text-decoration:none;border:2px solid var(--ink);transition:transform .2s ease}
.ig-tile:hover{transform:translateY(-4px)}
.ig-tile:nth-child(odd){background:#0E0E0E;color:#fff}
.ig-tile:nth-child(even){background:var(--brand);color:#fff}
.ig-tile .t{font:900 clamp(1.1rem,2vw,1.5rem)/1.05 var(--f-display);font-stretch:118%;text-transform:uppercase}
.ig-tile .d{font-size:.88rem;opacity:.85}
.ig-tile::before{content:"";width:22px;height:18px;background:currentColor;clip-path:polygon(50% 0,100% 50%,100% 100%,50% 50%,0 100%,0 50%)}
@media (max-width:760px){.ig-grid{grid-template-columns:repeat(2,1fr)}}
@media (prefers-reduced-motion:reduce){.ig-tile{transition:none}}

/* faq */
.faq{max-width:820px;margin-top:40px;display:grid;gap:12px}
.faq details{border:2px solid var(--ink);border-radius:14px;background:var(--paper)}
.faq summary{cursor:pointer;list-style:none;padding:20px 56px 20px 22px;font:700 1.1rem/1.3 var(--f-body);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font:700 1.7rem/1 var(--f-body);color:var(--hot);transition:transform .2s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .a{padding:0 22px 22px;color:var(--ink-soft);max-width:66ch}
.faq-group{margin-top:44px}
.faq-group h3{margin-bottom:4px}

/* contact */
.info{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:2px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.info > div{padding:22px 24px;border-bottom:1px solid var(--line);min-width:0}
.info > div:nth-child(odd){border-right:1px solid var(--line)}
.info dt{font:700 .72rem/1 var(--f-body);text-transform:uppercase;letter-spacing:.14em;color:var(--hot);margin-bottom:8px}
.info dd{margin:0;font-weight:500;overflow-wrap:anywhere;word-break:break-word}
.hours{font-variant-numeric:tabular-nums}

/* page sub-hero */
.page-hero{padding-block:clamp(56px,8vw,110px) clamp(40px,5vw,64px)}
.page-hero h1{font-size:clamp(2.4rem,6.2vw,5.2rem);max-width:15ch}
.page-hero .sub{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--ink-soft);max-width:54ch;margin:24px 0 30px}

.seo-line{margin-top:40px;font-size:.95rem;color:var(--ink-soft);max-width:70ch}

/* footer */
footer{background:var(--berry);color:var(--on-dark);padding-block:56px calc(40px + env(safe-area-inset-bottom,0px))}
footer .wrap{display:grid;gap:18px;justify-items:center;text-align:center}
footer .logo img{height:100px}
footer nav{display:flex;flex-wrap:wrap;gap:6px 18px;justify-content:center}
footer nav a{text-decoration:none;font-weight:500}
footer nav a:hover{color:var(--butter)}
.socials{display:flex;gap:10px}
.socials a{width:42px;height:42px;border-radius:50%;border:1.5px solid var(--on-dark);display:grid;place-items:center;text-decoration:none;font:700 .8rem var(--f-body)}
.socials a:hover{background:var(--hot);border-color:var(--hot)}
footer .small{font-size:.86rem;opacity:.75}

/* mobile book bar */
.mbar{display:none}
@media (max-width:860px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;padding:10px max(14px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px));background:var(--paper);border-top:1px solid var(--line)}
  .mbar .btn{flex:1;justify-content:center;box-shadow:none}
  footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}

/* responsive */
@media (max-width:960px){
  .hero-grid,.split{grid-template-columns:1fr}
  .hero-photo{max-width:420px}
  .reviews,.values{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .review:nth-child(n){transform:none}
}
@media (max-width:620px){
  .svc-grid,.steps,.info{grid-template-columns:1fr!important}
  .info > div:nth-child(odd){border-right:0}
  .hero .sticker{left:auto;right:-8px;bottom:-14px;width:112px;height:112px;font-size:.7rem}
}

/* pages */
.page{display:block}
.page.on{display:block;animation:rise .45s ease both}
@keyframes rise{from{transform:translateY(10px)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  .ticker-track,.page.on{animation:none}
  html{scroll-behavior:auto}
  .btn,.btn .arr{transition:none}
}
