/* Olive & Stone: generous type, quiet surfaces and one clear next action. */
html { -webkit-text-size-adjust:100%; scroll-padding-top:20px; scroll-padding-bottom:130px; }
body[data-mobile-ux] { font-size:1rem; line-height:1.55; }
[data-mobile-ux] { --muted:#5d5e55; }
[data-mobile-ux] :where(button,summary,a,input,select,textarea):focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
[data-mobile-ux] :where(button,summary) { touch-action:manipulation; }
[data-mobile-ux] :where(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea) { font-size:1rem; min-height:48px; }
[data-mobile-ux] :where(p,li,dd) { overflow-wrap:break-word; }
[data-mobile-ux] h1 { letter-spacing:-.035em; line-height:1.15; }
[data-mobile-ux] :where(.photo-note,.price-detail,.checkout-note,.fine-copy,.cart-session-note,.product-service-details,.product-caption,.catalogue-filter,.catalogue-navigation,.cart-toggle,.finish-explore,.checkout-product p) { font-size:.875rem; line-height:1.6; }
[data-mobile-ux] :where(.text-link,.reset-button,.save-design-actions button,.ux-help-links a,.checkout-actions a) { display:inline-flex; align-items:center; min-height:44px; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:12px 18px; background:var(--ink); color:var(--paper); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.ux-disclosure { min-width:0; border-top:1px solid var(--fine-line); }
.ux-disclosure>summary { display:flex; align-items:center; justify-content:space-between; min-height:60px; gap:20px; padding:17px 0; cursor:pointer; list-style:none; font-size:1rem; line-height:1.45; }
.ux-disclosure>summary::-webkit-details-marker { display:none; }
.ux-disclosure>summary small { display:block; margin-top:4px; font-size:.875rem; color:var(--muted); }
.ux-disclosure .expand-mark { flex:none; width:14px; height:14px; position:relative; }
.ux-disclosure .expand-mark::before,.ux-disclosure .expand-mark::after { content:''; position:absolute; background:currentColor; }
.ux-disclosure .expand-mark::before { left:0; top:6px; height:1px; width:14px; }
.ux-disclosure .expand-mark::after { top:0; left:6px; width:1px; height:14px; }
.ux-disclosure[open]>summary .expand-mark::after { display:none; }
.ux-disclosure-body { padding:4px 0 22px; }
.ux-disclosure-body p:last-child { margin-bottom:0; }
.ux-disclosure-body :where(p,li,dd) { font-size:1rem; line-height:1.65; }
.ux-disclosure-body .content-section { padding:4px 0 0; border:0; }
.ux-disclosure-body .content-columns { gap:28px; }
.ux-disclosure-body .content-section h2 { font-size:1.125rem; letter-spacing:0; margin:0 0 12px; }
.ux-disclosure-body .content-section h2 br { display:none; }
[data-information-section] { margin:0; }
.ux-reading-actions { display:flex; justify-content:flex-end; margin-bottom:12px; }
.ux-reading-actions button { border:0; padding:8px 0; min-height:44px; background:none; font-size:.875rem; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.policy-copy .ux-disclosure { margin:0; }
.policy-copy .ux-disclosure>summary { font-size:1.125rem; }
[data-mobile-ux] .site-footer { border-top:1px solid var(--fine-line); padding-top:28px; font-size:.875rem; line-height:1.65; }
.site-footer [data-footer-section] { border:0; }
.site-footer [data-footer-section]>summary { font-size:.875rem; min-height:44px; padding:0 0 12px; }
.site-footer [data-footer-section]>summary .expand-mark { display:none; }
.site-footer [data-footer-section] a { min-height:40px; }
.site-footer .footer-bottom { font-size:.8125rem; }
.ux-menu-toggle { display:none; border:0; background:none; padding:10px 4px; min-height:44px; font-size:.875rem; cursor:pointer; }
#mobile-menu { width:min(460px,100%); max-width:none; height:100dvh; max-height:100dvh; margin:0 0 0 auto; padding:max(18px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom)); border:0; color:var(--ink); background:var(--paper); overflow-y:auto; overscroll-behavior:contain; }
#mobile-menu::backdrop { background:#24241f75; }
.ux-menu-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:20px; border-bottom:1px solid var(--fine-line); }
.ux-menu-header h2 { font-size:1.25rem; font-weight:400; margin:0; }
.ux-menu-header button { min-height:44px; padding:8px 12px; border:1px solid var(--ink); background:none; cursor:pointer; }
#mobile-menu nav>a { display:flex; align-items:center; min-height:62px; border-bottom:1px solid var(--fine-line); font-size:1.25rem; text-decoration:none; color:inherit; }
#mobile-menu [aria-current] { text-decoration:underline; text-underline-offset:6px; }
#mobile-menu .ux-disclosure { border:0; }
#mobile-menu .ux-disclosure-body a { display:flex; align-items:center; min-height:48px; font-size:1rem; color:inherit; text-decoration:none; }
.ux-menu-saved { display:inline-flex; align-items:center; min-height:48px; margin-top:24px; color:inherit; }
.ux-menu-location { font-size:.875rem; color:var(--muted); }
html:has(dialog[open]) { overflow:hidden; }
[data-mobile-ux] dialog { overscroll-behavior:contain; }
.ux-product-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); gap:52px; border-top:1px solid var(--fine-line); padding-top:24px; align-items:start; }
.ux-product-layout .photo-gallery { position:sticky; top:24px; }
.ux-product-buy { min-width:0; }
.ux-buy-intro { padding:0 0 20px; }
.ux-buy-intro p { margin:0 0 8px; font-size:.875rem; line-height:1.55; }
.ux-buy-intro .ux-material { font-size:1rem; }
.ux-product-buy :where(h2,.finish-selector h2) { font-weight:400; font-size:1.125rem; margin:0 0 14px; line-height:1.5; }
.ux-selected-size { margin:0 0 12px; font-size:1rem; }
.ux-size-choice { border-top:1px solid var(--ink); padding-top:20px; }
#size-options { border:0; }
#size-options>summary { min-height:48px; padding:10px 0 14px; }
#size-options #dimension-form { padding:0; }
#size-options .dimension-control:first-child { margin-top:0; }
#size-options .dimension-range { height:44px; }
#size-options .drawing-section { width:100%; }
.ux-product-buy .finish-selector { padding:20px 0; }
.ux-product-buy .finish-explore { margin:10px 0 0; }
.ux-product-buy .finish-fields select { padding:12px 28px 12px 12px; border:1px solid var(--line); font-size:1rem; }
.ux-product-buy .finish-select::after { right:14px; top:20px; }
.ux-finish-preview { display:flex; align-items:center; gap:14px; margin-top:16px; }
.ux-finish-preview img { width:76px; height:60px; object-fit:contain; }
.ux-finish-preview p { margin:0; font-size:.875rem; }
.ux-product-buy .purchase-panel { display:grid; position:static; grid-template-columns:1fr auto; gap:8px 16px; align-items:center; border-top:1px solid var(--ink); padding:20px 0 12px; }
.ux-product-buy .purchase-price>span { font-size:.8125rem; }
.ux-product-buy .purchase-price p { margin:0; line-height:1.25; font-size:1.875rem; letter-spacing:-.03em; }
.ux-product-buy #add-to-cart { min-height:50px; width:auto; min-width:170px; padding:12px 20px; color:var(--paper); background:var(--ink); border:1px solid var(--ink); font:inherit; font-size:1rem; cursor:pointer; text-align:center; }
.ux-product-buy #add-to-cart:hover { background:#494a41; }
.ux-purchase-hint { grid-column:1/-1; margin:0; font-size:.8125rem; color:var(--muted); }
.ux-price-context { font-size:.875rem; color:var(--muted); margin:4px 0 24px; }
.ux-price-context a { color:inherit; text-underline-offset:4px; }
.ux-product-details { margin-top:12px; }
.ux-product-details :where(p,dd) { font-size:1rem; line-height:1.65; }
.ux-product-details .product-specifications { margin:20px 0; }
.ux-product-details .product-specifications>div { display:grid; grid-template-columns:90px minmax(0,1fr); gap:16px; }
.ux-help-links { display:flex; flex-direction:column; align-items:start; }
.ux-product-details .save-design-actions { display:flex; flex-wrap:wrap; gap:12px; }
.ux-product-details .save-design-actions button { min-height:48px; background:transparent; border:1px solid var(--ink); padding:10px 14px; font:inherit; cursor:pointer; }
.ux-gallery-hint { font-size:.8125rem; color:var(--muted); margin:8px 0 0; }
.gallery-images { background:#e6e3dc; }
.gallery-images .product-closeup { -webkit-tap-highlight-color:transparent; }
[data-mobile-ux] .product-gallery-controls { margin-top:8px; }
[data-mobile-ux] .product-gallery-controls button { border:0; text-decoration:underline; text-underline-offset:4px; }
[data-mobile-ux] .catalogue-heading h1 { font-size:1.125rem; text-transform:none; }
[data-mobile-ux] .catalogue-filter select { min-height:48px; font-size:1rem; }
[data-mobile-ux] .product-caption { font-size:.875rem; line-height:1.5; }
[data-optional-field] { grid-column:1/-1; }
[data-optional-field]>summary { font-size:.875rem; min-height:48px; padding:10px 0; }
[data-optional-field] .ux-disclosure-body { padding:10px 0 16px; }
.ux-field-error { color:#872f22; font-size:.875rem; margin:6px 0 0; }
[aria-invalid=true] { border-color:#872f22!important; }
[data-mobile-ux] :where(.checkout-form,.content-form) label:has(input[type=checkbox]) { min-height:44px; }
[data-mobile-ux] .checkout-aside .ux-disclosure { border:0; }
[data-mobile-ux] .checkout-aside .ux-disclosure>summary { padding-top:0; }
#checkout-compact-total { display:block; }
.ux-sample-bar { display:none; }
[data-finish-index] { width:calc(100% - 144px); max-width:1176px; margin:24px auto; }
[data-finish-index] .sample-index { width:100%; padding:12px 0; }
.ux-finish-name { display:none; }
.ux-finish-hero { display:none; }
@media(min-width:761px) {
 .masthead .catalogue-navigation { gap:12px; font-size:.8125rem; }
 .masthead .header-actions { gap:16px; }
}
@media(max-width:1050px) {
 .ux-product-layout { gap:28px; }
 .masthead .catalogue-navigation { gap:10px; }
}
@media(max-width:760px) {
 [data-mobile-ux].framed-page>.page,[data-mobile-ux].catalogue-page>.page { width:100%; margin:0; padding:0 max(18px,env(safe-area-inset-right)) 28px max(18px,env(safe-area-inset-left)); }
 [data-mobile-ux] .masthead { min-height:68px; flex-wrap:nowrap; padding:10px 0; gap:12px; margin-bottom:0; border-bottom:1px solid var(--fine-line); }
 [data-mobile-ux] .masthead .wordmark { font-size:18px; letter-spacing:-.045em; }
 [data-mobile-ux] .masthead .header-actions { width:auto; justify-content:flex-end; gap:14px; }
 .ux-ready .masthead .catalogue-navigation { display:none; }
 .ux-ready .ux-menu-toggle { display:block; }
 .ux-ready .masthead .cart-toggle { min-height:44px; font-size:.875rem; padding:8px 0; }
 body:not(.ux-ready) .masthead { flex-wrap:wrap; }
 [data-mobile-ux] .page-heading { padding:24px 0 20px; align-items:start; }
 [data-mobile-ux] .page-heading .eyebrow { display:none; }
 [data-mobile-ux] .page-heading .edition { display:none; }
 [data-mobile-ux] .catalogue-back { display:inline-flex; align-items:center; min-height:44px; font-size:.875rem; padding:0; margin:-12px 0 8px; }
 [data-mobile-ux] h1 { font-size:clamp(1.75rem,7.8vw,2.3rem); max-width:100%; }
 .ux-product-layout { display:flex; flex-direction:column; gap:20px; padding-top:0; border-top:0; }
 .ux-product-layout .photo-gallery { position:static; width:100%; }
 .ux-product-layout .photo-gallery .gallery-images { max-height:65svh; }
 .ux-product-layout .photo-gallery .gallery-images>* { aspect-ratio:4/5; max-height:65svh; }
 .ux-product-layout .photo-note { font-size:.8125rem; margin-bottom:0; }
 .ux-product-buy { width:100%; }
 .ux-product-buy .purchase-panel { position:fixed; z-index:8; bottom:0; left:0; right:0; padding:12px max(18px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left)); gap:4px 16px; background:#eeece6; box-shadow:0 -6px 20px #30312c0b; border-top:1px solid var(--fine-line); }
 .ux-product-buy .purchase-price p { font-size:1.6rem; }
 .ux-product-buy #add-to-cart { min-width:148px; font-size:.9375rem; }
 body:has([data-ux-product]) { padding-bottom:calc(var(--bottom-bar-height,110px) + 24px); }
 .ux-keyboard-open .purchase-panel,.ux-keyboard-open .ux-sample-bar { visibility:hidden; pointer-events:none; }
 .ux-buy-intro { padding-bottom:14px; }
 .ux-product-details .product-specifications>div { grid-template-columns:80px minmax(0,1fr); }
 [data-mobile-ux] .catalogue-heading { margin:24px 0 20px; display:block; }
 [data-mobile-ux] .catalogue-heading h1 { margin:0 0 14px; }
 [data-mobile-ux] .catalogue-filters { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:0; }
 [data-mobile-ux] .catalogue-filter { display:block; min-width:0; }
 [data-mobile-ux] .catalogue-filter label { display:block; font-size:.8125rem; }
 [data-mobile-ux] .filter-select { display:block; }
 [data-mobile-ux] .catalogue-filter select { width:100%; }
 [data-mobile-ux] .product-grid { gap:22px 12px; }
 [data-mobile-ux] .content-hero,[data-mobile-ux] .content-hero.compact { padding:28px 0; display:block; }
 [data-mobile-ux] .content-hero .eyebrow { font-size:.75rem; margin-bottom:12px; }
 [data-mobile-ux] .content-hero>p { margin-top:16px; font-size:1rem; line-height:1.65; max-width:100%; }
 [data-mobile-ux] .story-split { gap:24px; padding-bottom:24px; }
 [data-mobile-ux] .story-copy h2 { font-size:1.5rem; }
 [data-mobile-ux] .content-section { padding:28px 0; }
 [data-mobile-ux] .content-columns { gap:24px; }
 .ux-disclosure-body .content-section { padding:4px 0; }
 .ux-disclosure-body .content-columns { display:block; }
 .ux-disclosure-body .content-columns>div+div { margin-top:22px; }
 [data-mobile-ux] .site-footer,[data-mobile-ux].sample-table-page>.site-footer { display:block; margin:40px 0 0; padding:24px 0; font-size:.875rem; }
 [data-mobile-ux] .site-footer>div:first-child { margin-bottom:20px; }
 [data-mobile-ux] .site-footer>div:first-child p { display:none; }
 .site-footer [data-footer-section] { border-top:1px solid var(--fine-line); }
 .site-footer [data-footer-section]>summary { padding:16px 0; min-height:56px; font-size:1rem; }
 .site-footer [data-footer-section]>summary .expand-mark { display:block; }
 .site-footer [data-footer-section] a { min-height:44px; }
 .site-footer .footer-bottom { padding-top:20px; }
 .site-footer .footer-bottom a { min-height:44px; }
 [data-mobile-ux] #cart-dialog { width:100%; max-width:none; max-height:94dvh; margin:auto 0 0; padding:20px 20px max(24px,env(safe-area-inset-bottom)); border:0; border-top:1px solid var(--ink); }
 [data-mobile-ux] .cart-item-actions button { min-width:44px; min-height:44px; }
 [data-mobile-ux] .cart-item p { font-size:.875rem; line-height:1.6; }
 [data-mobile-ux] .checkout-steps { flex-wrap:nowrap; gap:10px; justify-content:space-between; font-size:.8125rem; line-height:1.5; padding:18px 0; }
 [data-mobile-ux] .checkout-steps .upcoming { white-space:normal; }
 [data-mobile-ux] .checkout-layout { display:flex; flex-direction:column; gap:24px; }
 [data-mobile-ux] .checkout-layout>div { width:100%; order:2; }
 [data-mobile-ux] .checkout-aside { width:100%; order:1; margin:0; padding:16px 0 0; border-bottom:1px solid var(--fine-line); }
 [data-mobile-ux] .checkout-fields { gap:20px; }
 [data-mobile-ux] .checkout-actions .outline-button { background:var(--ink); color:var(--paper); min-height:50px; font-size:1rem; }
 [data-mobile-ux] .checkout-check { font-size:1rem; }
 [data-mobile-ux] .pack-options-grid { gap:8px; }
 [data-mobile-ux] .pack-option { padding:14px 10px; font-size:.875rem; }
 [data-mobile-ux] .sample-choice span { font-size:.875rem; line-height:1.5; }
 [data-mobile-ux] .sample-summary { position:static; }
 body:has(.ux-sample-bar) { padding-bottom:calc(var(--bottom-bar-height,100px) + 24px); }
 .ux-sample-bar { display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 12px; position:fixed; z-index:8; bottom:0; left:0; right:0; background:#eeece6; border-top:1px solid var(--fine-line); padding:12px 18px max(12px,env(safe-area-inset-bottom)); }
 .ux-sample-bar p { margin:0; font-size:.875rem; }
 .ux-sample-bar strong { display:block; font-size:1.25rem; font-weight:400; }
 .ux-sample-bar button { min-height:50px; min-width:140px; padding:10px 18px; background:var(--ink); color:var(--paper); border:1px solid var(--ink); font:inherit; }
 .ux-sample-bar button:disabled { background:transparent; color:var(--muted); border-color:var(--fine-line); }
 [data-mobile-ux].sample-table-page { background:#eeece6; }
 [data-mobile-ux].sample-table-page #library-page { width:100%; height:auto; }
 [data-mobile-ux] .sample-masthead { width:auto; margin:0 18px; padding:10px 0; }
 [data-mobile-ux] .sample-page-heading { width:auto; padding:26px 18px 22px; }
 [data-mobile-ux] .sample-page-heading h1 { font-size:1.75rem; text-transform:none; line-height:1.2; }
 [data-mobile-ux] .sample-table { position:relative; overflow:visible; margin:0 18px; }
 [data-mobile-ux] .sample-grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:26px 18px; }
 [data-mobile-ux] .sample-pick { position:relative; width:100%!important; aspect-ratio:auto; transform:none!important; padding:0; text-align:left; }
 [data-mobile-ux] .sample-body { position:relative; width:100%; aspect-ratio:var(--aspect); filter:none; }
 .ux-finish-name { display:block; font-size:.875rem; line-height:1.5; margin-top:12px; }
 [data-mobile-ux] .sample-annotations { display:none; }
 [data-mobile-ux] .sample-order-banner { width:auto; margin:32px 18px; padding:24px 0; }
 [data-mobile-ux].sample-table-page>.site-footer { margin:32px 18px 0; width:auto; }
 [data-finish-index] { width:auto; margin:24px 18px; }
 [data-mobile-ux] .sample-index-entry { font-size:.875rem; }
 [data-mobile-ux] #finish-dialog { background:#eeece6; }
 [data-mobile-ux] #finish-dialog .detail-layout { padding:70px 22px 30px; }
 [data-mobile-ux] .hero-rest { display:flex; align-items:center; justify-content:center; height:32svh; margin-bottom:22px; }
 .ux-finish-hero { position:relative; display:block; width:min(100%,430px); aspect-ratio:var(--aspect); }
 [data-mobile-ux] .product-image-dialog { width:100%; max-height:100dvh; height:100dvh; margin:0; padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom)); border:0; }
 [data-mobile-ux] .product-image-toolbar { position:sticky; top:0; background:var(--paper); padding:8px 0; z-index:1; }
}
@media(max-width:370px) { [data-mobile-ux] .masthead .wordmark { font-size:16px; } [data-mobile-ux] .masthead .header-actions { gap:10px; } .ux-product-buy #add-to-cart { min-width:136px; padding:10px 12px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media print { .ux-menu-toggle,.purchase-panel,.ux-sample-bar,.ux-reading-actions,.skip-link { display:none!important; } .ux-product-layout { display:block; } body:has([data-ux-product]) { padding:0; } }
