@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --bubble-one:#174eaa; --bubble-two:#268cdf; --bubble-three:#80d0f5;
  /* White canvas with the logo blues in dark, medium, light order. */
  --white:#fff; --ink:#061e3f; --navy:var(--bubble-one); --blue:var(--bubble-one);
  --text:var(--ink); --line:#174eaa33; --content:1184px;
  --brand-band:linear-gradient(90deg,var(--bubble-one) 0 33.333%,var(--bubble-two) 33.333% 66.667%,var(--bubble-three) 66.667% 100%);
  --gutter:clamp(16px,4vw,48px);
  --page-inset:max(var(--gutter),calc((100% - var(--content))/2));
  --section-space:clamp(56px,7vw,88px); --header-height:92px;
  --chrome-bg:rgb(255 255 255 / 66%); --chrome-text:var(--ink);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 20px); scroll-padding-bottom:100px; }
body { margin:0; font-family:'DM Sans',Arial,sans-serif; font-size:16px; color:var(--navy); background:var(--white); -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,figure { margin:0; }
a { color:inherit; text-decoration:none; }
button,select,input,textarea { font:inherit; }
button,a,select,input { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
:where(p,h1,h2,h3,figcaption,label,summary,a,button) { overflow-wrap:anywhere; }
:where(header,main,section,article,figure,footer,form,nav) { min-width:0; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--ink); outline-offset:5px; }
.skip-link { position:fixed; left:20px; top:-80px; padding:14px 22px; background:var(--ink); color:var(--white); border-radius:8px; z-index:100; }
.skip-link:focus { top:16px; }

header {
  position:sticky; top:0; z-index:40; width:100%;
  display:grid; grid-template-columns:auto minmax(0,1fr) auto auto;
  grid-template-areas:'brand nav language quote'; align-items:center; gap:20px;
  padding:14px var(--page-inset); color:var(--chrome-text);
  background:var(--chrome-bg); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line); box-shadow:0 6px 24px #061e3f14;
  transform:translateY(0); opacity:1;
  transition:transform .22s ease,opacity .22s ease;
}
header.is-idle { transform:translateY(calc(-100% - 2px)); opacity:0; pointer-events:none; }
header:focus-within { transform:translateY(0); opacity:1; pointer-events:auto; }
.brand { display:flex; align-items:center; gap:12px; min-width:0; font-family:Manrope,Arial,sans-serif; font-size:17px; line-height:1.12; font-weight:800; letter-spacing:-.4px; }
header .brand { grid-area:brand; }
.brand-words { min-width:0; }
.brand-three,.brand-bubble,.brand-cleaning { white-space:nowrap; }
.brand small { display:block; font-size:12px; letter-spacing:2.4px; margin-top:5px; }
.brand .brand-three { color:var(--bubble-one); }
.brand .brand-bubble { color:var(--bubble-two); }
.brand .brand-cleaning { color:var(--bubble-three); }
.brand-mascot { width:56px; height:56px; flex-shrink:0; object-fit:contain; }
.language-switch { grid-area:language; justify-self:end; display:flex; gap:2px; padding:3px; border:1px solid var(--bubble-two); border-radius:10px; background:var(--bubble-one); }
.language-switch button { min-width:44px; min-height:44px; padding:8px; border:0; border-radius:7px; background:transparent; color:var(--white); font-size:12px; line-height:1.2; font-weight:600; white-space:nowrap; }
.language-switch button[aria-pressed="true"] { background:var(--white); color:var(--ink); box-shadow:0 2px 6px #061e3f33; }
.language-switch button:hover:not([aria-pressed="true"]) { background:var(--bubble-two); color:var(--ink); }
nav { grid-area:nav; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:clamp(12px,1.8vw,24px); font-size:14px; font-weight:600; }
nav a { display:flex; align-items:center; justify-content:center; min-width:0; min-height:44px; padding:10px 0; text-align:center; text-underline-offset:5px; line-height:1.4; }
nav a:hover { text-decoration:underline; }
.language-switch :focus-visible { outline-color:var(--white); }
.button { display:inline-flex; justify-content:center; align-items:center; min-width:0; min-height:52px; max-width:100%; white-space:normal; background:var(--blue); color:var(--white); padding:15px 26px; border:0; border-radius:10px; font-weight:600; font-size:15px; line-height:1.4; text-align:center; transition:background .18s,transform .18s,box-shadow .18s; }
.button:hover:not(:disabled) { background:var(--bubble-one); transform:translateY(-2px); box-shadow:0 7px 18px #061e3f33; }
.header-quote { grid-area:quote; }
.button.small { min-height:44px; padding:12px 18px; font-size:14px; }
.button:disabled { cursor:not-allowed; opacity:.55; }
.eyebrow { color:var(--bubble-one); font-size:12px; font-weight:700; letter-spacing:1.4px; line-height:1.7; }
.section-heading .eyebrow::before,.closing-copy>.eyebrow::before { content:''; display:block; width:84px; height:4px; margin-bottom:14px; border-radius:4px; background:var(--brand-band); }
em { font-style:normal; color:var(--bubble-two); }
h2 { font-family:Manrope,Arial,sans-serif; font-weight:500; font-size:clamp(30px,3.8vw,48px); letter-spacing:-.035em; line-height:1.2; text-wrap:balance; }

.hero { display:grid; grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr); gap:clamp(28px,4vw,60px); align-items:center; padding:clamp(32px,5vw,64px) var(--page-inset) var(--section-space); background:var(--white); }
.hero-copy { min-width:0; padding:12px 0; }
.hero-copy .eyebrow { color:var(--text); }
.hero h1 { max-width:15ch; font-family:Manrope,Arial,sans-serif; font-size:clamp(36px,5.2vw,72px); line-height:1.12; letter-spacing:-.045em; font-weight:600; margin:22px 0; text-wrap:balance; }
.intro { color:var(--text); font-size:17px; line-height:1.8; max-width:440px; }
.hero-areas { display:inline-block; max-width:100%; margin-top:16px; color:var(--text); font-size:13px; line-height:1.65; text-decoration:underline; text-underline-offset:4px; }
.hero-areas:hover { color:var(--blue); }
.hero-actions { display:flex; align-items:center; gap:22px; margin-top:28px; flex-wrap:wrap; }
.text-link { font-size:14px; font-weight:600; border-bottom:1px solid var(--bubble-one); padding:6px 0; }
.text-link:hover { color:var(--bubble-one); }
.hero-visual { min-width:0; width:100%; max-width:520px; justify-self:end; }
.hero-photo { position:relative; border-radius:36px; overflow:hidden; background:var(--white); box-shadow:0 16px 36px #174eaa22; }
.hero-photo>img { width:100%; height:auto; }
.photo-note { position:absolute; right:18px; top:18px; max-width:calc(100% - 36px); background:var(--white); display:flex; align-items:center; gap:16px; padding:14px 16px; border:1px solid var(--bubble-two); border-radius:12px; font-size:12px; font-weight:700; letter-spacing:.7px; line-height:1.5; box-shadow:0 8px 30px #061e3f26; }
.note-spark { font-size:25px; color:var(--blue); flex-shrink:0; }
.ribbon { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px 32px; background:var(--white); color:var(--ink); border-block:1px solid var(--line); padding:20px var(--page-inset); font-size:12px; line-height:1.6; font-weight:600; letter-spacing:1px; text-align:center; }
.ribbon b { font-size:20px; color:var(--bubble-two); }
.ribbon span { padding-bottom:8px; border-bottom:3px solid var(--bubble-one); }
.ribbon span:nth-of-type(2) { border-bottom-color:var(--bubble-two); }
.ribbon span:nth-of-type(3) { border-bottom-color:var(--bubble-three); }

.section { width:100%; padding:var(--section-space) var(--page-inset); }
.section-heading { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr); align-items:end; gap:32px; margin-bottom:36px; }
.section-heading>div,.section-heading>p { min-width:0; }
.section-heading h2 { margin-top:14px; }
.section-heading>p { color:var(--text); font-size:16px; line-height:1.8; max-width:380px; }
.services { background:var(--white); color:var(--navy); }
.services .section-heading>p,.services .selection-hint { color:var(--ink); }
.selection-hint { margin:0 0 18px; font-size:13px; line-height:1.6; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.service-card { --service-color:var(--bubble-three); --service-line:#061e3f33; position:relative; min-width:0; display:flex; flex-direction:column; padding:28px; background:var(--service-color); color:var(--ink); border:1px solid var(--service-color); border-radius:20px; cursor:pointer; transition:border-color .18s,box-shadow .18s; touch-action:manipulation; }
.service-card:nth-child(1) { --service-color:var(--bubble-one); --service-line:#ffffff55; color:var(--white); }
.service-card:nth-child(2) { --service-color:var(--bubble-two); }
.service-card:hover { border-color:var(--ink); box-shadow:0 8px 24px #061e3f26; }
.service-card.is-selected { border-color:var(--ink); box-shadow:0 0 0 3px var(--ink),0 12px 25px #061e3f33; }
.service-card .service-choice { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:1; }
.service-card:has(.service-choice:focus-visible) { outline:3px solid var(--ink); outline-offset:5px; }
.service-number { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; font-size:12px; font-weight:600; border-bottom:1px solid var(--service-line); padding-bottom:18px; }
.service-state { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:500; }
.service-state::before { content:''; width:12px; height:12px; flex-shrink:0; border:1.5px solid currentColor; border-radius:50%; }
.is-selected .service-state::before { background:currentColor; box-shadow:inset 0 0 0 3px var(--service-color); }
.service-grid h3 { min-width:0; font-size:clamp(24px,2.4vw,28px); line-height:1.25; font-family:Manrope,Arial,sans-serif; font-weight:500; letter-spacing:-.025em; margin:22px 0 16px; text-wrap:balance; }
.service-grid p { font-size:16px; line-height:1.75; flex-grow:1; }
.service-bottom { border-top:1px solid var(--service-line); padding-top:20px; margin-top:24px; display:flex; flex-direction:column; gap:12px; }
.service-bottom>span { min-width:0; font-size:12px; line-height:1.6; letter-spacing:.5px; overflow-wrap:anywhere; }
.service-bottom a { position:relative; z-index:2; max-width:100%; font-size:20px; font-weight:600; align-self:flex-start; padding:4px 0; border-bottom:1px solid transparent; }
.service-bottom a:hover { border-color:currentColor; }

.work-layout { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(28px,4vw,60px); align-items:center; }
.work-image { position:relative; min-width:0; overflow:hidden; border:5px solid var(--bubble-two); border-radius:22px; background:var(--bubble-one); box-shadow:0 12px 35px #174eaa26,0 0 0 1px var(--bubble-one); }
.work-image img { width:100%; height:auto; }
.work-label { position:absolute; inset:0; pointer-events:none; }
.work-label span { position:absolute; left:12px; top:12px; max-width:calc(50% - 24px); overflow-wrap:anywhere; background:var(--white); color:var(--ink); border-radius:6px; padding:8px 12px; font-size:12px; line-height:1.4; letter-spacing:.8px; font-weight:700; box-shadow:0 2px 12px #061e3f33; }
.work-label span:last-child { left:calc(50% + 12px); background:var(--blue); color:var(--white); }
.work-image[data-layout="stacked"] .work-label span:last-child { left:12px; top:calc(50% + 12px); }
.work-copy { min-width:0; }
.work-copy h3 { font-family:Manrope,Arial,sans-serif; font-size:clamp(26px,3vw,34px); font-weight:500; letter-spacing:-.025em; line-height:1.25; margin:15px 0; text-wrap:balance; }
.work-copy>p:not(.eyebrow) { color:var(--text); font-size:16px; line-height:1.8; }
.room-tabs { margin-top:26px; display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); gap:10px; }
.room-tabs button { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:49px; padding:12px 14px; border:1px solid var(--bubble-one); border-radius:10px; background:var(--white); color:var(--ink); font-size:14px; text-align:left; transition:background .18s,border-color .18s; }
.room-name { min-width:0; overflow-wrap:break-word; }
.room-number { font-size:12px; flex-shrink:0; }
.room-tabs button.active { background:var(--bubble-one); color:var(--white); font-weight:600; }
.room-tabs button:hover { border-color:var(--ink); }

.care { --text:var(--ink); display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:center; width:min(var(--content),calc(100% - var(--gutter) - var(--gutter))); margin:0 auto var(--section-space); background:var(--white); color:var(--ink); border:1px solid var(--bubble-three); border-radius:26px; }
.care-photo { min-width:0; padding:28px 0 28px 28px; }
.care-photo img { width:100%; height:auto; border-radius:16px; }
.care-photo figcaption { padding:14px 3px 0; color:var(--text); font-size:13px; line-height:1.6; }
.care-copy { min-width:0; padding:40px 36px; }
.care-copy .eyebrow { letter-spacing:1px; }
.care-copy h2 { margin:16px 0 20px; font-size:clamp(30px,3.4vw,40px); }
.care-copy>p:not(.eyebrow) { font-size:16px; line-height:1.8; }
.steps { margin-top:22px; }
.steps>div { display:flex; gap:14px; padding:14px 0; align-items:flex-start; border-bottom:1px solid var(--line); }
.steps>div:last-child { border:0; padding-bottom:0; }
.steps b { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; background:var(--bubble-one); color:var(--white); border-radius:50%; font-size:12px; font-weight:600; }
.steps>div:nth-child(2) b { background:var(--bubble-two); color:var(--ink); }
.steps>div:nth-child(3) b { background:var(--bubble-three); color:var(--ink); }
.steps span { min-width:0; font-size:16px; font-weight:600; line-height:1.5; }
.steps small { display:block; font-size:14px; font-weight:400; margin-top:4px; }

.pricing { background:var(--white); }
.price-layout { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); }
.price-options,.price-summary { min-width:0; }
.price-options>label,.extras-label { font-weight:600; font-size:15px; display:block; margin-bottom:10px; }
.select-wrap { min-width:0; margin-bottom:25px; }
select { width:100%; max-width:100%; min-width:0; min-height:56px; padding:15px 12px; background:var(--white); border:1px solid var(--bubble-one); color:var(--ink); border-radius:10px; font-size:16px; }
select option { background:var(--white); color:var(--ink); }
select:disabled { cursor:not-allowed; opacity:.65; }
.extras { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:10px; }
.extras label { min-width:0; display:flex; align-items:center; gap:9px; min-height:54px; background:var(--white); border:1px solid var(--bubble-one); padding:13px 12px; border-radius:10px; cursor:pointer; font-size:14px; }
.extras label:has(input:checked) { background:var(--bubble-one); color:var(--white); }
.extras label span { flex:1; min-width:0; line-height:1.5; overflow-wrap:break-word; }
.extras input { appearance:none; display:grid; place-content:center; background:var(--white); border:1.5px solid var(--ink); border-radius:4px; width:18px; height:18px; margin:0; flex-shrink:0; cursor:pointer; }
.extras input:checked { background:var(--ink); border-color:var(--bubble-three); }
.extras input::before { content:''; width:9px; height:5px; border-left:2px solid var(--bubble-three); border-bottom:2px solid var(--bubble-three); transform:translateY(-1px) rotate(-45deg); opacity:0; }
.extras input:checked::before { opacity:1; }
.extras b { flex-shrink:0; font-size:13px; font-weight:500; white-space:nowrap; }
.price-footnote { font-size:13px; line-height:1.7; color:var(--text); margin-top:18px; }
.price-summary { background:var(--white); border:1px solid var(--line); border-top:4px solid var(--bubble-one); border-radius:24px; padding:32px; color:var(--ink); align-self:start; box-shadow:0 12px 28px #174eaa22; }
.price-summary .eyebrow { margin-bottom:22px; }
#summary-service { font-size:17px; font-weight:500; }
.price-summary>p { font-size:15px; line-height:1.6; }
.price-summary .price { margin:16px 0; display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 12px; }
.price span { font-size:15px; }
.price strong { max-width:100%; font-family:Manrope,Arial,sans-serif; font-size:clamp(42px,5.5vw,64px); font-variant-numeric:tabular-nums; line-height:1.15; font-weight:500; letter-spacing:-.035em; }
.price-summary .price { color:var(--bubble-one); }
.summary-divider { height:1px; background:var(--line); margin:24px 0; }
#extra-summary { line-height:1.7; }
.fine { font-size:13px!important; line-height:1.7; color:var(--text); }
.price-summary .fine { color:var(--ink); margin:17px 0 22px; }
.summary-cta { width:100%; }
.price-summary .recurring { font-size:13px; line-height:1.85; margin-top:24px; }

.faq { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:clamp(28px,5vw,72px); }
.faq>div { min-width:0; }
.faq h2 { margin-top:16px; }
.faq-list details { border-bottom:1px solid var(--line); padding:21px 0; }
.faq-list details:first-child { padding-top:5px; }
.faq-list summary { font-size:16px; font-weight:500; cursor:pointer; list-style:none; padding-right:32px; position:relative; line-height:1.6; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:after { content:'+'; position:absolute; right:2px; top:-3px; font-size:23px; color:var(--blue); }
.faq-list details[open] summary:after { content:'−'; }
.faq-list p { font-size:16px; line-height:1.8; color:var(--text); margin-top:14px; }
.service-areas { background:var(--white); }
.areas-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; list-style:none; margin:0; padding:0; }
.areas-list li { min-width:0; padding:clamp(14px,1.5vw,18px); background:var(--white); border:1px solid var(--line); border-left:4px solid var(--bubble-one); border-radius:12px; color:var(--ink); font-size:16px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
.areas-list li:nth-child(3n+2) { border-left-color:var(--bubble-two); }
.areas-list li:nth-child(3n) { border-left-color:var(--bubble-three); }
.closing { background:var(--white); border-top:1px solid var(--line); color:var(--ink); padding:64px var(--page-inset); }
.closing-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(140px,220px); align-items:center; gap:48px; }
.closing-copy { min-width:0; }
.closing h2 { max-width:19ch; font-size:clamp(32px,4.8vw,62px); letter-spacing:-.035em; margin:16px 0 26px; }
.closing-mascot { width:100%; height:auto; pointer-events:none; }
footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; padding:32px var(--page-inset) calc(112px + env(safe-area-inset-bottom,0px)); background:var(--chrome-bg); color:var(--chrome-text); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-top:1px solid var(--line); }
footer>p,footer>span { font-size:12px; line-height:1.6; }
.footer-contact { display:flex; flex-direction:column; min-width:0; font-size:14px; font-style:normal; line-height:1.6; }
.footer-contact a,.quote-contact a { display:flex; align-items:center; min-height:44px; max-width:100%; color:var(--ink); text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.footer-contact a:hover,.quote-contact a:hover { color:var(--blue); }
.floating-call { position:fixed; right:max(20px,env(safe-area-inset-right,0px)); bottom:max(20px,env(safe-area-inset-bottom,0px)); z-index:35; display:flex; align-items:center; justify-content:center; gap:12px; max-width:calc(100% - 40px); min-height:64px; padding:12px 22px; border:1px solid var(--white); border-radius:999px; background:var(--bubble-one); color:var(--white); box-shadow:0 8px 28px #061e3f40; transition:transform .18s,background .18s,box-shadow .18s; }
.floating-call svg { flex-shrink:0; }
.floating-call-copy { display:flex; flex-direction:column; gap:3px; font-size:12px; line-height:1.3; }
.floating-call-copy strong { font-size:16px; font-weight:700; white-space:nowrap; }
.floating-call:focus-visible { outline-color:var(--ink); }
body:has(dialog[open]) .floating-call { visibility:hidden; }
@media(hover:hover) {
  .floating-call:hover { background:var(--bubble-one); transform:translateY(-3px); box-shadow:0 12px 30px #061e3f4d; }
}

dialog { border:1px solid var(--bubble-one); border-radius:24px; padding:36px; width:min(540px,calc(100% - 28px)); max-height:calc(100dvh - 32px); overflow:auto; background:var(--white); color:var(--navy); box-shadow:0 20px 100px #061e3f66; }
dialog::backdrop { background:#061e3fbf; backdrop-filter:blur(5px); }
dialog .close { position:absolute; right:10px; top:8px; background:none; border:0; border-radius:50%; font-size:28px; color:var(--navy); min-width:44px; min-height:44px; }
dialog .close:hover { background:var(--white); }
dialog>.eyebrow { padding-right:26px; }
dialog h2 { margin:15px 0 18px; font-size:clamp(30px,5vw,37px); }
dialog>p:not(.eyebrow) { font-size:15px; color:var(--text); line-height:1.7; }
dialog .quote-selection { background:var(--bubble-three); border:1px solid var(--bubble-one); color:var(--ink)!important; padding:14px; border-radius:10px; margin-top:18px; font-size:14px!important; }
dialog label { display:block; margin:18px 0 8px; font-size:14px; font-weight:600; }
dialog input,dialog textarea { width:100%; min-width:0; background:var(--white); border:1px solid var(--bubble-one); padding:13px; border-radius:8px; font-size:16px; color:var(--ink); }
dialog input::placeholder,dialog textarea::placeholder { color:var(--text); opacity:1; }
dialog textarea { resize:vertical; }
dialog .button { width:100%; margin:20px 0 10px; }
.quote-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; margin:22px 0 14px; }
dialog .quote-actions .button { margin:0; }
.button-secondary { background:transparent; color:var(--blue); border:1px solid var(--blue); }
.button-secondary:hover:not(:disabled) { background:var(--bubble-two); color:var(--ink); }
.quote-contact { display:flex; flex-wrap:wrap; gap:0 20px; font-size:14px; margin-top:10px; }
#quote-status { font-size:14px; line-height:1.6; margin-top:15px; color:var(--blue); }

/* Reflow navigation and cards before their content becomes cramped. */
@media(max-width:1120px) {
  header { grid-template-columns:minmax(0,1fr) auto auto; grid-template-areas:'brand language quote' 'nav nav nav'; gap:10px 18px; }
  header nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; border-top:1px solid var(--line); padding-top:4px; }
  .brand { font-size:15px; }
  .brand small { font-size:12px; }
  .section-heading { grid-template-columns:minmax(0,1fr); gap:18px; }
  .section-heading>p { max-width:60ch; }
  .service-grid { grid-template-columns:minmax(0,1fr); gap:18px; }
  .service-card { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); column-gap:28px; }
  .service-number,.service-bottom { grid-column:1 / -1; }
  .service-grid h3 { margin:20px 0 0; align-self:center; }
  .service-grid p { align-self:center; margin-top:20px; }
  .service-bottom { flex-direction:row; justify-content:space-between; align-items:center; flex-wrap:wrap; }
  .price-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .care-copy { padding:32px 28px; }
}
@media(max-width:960px) {
  .hero { grid-template-columns:minmax(0,1fr); gap:32px; }
  .hero-copy { max-width:660px; }
  .hero-visual { justify-self:center; max-width:520px; }
  .hero h1 { font-size:clamp(36px,7vw,64px); }
  .intro { max-width:54ch; }
  .work-layout,.care,.faq { grid-template-columns:minmax(0,1fr); }
  .work-layout { gap:28px; }
  .work-image { width:100%; max-width:640px; justify-self:center; }
  .care-photo { padding:24px 24px 0; }
  .care-copy { padding:32px; }
  .closing-inner { grid-template-columns:minmax(0,1fr) minmax(110px,160px); gap:24px; }
  footer>p { flex-basis:100%; order:3; }
}
@media(max-width:700px) {
  .areas-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  header { grid-template-columns:minmax(0,1fr) auto; grid-template-areas:'brand language' 'nav nav'; padding-block:10px; gap:8px 12px; }
  .brand { font-size:13px; gap:9px; }
  .brand-mascot { width:44px; height:44px; }
  .brand small { font-size:11px; letter-spacing:4px; }
  .header-quote { display:none; }
  header nav { gap:8px; font-size:13px; }
  .language-switch button { padding:8px 7px; }
  .hero h1 { font-size:clamp(36px,8.5vw,54px); }
  .hero-actions { gap:18px; }
  .hero-photo { border-radius:26px; }
  .photo-note { top:14px; right:14px; padding:11px 13px; gap:12px; font-size:11px; }
  .intro { font-size:16px; }
  .ribbon { gap:12px 24px; font-size:11px; letter-spacing:.5px; }
  .ribbon b { display:none; }
  .ribbon span { flex:1 1 140px; }
  .service-card { display:flex; padding:24px; }
  .service-grid h3 { margin:20px 0 14px; align-self:stretch; }
  .service-grid p { margin-top:0; align-self:auto; }
  .service-bottom { gap:10px 16px; }
  .work-image { border-width:4px; border-radius:18px; }
  .work-label span { left:9px; top:9px; max-width:calc(50% - 18px); font-size:11px; padding:7px 10px; }
  .work-label span:last-child { left:calc(50% + 9px); }
  .work-image[data-layout="stacked"] .work-label span:last-child { left:9px; top:calc(50% + 9px); }
  .room-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .room-tabs button { padding:11px 12px; font-size:13px; }
  .care { border-radius:22px; }
  .care-photo { padding:18px 18px 0; }
  .care-copy { padding:26px 22px; }
  .price-summary { padding:28px 24px; }
  .closing { padding-block:48px; text-align:center; }
  .closing-copy>.eyebrow::before { margin-inline:auto; }
  .closing-inner { grid-template-columns:minmax(0,1fr); gap:20px; }
  .closing-mascot { grid-row:1; width:120px; margin:auto; }
  .closing h2 { font-size:clamp(32px,7vw,44px); margin-inline:auto; }
  footer { flex-direction:column; align-items:flex-start; gap:18px; }
  footer>p { flex-basis:auto; order:0; }
  dialog { padding:30px 22px; }
  .floating-call { width:60px; height:60px; min-height:60px; padding:16px; right:max(16px,env(safe-area-inset-right,0px)); bottom:max(16px,env(safe-area-inset-bottom,0px)); }
  .floating-call-copy { display:none; }
}
@media(max-width:480px) {
  :root { --section-space:48px; }
  .hero { gap:24px; }
  .hero-actions { flex-direction:column; align-items:stretch; gap:12px; }
  .hero-actions .text-link { align-self:center; text-align:center; }
  .photo-note { position:static; max-width:none; border-width:1px 0 0; border-radius:0; justify-content:center; box-shadow:none; }
  .section-heading { margin-bottom:28px; }
  .service-bottom { align-items:flex-start; flex-direction:column; }
  dialog { padding:28px 20px; width:calc(100% - 24px); border-radius:20px; }
}
@media(max-width:360px) {
  .brand { font-size:12px; gap:7px; }
  .brand-mascot { width:38px; height:38px; }
  .brand small { font-size:10px; }
  .service-card { padding:22px; }
  .hero-actions .button { padding-inline:18px; }
  .care-copy,.price-summary { padding:24px 20px; }
}
html[lang="ru"] body { font-family:Manrope,Arial,sans-serif; }
html[lang="ru"] .hero h1 { max-width:17ch; font-size:clamp(34px,5vw,66px); letter-spacing:-.035em; }
html[lang="ru"] .eyebrow,html[lang="ru"] .ribbon { letter-spacing:.5px; }
html[lang="ru"] .service-grid h3 { font-size:clamp(24px,2.4vw,28px); }
html[lang="ru"] .room-tabs button { font-size:13px; }
@media(max-width:960px) {
  html[lang="ru"] .hero h1 { font-size:clamp(34px,7vw,60px); }
}
@media(max-width:480px) {
  html[lang="ru"] .hero h1 { font-size:clamp(32px,8.5vw,40px); }
}
/* Polish pass: readability, calmer hero spacing, smaller floating call button. */
body { font-size:17px; line-height:1.6; color:var(--navy); }
.intro { font-size:18px; line-height:1.75; max-width:470px; }
.section-heading>p,.work-copy>p:not(.eyebrow),.care-copy>p:not(.eyebrow),.faq-list p { font-size:17px; line-height:1.75; color:var(--ink); }
.service-grid p { font-size:16.5px; line-height:1.7; }
.hero-areas,.selection-hint,.price-footnote,.care-photo figcaption { font-size:14px; }
.fine { font-size:14px!important; color:var(--ink); }
.price-summary .recurring { font-size:14px; }
.steps small { font-size:15px; }
footer>p,footer>span { font-size:13px; }
.footer-contact { font-size:15px; }
.extras label { font-size:15px; }
.brand-words { overflow:visible; }
.brand small { overflow:visible; padding-right:2px; }
.hero { padding-top:clamp(24px,3.5vw,48px); padding-bottom:clamp(40px,5vw,64px); gap:clamp(28px,4vw,56px); }
.hero h1 { margin:18px 0; }
.hero-visual { max-width:460px; }
.hero-actions { margin-top:24px; }
.floating-call { min-height:54px; padding:9px 18px 9px 16px; gap:10px; box-shadow:0 6px 20px #061e3f33; }
.floating-call svg { width:20px; height:20px; }
.floating-call-copy { gap:1px; font-size:11px; }
.floating-call-copy strong { font-size:15px; }
.closing { padding-bottom:88px; }
footer { padding-bottom:calc(96px + env(safe-area-inset-bottom,0px)); }
@media(max-width:960px) {
  .hero-visual { max-width:440px; }
}
@media(max-width:700px) {
  .brand small { font-size:11px; letter-spacing:2.6px; }
  .intro { font-size:17px; }
  .floating-call { width:52px; height:52px; min-height:52px; padding:14px; }
  .closing { padding-bottom:72px; }
  footer { padding-bottom:calc(84px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:480px) {
  .hero { padding-top:20px; }
  .hero-visual { max-width:400px; }
}
@media(max-width:360px) {
  .brand small { font-size:10px; letter-spacing:2px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  header,.button,.service-card,.room-tabs button,.floating-call { transition:none; }
}
/* Compact footer: brand + tagline left, phone + email right. */
.closing { padding-block:48px 56px; }
footer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px 24px; padding:20px var(--page-inset) calc(88px + env(safe-area-inset-bottom,0px)); }
.footer-main { display:flex; flex-wrap:wrap; align-items:center; gap:6px 20px; min-width:0; }
.footer-meta { display:flex; flex-direction:column; gap:0; min-width:0; }
.footer-meta>p,.footer-meta>span { margin:0; font-size:13px; line-height:1.5; }
.footer-contact { align-items:flex-end; text-align:right; gap:2px; font-size:15px; }
.footer-contact a { min-height:32px; justify-content:flex-end; }
@media(max-width:700px) {
  .closing { padding-block:36px 40px; }
  footer { flex-direction:unset; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px 14px; padding-top:16px; padding-bottom:calc(80px + env(safe-area-inset-bottom,0px)); }
  .footer-main { flex-direction:column; align-items:flex-start; gap:4px; }
  .footer-meta>p,.footer-meta>span { font-size:12px; }
  .footer-contact { font-size:14px; }
  .footer-contact a { min-height:36px; }
}
@media(max-width:420px) {
  .footer-main .brand-mascot { width:36px; height:36px; }
  .footer-main .brand { font-size:12px; gap:7px; }
  .footer-contact { font-size:13px; }
}
/* Copyright directly under the logo. */
.footer-main { flex-direction:column; align-items:flex-start; gap:2px; }
.footer-meta { padding-left:2px; }
.footer-meta>span { font-size:12px; color:var(--text); }
/* Before/after tabs: 7 jobs, keep compact. */
.room-tabs { margin-top:20px; grid-template-columns:repeat(auto-fill,minmax(min(100%,140px),1fr)); gap:8px; }
.room-tabs button { min-height:44px; padding:10px 12px; }
@media(max-width:700px) {
  .room-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:16px; }
  .room-tabs button { min-height:42px; padding:9px 11px; }
}
