/* GlamourStone home: "The Stone Studio" (designer direction, design-direction-home/SPEC.md).
   Scoped to main.gsx with gx- classes so it never collides with the site-wide styles. */
.gsx{
  --gs-charcoal:#161514;--gs-charcoal-2:#211f1d;--gs-line-dark:#3a3632;--gs-ivory:#f6f1e8;--gs-paper:#fbf8f2;
  --gs-stone:#d9cbb4;--gs-stone-2:#e9dfcf;--gs-line:#ddd2c1;--gs-bronze:#c4a476;--gs-bronze-hover:#d4bc94;--gs-bronze-ink:#7a5c3b;
  --gs-muted:#5f5850;--gs-muted-on-dark:#b3aa9d;
  --gs-serif:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --gs-sans:"Jost","Avenir Next","Segoe UI",system-ui,-apple-system,sans-serif;
  --fs-display:clamp(2.75rem,1.6rem + 4.4vw,5.5rem);--fs-h2:clamp(2.125rem,1.5rem + 2.8vw,3.75rem);
  --fs-lead:clamp(1.0625rem,1rem + .35vw,1.3125rem);
  --sec:clamp(64px,9vw,160px);--gut:clamp(16px,2vw,24px);--mar:clamp(20px,5vw,80px);--gwrap:1320px;
  --ease:cubic-bezier(.2,.7,.2,1);
  background:var(--gs-ivory);color:var(--gs-charcoal);font-family:var(--gs-sans)
}
.gsx .wrap{max-width:calc(var(--gwrap) + 2*var(--mar));margin:0 auto;padding:0 var(--mar)}
.gsx h1,.gsx h2,.gsx h3{font-family:var(--gs-serif);font-weight:500;line-height:1.04;letter-spacing:-.01em;margin:0;color:inherit}
.gsx h2{font-size:var(--fs-h2)}
.gsx h2 em{font-style:italic;color:var(--gs-bronze-ink)}
.gsx .gx-dark h2 em{color:var(--gs-bronze-hover)}
.gsx h3{font-size:clamp(1.5rem,1.3rem + .6vw,1.875rem);line-height:1.15}
.gsx :focus-visible{outline:2px solid var(--gs-charcoal);outline-offset:3px}
.gsx .gx-hero :focus-visible,.gsx .gx-dark :focus-visible{outline-color:var(--gs-bronze-hover)}
.gsx .gx-dark .gx-formcard :focus-visible{outline-color:var(--gs-charcoal)}

.gx-label{display:flex;align-items:center;gap:12px;font:500 .75rem/1.4 var(--gs-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gs-bronze-ink);margin:0 0 24px}
.gx-label::before{content:"";width:32px;height:1px;background:currentColor;flex:none}
.gx-label .n{font-variant-numeric:tabular-nums}
.gx-dark .gx-label,.gx-hero .gx-label{color:var(--gs-bronze-hover)}
.gx-lead{font-size:var(--fs-lead);line-height:1.6;color:var(--gs-muted);max-width:56ch;margin:0}
.gx-dark .gx-lead,.gx-hero .gx-lead{color:var(--gs-muted-on-dark)}
.gx-fine{font-size:13px;color:var(--gs-muted);margin:16px 0 0}
.gx-fine a{color:inherit}

/* buttons: primary (estimate) · secondary (call) · tertiary (chat/links) */
.gx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:2px;border:1px solid transparent;
  font:500 13px/1.2 var(--gs-sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer;text-align:center;
  transition:background-color .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}
