.page-shell { padding: 45px var(--gutter) 100px; }
.page-heading { padding: 40px 0 65px; max-width: 1000px; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px; color: var(--muted); font-size: 14px; }
.breadcrumb a { text-decoration: underline; text-underline-offset: 4px; }
.page-heading h1 { margin: 0 0 25px; font: 700 clamp(42px,6vw,88px)/1.08 var(--body); letter-spacing: -.06em; }
.page-heading h1 em { color: var(--wine); font-style: normal; }
.page-heading > p:last-child { max-width: 700px; margin: 0; font-size: 18px; line-height: 1.9; color: var(--muted); }
.wide-photo { margin: 0 0 75px; position: relative; overflow: hidden; }
.wide-photo img { width: 100%; height: auto; aspect-ratio: 2; object-fit: cover; }
.wide-photo figcaption { padding: 16px 0; font-size: 15px; color: var(--muted); }
.editorial-split { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; padding: 35px 0 85px; align-items: start; }
.editorial-split h2 { margin: 0; font-size: clamp(30px,3.4vw,50px); line-height: 1.25; letter-spacing: -.045em; }
.editorial-split p { margin: 0 0 22px; color: var(--muted); font-size: 17px; line-height: 1.9; }
.principles { display: grid; grid-template-columns: repeat(3,1fr); gap: 40px; border-top: 1px solid var(--line); padding: 45px 0; }
.principles h3 { font-size: 23px; margin: 0 0 18px; }
.principles p { color: var(--muted); font-size: 17px; line-height: 1.9; }
.page-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 45px; margin-top: 50px; background: var(--surface-dark); color: var(--paper); }
.page-cta h2 { max-width: 650px; margin: 0; font-size: clamp(25px,3vw,42px); line-height: 1.3; letter-spacing: -.04em; }
.page-cta a:focus-visible { outline-color: #e0bf78; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 38px; }
.filter-bar button { min-height: 48px; padding: 12px 22px; border: 1px solid #b9ae9d; font-size: 16px; font-weight: 500; }
.filter-bar [aria-pressed="true"] { background: var(--wine); color: white; border-color: var(--wine); }
.product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 55px 35px; }
.product-card { min-width: 0; }
.product-card__image { position: relative; overflow: hidden; }
.product-card__image img { width: 100%; height: auto; aspect-ratio: 1.25; object-fit: cover; transition: transform .65s; }
.product-card:hover img { transform: scale(1.045); }
.product-card__badge { position: absolute; left: 15px; bottom: 15px; padding: 9px 14px; background: var(--paper); color: var(--wine); font-size: 14px; font-weight: 700; }
.product-card h2 { margin: 20px 0 10px; font-size: 28px; letter-spacing: -.04em; }
.product-card p { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.product-card .text-link { margin-top: 15px; }
.quarry-story { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 8%; margin: 25px 0 100px; }
.quarry-story:nth-of-type(even) .quarry-story__visual { order: 2; }
.quarry-story__visual { position: relative; margin: 0; }
.quarry-story__visual img { width: 100%; height: auto; aspect-ratio: .95; object-fit: cover; }
.quarry-story__visual figcaption { position: absolute; right: 15px; bottom: 15px; left: 15px; padding: 15px; background: #f4f1ebed; color: var(--ink); font-size: 15px; line-height: 1.6; }
.quarry-story h2 { margin: 15px 0 24px; font-size: clamp(32px,3.5vw,50px); letter-spacing: -.045em; line-height: 1.2; }
.quarry-story p { color: var(--muted); font-size: 17px; line-height: 1.9; }
.quarry-story address { font-style: normal; font-size: 18px; line-height: 1.8; padding: 20px 0; border-top: 1px solid var(--line); }
.gallery-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 25px; align-items: start; }
.gallery-card { margin: 0; }
.gallery-card:nth-child(3n+2) { margin-top: 55px; }
.gallery-card button { position: relative; display: block; width: 100%; padding: 0; overflow: hidden; }
.gallery-card img { width: 100%; height: auto; aspect-ratio: .82; object-fit: cover; transition: transform .6s; }
.gallery-card button:hover img { transform: scale(1.045); }
.gallery-card:nth-child(2n) img { aspect-ratio: 1; }
.gallery-card button > span { position: absolute; right: 14px; bottom: 14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--paper); font-size: 25px; }
.gallery-card figcaption { padding: 17px 0 0; font-size: 16px; font-weight: 500; line-height: 1.7; }
.gallery-grid.is-filtered .gallery-card { margin-top: 0; }
.gallery-empty { padding: 55px; background: #e5ded2; }
.gallery-empty h2 { font-size: 30px; margin: 0 0 20px; }
.gallery-empty p { color: var(--muted); font-size: 17px; line-height: 1.9; max-width: 700px; }
.gallery-viewer { width: min(1150px,calc(100vw - 40px)); max-height: calc(100svh - 30px); padding: 0; border: 0; background: var(--surface-dark); color: white; overflow: auto; }
.gallery-viewer::backdrop { background: #2d1b22e8; backdrop-filter: blur(6px); }
.gallery-viewer > img { width: 100%; height: 68svh; object-fit: contain; }
.gallery-viewer__bar { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 22px 30px; }
.gallery-viewer__bar h2 { margin: 0; font-size: 19px; line-height: 1.6; }
.gallery-viewer__bar p { margin: 7px 0 0; font-size: 14px; color: #ddd5c5; }
.gallery-controls { display: flex; gap: 10px; flex-shrink: 0; }
.gallery-controls button { width: 48px; height: 48px; border: 1px solid #9e987f; border-radius: 50%; color: white; font-size: 25px; }
.gallery-viewer button:focus-visible { outline-color: #e0bf78; }
.detail-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8%; align-items: start; }
.detail-photo { margin: 0; position: sticky; top: 30px; }
.detail-photo img { width: 100%; height: auto; aspect-ratio: .9; object-fit: cover; }
.product-image-empty { background: #e8e2d8; border: 1px solid var(--line); }
.product-card__image.product-image-empty { aspect-ratio: 1.25; }
.detail-photo.product-image-empty { aspect-ratio: .9; }
.detail-copy h1 { font-size: clamp(36px,4.2vw,62px); margin: 0 0 28px; line-height: 1.15; }
.detail-copy > p { color: var(--muted); font-size: 17px; line-height: 1.9; }
.detail-facts { margin: 30px 0; border-top: 1px solid var(--line); }
.detail-facts > div { padding: 18px 0; border-bottom: 1px solid var(--line); }
.detail-facts dt { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.detail-facts dd { margin: 0; color: var(--muted); font-size: 16px; line-height: 1.8; }
.detail-note { padding: 22px; background: #e5ded2; }
.detail-copy .solid-button { margin-top: 24px; background: var(--wine); color: white; }
.product-mobile-cta { display: none; }
@media screen and (max-width:700px) {
 .product-detail-page { padding-bottom: calc(94px + env(safe-area-inset-bottom)); }
 .product-detail-page #detail-contact { display: none; }
 .product-mobile-cta {
  position: fixed;
  z-index: 25;
  inset: auto 0 0;
  display: block;
  padding: 12px max(20px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  pointer-events: none;
 }
 .product-mobile-cta .solid-button { width: 100%; border-radius: 16px; background: var(--wine); color: var(--paper); pointer-events: auto; }
 .product-detail-page .admin-shortcut { bottom: calc(104px + env(safe-area-inset-bottom)); }
 .has-overlay .product-mobile-cta { visibility: hidden; }
}
#product-not-found h1 { margin: 35px 0 25px; font-size: clamp(32px,5vw,60px); line-height: 1.2; }
.gallery-viewer > img { touch-action: pan-y; }
.contact-page .contact { padding-top: 30px; padding-bottom: 65px; background: transparent; }
.contact-page .contact__heading { display: none; }
.inquiry-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; padding: 65px; margin-top: 45px; background: var(--surface-dark); color: var(--paper); }
.inquiry-panel h2 { font-size: clamp(30px,3vw,44px); margin: 0 0 25px; line-height: 1.2; letter-spacing: -.04em; }
.inquiry-panel p { font-size: 16px; line-height: 1.9; }
.inquiry-panel :focus-visible { outline-color: #e0bf78; }
.location-panel { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8%; padding-top: 80px; }
.location-panel h2 { font-size: 35px; margin: 0 0 20px; letter-spacing: -.04em; }
.location-panel p { font-size: 17px; line-height: 1.9; color: var(--muted); }
.map-placeholder { display: grid; align-content: center; justify-items: center; text-align: center; gap: 20px; min-height: 390px; padding: 35px; border: 1px solid #c9bcab; background-color: #e5ded2; background-image: linear-gradient(#c6b9a652 1px,transparent 1px),linear-gradient(90deg,#c6b9a652 1px,transparent 1px); background-size: 45px 45px; }
.map-placeholder > span { display: grid; place-items: center; width: 65px; height: 65px; border-radius: 50%; background: var(--wine); color: white; font-size: 28px; }
.map-placeholder p { margin: 0; max-width: 360px; }
.map-placeholder iframe { width: 100%; min-height: 390px; border: 0; }
@media(max-width:900px){
 .product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .gallery-card:nth-child(n) { margin-top: 0; }
 .principles { gap: 25px; }
 .quarry-story { gap: 6%; }
 .inquiry-panel { padding: 35px; gap: 6%; }
}
@media(max-width:700px){
 .page-shell { padding-top: 20px; padding-bottom: 65px; }
 .page-heading { padding: 25px 0 45px; }
 .page-heading h1 { font-size: clamp(36px,10vw,58px); }
 .wide-photo img { aspect-ratio: 1.2; }
 .editorial-split,.detail-grid,.quarry-story,.inquiry-panel,.location-panel { grid-template-columns: 1fr; gap: 30px; }
 .editorial-split { padding-bottom: 35px; }
 .principles { grid-template-columns: 1fr; }
 .page-cta { flex-direction: column; align-items: flex-start; padding: 30px; }
 .product-grid { gap: 40px 22px; }
 .product-card h2 { font-size: 23px; }
 .quarry-story { margin-bottom: 65px; }
 .quarry-story:nth-of-type(even) .quarry-story__visual { order: 0; }
 .quarry-story__visual img { aspect-ratio: 1.1; }
 .detail-photo { position: static; }
 .detail-photo img { aspect-ratio: 1.2; }
 .gallery-viewer > img { height: 55svh; }
 .gallery-viewer__bar { padding: 20px; gap: 16px; flex-wrap: wrap; }
 .inquiry-panel { padding: 28px; }
 .location-panel { padding-top: 55px; }
}
@media(max-width:480px){
 .product-grid { grid-template-columns: 1fr; }
 .gallery-grid { gap: 25px 15px; }
 .gallery-card figcaption { font-size: 14px; }
 .gallery-card img,.gallery-card:nth-child(2n) img { aspect-ratio: .8; }
 .filter-bar { gap: 8px; }
 .filter-bar button { padding: 10px 15px; font-size: 15px; }
 .gallery-empty { padding: 28px; }
}
