/* seanhenne.com - no framework, mobile-first */
:root{
  --ink:#2b2a24; --muted:#4f4a3e; --bg:#faf6ec; --alt:#efe8d6; --card:#fffcf5;
  --brand:#4a5a3a; --brand-dark:#2f3d2a; --accent:#8f4529; --line:#d8cfb8;
  --focus:#8f4529; --radius:24px; --max:68rem;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:112.5%;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background-image:radial-gradient(rgba(74,90,58,.06) 1px,transparent 1px),radial-gradient(rgba(156,79,50,.04) 1px,transparent 1px);background-size:22px 22px,37px 37px;background-position:0 0,11px 17px;font-family:"Avenir Next",Nunito,"Trebuchet MS",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1rem;line-height:1.75;color:var(--ink);background-color:var(--bg)}
h1,h2,h3{font-family:var(--serif);font-weight:500;letter-spacing:.005em;line-height:1.25;color:var(--brand-dark);margin:0 0 .6em}
h1{font-size:2.1rem}
h2{font-size:1.75rem}
h3{font-size:1.25rem}
p,ul,ol,dl{margin:0 0 1em}
a{color:var(--brand);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--brand-dark)}
:focus-visible{outline:4px solid var(--focus);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.small{font-size:.9rem;color:var(--muted)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--brand-dark);color:#fff;padding:.8rem 1.2rem;z-index:100;border-radius:0 0 var(--radius) 0}
.skip-link:focus{left:0;color:#fff}
main:focus{outline:none}

/* Header */
.site-header{background:var(--card);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.8rem;padding-bottom:.8rem;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--ink);line-height:1.2}
.brand strong{display:block;font-size:1.15rem;color:var(--brand-dark)}
.brand-sub{display:block;font-size:.85rem;color:var(--muted)}
.brand-mark{width:44px;height:44px;flex:none}
.brand-mark rect{fill:var(--brand);rx:20px}
.site-nav ul{list-style:none;margin:0;padding:0 0 .6rem;display:flex;flex-wrap:wrap;gap:.25rem .5rem}
.site-nav a{display:inline-block;padding:.55rem .7rem;min-height:44px;font-weight:600;text-decoration:none;border-radius:999px}
.site-nav a:hover{background:var(--alt);text-decoration:underline}

/* Buttons */
.btn{border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:56px;padding:.85rem 1.5rem;font:inherit;font-weight:700;font-size:1.05rem;text-decoration:none;border:2px solid transparent;cursor:pointer;text-align:center}
.btn svg{width:1.3em;height:1.3em}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-dark);color:#fff}
.btn-secondary{background:var(--card);color:var(--brand-dark);border-color:var(--brand)}
.btn-secondary:hover{background:var(--alt)}
.btn-small{min-height:48px;padding:.6rem 1rem;font-size:1rem;background:var(--brand);color:#fff}
.btn-small:hover{background:var(--brand-dark);color:#fff}

/* Hero */
.hero{border-radius:0 0 40px 40px;background:linear-gradient(180deg,#dde3cc 0%,#f3ecdb 100%);padding:2.5rem 0 2.75rem;border-bottom:1px solid var(--line)}
.eyebrow{font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;margin-bottom:.4rem}
.lead{font-size:1.15rem;max-width:44rem}
.hero-actions{display:flex;flex-direction:column;gap:.8rem;margin:1.5rem 0 1rem}

/* Sections */
.section{padding:3.5rem 0}
.section-alt{background:var(--alt)}
.cards{list-style:none;padding:0;display:grid;gap:1rem}
.card,.info{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.35rem}
.card p,.info p{margin:0}
.grid-2{display:grid;gap:1rem;margin-bottom:1.5rem}
.periods{display:grid;gap:.8rem}
.periods div{background:var(--card);border-left:6px solid var(--accent);padding:.9rem 1.1rem;border-radius:0 var(--radius) var(--radius) 0}
.periods dt{font-weight:700;color:var(--brand-dark)}
.periods dd{margin:0}
.steps{padding-left:1.5rem;display:grid;gap:1rem}
.steps li::marker{font-weight:700;color:var(--brand);font-size:1.25rem}
.steps p{margin:0}

/* FAQ */
.faq details{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:.75rem}
.faq summary{cursor:pointer;padding:1rem 1.25rem;min-height:56px;display:flex;align-items:center;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";font-weight:700;font-size:1.5rem;color:var(--brand);margin-right:.8rem;width:1ch}
.faq details[open] summary::before{content:"\2212"}
.faq summary h3{margin:0;font-size:1.1rem}
.faq details p{padding:0 1.25rem 1.1rem;margin:0}

/* Contact */
.contact-line{margin-bottom:.4rem}
.notice{background:#f5e6d6;border:1px solid #cfa78a;border-radius:var(--radius);padding:.9rem 1.1rem;margin-top:1rem}
.contact-form{background:var(--alt);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.field{margin-bottom:1.1rem}
.field label{display:block;font-weight:700;margin-bottom:.35rem}
.req,.opt{font-weight:400;color:var(--muted);font-size:.9rem}
input[type=text],input[type=tel],input[type=email],select{width:100%;min-height:52px;padding:.7rem .95rem;font:inherit;color:var(--ink);background:var(--card);border:2px solid #6f6650;border-radius:14px}
input:focus,select:focus{border-color:var(--brand)}
.check{display:flex;gap:.75rem;align-items:flex-start}
.check input{width:28px;height:28px;margin:.2rem 0 0;flex:none;accent-color:var(--brand)}
.check label{font-weight:400}
.contact-form .btn{width:100%}

/* Footer */
.site-footer{border-radius:32px 32px 0 0;background:var(--brand-dark);color:#fff;padding:2.5rem 0;font-size:.95rem}
.site-footer a{color:#fff}
.site-footer .small{color:#e8efe6}
.disclaimer{border-top:1px solid rgba(255,255,255,.25);padding-top:.9rem;max-width:52rem}

/* Simple pages */
.page{padding:2.5rem 0 3rem}
.page h2{font-size:1.4rem;margin-top:1.6rem}

@media (min-width:40rem){
  h1{font-size:2.6rem}
  .hero{padding:4rem 0}
  .hero-actions{flex-direction:row;flex-wrap:wrap}
  .cards{grid-template-columns:1fr 1fr}
  .grid-2{grid-template-columns:1fr 1fr}
  .periods{grid-template-columns:1fr 1fr}
  .site-nav ul{justify-content:flex-start}
}
@media (min-width:60rem){
  .cards{grid-template-columns:repeat(4,1fr)}
  .contact-grid{grid-template-columns:1fr 1.1fr;gap:2.5rem;align-items:start}
}
@media print{.site-nav,.skip-link,.contact-form{display:none}.site-footer{background:#fff;color:#000}.site-footer a{color:#000}}

/* Spa refresh */
.section{padding:4.5rem 0}
h1{font-size:2.3rem;line-height:1.2}
.card,.info,.faq details,.periods div{box-shadow:0 1px 0 rgba(47,61,42,.04),0 8px 24px -16px rgba(47,61,42,.25);transition:transform .25s ease,box-shadow .25s ease}
.card:hover,.info:hover{transform:translateY(-2px);box-shadow:0 12px 28px -16px rgba(47,61,42,.35)}
.btn{transition:background-color .25s ease,transform .25s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brand-dark)}
.btn-primary:hover{background:var(--accent)}
.section-alt{background-color:var(--alt)}
.site-header{background:var(--card)}
.brand-mark rect{fill:var(--brand-dark)}
.brand strong{font-family:var(--serif);font-weight:500}
.eyebrow{color:var(--accent)}
.site-footer{background:var(--brand-dark)}
@media (prefers-reduced-motion:reduce){.card,.info,.btn,.faq details{transition:none}.card:hover,.info:hover,.btn:hover{transform:none}}
@media (min-width:40rem){h1{font-size:2.9rem}}
.site-footer :focus-visible,.skip-link:focus-visible{outline-color:#faf6ec}
.brand-sep{color:var(--accent);font-weight:400;margin:0 .15em}
.brand strong{font-size:1.05rem}
