/* ===== Page-specific styles ported from static prototype ===== */

/* ---- index ---- */
  /* ---- page-specific (home) ---- */
  .hero{position:relative;min-height:clamp(540px,82vh,800px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
  .hero-bg,.hero-fallback{position:absolute;inset:0;width:100%;height:100%;}
  .hero-fallback{z-index:0;}
  .hero-bg{z-index:1;}
  .hero-scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(0deg,rgba(20,17,14,.86) 0%,rgba(20,17,14,.4) 42%,rgba(20,17,14,.28) 100%);}
  .hero-inner{position:relative;z-index:3;color:#f4ecdc;padding-bottom:clamp(40px,6vw,76px);padding-top:90px;}
  .hero .display{color:#fff;max-width:none;margin-top:18px;line-height:1.04;font-size:clamp(40px,5.2vw,68px);display:flex;flex-direction:column;}
  .hero .display span{display:block;}
  .hero-tagline{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,32px);color:var(--brass);margin-top:16px;line-height:1.1;}
  .hero-tagline em{color:var(--brass);}
  .hero-sub{max-width:50ch;margin-top:22px;color:rgba(244,236,220,.9);}
  .hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px;}
  .hero-quicklinks{position:relative;z-index:3;border-top:1px solid rgba(244,236,220,.16);background:rgba(20,17,14,.42);backdrop-filter:blur(6px);}
  .ql-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:15px 0;}
  .ql-label{font-family:var(--sans);font-weight:700;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#bba884;}
  .hero-quicklinks a{font-size:14px;color:#e4dccd;font-weight:500;transition:.18s;}
  .hero-quicklinks a:hover{color:#fff;}

  .stone-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease);}
  .stone-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(27,25,22,.1);}
  .stone-card .sw{aspect-ratio:3/2;position:relative;}
  .stone-card .sbody{padding:18px 20px 22px;}
  .stone-card .sloc{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);font-weight:700;margin-top:5px;}
  .stone-card .sdesc{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.5;}

  .why{padding-right:18px;}
  .why-n{font-family:var(--serif);font-size:42px;color:var(--brass);line-height:1;margin-bottom:14px;}
  .why h3{margin-bottom:12px;}

  .proj-grid{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,1fr);gap:16px;margin-top:8px;}
  .proj-grid .proj-lg{grid-row:span 2;}
  @media(max-width:760px){.proj-grid{grid-template-columns:1fr;}.proj-grid .proj-lg{grid-row:auto;}}
  .proj{position:relative;border-radius:var(--radius);overflow:hidden;min-height:200px;display:block;}
  .proj-lg{min-height:416px;}
  .proj image-slot,.proj-fallback{position:absolute;inset:0;width:100%;height:100%;}
  .proj-fallback{z-index:0;}
  .proj image-slot{z-index:1;}
  .proj::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(0deg,rgba(20,17,14,.8),rgba(20,17,14,0) 55%);transition:.3s;}
  .proj:hover::after{background:linear-gradient(0deg,rgba(20,17,14,.88),rgba(20,17,14,.1) 60%);}
  .proj-meta{position:absolute;left:0;bottom:0;z-index:3;padding:22px 24px;}
  .proj-loc{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#e7c694;font-weight:700;}
  .proj-name{display:block;font-family:var(--serif);font-size:22px;color:#fff;margin-top:6px;}

  .lead{position:relative;overflow:hidden;color:#fff;}
  .lead-bg{position:absolute;inset:0;}
  .lead-scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(20,17,14,.9) 0%,rgba(20,17,14,.74) 50%,rgba(20,17,14,.5) 100%);}
  .lead-inner{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,72px);align-items:center;}
  @media(max-width:860px){.lead-inner{grid-template-columns:1fr;}}
  .lead-trust{display:flex;gap:10px;flex-wrap:wrap;}

  .quote{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;}
  .quote .stars{color:var(--brass);letter-spacing:3px;font-size:14px;}
  .quote blockquote{font-family:var(--serif);font-size:19px;line-height:1.45;color:var(--ink);margin:16px 0 20px;}
  .quote figcaption b{display:block;font-family:var(--sans);font-weight:700;font-size:14px;}
  .quote figcaption span{font-size:12.5px;color:var(--muted);}

