/* Quarry panoramas and named slate specimens, with rounded service groups. */
:root {
 --color-paper:#f3f4ed; --color-paper-2:#e4e9dd; --color-sheet:#fffef9;
 --color-ink:#20352d; --color-ink-2:#30473a; --color-muted:#52624f;
 --color-accent:#46551c; --color-signal:#d4df80; --color-accent-ink:#fffef9;
 --font-display:'Source Serif',Georgia,serif; --font-body:'Hanken',system-ui,sans-serif;
 --edge:clamp(20px,4vw,64px); --mixed-round:28px; --r-field:12px;
 --pad-y:88px; --r-img:24px; --r-card:24px;
}
body { font-size:17px; }
.hdr,.hdr.hdr--over:not(.is-scrolled) { border:0; background:var(--color-paper); }
.hdr .mark,.foot .mark { font-family:var(--font-display); letter-spacing:-.045em; font-weight:400; }
.hdr__in .nav a { font-size:14px; }
.pill { font-size:15px; }
.hero-board .hero-layout { padding-top:52px; gap:36px; }
.hero-intro--slate { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:56px; }
.hero-board .hero-intro--slate h1 { font-family:var(--font-display); font-size:clamp(3.8rem,6.4vw,6rem); line-height:1.02; font-weight:400; letter-spacing:-.055em; max-width:none; }
.hero-board .hero-intro--slate .lead { font-size:19px; line-height:1.55; max-width:42ch; }
.hero-board .hero-intro .pills { gap:8px 16px; margin-top:24px; }
.hero-board .pills a:first-child { padding-inline:24px; }
.quarry-spread { position:relative; display:block; border:0; height:420px; }
.quarry-spread .hero-plate { height:100%; border-radius:var(--mixed-round); }
.quarry-spread .hero-plate img { filter:none; object-position:50% 57%; }
.specimen-list { position:absolute; right:24px; bottom:24px; width:300px; padding:24px; gap:8px; border-radius:24px; background:var(--color-sheet); }
.specimen-list h2 { font-family:var(--font-display); font-size:30px; font-weight:400; }
.specimen-list dl div { border:0; padding-block:4px; }
.specimen-list a { font-size:16px; }
.hero-services ul { padding-block:24px; gap:10px 24px; font-size:15px; }
.hero-services li { padding:8px 16px; border-radius:999px; background:var(--color-paper-2); }
.h1,.h2,.h2-poster,.h3,.sizes__text h2,.sheet__head h3,.nf h1 { font-weight:400; letter-spacing:-.04em; }
.h1 { font-size:clamp(3rem,5.8vw,5.5rem); line-height:1.04; }
.h2 { font-size:clamp(2.4rem,4.6vw,4.5rem); line-height:1.06; }
.sec-head { max-width:none; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:40px; align-items:end; }
.sec-head:has(> :only-child) { display:block; }
.sec-head .lead { max-width:42ch; }
.sec--cream { background:var(--color-paper-2); }
section:has(.sizes) { border:0; margin-top:40px; }
.sizes { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:64px; }
.sizes__text p { font-size:18px; color:var(--color-ink-2); }
.sizes .slabs { border:0; padding:40px 24px; border-radius:var(--mixed-round); background:var(--color-sheet); gap:12px; }
.slab b { font-size:15px; }
.slab i { border-radius:4px; box-shadow:none; }
.cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
main .card,main .card:first-child { display:grid; grid-template-columns:170px minmax(0,1fr); gap:0; background:var(--color-paper-2); border:0; border-radius:var(--mixed-round); padding:0; overflow:hidden; }
.card .card__img { height:100%; aspect-ratio:1; min-height:190px; }
.card .card__body { display:block; padding:24px; }
.card .h3 { font-size:30px; font-family:var(--font-display); font-weight:400; }
.card .card__body p { margin-top:12px; font-size:16px; color:var(--color-ink-2); }
.tiles .tiles__set { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.tiles .tile { aspect-ratio:1.6; border-radius:20px; }
.tiles .tile:nth-child(n+4) { display:none; }
.page-head,.phead { background:var(--color-paper); border:0; padding-block:64px 48px; }
.phead .phead__in { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:48px; }
.tabs { border:0; gap:24px; grid-template-columns:minmax(220px,.72fr) minmax(0,1.6fr); }
.tabs__list { border:0; padding:12px; gap:8px; border-radius:24px; background:var(--color-paper-2); align-self:start; }
.tab { border:0; border-radius:999px; min-height:54px; padding:14px 20px; }
.tab:hover,.tab[aria-selected=true] { background:var(--color-ink); color:var(--color-sheet); }
.tab:hover span,.tab[aria-selected=true] span { color:var(--color-sheet); }
.panel { padding:40px; background:var(--color-sheet); border-radius:var(--mixed-round); }
.panel__title { font-size:clamp(2.25rem,3.8vw,3.8rem); }
.panel__text { font-size:18px; }
.panel .ph { max-width:none; }
.panel__price { font-size:17px; }
.plist { max-width:var(--w-grid); }
.plist__group { background:var(--color-sheet); padding:32px; border-radius:var(--mixed-round); }
.plist__group + .plist__group { margin-top:24px; }
.plist__group>.eyebrow,.plist__group>.h3 { font-size:24px; color:var(--color-ink); } /* taste-skill-ignore: existing price-group headings are promoted to 24px, not added as eyebrows. */
.plist td { font-size:18px; }
.facts { gap:64px; }
.dl > div { border:0; padding:16px 0; }
.dl dt { font-family:var(--font-ui); font-size:16px; }
.dl dd { font-size:18px; }
.methods { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.methods li { border:0; background:var(--color-sheet); border-radius:24px; padding:28px; }
.methods .h3 { font-size:28px; margin-bottom:12px; }
.faq { gap:48px; }
.faq details { border:0; background:var(--color-sheet); border-radius:20px; padding-inline:24px; margin-bottom:12px; }
.faq summary { font-size:18px; min-height:64px; }
.faq details p { color:var(--color-ink-2); }
.contact { padding-block:56px 80px; }
.contact .h1 { font-size:clamp(2.75rem,5.2vw,5rem); }
.form,.sheet { border:0; border-radius:var(--mixed-round); background:var(--color-sheet); padding:36px; }
.form .h3 { font-family:var(--font-ui); font-size:24px; font-weight:600; }
.field label { font-size:16px; }
.field input,.field select,.field textarea { border-radius:12px; min-height:48px; }
.sheet__head { border:0; }
.sheet__head h3 { font-size:32px; }
.sheet__sizes { gap:10px; }
.sheet__sizes legend,.sheet__area label { font-size:16px; }
.slip { border-radius:16px; }
.sheet__area output { font-size:17px; }
.courses { border-radius:16px; }
.sheet__lines td { font-size:17px; }
.sizes-table { background:transparent; }
.policy { gap:48px; }
.toc { border:0; border-radius:24px; padding:24px; background:var(--color-paper-2); }
.toc h2 { font-size:18px; }
.toc a { font-size:15px; }
.prose { font-family:var(--font-body); }
.prose h2 { font-size:clamp(2rem,3vw,3rem); }
.close { padding:72px var(--edge); }
.close .close__in { gap:32px 48px; }
.close .h2-poster { font-size:clamp(2.6rem,4.5vw,4.5rem); max-width:17ch; }
.close .close__tel { font-weight:400; font-size:clamp(1.8rem,3vw,3rem); }
.foot { border:0; }
.foot .foot__brand .mark { font-size:clamp(3rem,6vw,6rem); }
.foot__brand p,.foot__nav a,.foot__biz h2,.foot__bottom { font-size:15px; }
.nf { background:var(--color-paper-2); color:var(--color-ink); }
.nf__course i { background:var(--color-ink); }
.nf h1 { font-size:clamp(2.5rem,5vw,4.5rem); }
a,button,summary { touch-action:manipulation; }
@media(prefers-reduced-motion:no-preference) {
 .hero-plate img { animation:mixed-quarry 3.8s var(--ease-out) both; }
 .specimen-list { animation:rise .6s var(--ease-out) both; }
 main .card { transition:background-color .2s ease,transform .2s ease; }
 main .card:hover { transform:translateY(-3px); background:var(--color-paper-2); }
 @keyframes mixed-quarry { from { transform:scale(1.055); } to { transform:scale(1); } }
}
@media(max-width:1050px) {
 .hero-intro--slate { gap:32px; }
 .hero-board .hero-intro--slate h1 { font-size:clamp(3.6rem,6.8vw,5rem); }
 .cards { gap:16px; }
 main .card { grid-template-columns:125px minmax(0,1fr); }
 .card .card__body { padding:20px; }
 .card .h3 { font-size:26px; }
 .sizes { gap:32px; }
 .sizes .slabs { padding-inline:16px; }
 .slab b { font-size:13px; }
}
@media(max-width:899px) {
 .hero-intro--slate { grid-template-columns:1fr; gap:24px; }
 .hero-board .hero-intro--slate h1 { max-width:16ch; }
 .tabs { grid-template-columns:1fr; }
 .tabs__list { flex-direction:row; flex-wrap:wrap; gap:8px; }
 .tabs__list .tab { flex:1 1 42%; border:0; min-height:52px; font-size:15px; }
 .contact { padding-inline:var(--edge); }
}
@media(max-width:760px) {
 :root { --pad-y:56px; }
 .hero-board .hero-layout { padding-top:32px; gap:28px; }
 .hero-intro--slate { grid-template-columns:1fr; gap:24px; }
 .hero-board .hero-intro--slate h1 { font-size:clamp(3rem,10.7vw,4.75rem); max-width:16ch; }
 .hero-board .hero-intro--slate .lead { font-size:18px; max-width:42ch; }
 .quarry-spread { height:auto; display:grid; gap:16px; }
 .quarry-spread .hero-plate { height:270px; border-radius:20px; }
 .specimen-list { position:static; width:auto; padding:24px; gap:4px; }
 .specimen-list dl { display:grid; gap:4px; }
 .specimen-list dl div { justify-content:space-between; }
 .hero-services ul { gap:8px; font-size:14px; padding-block:20px; }
 .hero-services li { padding:7px 12px; }
 section:has(.sizes) { margin-top:20px; }
 .sec-head,.sizes,.phead .phead__in,.facts,.methods { grid-template-columns:1fr; gap:24px; }
 .h2 { font-size:clamp(2.35rem,8.3vw,3.2rem); }
 .sizes .slabs { padding:32px 20px; }
 .slab b { font-size:15px; }
 .cards { grid-template-columns:1fr; gap:16px; }
 main .card { grid-template-columns:115px minmax(0,1fr); }
 .card .card__img { min-height:160px; }
 .card .card__body { padding:20px; }
 .card .h3 { font-size:26px; }
 .tiles .tiles__set { gap:12px; }
 .tiles .tile { aspect-ratio:.75; border-radius:16px; }
 .phead { padding-block:36px; }
 .h1 { font-size:clamp(2.8rem,10vw,4rem); }
 .panel,.form,.sheet { padding:24px; border-radius:22px; }
 .panel__title { font-size:2.5rem; }
 .plist__group { padding:24px; }
 .plist th { font-size:16px; padding-right:16px; }
 .plist td { font-size:16px; }
 .methods li { padding:24px; }
 .faq details { padding-inline:20px; }
 .contact { padding-block:36px 48px; }
 .sheet__sizes legend { margin-bottom:16px; }
 .sheet__head { flex-wrap:wrap; gap:12px; }
 .close { padding-block:56px; }
 .close .close__in { grid-template-columns:1fr; gap:24px; }
 .close .h2-poster { font-size:2.8rem; }
 .foot__top { display:block; }
 .foot__nav { margin-top:24px; }
}
/* Keep reading available if the external script fails after the inline JS flag. */
.js [data-reveal]:not(.is-in),.js [data-stagger]:not(.is-in)>*,
.js [data-sheet]:not(.is-in) .courses g,.js [data-sheet]:not(.is-in) .sheet__lines tr {
 opacity:1; transform:none;
}
.js [data-words]:not(.is-in) .w>span,.js .slabs:not(.is-in) .slab i { transform:none; }
.js [data-uncover]:not(.is-in) { clip-path:none; }
.js [data-uncover]:not(.is-in) img { scale:1; }
/* Existing one-shot observer starts entrances; resting content stays visible. */
@media(prefers-reduced-motion:no-preference) {
 .js [data-reveal].is-in { animation:mixed-arrive .7s var(--ease-out) both; }
 .js [data-stagger].is-in > * { animation:mixed-arrive .7s var(--ease-out) both; animation-delay:calc(min(var(--i,0),8) * 65ms); }
 .js [data-words].is-in .w > span { animation:mixed-arrive .65s var(--ease-out) both; animation-delay:calc(var(--i,0) * 40ms); }
 .js .slabs.is-in .slab i { animation:mixed-slate .7s var(--ease-out) both; transform-origin:bottom; }
 .js .slabs.is-in .slab:nth-child(2) i { animation-delay:70ms; }
 .js .slabs.is-in .slab:nth-child(3) i { animation-delay:140ms; }
 .js .slabs.is-in .slab:nth-child(4) i { animation-delay:210ms; }
 .js .slabs.is-in .slab:nth-child(5) i { animation-delay:280ms; }
 .js .slabs.is-in .slab:nth-child(6) i { animation-delay:350ms; }
 @keyframes mixed-arrive { from { opacity:.72; transform:translateY(20px); } to { opacity:1; transform:none; } }
 @keyframes mixed-slate { from { transform:scaleY(.78); } to { transform:scaleY(1); } }
}