.gx-btn svg{width:16px;height:16px;flex:none}
.gx-btn--primary{background:var(--gs-bronze);color:var(--gs-charcoal);border-color:var(--gs-bronze)}
.gx-btn--primary:hover{background:var(--gs-bronze-hover);border-color:var(--gs-bronze-hover);color:var(--gs-charcoal)}
.gx-btn .arr{transition:transform .25s var(--ease)}
.gx-btn:hover .arr{transform:translateX(3px)}
.gx-btn--secondary{background:transparent;color:var(--gs-charcoal);border-color:#a89b88}
.gx-btn--secondary:hover{background:var(--gs-charcoal);color:var(--gs-ivory);border-color:var(--gs-charcoal)}
.gx-dark .gx-btn--secondary,.gx-hero .gx-btn--secondary{color:var(--gs-ivory);border-color:#6b645b}
.gx-dark .gx-btn--secondary:hover,.gx-hero .gx-btn--secondary:hover{background:var(--gs-ivory);color:var(--gs-charcoal);border-color:var(--gs-ivory)}
.gx-btn--block{width:100%}
@media(min-width:560px){.gx-btn{white-space:nowrap;letter-spacing:.16em}}
.gx-tertiary{display:inline-flex;align-items:center;gap:8px;padding:8px 0;color:inherit;font:500 14px/1.2 var(--gs-sans);letter-spacing:.02em;text-decoration:underline;text-decoration-color:var(--gs-bronze);text-underline-offset:5px}
.gx-tertiary svg{width:18px;height:18px}
.gx-tertiary:hover{color:var(--gs-bronze-ink)}
.gx-dark .gx-tertiary:hover,.gx-hero .gx-tertiary:hover{color:var(--gs-bronze-hover)}
.gx-cta-row{display:flex;flex-direction:column;gap:12px;align-items:stretch}
@media(min-width:560px){.gx-cta-row{flex-direction:row;flex-wrap:wrap;align-items:center}}

/* HERO */
.gx-hero{position:relative;background:var(--gs-charcoal);color:var(--gs-ivory);overflow:hidden;isolation:isolate}
.gx-hero-media{position:relative;margin:0;height:clamp(230px,34vh,340px)}
.gx-hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.gx-hero-media::after{content:"";position:absolute;inset:auto 0 0 0;height:42%;background:linear-gradient(to bottom,transparent,var(--gs-charcoal))}
.gx-plate{position:absolute;left:var(--mar);bottom:12px;z-index:2;display:flex;gap:10px;align-items:center;font:500 10.5px/1.3 var(--gs-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gs-ivory)}
.gx-plate i{width:18px;height:1px;background:var(--gs-bronze)}
.gx-hero-copy{position:relative;padding:16px var(--mar) 48px}
.gx-hero h1{font-size:var(--fs-display);font-weight:400;line-height:.98;letter-spacing:-.02em;color:var(--gs-ivory);margin:0 0 16px}
.gx-hero h1 em{font-style:italic;color:var(--gs-bronze-hover)}
.gx-hero h1 .l{display:block}
.gx-hero .gx-lead{margin-bottom:24px;font-size:1rem;line-height:1.55}
.gx-hero .gx-label{margin-bottom:16px;font-size:11px;letter-spacing:.2em}
.gx-hero-alt{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin-top:12px;color:var(--gs-muted-on-dark)}
.gx-facts{list-style:none;margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--gs-line-dark);display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}
.gx-facts li{font:500 11.5px/1.35 var(--gs-sans);letter-spacing:.16em;text-transform:uppercase;color:#d9d1c4;display:flex;gap:10px;align-items:flex-start}
.gx-facts li::before{content:"";flex:none;width:7px;height:7px;margin-top:4px;border:1px solid var(--gs-bronze);transform:rotate(45deg)}
.gx-mono{position:absolute;z-index:-1;right:-60px;bottom:-40px;width:300px;height:345px;opacity:.06;color:var(--gs-bronze)}
@media(min-width:768px){.gx-hero-media{height:clamp(300px,40vh,420px)}.gx-hero .gx-lead{font-size:var(--fs-lead)}}
@media(min-width:1024px){
  .gx-hero{min-height:min(calc(100svh - 80px),860px);display:grid;grid-template-columns:repeat(12,1fr);column-gap:var(--gut);
    padding-left:max(var(--mar),calc((100vw - var(--gwrap))/2))}
  .gx-hero-copy{grid-column:1 / span 6;align-self:center;padding:64px 0 48px}
  .gx-hero-media{grid-column:8 / -1;grid-row:1;height:auto;min-height:100%}
  .gx-hero-media img{position:absolute;inset:0;object-position:50% 50%}
  .gx-hero-media::after{inset:0 auto 0 0;width:22%;height:auto;background:linear-gradient(to right,var(--gs-charcoal),transparent)}
  .gx-hero-media::before{content:"";position:absolute;z-index:1;left:-24px;top:64px;bottom:64px;width:1px;background:var(--gs-bronze);opacity:.6}
  .gx-plate{left:32px;bottom:32px}
  .gx-mono{left:34%;right:auto;bottom:-80px;width:520px;height:600px}
  .gx-facts{grid-template-columns:repeat(3,auto);justify-content:start;gap:12px 32px}
  .gx-hero .gx-label{font-size:.75rem;letter-spacing:.24em}
  .gx-hero .gx-lead{max-width:44ch}
}
@media(min-width:1024px) and (max-width:1279px){.gx-hero-copy{grid-column:1 / span 7}}

/* bands */
.gx-section{padding:var(--sec) 0}
.gx-dark{background:var(--gs-charcoal);color:var(--gs-ivory)}
.gx-stone{background:var(--gs-stone-2)}
.gx-stone--deep{background:var(--gs-stone)}
.gx-head{display:grid;gap:16px;margin-bottom:clamp(32px,5vw,64px)}
@media(min-width:1024px){.gx-head{grid-template-columns:7fr 5fr;align-items:end;gap:64px}.gx-head .gx-label{margin-bottom:20px}}
.gx-section-cta{margin-top:clamp(32px,5vw,64px);padding-top:32px;border-top:1px solid var(--gs-line);display:grid;gap:16px}
.gx-stone--deep .gx-section-cta{border-color:#c9b99f}
.gx-dark .gx-section-cta{border-color:var(--gs-line-dark)}
.gx-section-cta>p{margin:0;font-family:var(--gs-serif);font-size:clamp(1.5rem,1.2rem + 1vw,2.125rem);line-height:1.15}
@media(min-width:1024px){.gx-section-cta{grid-template-columns:1fr auto;align-items:center;gap:32px}}

/* promise strip */
.gx-promise{background:var(--gs-stone);color:var(--gs-charcoal)}
.gx-promise ul{list-style:none;margin:0 auto;padding-top:22px;padding-bottom:22px;display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
.gx-promise li{display:flex;gap:12px;align-items:center;font:500 12px/1.35 var(--gs-sans);letter-spacing:.14em;text-transform:uppercase}
.gx-promise svg{flex:none;width:22px;height:22px;color:var(--gs-bronze-ink)}
@media(min-width:1024px){.gx-promise ul{grid-template-columns:repeat(4,auto);justify-content:space-between;padding-top:30px;padding-bottom:30px}}

/* 01 work */
.gx-work{display:grid;gap:var(--gut);grid-template-columns:1fr 1fr}
.gx-work figure{margin:0;position:relative;overflow:hidden;background:var(--gs-stone)}
.gx-work a{display:block;height:100%}
.gx-work img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.gx-work a:hover img{transform:scale(1.03)}
.gx-work .w-a{grid-column:1 / -1;aspect-ratio:3/2}
.gx-work .w-b,.gx-work .w-c,.gx-work .w-e{aspect-ratio:4/5}
.gx-work .w-d{grid-column:1 / -1;aspect-ratio:16/9}
.gx-work .w-e{display:none}
.gx-work figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(22,21,20,.72));color:#f6f1e8;font:500 11px/1.35 var(--gs-sans);letter-spacing:.14em;text-transform:uppercase;pointer-events:none}
@media(min-width:1024px){
  .gx-work{grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(120px,11vw,160px)}
  .gx-work .w-a{grid-column:1 / span 7;grid-row:span 4;aspect-ratio:auto}
  .gx-work .w-b{grid-column:8 / span 5;grid-row:span 2;aspect-ratio:auto}
  .gx-work .w-c{grid-column:8 / span 2;grid-row:span 2;aspect-ratio:auto}
  .gx-work .w-e{display:block;grid-column:10 / span 3;grid-row:span 2;aspect-ratio:auto}
  .gx-work .w-d{grid-column:1 / span 12;grid-row:span 3;aspect-ratio:auto}
  .gx-work figcaption{padding:40px 20px 16px}
}

/* 02 services */
.gx-svc{list-style:none;margin:0;padding:0;border-top:1px solid #cdbfa8}
.gx-svc li{border-bottom:1px solid #cdbfa8}
.gx-svc a{display:grid;grid-template-columns:40px 1fr 24px;gap:12px;align-items:baseline;padding:24px 0;text-decoration:none;color:inherit}
.gx-svc .n{font:500 12px/1 var(--gs-sans);letter-spacing:.14em;color:var(--gs-bronze-ink)}
.gx-svc h3{transition:color .25s var(--ease)}
.gx-svc p{margin:8px 0 0;color:var(--gs-muted);font-size:15.5px;max-width:52ch}
.gx-svc .go{width:20px;height:20px;align-self:center;color:var(--gs-bronze-ink);transition:transform .25s var(--ease)}
.gx-svc a:hover h3{color:var(--gs-bronze-ink)}
.gx-svc a:hover .go{transform:translateX(4px)}
@media(min-width:1024px){.gx-svc{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;border-top:0}.gx-svc li:nth-child(-n+2){border-top:1px solid #cdbfa8}.gx-svc a{grid-template-columns:56px 1fr 24px;padding:32px 0}}

/* 03 steps */
.gx-steps{list-style:none;margin:0;padding:0;display:grid}
.gx-steps li{position:relative;padding:24px 0 24px 56px;border-top:1px solid var(--gs-line-dark)}
.gx-steps .n{position:absolute;left:0;top:24px;font:400 30px/1 var(--gs-serif);color:var(--gs-bronze-hover)}
.gx-steps h3{font-size:clamp(1.375rem,1.2rem + .5vw,1.75rem);margin-bottom:8px;color:var(--gs-ivory)}
.gx-steps p{margin:0;color:var(--gs-muted-on-dark);font-size:15.5px}
@media(min-width:1024px){.gx-steps{grid-template-columns:repeat(4,1fr);gap:var(--gut)}.gx-steps li{padding:76px 24px 0 0}.gx-steps .n{font-size:34px}}
.gx-note{display:flex;gap:12px;align-items:flex-start;margin:32px 0 0;padding:16px 24px;border:1px solid var(--gs-line-dark);color:#e0d8cb;font-size:15px}
.gx-note svg{flex:none;width:20px;height:20px;color:var(--gs-bronze);margin-top:2px}

/* 04 materials */
.gx-mats ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gut)}
.gx-mats a{text-decoration:none;display:block;color:inherit}
.gx-mats .sw{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--gs-stone)}
.gx-mats img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gx-mats a:hover img{transform:scale(1.04)}
.gx-mats .mfr-tag{position:absolute;left:8px;bottom:8px;background:rgba(22,21,20,.66);color:#f6f1e8;font:500 9.5px/1.2 var(--gs-sans);letter-spacing:.12em;text-transform:uppercase;padding:4px 7px}
.gx-mats h3{font-size:1.5rem;margin:12px 0 2px}
.gx-mats span{display:block;font-size:13.5px;color:var(--gs-muted)}
.gx-mats small{display:block;font-size:12px;color:var(--gs-muted);margin-top:2px;opacity:.85}
.gx-mats li:last-child{grid-column:1 / -1}
.gx-mats li:last-child .sw{aspect-ratio:2/1}
@media(min-width:720px){.gx-mats ul{grid-template-columns:repeat(5,1fr)}.gx-mats li:last-child{grid-column:auto}.gx-mats li:last-child .sw{aspect-ratio:4/5}}

/* 05 statement */
.gx-statement{display:grid;gap:48px}
.gx-quote{margin:0;font:400 clamp(2rem,1.3rem + 3.2vw,4.5rem)/1.04 var(--gs-serif);letter-spacing:-.015em;color:var(--gs-charcoal);max-width:16ch}
.gx-quote em{color:var(--gs-bronze-ink)}
.gx-trio{display:grid;gap:24px;list-style:none;margin:0;padding:0}
.gx-trio li{border-top:1px solid #b9a88c;padding-top:16px}
.gx-trio b{display:block;font:500 12px/1.4 var(--gs-sans);letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px;color:var(--gs-bronze-ink)}
.gx-trio p{margin:0;font-size:15.5px;color:#463f38}
@media(min-width:1024px){.gx-statement{grid-template-columns:7fr 5fr;align-items:end;gap:96px}}

/* 06 area */
.gx-area{display:grid;grid-template-columns:minmax(0,1fr);gap:48px;align-items:center}
@media(max-width:1023px){.gx-est,.gx-statement,.gx-head{grid-template-columns:minmax(0,1fr)}}
.gx-rings{width:100%;max-width:440px;aspect-ratio:1;margin:0 auto;color:var(--gs-bronze-ink);display:block;height:auto}
.gx-towns{columns:2;column-gap:24px;list-style:none;padding:0;margin:24px 0 32px;font-size:15.5px}
.gx-towns li{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--gs-line)}
.gx-towns a{color:inherit;text-decoration:none}
.gx-towns a:hover{color:var(--gs-bronze-ink);text-decoration:underline}
.gx-zip{display:flex;gap:8px;max-width:460px}
.gx-zip input{flex:1;min-width:0;min-height:52px;padding:12px 14px;border:1px solid #a89b88;border-radius:2px;background:#fff;color:var(--gs-charcoal);font:400 16px/1.4 var(--gs-sans)}
.gx-zip .gx-btn{padding:0 18px}
@media(min-width:1024px){.gx-area{grid-template-columns:5fr 7fr;gap:96px}.gx-towns{columns:3}}

/* 07 faq */
.gx-faq-h{margin-bottom:32px!important}
.gx-faq{max-width:860px}
.gx-faq details{border-top:1px solid #cdbfa8}
.gx-faq details:last-of-type{border-bottom:1px solid #cdbfa8}
.gx-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:24px 0;font:500 clamp(1.25rem,1.1rem + .5vw,1.5rem)/1.25 var(--gs-serif)}
.gx-faq summary::-webkit-details-marker{display:none}
.gx-faq summary::after{content:"+";font:300 26px/1 var(--gs-sans);color:var(--gs-bronze-ink);transition:transform .25s var(--ease)}
.gx-faq details[open] summary::after{transform:rotate(45deg)}
.gx-faq details p{margin:0 0 24px;color:var(--gs-muted);max-width:62ch}

/* 08 estimate */
.gx-est{display:grid;gap:48px}
@media(min-width:1024px){.gx-est{grid-template-columns:5fr 7fr;gap:96px;align-items:start}}
.gx-est h2{margin-bottom:16px;color:var(--gs-ivory)}
.gx-ticks{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:10px;color:#e0d8cb;font-size:15.5px}
.gx-ticks li{display:flex;gap:12px;align-items:flex-start}
.gx-ticks li::before{content:"";flex:none;width:7px;height:7px;margin-top:9px;border:1px solid var(--gs-bronze);transform:rotate(45deg)}
.gx-alt{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:12px}
.gx-alt a{display:flex;align-items:center;gap:12px;width:100%;padding:16px 24px;border:1px solid var(--gs-line-dark);color:var(--gs-ivory);text-decoration:none;font:400 16px/1.3 var(--gs-sans);border-radius:2px}
.gx-alt a:hover{border-color:var(--gs-bronze)}
.gx-alt svg{width:20px;height:20px;color:var(--gs-bronze);flex:none}
.gx-alt small{display:block;color:var(--gs-muted-on-dark);font-size:13px;margin-top:2px}
.gx-formcard{background:var(--gs-paper);color:var(--gs-charcoal);padding:clamp(24px,4vw,48px);border-top:2px solid var(--gs-bronze)}
.gx-formcard .gx-form-h{font-size:clamp(1.6rem,1.3rem + .8vw,2.1rem);margin:0 0 20px;color:var(--gs-charcoal)}
.gx-formcard .gx-btn--primary{margin-top:20px;min-height:56px}
.gx-formcard .success h3{color:var(--gs-charcoal)}
.gx-formcard label,.gx-formcard legend{color:var(--gs-charcoal)}
.gx-formcard input,.gx-formcard select,.gx-formcard textarea{background:#fff;border-color:#b7aa96}

/* motion: subtle, off for reduced motion */
@keyframes gx-settle{from{transform:scale(1.045)}to{transform:scale(1)}}
.gx-hero-media img{animation:gx-settle 1.6s var(--ease) both}
@media (prefers-reduced-motion:reduce){.gx-hero-media img{animation:none}.gx-work img,.gx-mats img{transition:none}}
.gx-work .pos-r img{object-position:85% 50%}