/* ---- about ---- */
  .about-hero .h1{line-height:1.05;}
  .story-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,4vw,64px);align-items:start;}
  @media(max-width:820px){.story-wrap{grid-template-columns:1fr;gap:20px;}}
  .story-body p{margin-bottom:18px;}
  .story-body p:last-child{margin-bottom:0;}

  .quarry-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;}
  @media(max-width:860px){.quarry-grid{grid-template-columns:1fr;}}
  .quarry-imgs{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .qimg{border-radius:var(--radius);overflow:hidden;aspect-ratio:1;}
  .qimg.big{grid-column:span 2;aspect-ratio:16/9;}

  .timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:0;}
  @media(max-width:820px){.timeline{grid-template-columns:1fr 1fr;}}
  @media(max-width:520px){.timeline{grid-template-columns:1fr;}}
  .tl-item{padding:26px 26px 28px;border-top:2px solid var(--brass);border-right:1px solid var(--line-soft);}
  .tl-year{font-family:var(--serif);font-size:30px;color:var(--brass);line-height:1;margin-bottom:14px;}
  .tl-item h3{font-size:19px;margin-bottom:8px;}
  .tl-item p{font-size:13.5px;color:var(--muted);line-height:1.6;}

  .cred{text-align:center;padding:10px;}
  .cred-ic{width:54px;height:54px;margin:0 auto 14px;color:var(--brass);border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;}
  .cred-ic svg{width:26px;height:26px;}
  .cred b{font-family:var(--serif);font-size:18px;color:var(--ink);display:block;}
  .cred span{font-size:12.5px;color:var(--muted);display:block;margin-top:5px;}

/* ---- products ---- */
  .ph-badge{position:absolute;right:12px;top:12px;z-index:4;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);background:rgba(250,248,244,.92);backdrop-filter:blur(3px);padding:6px 10px;border-radius:3px;}
  .finish{}
  .finish-sw{aspect-ratio:3/2;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);margin-bottom:14px;}
  .finish b{font-family:var(--serif);font-size:19px;color:var(--ink);display:block;}
  .finish span{font-size:13px;color:var(--muted);display:block;margin-top:5px;line-height:1.5;}
  .cta-strip{background:var(--ink);}
  @media(max-width:600px){.cta-strip .btn{flex:1;}}

/* ---- stone ---- */
  .stone-tabs-wrap{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:var(--header-h);z-index:90;}
  .stone-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;padding:12px 0;scrollbar-width:none;}
  .stone-tabs::-webkit-scrollbar{display:none;}
  .stone-tabs-label{flex:none;margin-right:10px;color:var(--muted);}
  .stone-tab{flex:none;font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--graphite);padding:8px 15px;border-radius:999px;border:1px solid var(--line);transition:.18s;white-space:nowrap;}
  .stone-tab:hover{border-color:var(--ink);}
  .stone-tab.active{background:var(--ink);color:var(--paper);border-color:var(--ink);}

  .stone-hero{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;}
  @media(max-width:860px){.stone-hero{grid-template-columns:1fr;}}
  .stone-hero-copy{padding:clamp(40px,5vw,76px) var(--gut) clamp(40px,5vw,76px) max(var(--gut),calc((100vw - var(--maxw))/2 + var(--gut)));display:flex;flex-direction:column;justify-content:center;}
  .stone-hero-img{position:relative;min-height:380px;overflow:hidden;}
  .stone-hero-tag{position:absolute;left:18px;bottom:18px;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.34);backdrop-filter:blur(3px);padding:7px 12px;border-radius:3px;}

  .props{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
  @media(max-width:760px){.props{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:460px){.props{grid-template-columns:1fr;}}
  .prop{padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
  .prop .prop-l{display:block;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
  .prop .prop-v{font-family:var(--serif);font-size:19px;color:var(--ink);line-height:1.2;}

  .swatch-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
  @media(max-width:640px){.swatch-strip{grid-template-columns:repeat(3,1fr);}}
  .sw-item b{display:block;font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--graphite);margin-top:9px;}
  .sw-ph{aspect-ratio:1;border-radius:4px;overflow:hidden;border:1px solid var(--line);}

  .used-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,4vw,60px);align-items:center;}
  @media(max-width:820px){.used-grid{grid-template-columns:1fr;}}
  .used-list{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:0;}
  .used-list li{padding:13px 0 13px 26px;border-bottom:1px solid var(--line-soft);font-size:15.5px;color:var(--graphite);position:relative;}
  .used-list li::before{content:"";position:absolute;left:0;top:19px;width:9px;height:9px;border:1.5px solid var(--brass);border-radius:50%;}
  .used-imgs{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .used-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:1;}
  .used-img.big{grid-column:span 2;aspect-ratio:16/9;}

  .stone-cta{position:relative;overflow:hidden;}
  .stone-cta-bg{position:absolute;inset:0;}
  .stone-cta-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,17,14,.82),rgba(20,17,14,.6));}
  .stone-cta-inner{position:relative;z-index:2;}

