/* Motion and appearance are shared by both languages and all public pages. */
:root { color-scheme: light; --motion-ease: cubic-bezier(.2,.7,.3,1); }
:root[data-theme="dark"] {
    color-scheme: dark;
    --paper: #151c18;
    --cream: #1d2820;
    --ink: #edf0e5;
    --olive: #b5c7a0;
    --olive-dark: #cad8ba;
    --gold: #d4bd87;
    --muted: #b3beab;
    --line: #3c493b;
}
.theme-switching body,
.theme-switching :is(.site-header,.assurance-strip,.about-section,.plans-section,.plan,.brand-promise,.contact-section,.contact-form-wrap,.site-footer,.mobile-contact-bar,.mobile-menu,.field input,.field select,.field textarea) {
    transition: background-color .4s ease, color .4s ease, border-color .4s ease;
}
.theme-toggle { position:relative; border:1px solid var(--line); border-radius:50%; flex-shrink:0; width:38px; height:38px; }
.theme-toggle svg { width:18px; height:18px; position:absolute; transition:opacity .3s ease,transform .45s var(--motion-ease); }
.theme-toggle:hover { background:var(--cream); }
.theme-sun { opacity:0; transform:rotate(-75deg) scale(.5); }
[data-theme="dark"] .theme-sun { opacity:1; transform:rotate(0) scale(1); }
[data-theme="dark"] .theme-moon { opacity:0; transform:rotate(75deg) scale(.5); }
.site-header { transition:box-shadow .35s ease,background-color .35s ease; }
.site-header.is-scrolled { box-shadow:0 6px 26px #1d2e1610; }
.scroll-progress { position:absolute; bottom:-1px; left:0; height:2px; width:100%; background:var(--gold); transform:scaleX(var(--scroll-progress,0)); transform-origin:left; pointer-events:none; }
[dir="rtl"] .scroll-progress { transform-origin:right; }
.reveal { transition:opacity .85s var(--motion-ease),transform .85s var(--motion-ease),clip-path 1s var(--motion-ease),background-color .3s ease; transition-delay:var(--reveal-delay,0ms); }
.reveal.waiting { transform:translateY(34px); }
.reveal:focus-within { opacity:1; transform:none; }
.about-photo { clip-path:inset(-30px -30px -30px -30px); }
.about-photo.waiting { clip-path:inset(5% -30px 5% -30px); }
.service-icon { transition:transform .35s var(--motion-ease),color .3s ease; }
.service-item:hover .service-icon { transform:translateY(-4px) rotate(-5deg); color:var(--gold); }
.plan:hover { transform:translateY(-6px); transition-delay:0ms; }
.button:active { transform:translateY(0) scale(.98); }
.button svg { transition:translate .3s var(--motion-ease); }
.button:hover svg { translate:-4px 0; }
[dir="ltr"] .button:hover svg { translate:4px 0; }
.mobile-menu:not([hidden]) { animation:menu-entrance .24s var(--motion-ease); transform-origin:top; }
.faq-list details[open] p { animation:rise-in .35s var(--motion-ease); }
.promise-line { transition:transform 1.2s var(--motion-ease); }
.brand-promise.waiting .promise-line { transform:scaleX(0); }
@media(min-width:981px) {
    .hero-image { translate:0 var(--hero-drift,0px); scale:1.075; }
    .photo-note { translate:0 var(--note-drift,0px); }
}
@keyframes menu-entrance { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
@keyframes backdrop-entrance { from { background-color:#18201600; } to { background-color:#182016eb; } }

/* Explicit chevrons avoid the generic CTA arrow's RTL/LTR rotation. */
#image-dialog { border:1px solid var(--line); border-radius:4px; }
#image-dialog[open]::backdrop { animation:backdrop-entrance .28s ease; }
.gallery-stage { overflow:hidden; background:var(--cream); touch-action:pan-y pinch-zoom; }
#dialog-image { height:min(70svh,670px); max-height:none; background:transparent; user-select:none; -webkit-user-drag:none; }
.dialog-bottom { gap:18px; padding:16px 4px 4px; }
.gallery-control { display:flex; align-items:center; justify-content:center; gap:10px; min-width:95px; min-height:46px; padding:8px 12px; background:transparent; border:1px solid var(--line); border-radius:3px; font-size:12px; transition:background .2s,border-color .2s; }
.gallery-control:hover { background:var(--cream); border-color:var(--gold); }
#image-dialog .gallery-control svg { transform:none; width:18px; height:18px; }
.gallery-meta { text-align:center; min-width:0; }
.gallery-counter { display:block; margin-top:3px; color:var(--gold); font-size:11px; letter-spacing:2px; }
.dialog-close { border:1px solid var(--line); }
.dialog-close:hover { background:var(--cream); }
.contact-methods .business-card-link { padding-block:22px; }
.contact-methods .business-card-link>span { min-width:0; }
.contact-methods .sms-instruction { font-size:11px; line-height:2; letter-spacing:0; color:#e3e7db; }
.contact-methods .sms-instruction bdi { white-space:nowrap; color:#fff; }
.contact-methods .sms-action { color:#e4cf9a; margin-top:4px; }
.field-hint { display:block; font-size:10px; line-height:1.9; color:var(--muted); margin-top:5px; }
.preview-heading { display:flex; align-items:center; gap:12px; }
.preview-heading .success-icon { margin:0; flex-shrink:0; }
.preview-heading .eyebrow { font-size:9px; margin-bottom:3px; }
.preview-heading h3 { font-size:21px; }
.request-preview.is-stale { border-top-color:var(--gold); }
.request-preview.is-stale pre { border-inline-start:2px solid var(--gold); }
.request-preview .preview-send[hidden] { display:none; }
.request-preview .preview-edit { min-height:44px; }

[data-theme="dark"] .site-header { background:#151c18f2; border-color:var(--line); }
[data-theme="dark"] .site-header.is-scrolled { box-shadow:0 8px 30px #0004; }
[data-theme="dark"] .hero-copy::before { border-color:var(--line); }
[data-theme="dark"] :is(.hero-wordmark,.hero-signature,.assurance-inner,.assurance-inner .strip-location,.service-more,.gallery-note,.brand-promise .eyebrow,.footer-bottom) { color:var(--muted); }
[data-theme="dark"] .signature-line { background:var(--line); }
[data-theme="dark"] .assurance-strip { background:var(--cream); border-color:var(--line); }
[data-theme="dark"] :is(.service-item:hover,.service-item[open]) { background:#233023; }
[data-theme="dark"] .about-values { border-color:var(--line); }
[data-theme="dark"] .step-number { color:var(--gold); }
[data-theme="dark"] .plans-section { background:#1b251e; }
[data-theme="dark"] .plan { background:#202b23; border-color:var(--line); }
[data-theme="dark"] .plan.featured { background:#35462e; border-color:#647553; }
[data-theme="dark"] .plan-price { border-color:#55624f; }
[data-theme="dark"] .plan-ribbon { background:#d4bd87; color:#20291d; }
[data-theme="dark"] .plan li svg { color:var(--olive); }
[data-theme="dark"] .plan-summary { color:var(--muted); }
[data-theme="dark"] .featured .plan-summary { color:#dce4d3; }
[data-theme="dark"] .button { background:#b5c7a0; border-color:#b5c7a0; color:#192215; }
[data-theme="dark"] .button:hover { background:#d0ddbe; border-color:#d0ddbe; }
[data-theme="dark"] .button-outline { background:transparent; color:var(--ink); border-color:#738068; }
[data-theme="dark"] .button-outline:hover { background:#34442c; border-color:var(--olive); }
[data-theme="dark"] .featured .button { background:#e4e9d9; color:#26301f; border-color:#e4e9d9; }
[data-theme="dark"] .featured .button:hover { background:white; }
[data-theme="dark"] .photo-note { background:#35462e; }
[data-theme="dark"] .brand-promise { background:#253021; }
[data-theme="dark"] .brand-promise em { color:#c1d0af; }
[data-theme="dark"] .contact-section { background:#263222; }
[data-theme="dark"] .contact-copy h2 em { color:#e4cf9a; }
[data-theme="dark"] .contact-form-wrap { border:1px solid var(--line); }
[data-theme="dark"] :is(.field input,.field select,.field textarea) { background:#1e2921; border-color:#64705b; }
[data-theme="dark"] :is(.field input,.field textarea)::placeholder { color:#aab7a0; }
[data-theme="dark"] .validation-summary { background:#3c2923; color:#ffd1be; }
[data-theme="dark"] .field-validation-error { color:#ffb7a5; }
[data-theme="dark"] .input-validation-error { border-color:#e09b88!important; }
[data-theme="dark"] .success-icon { background:#33432b; }
[data-theme="dark"] .mobile-contact-bar>a { border-color:#68765d; }
[data-theme="dark"] .mobile-contact-bar>a:last-child { color:#192215; }
[data-theme="dark"] .skip-link { color:#192215; }
[data-theme="dark"] ::selection { background:#6b704b; color:white; }
@media(max-width:1190px) and (min-width:981px) {
    .header-inner { gap:16px; }
    .header-actions { gap:12px; }
    .desktop-nav,[lang="en"] .desktop-nav { gap:16px; }
}
@media(max-width:740px) {
    .request-preview { padding:20px 16px; }
    .preview-heading h3 { font-size:19px; }
    .header-actions { gap:8px; }
    .theme-toggle { width:34px; height:34px; }
    .dialog-bottom { gap:9px; }
    .gallery-control { min-width:65px; min-height:44px; gap:5px; padding:6px; font-size:10px; }
    .dialog-bottom p { font-size:11px; }
    .gallery-counter { font-size:10px; }
    #dialog-image { height:60svh; }
}
@media(max-width:370px) {
    .header-inner { width:calc(100% - 24px); gap:6px; }
    .header-actions { gap:6px; }
    .brand strong { font-size:10px; letter-spacing:.6px; }
}
@media(prefers-reduced-motion:reduce) {
    .hero-image,.photo-note { translate:none!important; scale:none!important; }
    .reveal.waiting,.plan:hover { transform:none; opacity:1; clip-path:none; }
    .service-item:hover .service-icon { transform:none; }
}
