:root {
    --forest: #102c20;
    --deep: #0a1c15;
    --paper: #f7f5ed;
    --gold: #bea775;
    --gold-light: #e5d1a2;
    --text: #1b3528;
    --muted: #74816b;
    --line: #d9dece;
    --sans: Arial, Helvetica, sans-serif;
    --serif: Georgia, 'Times New Roman', serif;
}
* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 280px;
    color: var(--text);
    background: radial-gradient(ellipse at 50% 10%, #30513b55, transparent 65%), linear-gradient(125deg, #0b1e16, #173528 50%, #0a1b15);
    font: 14px/1.6 var(--sans);
    -webkit-font-smoothing: antialiased;
}
body::before {
    content: '';
    position: fixed;
    width: 820px;
    height: 820px;
    top: 50px;
    left: calc(50% - 410px);
    border: 1px solid #c7ae7220;
    border-radius: 50%;
    pointer-events: none;
    box-shadow: 0 0 0 90px #bca16b05, 0 0 0 180px #bca16b04;
}
.ambient-grid {
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image: linear-gradient(#c6b58a09 1px, transparent 1px), linear-gradient(90deg, #c6b58a09 1px, transparent 1px);
    background-size: 95px 95px;
    mask-image: radial-gradient(ellipse, #0008, transparent 75%);
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { cursor: pointer; color: inherit; border: 0; background: none; }
button, a { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button, a, input { transition: background .25s, color .25s, border-color .25s, transform .25s, box-shadow .25s; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #b0965b; outline-offset: 5px; }
svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
img { display: block; max-width: 100%; }
h1, h2, p { margin: 0; }
.skip-link { position: fixed; top: -100px; left: 15px; padding: 12px 18px; background: var(--paper); z-index: 20; }
.skip-link:focus { top: 12px; }
.card-shell { position: relative; width: min(476px, calc(100% - 40px)); margin: 0 auto; padding: 32px 0 25px; }
.page-wordmark { display: flex; justify-content: space-between; gap: 20px; color: #cbb78a; font-size: 9px; letter-spacing: 1.8px; padding: 0 3px 16px; }
.business-card { background: var(--paper); border: 1px solid #c7b27970; border-radius: 16px; box-shadow: 0 24px 95px #0005, 0 0 50px #bba06d06; overflow: hidden; animation: cardArrive .75s ease-out both; }
.card-cover { position: relative; height: 156px; background: #152e20; }
.cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; filter: saturate(.5); }
.card-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #082015de, #10281c28 70%, #081d16a1); }
.cover-label { position: absolute; z-index: 1; top: 24px; left: 24px; font-size: 8px; letter-spacing: 1.6px; color: #e4d5b1; padding-top: 7px; }
.cover-tools { position: absolute; z-index: 2; top: 16px; right: 17px; display: flex; gap: 8px; }
.icon-button { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid #d6c29a60; border-radius: 50%; color: #ebdbb8; background: #0a22167a; backdrop-filter: blur(8px); }
.icon-button svg { width: 16px; height: 16px; }
.icon-button:hover { background: #d2bd8b; color: #0a2519; transform: translateY(-2px); }
.brand-mark { position: absolute; z-index: 3; left: 50%; bottom: -40px; transform: translateX(-50%); background: linear-gradient(140deg, #1e402d, #0d261b); border: 1px solid #cbb17b; box-shadow: 0 0 0 6px var(--paper), 0 9px 20px #071c1722; border-radius: 50%; width: 122px; height: 122px; display: flex; align-items: center; justify-content: center; }
.brand-mark img { width: 102px; height: auto; }
.card-content { padding: 63px 32px 22px; background-image: radial-gradient(ellipse at 50% 0, #ece5d355, transparent 50%); }
.company-heading { text-align: center; }
.eyebrow { color: #947c4d; font-size: 8px; letter-spacing: 1.7px; font-weight: 600; }
.company-heading h1 { font: 30px/1.25 var(--serif); letter-spacing: -.8px; margin: 10px -5px 7px; }
.company-heading h1>span { font: 11px var(--sans); letter-spacing: 1px; vertical-align: baseline; margin-left: 3px; }
.company-description { font-size: 12px; color: #73826b; }
.location { display: flex; justify-content: center; align-items: center; gap: 6px; font-size: 9px; color: #7e8a72; margin-top: 13px; white-space: nowrap; }
.location svg { width: 11px; height: 11px; color: #9f8956; }
.location>span { color: #b4aa85; padding: 0 1px; }
.quick-links { display: grid; grid-template-columns: repeat(3, 1fr); margin: 23px 0; }
.quick-links>a { font-size: 10px; display: flex; flex-direction: column; align-items: center; gap: 7px; color: #5e7155; }
.quick-links>a>span { display: grid; place-items: center; width: 42px; height: 42px; background: #edefe3; border: 1px solid #d6ddc9; border-radius: 50%; transition: inherit; }
.quick-links svg { width: 18px; height: 18px; }
.quick-links>a:hover { color: #927344; }
.quick-links>a:hover>span { background: #dfe6d4; transform: translateY(-3px); border-color: #bba16d; }
.save-contact { display: flex; align-items: center; gap: 14px; background: linear-gradient(115deg, #d9c18a, #c3a974); color: #183424; border: 1px solid #bc9f62; border-radius: 7px; min-height: 63px; padding: 13px 19px; box-shadow: 0 5px 18px #7d6c3820; }
.save-contact>svg { width: 24px; height: 24px; }
.save-contact strong { display: block; font-size: 13px; font-weight: 500; }
.save-contact small { display: block; font-size: 10px; color: #5b6544; margin-top: 1px; }
.save-contact .download-arrow { margin-left: auto; font-size: 23px; font-weight: 300; }
.save-contact:hover { transform: translateY(-2px); box-shadow: 0 7px 22px #7d6c3835; background: #e0cb9a; }
.connect-section { margin-top: 27px; }
.section-label { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 12px; }
.section-label h2 { font: 600 9px var(--sans); letter-spacing: 1.5px; color: #7b7d60; }
.section-label>span { font-size: 7px; letter-spacing: 1.3px; color: #989b83; }
.social-links { display: flex; flex-direction: column; gap: 8px; }
.network { display: flex; align-items: center; gap: 13px; min-height: 65px; padding: 11px 14px; border: 1px solid #d8dfce; border-radius: 7px; background: #fdfcf7a8; }
.network:hover { border-color: #b7a06b; background: #eeeee2; transform: translateX(3px); }
.network-icon { width: 38px; height: 38px; border: 1px solid #ccd9c4; border-radius: 11px; background: #e8eee0; display: grid; place-items: center; color: #285e38; }
.network-icon>svg { width: 20px; height: 20px; }
.instagram .network-icon { background: #f0e8e2; color: #9b715a; border-color: #decfc0; }
.facebook .network-icon { background: #e5ebe4; color: #486955; border-color: #ced9ca; }
.network-copy { flex: 1; }
.network-copy strong { display: block; font-size: 13px; font-weight: 500; }
.network-copy small { display: block; font-size: 10px; color: #7c876e; margin-top: 1px; }
.network-arrow { width: 15px; height: 15px; color: #a28a55; }
.appointment-card { padding: 18px 19px 16px; background: radial-gradient(ellipse at top right, #46633e2b, transparent 80%), #123021; color: #e3d1a4; border: 1px solid #a7945e4d; border-radius: 7px; margin-top: 23px; }
.appointment-intro { display: flex; align-items: center; gap: 8px; font-size: 8px; letter-spacing: 1px; color: #adbc9c; margin-bottom: 10px; }
.appointment-intro>svg { width: 14px; height: 14px; color: #c4b17d; }
.appointment-card>a { display: flex; justify-content: space-between; align-items: center; gap: 10px; font: 21px/1.3 var(--serif); }
.appointment-card>a>svg { width: 18px; height: 18px; transition: transform .25s; }
.appointment-card>a:hover { color: #fff0cc; }
.appointment-card>a:hover>svg { transform: translate(2px, -2px); }
.appointment-card>p { font-size: 10px; color: #a8b896; margin-top: 7px; }
.services-details { margin-top: 20px; border-bottom: 1px solid var(--line); }
.services-details>summary { list-style: none; cursor: pointer; padding: 0 0 16px; display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #778568; }
.services-details>summary::-webkit-details-marker { display: none; }
.services-details>summary>span { font-size: 19px; color: #a48a54; transition: transform .25s; }
.services-details[open]>summary>span { transform: rotate(45deg); }
.service-links { padding-bottom: 14px; }
.service-links>a { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; font-size: 11px; border-top: 1px solid #dde2d2; color: #536e49; }
.service-links>a>span { color: #a38851; font-size: 15px; }
.service-links>a:hover { color: #a38851; }
.contact-details { text-align: center; font-style: normal; padding-top: 18px; }
.contact-details>a { display: block; width: fit-content; margin: 0 auto; font-size: 14px; color: #3a5432; }
.contact-details>a.email-address { font-size: 11px; margin-top: 6px; color: #849074; overflow-wrap: anywhere; }
.contact-details>a:hover { color: #a48951; }
.card-footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 3px 0; font-size: 8px; letter-spacing: 1.2px; color: #9baf92; }
.card-footer>button { display: flex; gap: 6px; align-items: center; color: #d5c193; padding: 3px 0; font-size: 10px; letter-spacing: 0; }
.card-footer svg { width: 12px; height: 12px; }
.card-footer>button:hover { color: #fff1cd; }
/* Native dialogs keep focus inside and support Escape. */
 dialog { border: 1px solid #c4b27e; background: var(--paper); color: var(--text); padding: 38px 30px 27px; border-radius: 12px; width: min(390px, calc(100% - 30px)); max-height: calc(100dvh - 35px); overflow: auto; text-align: center; box-shadow: 0 25px 100px #0005; }
 dialog::backdrop { background: #06160edb; backdrop-filter: blur(7px); }
 dialog .eyebrow { font-size: 9px; }
 dialog h2 { font: 31px/1.15 var(--serif); letter-spacing: -.6px; margin: 12px 0; }
 dialog>p:not(.eyebrow) { font-size: 12px; color: #7a896c; }
.close-dialog { position: absolute; right: 10px; top: 10px; padding: 5px; color: #8e7847; }
.close-dialog svg { width: 18px; height: 18px; }
.qr-image { width: min(100%, 250px); height: auto; margin: 22px auto 13px; border: 1px solid #dedfcf; }
 dialog>p.qr-address { font-size: 10px; overflow-wrap: anywhere; }
.dialog-primary { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; background: var(--forest); color: #e8d5a4; border-radius: 5px; padding: 13px; font-size: 12px; margin-top: 22px; }
.dialog-primary>svg { width: 17px; height: 17px; }
.dialog-primary:hover { background: #214b31; }
#share-dialog>label { display: block; text-align: left; font-size: 10px; color: #758568; margin: 24px 0 8px; }
#share-url { width: 100%; border: 1px solid #cbd5c1; background: #fffdf7; color: #546e48; padding: 12px; border-radius: 4px; font-size: 11px; }
#share-dialog .dialog-primary { margin-top: 13px; }
.share-whatsapp { display: flex; justify-content: center; align-items: center; gap: 8px; font-size: 11px; color: #758568; margin-top: 22px; }
.share-whatsapp>svg { width: 17px; height: 17px; }
.toast { position: fixed; z-index: 30; left: 50%; bottom: max(22px, env(safe-area-inset-bottom)); transform: translate(-50%, 15px); background: #d2bd88; color: #102b1c; border: 1px solid #e0cca1; box-shadow: 0 8px 30px #0003; border-radius: 6px; padding: 12px 20px; font-size: 12px; text-align: center; max-width: calc(100% - 32px); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.toast.visible { opacity: 1; transform: translate(-50%, 0); }
@keyframes cardArrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (min-width: 1200px) { .card-shell { padding-top: 38px; } }
@media (max-width: 520px) {
    .card-shell { width: calc(100% - 28px); padding-top: 18px; padding-bottom: max(18px, env(safe-area-inset-bottom)); }
    .page-wordmark { font-size: 7px; letter-spacing: 1.3px; padding: 0 3px 13px; }
    .business-card { border-radius: 13px; }
    .card-cover { height: 145px; }
    .cover-label { left: 20px; top: 22px; font-size: 7px; letter-spacing: 1.4px; }
    .cover-tools { right: 14px; top: 15px; }
    .icon-button { width: 31px; height: 31px; }
    .brand-mark { width: 116px; height: 116px; }
    .brand-mark img { width: 98px; }
    .card-content { padding: 62px 23px 22px; }
    .company-heading h1 { font-size: 28px; }
    .company-heading h1>span { font-size: 9px; }
    .company-description { font-size: 11px; }
    .company-heading .eyebrow { font-size: 7px; letter-spacing: 1.5px; }
    .location { font-size: 8px; gap: 4px; }
    .quick-links { margin: 23px 0; }
    .network { padding-inline: 12px; min-height: 64px; }
    .network-copy small { font-size: 10px; }
    .appointment-card { padding: 17px 16px; }
    .appointment-card>a { font-size: 20px; }
    .contact-details>a.email-address { font-size: 10px; }
    .card-footer { font-size: 7px; letter-spacing: 1px; }
}
@media (max-width: 359px) {
    .card-shell { width: calc(100% - 20px); }
    .card-content { padding-inline: 18px; }
    .company-heading h1 { font-size: 24px; }
    .location { flex-wrap: wrap; font-size: 8px; white-space: normal; }
    .cover-label { font-size: 6px; letter-spacing: 1.1px; left: 16px; }
    .cover-tools { gap: 5px; right: 12px; }
    .icon-button { width: 29px; height: 29px; }
    .appointment-card>a { font-size: 18px; }
    .network-copy strong { font-size: 12px; }
    .network-copy small { font-size: 9px; }
    .network { gap: 10px; padding-inline: 10px; }
    .contact-details>a.email-address { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
@media print {
    body { background: white; }
    body::before, .ambient-grid, .page-wordmark, .cover-tools, .card-footer, dialog, .toast { display: none; }
    .card-shell { width: 450px; margin: 0 auto; padding: 0; }
    .business-card { box-shadow: none; break-inside: avoid; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

#share-dialog .share-feedback:not(:empty){font-size:11px;color:#697a55;border:1px solid #d1d8c1;background:#ecefdf;padding:10px;margin-top:15px;}
