/* The Shasta Edit — editorial luxe: alternating deep-green drama bands + warm sand air.
   From her Pinterest board: dark statement bands, arched frames, serif display,
   italic script accents, gold jewelry. Green #343E32 plays the "black" role. */
:root{
  --green:#343e32; --green-deep:#2a332a; --green-2:#3e493b;
  --gold:#b08d42; --gold-bright:#d6b269; --gold-dim:rgba(176,141,66,.32);
  --sand:#ece4d4; --sand-2:#e2d7c3; --cream:#f7f3ea; --white:#fdfbf6;
  --ink:#2c332b; --ink-soft:rgba(44,51,43,.75); --ink-faint:rgba(44,51,43,.5);
  --cream-on-dark:#f4efe4; --cream-dim:rgba(244,239,228,.75); --cream-faint:rgba(244,239,228,.5);
  --serif:'Cinzel',serif; --script:'Cormorant Garamond',serif; --body:'Jost',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:var(--body);font-weight:300;line-height:1.75;letter-spacing:.02em;max-width:100vw;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--gold);text-decoration:none;transition:.25s}
a:hover{color:var(--green)}

nav{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px 5vw;background:rgba(247,243,234,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--gold-dim)}
.nav-brand{font-family:var(--serif);font-size:19px;letter-spacing:.22em;color:var(--green);white-space:nowrap}
.nav-links{display:flex;gap:26px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.nav-links a{font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint)}
.nav-links a:hover,.nav-links a.active{color:var(--green)}

.btn{display:inline-block;padding:13px 34px;border:1px solid var(--green);color:var(--green);font-size:13px;letter-spacing:.24em;text-transform:uppercase;font-weight:400;background:transparent}
.btn:hover{background:var(--green);color:var(--cream-on-dark)}
.btn-solid{background:var(--green);color:var(--cream-on-dark);border-color:var(--green)}
.btn-solid:hover{background:var(--green-deep);color:var(--gold-bright)}

section{padding:92px 5vw}
.wrap{max-width:1080px;margin:0 auto}
.eyebrow{font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--green);letter-spacing:.06em}
h1{font-size:clamp(30px,5.2vw,54px);line-height:1.18}
h2{font-size:clamp(24px,3.4vw,36px);margin-bottom:18px}
h3{font-size:18px;color:var(--gold);letter-spacing:.12em}
.script{font-family:var(--script);font-style:italic;font-weight:500;text-transform:none;letter-spacing:.02em;font-size:1.35em;color:var(--gold-bright)}
.lead{font-size:17.5px;color:var(--ink-soft);max-width:640px}
.rule{width:64px;height:1px;background:var(--gold);margin:26px 0}
.center{text-align:center}
.center .rule{margin:26px auto}
.center .lead{margin-left:auto;margin-right:auto}

/* DARK BANDS — the drama */
.band{background:var(--green);color:var(--cream-on-dark)}
.band h1,.band h2{color:var(--cream-on-dark)}
.band h3{color:var(--gold-bright)}
.band .lead,.band p{color:var(--cream-dim)}
.band .eyebrow{color:var(--gold-bright)}
.band .btn{border-color:var(--gold-bright);color:var(--gold-bright)}
.band .btn:hover{background:var(--gold-bright);color:var(--green-deep)}
.band .btn-solid{background:var(--gold-bright);color:var(--green-deep);border-color:var(--gold-bright)}
.band-deep{background:var(--green-deep)}

/* SAND panels — the air */
.panel{background:var(--sand)}