/* ---- category ---- */
  .intro-row{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(24px,4vw,64px);align-items:center;}
  @media(max-width:780px){.intro-row{grid-template-columns:1fr;gap:18px;}}
  .listing{display:grid;grid-template-columns:248px 1fr;gap:clamp(24px,3vw,44px);align-items:start;}
  @media(max-width:880px){.listing{grid-template-columns:1fr;}}
  .filters{position:sticky;top:calc(var(--header-h) + 20px);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);padding:20px;}
  @media(max-width:880px){.filters{position:static;}}
  .filters-head{margin-bottom:8px;}
  .filters-reset{background:transparent;border:0;color:var(--brass);font-family:var(--sans);font-weight:600;font-size:12px;cursor:pointer;}
  .fgroup{padding:18px 0;border-bottom:1px solid var(--line-soft);}
  .fgroup:last-child{border-bottom:0;}
  .fgroup h4{font-family:var(--sans);font-weight:700;font-size:12px;letter-spacing:.04em;color:var(--ink);margin-bottom:12px;}
  .chip-col{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
  .chip-col .chip{width:100%;text-align:left;}
  .muted-note{font-size:12.5px;color:var(--muted);line-height:1.5;}
  .sample-cta{background:var(--paper-2);margin:14px -20px -20px;padding:18px 20px;border-radius:0 0 var(--radius) var(--radius);}
  .sample-cta p{font-size:13px;color:var(--muted);margin:4px 0 12px;line-height:1.5;}
  .listing-bar{padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line);}
  .prod-grid{gap:18px;}
  @media(max-width:1100px){.prod-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.prod-grid{grid-template-columns:1fr;}}
  .prod .ph{aspect-ratio:4/3;}
  .prod .pbody{padding:16px 18px 18px;}
  .prod .spec{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--line-soft);}
  .prod .spec span{color:var(--muted);}
  .prod .spec b{color:var(--ink);font-weight:600;text-align:right;}
  .quote-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center;}
  @media(max-width:820px){.quote-block{grid-template-columns:1fr;}}

