:root {
    color-scheme: light;
    --ink: #1c1c1d;
    --pearl: #f0eeeb;
    --gold: #c2986c;
    --bronze: #926b4c;
    --white: #fff;
    --muted: #62574f;
    --line: #d7cec4;
    --font-heading: Didot, "Bodoni MT", Georgia, serif;
    --font-body: Avenir, "Avenir Next", Arial, sans-serif;
    --s1: .25rem; --s2: .5rem; --s3: .75rem; --s4: 1rem;
    --s6: 1.5rem; --s8: 2rem; --s12: 3rem; --s16: 4rem; --s24: 6rem;
    --sidebar: 19rem;
    --gutter: clamp(1rem, 3vw, 3rem);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
html, .sidebar, .menu-dialog { scrollbar-width: thin; scrollbar-color: var(--muted) var(--ink); }
html::-webkit-scrollbar, .sidebar::-webkit-scrollbar, .menu-dialog::-webkit-scrollbar { width: .5rem; }
html::-webkit-scrollbar-track, .sidebar::-webkit-scrollbar-track, .menu-dialog::-webkit-scrollbar-track { background: var(--ink); }
html::-webkit-scrollbar-thumb, .sidebar::-webkit-scrollbar-thumb, .menu-dialog::-webkit-scrollbar-thumb { background: var(--muted); border: 2px solid var(--ink); border-radius: 999px; }
body { margin: 0; background: var(--pearl); color: var(--ink); font: 1rem/1.5 var(--font-body); }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .3em; }
button { font: inherit; cursor: pointer; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--bronze); outline-offset: 6px; }
.sidebar :focus-visible, .gift :focus-visible, .menu-dialog :focus-visible { outline-color: var(--gold); }
[hidden] { display: none !important; }
h1,h2,h3,p,figure { margin: 0; }
h1,h2,h3 { font-family: var(--font-heading); font-weight: 400; line-height: 1.12; text-wrap: balance; }
h1 { font-size: clamp(2.6rem, 4.7vw, 4rem); letter-spacing: -.045em; }
h2 { font-size: clamp(2rem, 3vw, 2.5rem); letter-spacing: -.025em; }
h3 { font-size: 1.65rem; }
em { font-weight: 400; }
p { max-width: 65ch; }
.skip-link { position: fixed; top: 1rem; left: 1rem; padding: 1rem; background: white; z-index: 100; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.mobile-header { display: flex; justify-content: space-between; align-items: center; padding: var(--s4) var(--s6); background: var(--ink); color: var(--pearl); }
.mobile-brand { font: 1.7rem/1 var(--font-heading); text-decoration: none; }
.mobile-brand span { display: block; font: .65rem/1.5 var(--font-body); letter-spacing: .12em; text-transform: uppercase; margin-top: .4rem; }
.menu-toggle, .menu-close { border: 0; background: transparent; color: inherit; min-height: 44px; display: flex; gap: var(--s3); align-items: center; }
.menu-icon { display: block; width: 24px; height: 12px; border-block: 1px solid var(--gold); }
.sidebar { background: var(--ink); color: var(--pearl); }
.sidebar-inner { display: flex; flex-direction: column; padding: var(--s6); min-height: 100%; }
.brand { display: block; width: 256px; max-width: 100%; margin: 0 auto; padding-block: var(--s2); }
.brand img { width: 100%; }
.sidebar-caption { color: var(--gold); text-align: center; font-size: .75rem; margin: var(--s2) 0 var(--s8); }
.primary-nav { display: grid; }
.primary-nav a { min-height: 48px; display: flex; justify-content: space-between; align-items: center; padding: var(--s3) var(--s2); border-bottom: 1px solid #ffffff16; text-decoration: none; font-size: .94rem; }
.primary-nav a span:last-child { font-size: .65rem; color: var(--gold); }
.primary-nav a:hover, .primary-nav a[aria-current] { color: var(--gold); background: #ffffff05; }
.sidebar-bottom { padding-top: var(--s8); margin-top: auto; text-align: center; }
.sidebar-phone { display: inline-block; margin-top: var(--s6); text-decoration: none; font-size: 1rem; }
.social-links { display: flex; justify-content: center; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s3); }
.social-link { display: grid; place-items: center; width: 44px; min-height: 44px; border: 1px solid #ffffff24; color: var(--gold); text-decoration: none; transition: color .2s, background-color .2s, border-color .2s; }
.social-link svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.social-link .social-icon-fill { fill: currentColor; stroke: none; }
a.social-link:hover { border-color: var(--gold); background: var(--gold); color: var(--ink); }
.social-link-disabled { opacity: .45; cursor: default; }
.sidebar-bottom p { color: var(--gold); font-size: .65rem; margin-top: var(--s3); }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: var(--s6); padding: var(--s4) var(--s6); min-height: 48px; text-decoration: none; font-size: .875rem; border: 1px solid transparent; transition: background-color .2s, color .2s; }
.button span { font-size: 1.2rem; }
.button-dark { background: var(--ink); color: var(--white); }
.button-dark:hover { background: var(--bronze); }
.button-gold { background: var(--gold); color: var(--ink); width: 100%; }
.button-gold:hover { background: var(--pearl); }
.button-outline { color: var(--pearl); border-color: var(--gold); }
.button-outline:hover { color: var(--ink); background: var(--gold); }
.menu-dialog { position: fixed; inset: 0 auto 0 0; width: min(100%, 23rem); max-width: 100%; height: 100dvh; max-height: 100dvh; margin: 0; border: 0; padding: 0; background: var(--ink); color: var(--pearl); overflow-y: auto; }
.menu-dialog::backdrop { background: #0009; backdrop-filter: blur(4px); }
.menu-close { margin: var(--s3) var(--s6) 0 auto; }
.menu-close span { font-size: 1.75rem; }
.menu-dialog .sidebar-inner { padding-top: 0; }
.menu-dialog .sidebar-caption { margin-bottom: var(--s4); }
.app-modal { width: min(calc(100% - 2rem), 42rem); max-width: none; max-height: calc(100dvh - 2rem); margin: auto; padding: 0; border: 1px solid var(--line); background: var(--white); color: var(--ink); overflow: hidden; }
.app-modal::backdrop { background: #1c1c1db8; backdrop-filter: blur(3px); }
.app-modal-surface { display: flex; flex-direction: column; max-height: calc(100dvh - 2rem); }
.app-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s6); padding: var(--s6); border-bottom: 1px solid var(--line); }
.app-modal-header h2 { font-size: clamp(1.75rem, 5vw, 2.25rem); }
.app-modal-header-close { flex: 0 0 auto; display: grid; place-items: center; width: 44px; min-height: 44px; margin: calc(var(--s2) * -1); border: 0; background: transparent; color: var(--ink); }
.app-modal-header-close span { font-size: 1.75rem; font-weight: 300; line-height: 1; }
.app-modal-header-close:hover { color: var(--bronze); }
.app-modal-body { padding: var(--s6); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--muted) var(--pearl); }
.app-modal-body > * + * { margin-top: var(--s6); }
.app-modal-body img { width: 100%; }
.app-modal-body form { display: grid; gap: var(--s6); }
.app-modal-footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--s3); padding: var(--s4) var(--s6); border-top: 1px solid var(--line); background: var(--pearl); }
.app-modal-button { min-height: 44px; padding: var(--s3) var(--s6); border: 1px solid var(--ink); font: inherit; }
.app-modal-button-secondary { background: transparent; color: var(--ink); }
.app-modal-button-primary { background: var(--ink); color: var(--white); }
.app-modal-button-secondary:hover { background: var(--white); }
.app-modal-button-primary:hover { border-color: var(--bronze); background: var(--bronze); }
.hero { display: grid; }
.hero-copy { padding: var(--s12) var(--gutter); }
.eyebrow { display: flex; align-items: center; gap: var(--s3); font-size: .69rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; color: var(--muted); margin-bottom: var(--s6); }
.eyebrow > span { width: 28px; height: 1px; background: var(--bronze); }
.hero h1 em { color: var(--bronze); }
.hero-intro { color: var(--muted); font-size: 1.0625rem; margin: var(--s6) 0 var(--s8); max-width: 34ch; }
.hero .button { width: fit-content; }
.quiet-link { display: block; width: fit-content; margin-top: var(--s6); font-size: .875rem; text-decoration: none; }
.quiet-link span { margin-left: var(--s3); }
.hero-note { margin-top: var(--s12); display: flex; gap: var(--s4); align-items: center; padding-top: var(--s6); border-top: 1px solid var(--line); width: fit-content; }
.hero-note > span { font-size: 2rem; color: var(--bronze); }
.hero-note p { font-size: .75rem; color: var(--muted); }
.hero-visual { position: relative; min-width: 0; }
.hero-visual img { width: 100%; height: 100%; min-height: 360px; aspect-ratio: 4/5; object-fit: cover; object-position: 52% center; }
.google-rating-badge { position: absolute; z-index: 1; top: var(--s4); left: var(--s4); display: grid; grid-template-columns: auto auto; align-items: center; gap: 0 var(--s3); min-height: 44px; max-width: calc(100% - (2 * var(--s4))); padding: var(--s3) var(--s4); border: 1px solid #c2986c99; background: #f0eeebeb; color: var(--ink); text-decoration: none; box-shadow: 0 8px 24px #1c1c1d24; backdrop-filter: blur(8px); transition: color .2s, background-color .2s, border-color .2s, transform .2s; }
.google-rating-medal { grid-row: 1 / 3; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border: 1px solid var(--bronze); border-radius: 50%; color: var(--bronze); font-size: 1.05rem; }
.google-rating-copy { display: flex; align-items: baseline; gap: var(--s2); white-space: nowrap; }
.google-rating-copy > span { font-size: .625rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.google-rating-copy strong { font: 400 1.45rem/1 var(--font-heading); }
.google-rating-copy small { font: 500 .7rem/1 var(--font-body); color: var(--muted); }
.google-rating-reviews { grid-column: 2; margin-top: var(--s1); font-size: .7rem; color: var(--muted); }
.google-rating-reviews span { margin-left: var(--s1); color: var(--bronze); }
.google-rating-badge:hover { border-color: var(--gold); background: var(--ink); color: var(--pearl); transform: translateY(-2px); }
.google-rating-badge:hover .google-rating-copy > span,
.google-rating-badge:hover .google-rating-copy small,
.google-rating-badge:hover .google-rating-reviews { color: var(--pearl); }
.google-rating-badge:hover .google-rating-medal { border-color: var(--gold); color: var(--gold); }
.google-rating-badge:focus-visible { outline-color: var(--gold); outline-offset: 4px; }
.hero-visual figcaption { position: absolute; bottom: 0; inset-inline: 0; display: flex; justify-content: space-between; padding: var(--s6); color: white; font-size: .75rem; background: linear-gradient(transparent, #0009); padding-top: var(--s12); }
.values-strip { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--s4) var(--s6); background: var(--white); border-bottom: 1px solid var(--line); padding: var(--s6) var(--s4); font-size: .69rem; text-transform: uppercase; letter-spacing: .1em; }
.values-strip [aria-hidden] { color: var(--bronze); font-size: 1.1rem; }
.section { padding: var(--s12) var(--gutter); }
.section-heading { display: grid; gap: var(--s6); margin-bottom: var(--s8); }
.section-heading > p { color: var(--muted); font-size: 1rem; }
.service-grid { display: grid; gap: var(--s6); }
.service-card { border: 1px solid var(--line); background: #ffffff42; }
.service-card-link { min-height: 100%; padding: var(--s6); display: flex; flex-direction: column; align-items: flex-start; text-decoration: none; transition: background-color .2s, color .2s; }
.service-card-link:hover { background: var(--white); }
.service-card-link:focus-visible { outline-offset: 4px; }
.service-number { color: var(--bronze); font: italic 1.2rem var(--font-heading); margin-bottom: var(--s8); }
.service-card h3 { margin-bottom: var(--s4); }
.service-card p { color: var(--muted); margin-bottom: var(--s8); }
.service-card-cta { border-top: 1px solid var(--line); padding-top: var(--s4); min-height: 44px; width: 100%; display: flex; justify-content: space-between; font-size: .875rem; margin-top: auto; }
.service-card-link:hover .service-card-cta { color: var(--bronze); }
.about { display: grid; gap: var(--s8); background: var(--white); }
.about-copy { display: grid; gap: var(--s6); }
.about-copy p { color: var(--muted); }
.about-copy .lead { color: var(--ink); font-size: 1.125rem; }
.text-link { padding-block: var(--s3); width: fit-content; font-size: .875rem; }
.text-link span { margin-left: var(--s3); }
.gift { background: var(--ink); color: var(--pearl); display: grid; gap: var(--s12); }
.gift .eyebrow { color: var(--gold); }
.gift p:not(.eyebrow) { margin: var(--s6) 0; }
.gift-mark { padding: var(--s8); border: 1px solid var(--bronze); font: 2rem/1.3 var(--font-heading); color: var(--gold); display: grid; align-content: center; min-height: 240px; }
.gift-mark em { font-size: 1.5rem; }
.contact { display: grid; gap: var(--s12); }
.contact h2 { margin-bottom: var(--s6); }
.contact p:not(.eyebrow) { color: var(--muted); }
.contact-links { display: grid; gap: var(--s3); margin-top: var(--s8); }
.contact-links a { display: flex; justify-content: space-between; gap: var(--s4); padding-block: var(--s3); border-bottom: 1px solid var(--line); text-decoration: none; overflow-wrap: anywhere; }
.contact.contact-modal-content { grid-template-columns: 1fr; gap: var(--s8); }
.contact-modal-content .price-note { padding: var(--s6); border: 1px solid var(--line); background: var(--pearl); }
.price-note { padding: var(--s8); background: var(--white); }
.price-note h3 { margin-bottom: var(--s6); }
.price-note .text-link { display: inline-block; margin-top: var(--s4); }
.site-footer { padding: var(--s6) var(--gutter); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: var(--s4); justify-content: space-between; font-size: .75rem; color: var(--muted); }
.site-footer a { padding-block: var(--s3); }
.error-page { min-height: 80vh; display: grid; gap: var(--s8); align-content: center; justify-items: start; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.pricing-page { background: var(--pearl); }
.pricing-hero { background: var(--ink); color: var(--pearl); padding: var(--s12) var(--gutter); }
.pricing-hero-inner { max-width: 72rem; margin-inline: auto; }
.pricing-hero .eyebrow { color: var(--gold); }
.pricing-hero h1 em, .pricing-contact h2 em { color: var(--gold); }
.pricing-lead { margin-top: var(--s6); color: #ded8d2; font-size: 1.0625rem; max-width: 42ch; }
.pricing-validity { margin-top: var(--s8); padding-top: var(--s4); border-top: 1px solid #ffffff26; color: var(--gold); font-size: .75rem; letter-spacing: .04em; }
.pricing-index { padding: var(--s6) var(--gutter); background: var(--white); border-bottom: 1px solid var(--line); }
.pricing-index > p, .pricing-index ul { max-width: 72rem; margin-inline: auto; }
.pricing-index > p { margin-bottom: var(--s3); color: var(--muted); font-size: .69rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.pricing-index ul { list-style: none; display: flex; flex-wrap: wrap; gap: var(--s2); padding: 0; }
.pricing-index a { display: inline-flex; align-items: center; min-height: 44px; padding: var(--s2) var(--s4); border: 1px solid var(--line); text-decoration: none; font-size: .8125rem; }
.pricing-index a:hover, .pricing-index a:focus-visible { background: var(--ink); border-color: var(--ink); color: var(--pearl); }
.pricing-content { width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.pricing-section { scroll-margin-top: 6rem; }
.pricing-section + .pricing-section { margin-top: var(--s16); }
.pricing-section-heading { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: var(--s4); padding-bottom: var(--s6); border-bottom: 1px solid var(--bronze); }
.pricing-section-number { color: var(--bronze); font: italic 1.1rem var(--font-heading); }
.pricing-section-heading h2 { font-size: clamp(2rem, 4vw, 3rem); }
.pricing-group { margin-top: var(--s8); }
.pricing-group h3 { margin-bottom: var(--s2); font-size: clamp(1.45rem, 3vw, 1.8rem); }
.pricing-group-description { margin-bottom: var(--s4); color: var(--muted); font-size: .9375rem; }
.pricing-description-link { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; color: var(--ink); text-decoration-color: var(--bronze); }
.pricing-description-link:hover { color: var(--bronze); }
.pricing-description-content { display: grid; gap: var(--s4); }
.pricing-description-content .eyebrow { margin-bottom: var(--s2); }
.pricing-description-content h3 { margin-top: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); font-size: 1.35rem; }
.pricing-description-content ul { display: grid; gap: var(--s2); padding-left: var(--s6); color: var(--muted); }
.pricing-description-content .text-link { margin-top: var(--s2); }
.price-table { width: 100%; border-collapse: collapse; border-spacing: 0; }
.price-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.price-table tbody { display: grid; gap: var(--s3); }
.price-table tbody tr { display: block; padding: var(--s2) var(--s4); background: var(--white); border: 1px solid var(--line); }
.price-table th, .price-table td { overflow-wrap: anywhere; }
.price-table th[scope="row"], .price-table td { display: grid; grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr); gap: var(--s3); padding: var(--s2) 0; border: 0; text-align: left; font-size: .9375rem; vertical-align: top; }
.price-table th[scope="row"] { font-weight: 500; }
.mobile-cell-label { color: var(--muted); font-size: .65rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.price-cell span, .price-cell strong { display: block; }
.price-cell strong { color: var(--bronze); font-size: .75rem; letter-spacing: .06em; }
.description-cell { color: var(--muted); }
.empty-value { color: var(--line); }
.pricing-contact { display: grid; gap: var(--s8); margin-top: var(--s16); padding: var(--s8); background: var(--ink); color: var(--pearl); }
.pricing-contact .eyebrow { color: var(--gold); }
.pricing-contact p:not(.eyebrow) { color: #ded8d2; }
.pricing-contact .button { margin-top: var(--s6); max-width: 19rem; }
.services-page { background: var(--pearl); }
.services-hero { padding: var(--s12) var(--gutter); background: var(--ink); color: var(--pearl); }
.services-hero-inner { width: min(100%, 72rem); margin-inline: auto; }
.services-hero .eyebrow, .services-contact .eyebrow, .service-process .eyebrow { color: var(--gold); }
.services-hero h1 em, .services-contact h2 em, .service-process h2 em { color: var(--gold); }
.services-lead { margin-top: var(--s6); color: #ded8d2; font-size: 1.0625rem; max-width: 46ch; }
.services-hero-actions { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s8); }
.services-hero-actions .button { width: 100%; }
.services-catalogue { width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.services-section-heading { display: grid; gap: var(--s6); margin-bottom: var(--s8); }
.services-section-heading > p { color: var(--muted); }
.services-list { display: grid; gap: var(--s6); }
.service-feature { min-width: 0; border: 1px solid var(--line); background: var(--white); }
.service-feature-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--line); }
.service-feature-media img { width: 100%; height: 100%; object-fit: cover; }
.service-feature-content { padding: var(--s6); }
.service-feature-number { margin-bottom: var(--s6); color: var(--bronze); font: italic 1.1rem var(--font-heading); }
.service-feature h3 { margin-bottom: var(--s4); font-size: clamp(1.75rem, 3vw, 2.2rem); }
.service-feature-content > p:not(.service-feature-number) { color: var(--muted); }
.service-feature ul { display: grid; gap: var(--s2); margin: var(--s6) 0 0; padding: var(--s6) 0 0; border-top: 1px solid var(--line); list-style: none; }
.service-feature li { position: relative; padding-left: var(--s6); font-size: .875rem; }
.service-feature li::before { content: ""; position: absolute; top: .68em; left: 0; width: .75rem; height: 1px; background: var(--bronze); }
.service-feature-link { display: flex; justify-content: space-between; align-items: center; min-height: 44px; margin-top: var(--s6); padding-top: var(--s4); border-top: 1px solid var(--line); text-decoration: none; font-size: .875rem; }
.service-feature-link:hover { color: var(--bronze); }
.service-process { padding: var(--s12) var(--gutter); background: var(--ink); color: var(--pearl); }
.service-process > header, .service-process > ol { width: min(100%, 72rem); margin-inline: auto; }
.service-process ol { display: grid; gap: var(--s3); margin-top: var(--s8); padding: 0; list-style: none; }
.service-process li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--s4); padding: var(--s6) 0; border-top: 1px solid #ffffff26; }
.service-process li > span { color: var(--gold); font: italic 1rem var(--font-heading); }
.service-process h3 { margin-bottom: var(--s2); font-size: 1.5rem; }
.service-process li p { color: #ded8d2; font-size: .9375rem; }
.services-contact { display: grid; gap: var(--s8); width: min(calc(100% - 2 * var(--gutter)), 72rem); margin: var(--s12) auto; padding: var(--s8); background: var(--ink); color: var(--pearl); }
.services-contact p:not(.eyebrow) { color: #ded8d2; }
.services-contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s4); margin-top: var(--s6); }
.services-contact .button { width: 100%; max-width: 20rem; }
.services-price-link { color: var(--pearl); }
.service-detail-page { background: var(--pearl); }
.service-breadcrumb { width: min(100%, 72rem); margin-inline: auto; padding: var(--s4) var(--gutter); }
.service-breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .75rem; }
.service-breadcrumb li + li::before { content: "/"; margin-right: var(--s2); color: var(--bronze); }
.service-breadcrumb [aria-current] { color: var(--ink); }
.service-detail-hero { display: grid; background: var(--white); }
.service-detail-copy { padding: var(--s12) var(--gutter); }
.service-detail-copy h1 { margin-bottom: var(--s6); }
.service-detail-lead { color: var(--muted); font-size: 1.0625rem; }
.service-detail-copy .button { width: 100%; margin-top: var(--s8); }
.service-detail-media { min-width: 0; background: var(--line); }
.service-detail-media img { width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.service-detail-content { width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.service-overview { display: grid; gap: var(--s6); }
.service-overview h2 em { color: var(--bronze); }
.service-overview-copy { display: grid; gap: var(--s4); color: var(--muted); }
.service-options { margin-top: var(--s16); }
.service-options > header { padding-bottom: var(--s6); border-bottom: 1px solid var(--bronze); }
.service-option-grid { display: grid; }
.service-option { padding: var(--s6) 0; border-bottom: 1px solid var(--line); }
.service-option-link { display: block; min-height: 100%; color: inherit; text-decoration: none; }
.service-option-number { margin-bottom: var(--s4); color: var(--bronze); font: italic 1rem var(--font-heading); }
.service-option h3 { margin-bottom: var(--s3); font-size: clamp(1.45rem, 3vw, 1.75rem); }
.service-option-link > p { color: var(--muted); font-size: .9375rem; }
.service-option-link > span { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; margin-top: var(--s4); color: var(--ink); font-size: .8125rem; text-decoration: underline; text-decoration-color: var(--bronze); text-underline-offset: .2em; }
.service-option-link:hover h3, .service-option-link:hover > span { color: var(--bronze); }
.service-option-link:focus-visible { outline: 2px solid var(--bronze); outline-offset: var(--s2); }
.service-visit-note { margin-top: var(--s12); padding: var(--s8); background: var(--white); border-left: 2px solid var(--bronze); }
.service-visit-note h2 { margin-bottom: var(--s4); }
.service-visit-note > p:last-child { color: var(--muted); }
.service-detail-cta { display: grid; gap: var(--s8); width: min(calc(100% - 2 * var(--gutter)), 72rem); margin: 0 auto var(--s12); padding: var(--s8); background: var(--ink); color: var(--pearl); }
.service-detail-cta .eyebrow { color: var(--gold); }
.service-detail-cta h2 em { color: var(--gold); }
.service-detail-cta p:not(.eyebrow) { color: #ded8d2; }
.service-detail-actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s4); margin-top: var(--s6); }
.service-detail-actions .button { width: 100%; max-width: 20rem; }
.service-detail-price-link { color: var(--pearl); }
.service-pagination { display: grid; border-top: 1px solid var(--line); }
.service-pagination a { display: grid; gap: var(--s2); min-width: 0; padding: var(--s6) var(--gutter); text-decoration: none; }
.service-pagination a + a { border-top: 1px solid var(--line); }
.service-pagination span { color: var(--bronze); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.service-pagination strong { overflow-wrap: anywhere; font: 400 1.4rem/1.2 var(--font-heading); }
.service-pagination a:hover { background: var(--white); }
.service-option-detail-page { background: var(--pearl); }
.service-option-detail-header { display: grid; gap: var(--s8); width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); background: var(--white); }
.service-option-detail-header h1 { margin-bottom: var(--s6); }
.service-option-detail-header .button { align-self: end; width: 100%; }
.service-option-detail-content { display: grid; gap: var(--s4); width: min(100%, 52rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.service-option-detail-content h2 { margin-top: var(--s8); padding-top: var(--s6); border-top: 1px solid var(--bronze); font-size: clamp(1.55rem, 4vw, 2.25rem); }
.service-option-detail-content p, .service-option-detail-content li { color: var(--muted); }
.service-option-detail-content ul { display: grid; gap: var(--s2); margin: 0; padding-left: var(--s6); }
.service-option-back { width: min(100%, 72rem); margin: 0 auto var(--s12); padding-inline: var(--gutter); }
.service-option-back a { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; color: var(--ink); text-underline-offset: .2em; }
.service-option-back a:hover { color: var(--bronze); }
.articles-page { background: var(--pearl); }
.articles-hero { padding: var(--s12) var(--gutter); background: var(--ink); color: var(--pearl); }
.articles-hero-inner { width: min(100%, 72rem); margin-inline: auto; }
.articles-hero .eyebrow { color: var(--gold); }
.articles-lead { margin-top: var(--s6); color: #ded8d2; font-size: 1.0625rem; max-width: 48ch; }
.article-categories { padding: var(--s6) var(--gutter); background: var(--white); border-bottom: 1px solid var(--line); }
.article-categories-inner { width: min(100%, 72rem); margin-inline: auto; }
.article-categories-inner > p { margin-bottom: var(--s3); color: var(--muted); font-size: .69rem; font-weight: 500; letter-spacing: .15em; text-transform: uppercase; }
.article-categories ul { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; padding: 0; list-style: none; }
.article-categories a { display: inline-flex; align-items: center; gap: var(--s2); min-height: 44px; padding: var(--s2) var(--s4); border: 1px solid var(--line); text-decoration: none; font-size: .8125rem; }
.article-categories a span { color: var(--bronze); font-size: .7rem; }
.article-categories a:hover, .article-categories a[aria-current] { background: var(--ink); border-color: var(--ink); color: var(--pearl); }
.article-categories a[aria-current] span { color: var(--gold); }
.articles-content { width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.articles-heading { display: grid; gap: var(--s6); margin-bottom: var(--s8); }
.articles-heading > p { color: var(--muted); }
.article-grid { display: grid; gap: var(--s6); }
.article-card { display: flex; min-width: 0; flex-direction: column; background: var(--white); border: 1px solid var(--line); }
.article-card-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--line); }
.article-card-media img { width: 100%; height: 100%; object-fit: cover; }
.article-card-media figcaption { position: absolute; right: var(--s3); bottom: var(--s3); padding: var(--s1) var(--s2); background: #1c1c1dcc; color: var(--pearl); font-size: .625rem; letter-spacing: .04em; }
.article-card-content { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: var(--s6); }
.article-card-meta { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s3); margin-bottom: var(--s4); color: var(--muted); font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.article-card-meta a { color: var(--bronze); }
.article-card h3 { margin-bottom: var(--s4); font-size: clamp(1.55rem, 2.6vw, 2rem); }
.article-card-content > p { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .9375rem; -webkit-box-orient: vertical; -webkit-line-clamp: 4; }
.article-source-link { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 44px; margin-top: auto; padding-top: var(--s6); text-decoration: none; font-size: .8125rem; }
.article-source-link:hover { color: var(--bronze); }
.article-pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s3); margin-top: var(--s12); padding-top: var(--s6); border-top: 1px solid var(--line); }
.article-pagination p { color: var(--muted); font-size: .75rem; text-align: center; }
.article-pagination-direction { min-height: 44px; display: inline-flex; align-items: center; width: fit-content; text-decoration: none; font-size: .8125rem; }
.article-pagination-direction:last-child { justify-self: end; }
.article-detail-page { background: var(--pearl); }
.article-detail-breadcrumb { width: min(100%, 72rem); margin-inline: auto; padding: var(--s4) var(--gutter); }
.article-detail-breadcrumb ol { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: .75rem; }
.article-detail-breadcrumb li + li::before { content: "/"; margin-right: var(--s2); color: var(--bronze); }
.article-detail-breadcrumb [aria-current] { color: var(--ink); }
.article-detail-header { display: grid; background: var(--white); }
.article-detail-heading { padding: var(--s12) var(--gutter); }
.article-detail-heading h1 { max-width: 18ch; margin-bottom: var(--s6); overflow-wrap: anywhere; }
.article-detail-heading > p { max-width: 56ch; color: var(--muted); font-size: 1.0625rem; }
.article-detail-meta { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s3); margin-bottom: var(--s6); color: var(--muted); font-size: .69rem; letter-spacing: .04em; text-transform: uppercase; }
.article-detail-meta a { color: var(--bronze); }
.article-detail-media { position: relative; min-width: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--line); }
.article-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.article-detail-media figcaption { position: absolute; right: var(--s3); bottom: var(--s3); padding: var(--s1) var(--s2); background: #1c1c1dcc; color: var(--pearl); font-size: .625rem; letter-spacing: .04em; }
.article-detail-layout { width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.article-detail-body { max-width: 46rem; margin-inline: auto; color: var(--ink); font-size: 1.0625rem; line-height: 1.7; }
.article-detail-body > * + * { margin-top: var(--s4); }
.article-detail-body h2 { margin-top: var(--s12); font-size: clamp(1.65rem, 4vw, 2.25rem); }
.article-detail-body ul, .article-detail-body ol { display: grid; gap: var(--s2); padding-left: var(--s6); }
.article-detail-body blockquote { padding: var(--s4) var(--s6); border-left: 2px solid var(--bronze); background: var(--white); }
.article-detail-body a { color: var(--bronze); text-decoration-thickness: 1px; text-underline-offset: .18em; overflow-wrap: anywhere; }
.article-detail-body table { display: block; width: 100%; overflow-x: auto; border-collapse: collapse; font-size: .9375rem; }
.article-detail-body th, .article-detail-body td { min-width: 9rem; padding: var(--s3); border: 1px solid var(--line); text-align: left; vertical-align: top; }
.article-detail-body tr:nth-child(even) { background: #ffffff73; }
.article-detail-body figcaption { margin-top: var(--s2); color: var(--muted); font-size: .8125rem; }
.article-archive-note { max-width: 46rem; margin: var(--s12) auto 0; padding: var(--s8); background: var(--white); border-left: 2px solid var(--bronze); }
.article-archive-note h2 { margin-bottom: var(--s4); }
.article-archive-note > p:last-child { color: var(--muted); }
.page-gallery { padding: var(--s12) var(--gutter); border-block: 1px solid var(--line); background: var(--white); }
.page-gallery-inner { width: min(100%, 72rem); margin-inline: auto; }
.page-gallery-header { display: grid; gap: var(--s4); }
.page-gallery-header .eyebrow { margin-bottom: var(--s3); }
.page-gallery-header > p { color: var(--muted); }
.page-gallery-grid { display: grid; gap: var(--s6); margin-top: var(--s8); }
.page-gallery-item { min-width: 0; border: 1px solid var(--line); background: var(--pearl); }
.page-gallery-media { position: relative; overflow: hidden; background: var(--line); }
.page-gallery-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.page-gallery-label { position: absolute; top: var(--s3); left: var(--s3); padding: var(--s2) var(--s3); background: #1c1c1de6; color: var(--pearl); font-size: .69rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.page-gallery-item figcaption { padding: var(--s4); color: var(--muted); font-size: .875rem; }
.article-detail-pagination { display: grid; border-top: 1px solid var(--line); }
.article-detail-pagination > a { display: grid; gap: var(--s2); min-width: 0; padding: var(--s6) var(--gutter); text-decoration: none; }
.article-detail-pagination > a + a { border-top: 1px solid var(--line); }
.article-detail-pagination span { color: var(--bronze); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; }
.article-detail-pagination strong { overflow-wrap: anywhere; font: 400 1.4rem/1.2 var(--font-heading); }
.article-detail-pagination a:hover { background: var(--white); }
.about-page { background: var(--pearl); }
.about-hero { display: grid; background: var(--ink); color: var(--pearl); }
.about-hero-copy { padding: var(--s12) var(--gutter); }
.about-hero .eyebrow, .about-location .eyebrow { color: var(--gold); }
.about-hero h1 em, .about-location h2 em { color: var(--gold); }
.about-hero-lead { max-width: 40ch; margin-top: var(--s6); color: #ded8d2; font-size: 1.0625rem; }
.about-hero-media { min-width: 0; background: var(--line); }
.about-hero-media img { width: 100%; height: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.about-owner { display: grid; gap: var(--s8); width: min(100%, 72rem); margin-inline: auto; padding: var(--s12) var(--gutter); }
.about-owner-heading h2 em { color: var(--bronze); }
.about-owner-copy { display: grid; gap: var(--s6); color: var(--muted); }
.about-owner-copy blockquote { margin: 0; padding: var(--s6); border-left: 2px solid var(--bronze); background: var(--white); color: var(--ink); font: 400 1.35rem/1.45 var(--font-heading); }
.about-owner-copy blockquote p + p { margin-top: var(--s4); }
.about-owner-copy .text-link { color: var(--ink); }
.about-testimonials { padding: var(--s8) var(--gutter); border-top: 1px solid var(--line); background: var(--white); }
.about-testimonials-inner { width: min(100%, 72rem); margin-inline: auto; }
.about-testimonials-heading { display: grid; gap: var(--s4); margin-bottom: var(--s6); }
.about-testimonials-heading .eyebrow { margin-bottom: var(--s3); }
.about-testimonials-heading h2 { font-size: clamp(1.65rem, 3vw, 2.1rem); }
.about-testimonials-heading h2 em { color: var(--bronze); }
.about-testimonials-heading > p { color: var(--muted); }
.testimonials-carousel { width: min(100%, 60rem); margin-inline: auto; border: 1px solid var(--line); background: var(--pearl); }
.testimonials-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: var(--muted) var(--pearl); }
.testimonials-track:focus-visible { outline-offset: 4px; }
.testimonials-carousel.is-ready .testimonials-track { overflow-y: hidden; scrollbar-width: none; transition: height .25s ease; }
.testimonials-carousel.is-ready .testimonials-track::-webkit-scrollbar { display: none; }
.testimonial-slide { display: grid; grid-template-columns: 4rem minmax(0, 1fr); align-self: flex-start; align-content: start; align-items: start; justify-items: start; gap: var(--s4); flex: 0 0 100%; min-width: 0; padding: var(--s4); scroll-snap-align: start; scroll-snap-stop: always; }
.testimonial-portrait { width: 4rem; height: 4rem; border: 1px solid var(--bronze); object-fit: cover; }
.testimonial-quote { position: relative; display: grid; gap: var(--s2); min-width: 0; margin: 0; padding-top: var(--s4); color: var(--ink); }
.testimonial-quote-mark { position: absolute; top: -.55rem; left: 0; color: var(--gold); font: 400 3rem/1 var(--font-heading); }
.testimonial-quote p { position: relative; max-width: 58ch; font: 400 1.05rem/1.5 var(--font-heading); }
.testimonial-quote cite { margin-top: var(--s2); color: var(--bronze); font: 500 .75rem/1.4 var(--font-body); font-style: normal; letter-spacing: .12em; text-transform: uppercase; }
.testimonials-controls { display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; border-top: 1px solid var(--line); }
.testimonial-control { display: grid; place-items: center; width: 44px; min-height: 44px; padding: 0; border: 0; background: var(--ink); color: var(--pearl); transition: color .2s, background-color .2s; }
.testimonial-control span { font-size: 1.25rem; }
.testimonial-control:hover:not(:disabled) { background: var(--bronze); }
.testimonial-control:disabled { background: var(--line); color: var(--muted); cursor: default; }
.testimonials-position { justify-self: center; color: var(--muted); font-size: .75rem; font-variant-numeric: tabular-nums; letter-spacing: .12em; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.about-location { display: grid; background: var(--ink); color: var(--pearl); }
.about-location-details { padding: var(--s12) var(--gutter); }
.about-location-details > p:not(.eyebrow) { margin-top: var(--s6); color: #ded8d2; }
.about-location address { display: grid; gap: var(--s1); margin-top: var(--s8); padding-top: var(--s6); border-top: 1px solid #ffffff26; color: var(--pearl); font-style: normal; }
.about-location address strong { margin-bottom: var(--s2); color: var(--gold); font-weight: 500; }
.about-location-actions { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s4); margin-top: var(--s8); }
.about-location-actions .text-link { color: var(--pearl); }
.about-map-frame { position: relative; min-height: 28rem; overflow: hidden; background: var(--ink); border-top: 1px solid #ffffff26; }
.about-map { position: absolute; inset: 0; }
.about-map-status, .about-map-message { position: absolute; z-index: 2; inset: auto var(--s6) var(--s6); padding: var(--s3) var(--s4); background: #1c1c1de8; color: var(--pearl); font-size: .8125rem; }
.about-map-frame.is-ready .about-map-status { display: none; }
.about-map-placeholder { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; background-color: #262426; background-image: linear-gradient(32deg, transparent 46%, #62574f52 47%, #62574f52 49%, transparent 50%), linear-gradient(112deg, transparent 40%, #c2986c24 41%, #c2986c24 44%, transparent 45%); }
.about-map-placeholder::before, .about-map-placeholder::after { content: ""; position: absolute; width: 140%; height: 1px; background: #f0eeeb1f; transform: rotate(-18deg); }
.about-map-placeholder::after { transform: rotate(24deg) translateY(8rem); }
.about-map-placeholder p { position: absolute; top: var(--s6); left: var(--s6); display: grid; gap: var(--s1); padding: var(--s3) var(--s4); background: #1c1c1de8; color: var(--pearl); font-size: .875rem; }
.about-map-placeholder p span { color: var(--gold); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.about-map-marker { position: relative; display: block; width: 2rem; height: 2rem; border: 2px solid var(--ink); border-radius: 50% 50% 50% 0; background: var(--gold); box-shadow: 0 4px 16px #0008; transform: rotate(-45deg); }
.about-map-marker::after { content: ""; position: absolute; inset: .55rem; border-radius: 50%; background: var(--ink); }
.about-map-marker-static { z-index: 1; }
.about-map-frame .mapboxgl-ctrl-group { overflow: hidden; border: 1px solid #c2986c66; border-radius: 0; background: var(--ink); box-shadow: none; }
.about-map-frame .mapboxgl-ctrl-group button { filter: invert(1); }
.about-map-frame .mapboxgl-ctrl-attrib { background: #1c1c1dcc; color: var(--pearl); }
.about-map-frame .mapboxgl-ctrl-attrib a { color: var(--pearl); }
@media (max-width: 74.999rem) { .menu-ready .sidebar { display: none; } .menu-ready .mobile-header { position: sticky; top: 0; z-index: 20; } }
@media (min-width: 40rem) {
    .service-grid, .services-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .services-hero-actions .button { width: auto; }
    .page-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 48rem) {
    .hero { grid-template-columns: 1fr 1fr; }
    .hero-copy { padding-block: var(--s16); }
    .hero-visual img { position: absolute; inset: 0; min-height: 100%; }
    .section { padding-block: var(--s16); }
    .section-heading { grid-template-columns: 1.3fr 1fr; align-items: end; }
    .about, .contact { grid-template-columns: 1fr 1fr; }
    .gift { grid-template-columns: .9fr 1.1fr; align-items: center; }
    .pricing-hero { padding-block: var(--s16); }
    .pricing-content { padding-block: var(--s16); }
    .price-table { table-layout: fixed; width: 100%; }
    .price-table thead { position: static; width: auto; height: auto; overflow: visible; clip: auto; clip-path: none; white-space: normal; }
    .price-table thead tr { background: var(--ink); color: var(--pearl); }
    .price-table tbody { display: table-row-group; }
    .price-table tr { display: table-row; }
    .price-table tbody tr { display: table-row; padding: 0; background: transparent; border: 0; }
    .price-table tbody tr:nth-child(even) { background: #ffffff73; }
    .price-table th, .price-table td, .price-table th[scope="row"] { display: table-cell; padding: var(--s4); border-bottom: 1px solid var(--line); text-align: left; }
    .price-table thead th { padding: var(--s3) var(--s4); font-size: .69rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
    .price-table thead th:nth-child(2), .price-table .price-cell { width: 20%; }
    .price-table thead th:nth-child(3), .price-table .description-cell { width: 30%; }
    .price-table .mobile-cell-label { display: none; }
    .price-cell { white-space: nowrap; }
    .pricing-contact { grid-template-columns: 1fr 1fr; align-items: end; padding: var(--s12); }
    .services-hero { padding-block: var(--s16); }
    .services-catalogue { padding-block: var(--s16); }
    .services-section-heading { grid-template-columns: 1.3fr 1fr; align-items: end; }
    .service-feature-content { padding: var(--s8); }
    .service-process { padding-block: var(--s16); }
    .service-process > header { display: grid; grid-template-columns: 1.3fr 1fr; }
    .service-process ol { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--s12); }
    .service-process li { grid-template-columns: 1fr; align-content: start; padding: var(--s6); border-top: 1px solid var(--gold); }
    .services-contact { grid-template-columns: 1fr 1fr; align-items: end; margin-block: var(--s16); padding: var(--s12); }
    .services-contact-actions { flex-direction: row; align-items: center; }
    .service-detail-hero { grid-template-columns: 1fr 1fr; min-height: 36rem; }
    .service-detail-copy { display: grid; align-content: center; padding-block: var(--s16); }
    .service-detail-copy .button { width: fit-content; }
    .service-detail-media img { aspect-ratio: auto; }
    .service-detail-content { padding-block: var(--s16); }
    .service-overview { grid-template-columns: 1fr 1fr; }
    .service-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-option { padding: var(--s8); }
    .service-option:nth-child(odd) { padding-left: 0; padding-right: var(--s8); border-right: 1px solid var(--line); }
    .service-option-detail-header { grid-template-columns: minmax(0, 1fr) auto; align-items: end; padding-block: var(--s16); }
    .service-option-detail-header .button { width: fit-content; }
    .service-option-detail-content { padding-block: var(--s16); }
    .service-detail-cta { grid-template-columns: 1fr 1fr; align-items: end; margin-bottom: var(--s16); padding: var(--s12); }
    .service-detail-actions { flex-direction: row; align-items: center; }
    .service-pagination { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .service-pagination a { padding-block: var(--s8); }
    .service-pagination a + a { border-top: 0; border-left: 1px solid var(--line); text-align: right; }
    .articles-hero { padding-block: var(--s16); }
    .articles-content { padding-block: var(--s16); }
    .articles-heading { grid-template-columns: 1.3fr 1fr; align-items: end; }
    .article-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s8); }
    .article-detail-header { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 32rem; }
    .article-detail-heading { display: grid; align-content: center; padding-block: var(--s16); }
    .article-detail-media { aspect-ratio: auto; }
    .article-detail-layout { padding-block: var(--s16); }
    .page-gallery { padding-block: var(--s16); }
    .page-gallery-header { grid-template-columns: 1.3fr 1fr; align-items: end; }
    .article-detail-pagination { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .article-detail-pagination > a { padding-block: var(--s8); }
    .article-detail-pagination > a + a { border-top: 0; border-left: 1px solid var(--line); text-align: right; }
    .article-detail-pagination > span + a { grid-column: 2; text-align: right; }
    .about-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 36rem; }
    .about-hero-copy { display: grid; align-content: center; padding-block: var(--s16); }
    .about-hero-media img { aspect-ratio: auto; }
    .about-owner { grid-template-columns: .8fr 1.2fr; gap: var(--s12); padding-block: var(--s16); }
    .about-owner-copy blockquote { padding: var(--s8); font-size: 1.55rem; }
    .about-testimonials { padding-block: var(--s12); }
    .about-testimonials-heading { grid-template-columns: 1.3fr 1fr; align-items: end; margin-bottom: var(--s8); }
    .testimonial-slide { grid-template-columns: 5rem minmax(0, 1fr); gap: var(--s6); padding: var(--s6); }
    .testimonial-portrait { width: 5rem; height: 5rem; }
    .testimonial-quote p { font-size: 1.1rem; }
    .about-location { grid-template-columns: minmax(22rem, .8fr) minmax(0, 1.2fr); }
    .about-location-details { display: grid; align-content: center; padding-block: var(--s16); }
    .about-location-actions { flex-direction: row; align-items: center; }
    .about-map-frame { min-height: 42rem; border-top: 0; border-left: 1px solid #ffffff26; }
}
@media (min-width: 75rem) {
    html { scroll-padding-top: 2rem; }
    .mobile-header { display: none; }
    .sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar); overflow-y: auto; }
    .sidebar-inner { min-height: 100dvh; }
    .page-shell { margin-left: var(--sidebar); }
    .hero-copy { padding-block: clamp(4rem, 6vw, 6rem); }
    .hero { min-height: 730px; }
    .hero-visual img { object-position: 52% center; }
}
@media (min-width: 100rem) { .service-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }
