/* Public site only: warm accents, readable reviews and responsive interactions. */
.site-body { color: #412929; }
.site-body :where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid #8c4e38; outline-offset: 4px; }
.site-body [hidden] { display: none !important; }
.site-body main { min-width: 0; }
.site-body :where(#about, #reviews, #faq, #contacts) { scroll-margin-top: 125px; }
.site-body :where(h1, h2, h3, .site-rich-text, .site-review-text) { overflow-wrap: anywhere; }
.site-body :where(.about, .why-choose-us, .faq, .contacts) h2 { font-size: clamp(1.8rem, 3.3vw, 3.5rem); line-height: 1.15; }
.site-skip-link { position: fixed; top: 8px; left: 16px; z-index: 2000; padding: 12px 20px; background: #fff; transform: translateY(-160%); }
.site-skip-link:focus { transform: none; }
.site-body .sliding-link { width: auto; min-width: 30px; min-height: 24px; }
.site-body .sliding-link a { display: block; margin-left: 0; min-height: 24px; }
.site-body .sliding-link .text-default { position: static; display: block; }
.site-body .company-name img { max-width: min(80vw, 480px); margin-inline: auto; }
.site-body .hero a { max-width: calc(100vw - 48px); }
.site-body .site-rich-text :where(p, ul, ol) { margin-block: 12px; }
.site-body .site-rich-text :where(img, video, iframe) { max-width: 100%; }
.site-body .site-rich-text img { height: auto; }
/* Layered light and fine sparkles add depth without animation or content overlays. */
.site-body .why-choose-us {
    --why-sparkle: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%3E%3Cpath%20d%3D%22M10%200C11%207%2013%209%2020%2010C13%2011%2011%2013%2010%2020C9%2013%207%2011%200%2010C7%209%209%207%2010%200Z%22%20fill%3D%22%23fff9e9%22%20fill-opacity%3D%22.55%22%2F%3E%3C%2Fsvg%3E");
    background-image:
        var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle), var(--why-sparkle),
        url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201440%20760%22%20preserveAspectRatio%3D%22none%22%20fill%3D%22none%22%3E%3Cg%20stroke%3D%22%23fff9e9%22%20stroke-opacity%3D%22.27%22%20stroke-width%3D%221.1%22%3E%3Cpath%20d%3D%22M-80%20-84C260%20-34%20310%20266%20710%20336S1170%20476%201520%20756%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M-80%20-62C260%20-12%20310%20288%20710%20358S1170%20498%201520%20778%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M-80%20-40C260%2010%20310%20310%20710%20380S1170%20520%201520%20800%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M-80%20-18C260%2032%20310%20332%20710%20402S1170%20542%201520%20822%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3Cpath%20d%3D%22M-80%204C260%2054%20310%20354%20710%20424S1170%20564%201520%20844%22%20vector-effect%3D%22non-scaling-stroke%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"),
        radial-gradient(ellipse at 12% 12%, rgba(255, 248, 224, .22), transparent 32%),
        radial-gradient(ellipse at 51% 50%, rgba(255, 244, 214, .13), transparent 35%),
        radial-gradient(ellipse at 90% 88%, rgba(255, 248, 224, .20), transparent 30%),
        radial-gradient(ellipse at 95% 12%, rgba(115, 54, 35, .08), transparent 60%),
        linear-gradient(135deg, rgba(255, 246, 224, .12), transparent 48%, rgba(115, 54, 35, .09));
    background-size: 7px 7px, 12px 12px, 5px 5px, 8px 8px, 6px 6px, 10px 10px, 5px 5px, 7px 7px, 9px 9px, 5px 5px, 14px 14px, 6px 6px, 8px 8px, 5px 5px, 10px 10px, 6px 6px, 8px 8px, 5px 5px, 12px 12px, 6px 6px, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
    background-position: 6% 5%, 11% 12%, 16% 21%, 20% 12%, 24% 33%, 29% 29%, 33% 41%, 38% 33%, 42% 49%, 48% 42%, 52% 50%, 58% 61%, 62% 53%, 67% 68%, 74% 72%, 79% 64%, 83% 82%, 87% 75%, 91% 89%, 96% 94%, center, center, center, center, center, center;
    background-repeat: no-repeat;
    box-shadow: inset 0 24px 48px rgba(255, 245, 222, .08), inset 0 -24px 48px rgba(115, 54, 35, .05);
}
.site-body .form-container { border-radius: 20px; gap: 24px; }
.site-form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.site-form-security { margin: 16px 0; min-width: 0; }
.site-form-security [data-turnstile-status] { font-size: 13px; line-height: 1.5; color: #633726; }
.site-form-security [data-turnstile-status]:empty { display: none; }
.site-body .form-container h3 { font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.3; margin-bottom: 20px; text-transform: none; }
.site-body .form-container > div { min-width: 0; }
.site-body .form-container fieldset { min-width: 0; }
.site-body #form-response:not(:empty) { margin-bottom: 16px; padding: 16px; border-radius: 12px; background: #fff4ec; color: #412929; }
.site-body #form-response a { text-decoration: underline; }
.site-body :disabled { cursor: not-allowed; }
.site-body fieldset:disabled { opacity: .6; }
.site-body .scroll-to-top { background: #8c4e38; z-index: 80; }
.site-body .scroll-to-top:hover { background: #633726; }
.site-body .cookie-banner { max-height: 85vh; overflow-y: auto; padding: 24px clamp(20px, 7vw, 100px); }
.site-body .cookie-modal { max-width: 720px; max-height: calc(100dvh - 32px); overflow-y: auto; width: calc(100% - 32px); }
.site-body .cookie-modal-content > div:first-of-type { height: auto; max-height: 50dvh; }
.site-body .modal-buttons { flex-wrap: wrap; }
.site-cookie-settings { display: inline-block; margin-inline-start: 16px; text-decoration: underline; color: inherit; }
.site-reviews { padding: clamp(40px, 6vw, 80px) max(24px, calc((100% - 1200px) / 2)); background: #fffaf6; }
.site-reviews__heading { display: flex; justify-content: space-between; align-items: center; gap: 28px; margin-bottom: 32px; }
.site-reviews__heading > div { min-width: 0; }
.site-eyebrow { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: #86503e; margin: 0 0 12px; }
.site-reviews h2 { font-size: clamp(2rem, 3.3vw, 3.5rem); line-height: 1.15; text-transform: uppercase; margin-bottom: 12px; }
.site-reviews__intro { max-width: 680px; color: #765e54; line-height: 1.65; }
.site-button { display: inline-flex; justify-content: center; align-items: center; gap: 10px; flex-shrink: 0; min-height: 48px; padding: 12px 24px; border: 1px solid #8c4e38; border-radius: 999px; background: #8c4e38; color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s, box-shadow .2s; text-align: center; }
.site-button:hover:not(:disabled) { background: #633726; box-shadow: 0 5px 16px #63372620; }
.site-button--quiet { background: transparent; color: #633726; border-color: #ddc9be; }
.site-button--quiet:hover:not(:disabled) { background: #f5e8de; }
.site-button:disabled { opacity: .55; }
.site-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 20px; align-items: start; }
.site-review-card { min-width: 0; padding: 26px; border: 1px solid #ead9ce; border-radius: 20px; background: #fff; box-shadow: 0 6px 24px #63372605; }
.site-review-card header { display: flex; align-items: center; gap: 12px; }
.site-review-card header > div { min-width: 0; }
.site-review-card h3 { font-size: 16px; font-weight: 700; }
.site-review-card time { color: #78675f; font-size: 12px; }
.site-review-avatar { width: 44px; height: 44px; flex-shrink: 0; display: grid; place-items: center; border-radius: 50%; background: #f7e7dd; color: #8c4e38; font-weight: 700; }
.site-review-quote { margin-left: auto; font: 48px/1 Georgia, serif; color: #d9ac95; }
.site-review-stars { margin: 18px 0 12px; color: #955536; letter-spacing: .13em; }
.site-review-stars__empty { color: #998477; }
.site-review-text { white-space: pre-line; line-height: 1.75; font-size: 16px; margin: 0; }
.site-review-empty { padding: 28px; border: 1px dashed #d9bca9; border-radius: 18px; color: #765e54; }
.site-review-dialog { width: min(620px, calc(100% - 32px)); max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 28px; color: #412929; background: #fffcf9; border: 1px solid #ead9ce; border-radius: 24px; overflow-y: auto; box-shadow: 0 24px 90px #2c171b40; }
.site-review-dialog::backdrop { background: #29171099; backdrop-filter: blur(4px); }
.site-review-dialog__header { display: flex; justify-content: space-between; align-items: start; gap: 16px; }
.site-review-dialog h2 { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.25; }
.site-icon-button { flex-shrink: 0; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #e3d1c5; border-radius: 50%; font-size: 28px; line-height: 1; background: #fff; color: #633726; }
#review-description { margin: 16px 0 20px; color: #765e54; line-height: 1.6; }
.site-review-fields { min-width: 0; border: 0; padding: 0; }
.site-review-fields__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.site-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin-bottom: 18px; }
.site-field label, .site-rating legend { font-size: 14px; font-weight: 700; }
.site-field :where(input, textarea) { min-width: 0; width: 100%; background: #fff; color: #412929; border: 1px solid #d7c4b7; border-radius: 12px; padding: 12px 14px; font: inherit; font-size: 16px; }
.site-field textarea { resize: vertical; min-height: 112px; }
.site-field small, .site-rating p { font-size: 12px; color: #78675f; }
.site-rating { margin: 0 0 22px; }
.site-rating-options { display: flex; gap: 6px; margin: 8px 0; }
.site-rating-options label { position: relative; cursor: pointer; }
.site-rating-options input { position: absolute; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; }
.site-rating-options span { display: grid; place-items: center; width: 44px; height: 44px; color: #a49991; font-size: 32px; border-radius: 10px; background: #f4eee8; }
.site-rating-options .is-selected span, .site-rating-options input:checked + span { color: #955536; background: #f9e1d1; }
.site-rating-options input:focus-visible + span { outline: 3px solid #8c4e38; outline-offset: 3px; }
.site-review-dialog__footer { display: flex; justify-content: flex-end; gap: 12px; border-top: 1px solid #ead9ce; padding-top: 20px; }
.site-form-notice { background: #f5e8de; border: 1px solid #ddc9be; border-radius: 12px; padding: 14px 16px; line-height: 1.55; margin-bottom: 20px; }
.site-form-notice.is-error { background: #fff0ed; color: #8b3123; }
.site-form-notice.is-success { background: #edf5ed; color: #315c39; }
.site-review-privacy { font-size: 12px; margin-bottom: 20px; text-decoration: underline; color: #765e54; }
.site-body.site-dialog-open { overflow: hidden; }
.site-faq-item { border-bottom: 1px solid #a67f66; }
.site-faq-question { display: flex; list-style: none; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; cursor: pointer; }
.site-faq-question::-webkit-details-marker { display: none; }
.site-faq-question h3 { font-weight: 700; font-size: 16px; }
.site-faq-question > span { flex-shrink: 0; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #ffffff60; font-size: 24px; }
.site-faq-item[open] .site-faq-question > span { transform: rotate(45deg); }
.site-faq-answer { padding: 0 0 24px; line-height: 1.7; overflow-wrap: anywhere; }
.site-faq-answer :where(img, iframe) { max-width: 100%; }
.site-faq-answer a { text-decoration: underline; }
.site-body #services table { table-layout: fixed; }
.site-body #services th:last-child { width: 36%; }
.site-body #services td { overflow-wrap: anywhere; }
.site-body #services td:last-child { white-space: normal; }
.site-body #services .site-service-category { break-inside: avoid; }
.site-body #mainImage { height: auto; max-height: 70vh; object-fit: contain; background: #fff6ef; }
.site-body .site-thumbnail-button { flex: 0 0 128px; border-radius: 12px; }
.site-body .site-thumbnail-button img { width: 128px; height: 110px; object-fit: cover; }
.site-body .site-thumbnail-button[aria-pressed="true"] { outline: 3px solid #8c4e38; outline-offset: 2px; }
.site-body #thumbnailContainer { padding: 6px 36px; }
@media (min-width: 1366px) {
    .site-body .header, .site-body .top-menu { padding-inline: max(32px, calc((100vw - 1200px) / 2)); width: 100%; }
    /* Equal side columns keep navigation at the header's true centre. */
    .site-body .header { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); column-gap: 24px; }
    .site-body .header > .navigation { display: contents; }
    .site-body .logo { width: auto; margin-right: 0; justify-self: start; }
    .site-body .header nav { width: auto; max-width: 560px; margin: 0; gap: 12px; flex-wrap: wrap; justify-content: center; justify-self: center; }
    .site-body .header nav a { margin-inline: 6px; }
    .site-body .social-networks { width: auto; margin-left: 0; justify-self: end; }
    .site-body .write-button { margin-left: 12px; }
}
@media (max-width: 1365px) {
    .site-body .navigation { display: none; top: 106px; left: 0; right: 0; z-index: 100; height: auto; max-height: calc(100dvh - 106px); overflow-y: auto; padding: 24px; }
    .site-body .navigation.active { display: block; }
    .site-body .navigation .social-networks { opacity: 1; display: block; }
    .site-body .navigation nav { width: 100%; gap: 4px; }
    .site-body .navigation nav a { padding: 12px; }
    .site-body .navbar-toggle { min-width: 44px; min-height: 44px; padding: 10px; }
    .site-body .navigation .write-button { width: auto; max-width: none; min-height: 44px; }
    .site-body .header .logo { display: flex; justify-content: space-between; align-items: center; min-height: 60px; }
}
@media (max-width: 640px) {
    .site-reviews__heading { flex-direction: column; align-items: flex-start; gap: 20px; }
    .site-reviews__heading .site-button { width: 100%; }
    .site-review-dialog { padding: 20px; border-radius: 20px; }
    .site-review-fields__row { grid-template-columns: 1fr; gap: 0; }
    .site-review-dialog__footer .site-button { flex: 1; min-width: 0; padding-inline: 12px; }
    .site-body .hero { height: auto; min-height: 550px; padding-block: 48px; }
    .site-body .hero a { padding: 16px 24px; }
    .site-body #services .site-service-category { padding: 16px; }
    .site-body footer { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .site-body *, .site-body *::before, .site-body *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