/* ---- gallery ---- */
  .gallery-head .filterbar{margin-top:24px;}
  .masonry{column-count:3;column-gap:14px;}
  @media(max-width:900px){.masonry{column-count:2;}}
  @media(max-width:560px){.masonry{column-count:1;}}
  .gtile{margin:0 0 14px;break-inside:avoid;position:relative;border-radius:var(--radius);overflow:hidden;cursor:pointer;border:1px solid var(--line);}
  .gtile img{width:100%;display:block;transition:transform .5s var(--ease);}
  .gtile:nth-child(3n+1) img{aspect-ratio:3/4;object-fit:cover;}
  .gtile:nth-child(3n+2) img{aspect-ratio:1;object-fit:cover;}
  .gtile:nth-child(3n) img{aspect-ratio:4/5;object-fit:cover;}
  .gtile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,17,14,.72),rgba(20,17,14,0) 50%);opacity:.85;transition:.3s;}
  .gtile:hover::after{opacity:1;}
  .gtile:hover img{transform:scale(1.05);}
  .gtile figcaption{position:absolute;left:0;bottom:0;z-index:2;padding:16px 18px;color:#fff;font-family:var(--serif);font-size:18px;}
  .gtile figcaption span{display:block;font-family:var(--sans);font-weight:700;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#e7c694;margin-bottom:4px;}

  .insta-strip{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(24px,4vw,56px);align-items:center;margin-top:40px;padding-top:40px;border-top:1px solid var(--line);}
  @media(max-width:820px){.insta-strip{grid-template-columns:1fr;}}
  .insta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
  @media(max-width:560px){.insta-grid{grid-template-columns:repeat(2,1fr);}}
  .insta-cell{aspect-ratio:1;border-radius:4px;overflow:hidden;}

  /* lightbox */
  .lightbox{position:fixed;inset:0;z-index:400;background:rgba(15,13,11,.92);backdrop-filter:blur(6px);display:grid;place-items:center;padding:30px;opacity:0;visibility:hidden;transition:.28s;}
  .lightbox.open{opacity:1;visibility:visible;}
  .lb-figure{max-width:1000px;width:100%;margin:0;}
  .lb-fill{width:100%;max-height:80vh;aspect-ratio:16/10;border-radius:6px;background-size:cover;background-position:center;position:relative;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);}
  .lb-fill img{width:100%;height:100%;object-fit:cover;}
  .lb-cap{color:#e9e1d2;font-family:var(--serif);font-style:italic;font-size:17px;text-align:center;margin-top:18px;}
  .lb-x{position:absolute;top:22px;right:24px;width:46px;height:46px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:transparent;color:#fff;font-size:18px;cursor:pointer;transition:.2s;}
  .lb-x:hover{background:rgba(255,255,255,.12);}

/* ---- export ---- */
  .region-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
  @media(max-width:820px){.region-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:520px){.region-grid{grid-template-columns:1fr;}}
  .region{background:var(--card);padding:24px 26px;}
  .region h4{font-family:var(--serif);font-size:20px;color:var(--ink);}
  .region p{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.55;}

  .process{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);}
  @media(max-width:820px){.process{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:520px){.process{grid-template-columns:1fr;}}
  .pstep{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;position:relative;}
  .pstep-n{font-family:var(--serif);font-size:34px;color:var(--brass);line-height:1;margin-bottom:14px;}
  .pstep h3{font-size:21px;margin-bottom:8px;}
  .pstep p{font-size:13.5px;color:var(--muted);line-height:1.6;}

  .pack-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(28px,4vw,60px);align-items:center;}
  @media(max-width:820px){.pack-grid{grid-template-columns:1fr;}}
  .pack-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;}
  .check-list{list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:0;}
  .check-list li{padding:14px 0 14px 32px;border-bottom:1px solid var(--line-soft);font-size:14.5px;color:var(--graphite);position:relative;line-height:1.5;}
  .check-list li b{color:var(--ink);}
  .check-list li::before{content:"✓";position:absolute;left:0;top:13px;width:20px;height:20px;background:var(--brass);color:#fff;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;}

  .faq-wrap .section-head{margin-left:auto;margin-right:auto;text-align:center;}
  .faq-wrap .section-head .kicker{justify-content:center;}
  .faq{max-width:760px;margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item summary{list-style:none;cursor:pointer;padding:22px 0;font-family:var(--serif);font-size:20px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:20px;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-ic{flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:18px;color:var(--brass);transition:.25s;font-family:var(--sans);}
  .faq-item[open] .faq-ic{transform:rotate(45deg);background:var(--brass);color:#fff;border-color:var(--brass);}
  .faq-a{padding:0 0 24px;font-size:15px;color:var(--muted);line-height:1.7;max-width:64ch;}

/* ---- contact ---- */
  .contact-top{padding-top:24px;}
  .contact-head{display:grid;grid-template-columns:1.4fr .9fr;gap:30px;align-items:end;margin-top:8px;}
  @media(max-width:820px){.contact-head{grid-template-columns:1fr;}}
  .resp-badge{display:flex;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;}
  .resp-ic{flex:none;width:52px;height:52px;border-radius:50%;background:var(--brass);color:#fff;display:grid;place-items:center;font-family:var(--serif);font-size:18px;}
  .resp-badge b{display:block;font-family:var(--sans);font-weight:700;font-size:14px;color:var(--ink);}
  .resp-badge span{font-size:12.5px;color:var(--muted);}

  .contact-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:clamp(24px,3vw,40px);align-items:start;}
  @media(max-width:880px){.contact-grid{grid-template-columns:1fr;}}

  .upload{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1.5px dashed var(--line-strong);border-radius:var(--radius);padding:26px;cursor:pointer;text-align:center;transition:.2s;}
  .upload:hover{border-color:var(--brass);background:rgba(184,137,63,.04);}
  .upload input{display:none;}
  .upload-ic{width:34px;height:34px;border-radius:50%;background:var(--paper-2);color:var(--brass);display:grid;place-items:center;font-size:16px;font-weight:700;}
  .upload-tx{font-size:14px;color:var(--graphite);}
  .upload-tx b{color:var(--brass);}
  .upload-sub{font-size:11.5px;color:var(--muted);}

  .contact-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
  .contact-line{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--line-soft);}
  .contact-line:first-of-type{padding-top:20px;}
  .cl-ic{flex:none;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--brass);}
  .cl-ic svg{width:18px;height:18px;}
  .contact-line b{display:block;font-family:var(--sans);font-weight:700;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
  .contact-line a,.contact-line span{font-family:var(--serif);font-size:18px;color:var(--ink);line-height:1.35;}
  .contact-line a:hover{color:var(--brass);}
  .contact-line span{font-family:var(--sans);font-size:14px;color:var(--graphite);}

  .map-card{margin-top:20px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
  .map-ph{position:relative;aspect-ratio:4/3;}
  .map-ph::after{content:"";position:absolute;inset:0;background:rgba(27,25,22,.28);}
  .map-pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);z-index:2;width:40px;height:40px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));}
  .map-label{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:12px 14px;font-size:12px;color:#fff;background:linear-gradient(0deg,rgba(20,17,14,.78),transparent);text-align:center;}
