/* Keep longer translations readable without changing the established design. */
html { scroll-padding-top: 100px; }
.hero-copy,.section-head>*,.story-copy,.contact>*,.service-card { min-width:0; }
.hero h1 { overflow-wrap:break-word; line-height:1.05; }
.service-card h3 { line-height:1.2; overflow-wrap:break-word; }
.service-card p,.steps p,.mv-promise p { font-size:1rem; }
.service-card span,form label,.form-note,.footer>div,.folder-tabs button,.project-card em { font-size:.875rem; }
.btn { padding-block:12px; text-align:center; }
.folder-dialog .folder-head h2 { line-height:1.1; }
.folder-dialog .folder-head p { line-height:1.5; }
.folder-tabs { overflow-x:auto; }
.folder-tabs button { flex-shrink:0; }
.quote-trap,.review-trap { position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important; }
.contact-data a:focus-visible,button:focus-visible,a:focus-visible { outline:2px solid var(--gold);outline-offset:4px; }
@media(max-width:720px) {
  .hero h1 { font-size:clamp(2.15rem,8.8vw,3.125rem); }
  .nav-wrap { gap:12px; padding-inline:16px; }
  .nav-wrap.open nav { top:100%; }
  .service-card { padding-inline:14px; }
  .section-head h2,.story h2,.contact h2 { font-size:clamp(2rem,9vw,3rem);line-height:1.1;overflow-wrap:break-word; }
  .folder-dialog .dialog-hero h2 { font-size:clamp(1.8rem,7vw,2.5rem);line-height:1.1; }
  #serviceDialog .folder-head { padding-left:20px;padding-right:62px; }
  #serviceDialog .folder-head h2 { font-size:clamp(1.6rem,6vw,2rem); }
  .footer { gap:24px; }
  .footer>div { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.reveal,.folder-panel{animation:none!important} }

/* Use the same circular brand artwork as the footer, sized for the header. */
.nav-wrap .header-brand-badge { display:block; width:58px; height:58px; flex:0 0 58px; border-radius:50%; overflow:hidden; box-shadow:0 0 0 1px rgba(217,164,89,.58); }
.nav-wrap .header-brand-logo { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1.035); }
@media(max-width:720px) { .nav-wrap .header-brand-badge { width:50px; height:50px; flex-basis:50px; } }

/* Show review cards only when approved reviews are available. */
.review-grid:empty { display:none; }

.review-platform-links { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.google-live-reviews:not([hidden]) { margin:24px 0; max-width:400px; }
.google-live-reviews gmp-place-details { display:block; width:100%; min-height:300px; border:0; color-scheme:light; }
.review-platform-links .btn { max-width:100%; white-space:normal; text-align:center; }
@media(max-width:600px) { .review-platform-links .btn { width:100%; padding:12px 16px; } }

/* Compact reviews: the complete, unchanged quote opens on demand. */
.review-grid { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:16px; }
.review-grid .approved-review { min-width:0; padding:20px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.025); }
.review-author { display:grid; gap:3px; overflow-wrap:anywhere; }
.review-author strong { font-size:1rem; line-height:1.4; }
.review-author>span { color:var(--muted); font-size:.875rem; }
.review-stars { color:var(--gold); font-size:1rem; letter-spacing:2px; margin-top:4px; }
.review-details { margin-top:12px; }
.review-details summary,.google-review-disclosure summary { cursor:pointer; list-style:none; border-radius:4px; }
.review-details summary::-webkit-details-marker,.google-review-disclosure summary::-webkit-details-marker { display:none; }
.review-details summary:focus-visible,.google-review-disclosure summary:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.review-preview { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; font-size:1rem; line-height:1.6; overflow-wrap:anywhere; }
.review-toggle-label { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; margin-top:8px; color:var(--gold); font-size:.875rem; font-weight:700; line-height:1.4; }
.review-toggle-icon { display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; border:1px solid var(--line); border-radius:50%; font-size:20px; font-weight:400; transition:transform .2s; }
.review-label-close { display:none; }
.review-details[open] .review-preview,.review-details[open] .review-label-open,.google-review-disclosure[open] .review-label-open { display:none; }
.review-details[open] .review-label-close,.google-review-disclosure[open] .review-label-close { display:inline; }
.review-details[open] .review-toggle-icon,.google-review-disclosure[open] .review-toggle-icon { transform:rotate(45deg); }
.review-grid .review-full { margin:8px 0 0; padding:0; border:0; font:inherit; font-size:1rem; line-height:1.7; white-space:pre-line; overflow-wrap:anywhere; }
.review-grid .approved-review footer { margin-top:10px; font:inherit; font-size:.875rem; line-height:1.5; }
.review-grid .approved-review footer:empty { display:none; }
.review-grid .approved-review footer a { display:inline-block; padding-block:4px; color:var(--muted); text-underline-offset:3px; }
.review-grid .approved-review footer a:hover { color:var(--gold); }
.google-live-reviews:not([hidden]) { max-width:100%; margin:16px 0; }
.google-review-disclosure { border:1px solid var(--line); border-radius:12px; padding:16px 20px; background:rgba(255,255,255,.025); }
.google-review-disclosure summary { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.google-review-disclosure .review-toggle-label { margin-top:0; }
.google-review-disclosure gmp-place-details { max-width:400px; margin-top:16px; }
@media(max-width:1000px) { .review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .review-grid { grid-template-columns:1fr; gap:12px; } .review-grid .approved-review { padding:16px; } }
@media(prefers-reduced-motion:reduce) { .review-toggle-icon { transition:none; } }

/* Clear legal information without interrupting the quote flow. */
.privacy-note{font-size:14px;line-height:1.65;color:#e4d8c4;margin:8px 0 12px}.privacy-note a,.legal-link{text-decoration:underline;text-underline-offset:4px;color:#f2c982}.privacy-note a:hover,.legal-link:hover{color:#fff}.review-consent{grid-column:1/-1;display:flex!important;align-items:flex-start;gap:12px;font-size:14px!important;line-height:1.6}.review-consent input[type=checkbox]{width:19px;height:19px;min-width:19px;margin:4px 0 0;accent-color:#ce9d51}.review-consent span{flex:1}#reviewForm>.privacy-note{grid-column:1/-1}.business-address{line-height:1.6;margin:4px 0!important}.contact-data>small{font-size:13px;color:#ddd0ba}.footer>div>a{line-height:1.6}.footer>div>small{line-height:1.5;max-width:240px}.folder-tabs button[hidden]{display:none!important}.story-image .story-brand-badge{width:180px;height:180px;border:0;border-radius:50%;padding:0;overflow:hidden;display:block;background:transparent;box-shadow:0 12px 30px rgba(0,0,0,.24)}.story-brand-logo{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.035) translateY(1%)}

/* Keep the about section compact and leave its photo unobstructed. */
.story-image{min-height:370px}
.story-copy{padding:42px 48px}
@media(max-width:720px){.story-image{min-height:260px}.story-copy{padding:36px 22px}}