/* hero — full-bleed green, logo blends seamlessly (logo bg = brand green) */
.hero{display:block;padding:0;background:#343e32;line-height:0}
.hero img{display:block;width:100%;height:auto;max-height:82vh;object-fit:cover;object-position:center;margin:0;border:0;outline:0;box-shadow:none}
/* strip below the hero starts at the image's own bottom-edge colour (#495142)
   and settles into the site green, so there is no visible seam */
.hero-caption{background:linear-gradient(180deg,#495142 0%,var(--green) 60%);text-align:center;padding:34px 5vw 48px;line-height:1.6}
.hero-caption .lead{color:var(--cream-dim);max-width:620px;margin:0 auto}
.hero .tag{font-size:13.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--cream-faint);margin:6px 0 30px}
.hero .lead{color:var(--cream-dim)}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:34px}

/* cards */
.grid{display:grid;gap:22px}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.card{background:var(--white);border:1px solid var(--gold-dim);padding:36px 30px;box-shadow:0 12px 34px rgba(44,51,43,.07)}
.card p{color:var(--ink-soft);font-size:15px}
.card h3{margin-bottom:12px}
.band .card{background:var(--green-2);border-color:rgba(214,178,105,.28);box-shadow:none}
.band .card p{color:var(--cream-dim)}

/* ARCHED frames — her board's signature shape */
.arch{aspect-ratio:3/4;border-radius:999px 999px 0 0;overflow:hidden;background:linear-gradient(170deg,var(--sand-2),var(--sand));border:1px solid var(--gold-dim);display:flex;align-items:end;justify-content:center;padding-bottom:26px;color:var(--ink-faint);font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.arch img{width:100%;height:100%;object-fit:cover;padding:0}
.arch span{font-family:var(--serif);color:var(--green);font-size:14px;letter-spacing:.14em}
.band .arch{background:linear-gradient(170deg,var(--green-2),var(--green-deep));border-color:rgba(214,178,105,.28)}
.band .arch span{color:var(--gold-bright)}

/* services — dark full-menu band styling */
.svc-cat{margin-top:44px}
.svc{display:flex;justify-content:space-between;gap:18px;padding:15px 4px;border-bottom:1px solid rgba(214,178,105,.2)}
.svc-name{color:var(--cream-on-dark)}
.svc-meta{color:var(--cream-faint);font-size:13.5px;letter-spacing:.05em}
.svc-price{font-family:var(--serif);color:var(--gold-bright);white-space:nowrap}
.svc-note{font-size:13.5px;color:var(--cream-faint);padding:8px 4px 0;max-width:640px}

.info-line{display:flex;gap:14px;padding:10px 0;color:var(--ink-soft);font-size:15.5px}
.info-line b{color:var(--green);font-family:var(--serif);font-weight:500;min-width:104px;letter-spacing:.08em;font-size:13.5px;text-transform:uppercase}
form{display:grid;gap:14px}
input,textarea,select{background:var(--white);border:1px solid var(--gold-dim);color:var(--ink);padding:14px 16px;font-family:var(--body);font-size:15px;width:100%}
input:focus,textarea:focus,select:focus{outline:1px solid var(--gold)}
label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}

footer{background:var(--green-deep);border-top:1px solid var(--gold-dim);padding:52px 5vw;text-align:center;color:var(--cream-faint);font-size:13px;letter-spacing:.06em}
footer .f-brand{font-family:var(--serif);color:var(--gold-bright);letter-spacing:.24em;font-size:15px;margin-bottom:10px}
footer .f-links{display:flex;gap:22px;justify-content:center;margin:14px 0;flex-wrap:wrap}
footer .f-links a{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-faint)}
footer .f-links a:hover{color:var(--gold-bright)}
footer a{color:var(--gold-bright)}

@media(max-width:640px){
  nav{flex-direction:column;gap:10px}
  .nav-links{gap:14px;justify-content:center}
  section{padding:64px 6vw}
  .svc{flex-wrap:wrap}
}

/* editorial split + masonry (de-templated layouts) */
.split{display:grid;grid-template-columns:5fr 6fr;gap:56px;align-items:center}
.split > .arch{max-width:430px}
.masonry{columns:3 260px;column-gap:22px}
.masonry figure{break-inside:avoid;margin:0 0 22px}
.masonry img{width:100%;border-radius:2px;border:1px solid var(--gold-dim)}
.masonry figcaption{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);padding:8px 2px}
@media(max-width:760px){.split{grid-template-columns:1fr;gap:30px}.split > .arch{max-width:340px;margin:0 auto}}

/* ---------- REVIEW SCROLL (home page) ----------
   Full-bleed marquee of real Google reviews. The track is duplicated once and
   translated by exactly -50%, which is what makes the loop seamless — the copy
   arrives where the original started. aria-hidden on the duplicate so a screen
   reader reads each review once, not twice.
   Pauses on hover and on keyboard focus. Under prefers-reduced-motion the
   animation is dropped entirely and it becomes a normal swipeable strip. */
.rscroll{position:relative;overflow:hidden;padding:8px 0 4px;
         -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
         mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.rscroll-track{display:flex;gap:20px;width:max-content;animation:rscroll 64s linear infinite}
.rscroll:hover .rscroll-track,
.rscroll:focus-within .rscroll-track{animation-play-state:paused}
@keyframes rscroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.rcard{flex:0 0 340px;background:var(--white);border:1px solid var(--gold-dim);
       padding:26px 26px 22px;box-shadow:0 10px 28px rgba(44,51,43,.06);
       display:flex;flex-direction:column;min-height:200px}
.rcard .stars{color:var(--gold);letter-spacing:.2em;font-size:12px;margin-bottom:12px}
.rcard blockquote{margin:0;font-family:var(--serif);font-style:italic;font-size:16.5px;
                  line-height:1.5;color:var(--green)}
.rcard cite{margin-top:auto;padding-top:16px;font-style:normal;font-size:11px;
            letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint)}
@media(max-width:560px){.rcard{flex-basis:280px}}

@media(prefers-reduced-motion:reduce){
  .rscroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .rscroll-track{animation:none}
}
