/* ===== Impeca — design system ===== */
:root{
 --navy:#08192c;--navy2:#0f2c4d;--blue:#1d6fe0;--blue-d:#1559c0;--cyan:#37c6dd;
 --green:#12b76a;--green-d:#0a7a4a;--amber:#e8a13c;--red:#e5484d;
 --ink:#0e2136;--muted:#5c6b7a;--soft:#54636f;--line:#e6edf4;--bg:#f5f9fd;--white:#fff;
 /* legacy aliases (older pages reference these — map to current tokens so colours don't break) */
 --gray:#5c6b7a;--light:#f5f9fd;--dark:#08192c;--accent:#12b76a;
 --font-display:'Manrope',system-ui,-apple-system,sans-serif;
 --radius:18px;--radius-s:10px;
 --shadow:0 14px 32px -14px rgba(17,20,24,.18);--shadow-s:0 6px 18px -10px rgba(17,20,24,.14);
 --wrap:1120px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--ink);background:var(--white);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 22px}
.section{padding:64px 0}
.section.tight{padding:44px 0}
.bg-soft{background:var(--bg)}
h1,h2,h3{line-height:1.14;letter-spacing:-.02em}
h2{font-size:1.55rem;font-weight:700}h3{font-size:1.2rem;font-weight:700}
/* display font reserved for the hero headline only — the single biggest moment */
.hero h1,.pagehero h1{font-family:var(--font-display)}
.h2{font-size:clamp(1.75rem,3.6vw,2.5rem);font-weight:700;text-align:center;letter-spacing:-.025em}
.sub{text-align:center;color:var(--muted);max-width:640px;margin:14px auto 0;font-size:1.06rem;line-height:1.6}
.center{text-align:center}
/* section kicker — a quiet label, not a filled pill (avoids the AI eyebrow-chip look) */
.eyebrow{display:inline-block;font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}

/* buttons — solid colour, confident weight; primary gets a subtle press feel (not a glow) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-weight:700;font-size:1rem;
 padding:14px 28px;border-radius:10px;border:1.5px solid transparent;cursor:pointer;transition:background .16s,border-color .16s,color .16s,transform .16s;text-align:center}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue)}
.btn-primary:hover{background:var(--blue-d);border-color:var(--blue-d);transform:translateY(-1px)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.btn-ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.btn-light{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-light:hover{border-color:var(--blue);color:var(--blue)}
.btn-block{width:100%}
.btn-lg{padding:15px 32px;font-size:1.06rem}
/* sticky mobile CTA (hidden on desktop; floats bottom-left, leaves room for chat FAB) */
.mcta{display:none}
@media(max-width:860px){
  .mcta{display:inline-flex;position:fixed;left:12px;right:86px;bottom:16px;z-index:9997;box-shadow:0 4px 14px rgba(0,0,0,.25)}
  .hdr-cta{display:none!important}      /* redundante no menu mobile — já há o botão fixo "Calcular preço" */
  body{padding-bottom:80px}            /* espaço para o botão fixo não tapar rodapé/conteúdo */
}
/* enquanto o chat está aberto, esconder o botão fixo e o FAB (senão sobrepõem-se ao chat/teclado) */
body.chat-open .mcta,body.chat-open #imchat-btn{display:none!important}
/* 15.10 (UX П1, Borys «так»): service pages — the fixed bottom button is WhatsApp and appears after the first scroll (JS adds .on) */
@media(max-width:860px){.mcta-wa{display:none}.mcta-wa.on{display:inline-flex;justify-content:center;white-space:nowrap;font-size:15px;padding-top:12px;padding-bottom:12px}}
/* 15.10 (Ads line: on a first visit the cookie banner covered the hero WhatsApp button and the sticky one) — on phones the banner
   is a compact strip at the TOP, so the first-screen buttons, the sticky WhatsApp and the chat bubble stay free */
@media(max-width:860px){#ckbar{top:0!important;bottom:auto!important;left:0!important;right:0!important;max-width:none!important;border-radius:0 0 14px 14px!important;padding:10px 14px!important;font-size:13px!important}}
/* 14.09 site-qa: botão de ação no 1.º ecrã (serviços, guias, zonas, preços) — antes o 1.º botão estava a 1100-2050 px em desktop.
   Fica visível também no mobile (decisão do Borys 14.09), junto com o botão fixo .mcta. */
.hero-cta{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}
#preco{scroll-margin-top:96px}
@media(max-width:860px){
  /* 14.09 site-qa: o banner de cookies (bottom:16px inline) tapava o botão fixo .mcta na 1.ª visita -> sobe acima dele e do chat */
}

/* header — light, in the tone of the «Artesanal» homepage, on EVERY page (Borys 05.10 «2 б»). Day/night tokens only. */
:root{--hdr-bg:rgba(251,250,247,.95);--hdr-solid:#fbfaf7;--hdr-ink:#1b2a33;--hdr-muted:#5d6a70;--hdr-line:#e3ded3;--hdr-acc:#137487;--hdr-cta:#0f5e6e;--hdr-cta-h:#0b4b58}
@media (prefers-color-scheme:dark){:root{--hdr-bg:rgba(20,26,29,.95);--hdr-solid:#141a1d;--hdr-ink:#efe9de;--hdr-muted:#b5ada0;--hdr-line:#334047;--hdr-acc:#6fd3e2;--hdr-cta:#137487;--hdr-cta-h:#0f5e6e}}
header.site{position:sticky;top:0;z-index:50;background:var(--hdr-bg);backdrop-filter:blur(10px);border-bottom:1px solid var(--hdr-line)}
header.site .wrap{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px}
.logo{font-weight:800;font-size:1.25rem;color:var(--hdr-ink);letter-spacing:-.02em}
.logo .pt{color:var(--hdr-acc)}
.logo small{display:block;font-size:.72rem;font-weight:500;color:var(--hdr-muted);letter-spacing:.02em;margin-top:-2px}
.mainnav{display:flex;gap:20px;margin-left:auto;align-items:center}
.mainnav a{color:var(--hdr-muted);font-weight:600;font-size:.94rem}
.mainnav a:hover,.mainnav a.on{color:var(--hdr-ink)}
/* specificity 0-1-1 to beat `.mainnav a` (else the CTA text falls back to the muted nav colour) */
.mainnav a.hdr-cta{background:var(--hdr-cta);color:#fff;padding:10px 18px;border-radius:6px;font-weight:700;font-size:.9rem}
.mainnav a.hdr-cta:hover{background:var(--hdr-cta-h);color:#fff}
/* nav dropdown (Serviços) */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item>a .caret{font-size:.62em;opacity:.75;margin-left:4px;vertical-align:middle}
.submenu{position:absolute;top:100%;left:0;min-width:240px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:8px;display:none;flex-direction:column}
.nav-item:hover .submenu,.nav-item:focus-within .submenu{display:flex}
.submenu a{color:var(--ink);font-size:.9rem;font-weight:600;padding:9px 12px;border-radius:6px;white-space:nowrap}
.submenu a:hover{background:var(--bg);color:var(--blue)}
.submenu .sep{height:1px;background:var(--line);margin:6px 6px}
.submenu a.hub{color:var(--blue);font-weight:700}
/* mega-menu (3 columns) */
.submenu.mega{flex-direction:row;min-width:560px;max-width:calc(100vw - 44px);left:0;right:auto;padding:16px;gap:6px}
.mcol{flex:1;min-width:172px;display:flex;flex-direction:column}
.mcol-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;padding:2px 10px 9px}
.submenu.mega a{padding:7px 10px}
#burger{display:none;margin-left:auto;background:none;border:none;color:var(--hdr-ink);font-size:1.6rem;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center}
@media(max-width:860px){
 #burger{display:flex}
 .mainnav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:0;background:var(--hdr-solid);border-bottom:1px solid var(--hdr-line);padding:8px 22px 16px}
 .mainnav.open{display:flex}
 .mainnav a{padding:11px 0;width:100%;border-bottom:1px solid var(--hdr-line)}
 .nav-item{width:100%;flex-direction:column;align-items:stretch}
 .submenu{display:none!important}
 .nav-item>a .caret{display:none}
 .hdr-cta{margin-top:12px}
}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(155deg,var(--navy) 0%,var(--navy2) 100%);color:#fff;text-align:center;padding:88px 0 92px}
.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.30}
/* readable scrim: darker top-and-bottom + a hint of brand at the base */
.hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,25,44,.55) 0%,rgba(8,25,44,.42) 45%,rgba(8,25,44,.82) 100%)}
.hero .wrap{position:relative;z-index:1;max-width:900px}
.hero h1{font-size:clamp(2.1rem,5.4vw,3.5rem);font-weight:800;line-height:1.07;max-width:880px;margin:0 auto 18px}
.hero h1 em{font-style:normal;color:var(--cyan)}
.hero p.lead{max-width:660px;margin:0 auto 32px;font-size:1.14rem;line-height:1.55;color:#cfe0f0}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
/* trust strip — clean inline chips, hairline dividers, no heavy boxes */
.trust{display:flex;gap:0;justify-content:center;flex-wrap:wrap;margin-top:38px}
.trust div{display:flex;align-items:center;gap:8px;padding:6px 20px;font-size:.9rem;font-weight:600;color:#dbe8f4;border-left:1px solid rgba(255,255,255,.16)}
.trust div:first-child{border-left:none}
@media(max-width:680px){.trust div{border-left:none;padding:6px 12px}}

/* cards / services */
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grid.c4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;flex-direction:column}
.card .card-cta{margin-top:auto;padding-top:12px}
.card.hover:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#d5e3f2}
/* icon sits in flow (no rounded tile container — that shape is the universal AI feature-card tell) */
.card .ic{font-size:1.85rem;line-height:1;margin-bottom:12px}
.card h3{font-size:1.18rem;font-weight:700;margin-bottom:7px;letter-spacing:-.01em}
.card p{color:var(--muted);font-size:.95rem;line-height:1.58}
.price-chip{display:inline-block;margin-top:12px;background:#eafaf2;color:#0a7a4a;font-weight:800;font-size:.95rem;padding:5px 12px;border-radius:8px}
.price-chip small{display:block;font-weight:600;color:var(--soft);font-size:.72rem}
.card .more{display:inline-block;margin-top:12px;color:var(--blue);font-weight:700;font-size:.9rem}

/* steps */
.steps{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px;position:relative}
.step .n{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;margin-bottom:12px}
.step h3{font-size:1.02rem;margin-bottom:5px}
.step p{color:var(--muted);font-size:.9rem}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.gallery figure{border-radius:var(--radius);overflow:hidden;position:relative;background:var(--bg);box-shadow:var(--shadow-s)}
.gallery img,.gallery video{width:100%;height:210px;object-fit:cover}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(10,31,54,.82));color:#fff;padding:26px 14px 12px;font-size:.9rem;font-weight:600}

/* equipment */
.equip{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.equip .card{padding:0;overflow:hidden}
.equip .card .top{padding:20px 24px 6px}
.equip-media{height:170px;width:100%;object-fit:cover}
.equip .card .body{padding:6px 24px 22px}
.equip h3{font-size:1.15rem;margin-bottom:8px}
.equip ul{list-style:none;margin:10px 0}
.equip li{padding:3px 0 3px 24px;position:relative;color:var(--muted);font-size:.92rem}
.equip li::before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:800}
.equip .spec{font-weight:800;margin-top:10px}

/* calculator */
.calc-wrap{max-width:660px;margin:0 auto}
.calcbox{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.calcbox .head{background:var(--navy);color:#fff;padding:24px 28px}
.calcbox .head h3{font-size:1.3rem;font-weight:600}
.calcbox .head p{color:#c7dcf2;font-size:.92rem;margin-top:3px}
.calcbox .body{padding:26px 28px}
.f-label{display:block;font-weight:700;margin:16px 0 7px;font-size:.94rem}
.f-label:first-child{margin-top:0}
.f-hint{font-weight:500;color:var(--soft);font-size:.8rem}
.f-in{width:100%;padding:13px 14px;border:1.6px solid var(--line);border-radius:10px;font-size:1rem;font-family:inherit;transition:border-color .15s}
.f-in:focus{border-color:var(--blue);outline:2px solid rgba(29,111,224,.55);outline-offset:1px}
.f-in.err{border-color:var(--red);background:#fff6f6}
.f-err{color:var(--red);font-size:.82rem;margin-top:5px;display:none}
.pills{display:flex;gap:8px;flex-wrap:wrap}
.pills label{flex:1;min-width:96px;text-align:center;border:1.6px solid var(--line);border-radius:10px;padding:12px 8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.15s}
.pills input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.pills label:hover{border-color:#bcd3ee}
.pills label:focus-within{outline:3px solid var(--blue);outline-offset:2px}
.pills label,.radio-row label{min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px}
.pills label.on{border-color:var(--blue);background:#eaf3fe;color:var(--blue-d)}
/* price reveal — clean light panel; the number is the moment */
.result{margin-top:22px;padding:26px 22px;background:var(--bg);border:1px solid var(--line);border-radius:14px;display:none;text-align:center}
.result .big{font-family:var(--font-display);font-size:2.7rem;font-weight:700;color:var(--navy);line-height:1;letter-spacing:-.02em}
.result .iva{display:inline-block;margin-top:8px;color:var(--green-d);font-weight:700;font-size:.92rem}
.result .dur{color:var(--muted);font-size:.9rem;margin-top:8px}
.result .actions{margin-top:16px}
.wa-alt{display:inline-block;margin-top:10px;color:#128c7e;font-weight:700;font-size:.92rem}
.bigmsg{display:none;margin-top:18px;background:#fff8ec;border:1px solid #f0d9a8;border-radius:12px;padding:16px;font-size:.92rem}

/* why (dark) */
.why{background:linear-gradient(150deg,var(--navy),var(--navy2));color:#fff}
.why .h2{color:#fff}.why .sub{color:#a9c0d6}
.why .card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.why .card h3{color:#fff}.why .card p{color:#bcd0e2}

/* faq */
.faq{max-width:760px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden;transition:border-color .15s}
.faq details[open]{border-color:#cfe0f2}
.faq summary{cursor:pointer;font-weight:700;padding:17px 20px;list-style:none;position:relative;padding-right:44px}
.faq summary::after{content:'+';position:absolute;right:20px;top:15px;color:var(--blue);font-size:1.4rem;font-weight:700;transition:transform .2s}
.faq details[open] summary::after{content:'–'}
.faq details .a{padding:0 20px 17px;color:var(--muted);font-size:.94rem}

/* cta band */
.cta-band{background:var(--blue-d);color:#fff;text-align:center;border-radius:var(--radius);padding:44px 24px;margin:0 22px}
.cta-band h2{font-size:1.6rem;font-weight:800;margin-bottom:8px}
.cta-band p{color:#dbeafe;margin-bottom:22px}

/* footer */
footer.site{background:#071726;color:#8ea6bd;padding:40px 0 30px;font-size:.9rem}
footer.site .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:26px;margin-bottom:24px}
footer.site .fcol-h{color:#fff;font-size:.95rem;font-weight:700;margin-bottom:10px}
footer.site a{color:#a9c0d6;display:block;padding:3px 0}
footer.site a:hover{color:#fff}
footer.site .brand{font-weight:800;color:#fff;font-size:1.15rem}
.langsw{display:inline-flex;gap:4px;background:rgba(255,255,255,.08);border-radius:9px;padding:3px}
.langsw button{background:none;border:none;color:#cdddec;padding:6px 12px;border-radius:7px;cursor:pointer;font-weight:700;font-family:inherit;font-size:.85rem}
.langsw button.on{background:#fff;color:var(--navy)}
.socials{display:flex;gap:11px;margin-top:16px}
.socials a{width:44px;height:44px;border-radius:11px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;color:#fff;transition:.15s}
.socials a:hover{background:var(--blue);color:#fff;transform:translateY(-2px)}
.socials svg{width:21px;height:21px;fill:currentColor;display:block}
.foot-bot{border-top:1px solid rgba(255,255,255,.08);padding-top:18px;font-size:.82rem;color:#6f8aa2}
@media(max-width:700px){footer.site .cols{grid-template-columns:1fr 1fr}}

/* floating whatsapp */
.wa-float{position:fixed;right:18px;bottom:18px;z-index:60;background:#25d366;color:#fff;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.7rem;box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .15s}
.wa-float:hover{transform:scale(1.08)}

/* page hero (internal) */
.pagehero{background:linear-gradient(150deg,var(--navy),var(--navy2));color:#fff;padding:48px 0;text-align:center}
.pagehero h1{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;max-width:820px;margin:0 auto 8px}
.pagehero p{color:#c6d8e8;max-width:640px;margin:0 auto}
.crumbs{font-size:.82rem;color:#9db4c9;margin-bottom:10px}
.crumbs a{color:#bcd3ea}
.prose{max-width:780px;margin:0 auto}
.prose h2{font-size:1.5rem;font-weight:700;margin:28px 0 10px}
.prose p{margin-bottom:12px;color:#33475b}
.prose ul{margin:0 0 14px 22px}.prose li{margin-bottom:7px;color:#33475b}
.cover{width:100%;max-height:360px;object-fit:cover;border-radius:16px;margin-bottom:18px}
table.tbl{width:100%;border-collapse:collapse;font-size:.94rem;margin:16px 0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-s)}
table.tbl th{background:var(--navy);color:#fff;text-align:left;padding:12px;font-size:.86rem;font-weight:700}
table.tbl td{padding:12px;border-bottom:1px solid var(--line)}
table.tbl tr:last-child td{border-bottom:none}

/* radio pills for calculator */
.radio-row{display:flex;gap:8px;flex-wrap:wrap}
.radio-row label{flex:1;min-width:96px;text-align:center;border:1.6px solid var(--line);border-radius:10px;padding:12px 8px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.15s}
.radio-row input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.radio-row label:hover{border-color:#bcd3ee}
.radio-row label:focus-within{outline:3px solid var(--blue);outline-offset:2px}
.radio-row label.on{border-color:var(--blue);background:#eaf3fe;color:var(--blue-d)}

/* compatibility for internal PHP pages */
.note{font-size:.85rem;color:var(--muted)}
.preco{color:var(--blue);font-weight:800;margin-top:8px}
.card .preco small{display:block;color:var(--soft);font-weight:600;font-size:.75rem}
.pagehero + section, section{padding:48px 0}
table:not(.tbl){width:100%;border-collapse:collapse;font-size:.94rem;margin:14px 0;background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-s)}
table:not(.tbl) th{background:var(--navy);color:#fff;text-align:left;padding:12px;font-size:.86rem}
table:not(.tbl) td{padding:12px;border-bottom:1px solid var(--line)}
.steps .card{position:relative}
ul{margin:0 0 14px 20px}li{margin-bottom:6px}
.faq details .a,.faq details p{padding:0 20px 16px;color:var(--muted);font-size:.93rem}
.art{max-width:780px;margin:0 auto}
.art h1{font-size:1.7rem;margin-bottom:10px}
.art h2{font-size:1.5rem;font-weight:700;margin:26px 0 10px}
.art p{margin-bottom:12px;color:#d7e4f2}
.art ul{margin:0 0 14px 22px}.art li{margin-bottom:7px;color:#d7e4f2}
/* 22.09: текст статей був #33475b (темно-сірий) на темному фоні — контраст 1,6:1, читати неможливо (Борис «вирви око»). Замок: _tests/contrast_test.js */
.art figure{margin:18px 0}
/* 30.09 end-of-article links: service + price, real case, zones (artigo.php) */
/* 30.09 interior-by-city pages (estofos.php) */
.est-prices{margin:22px 0}.est-prices ul{margin:10px 0 8px}.est-prices .note{margin:0}
.svc-wa{display:flex;align-items:center;justify-content:center;gap:10px 14px;flex-wrap:wrap;margin:14px 0 0;text-align:center}.svc-wa .note{margin:0}
.btn-wa{background:#075e54;border-color:#075e54;color:#fff}
.svc-guarantee{margin:14px 0 0;font-weight:600}
/* service page (servico.php) — 05.10: these were inline style="" in the template, same values */
.lead-p{font-size:1.08rem}
.svc-what{margin:22px 0}.svc-what h2{margin-bottom:12px}.svc-what ul{margin:0}
.svc-photo{text-align:center;margin:22px 0}.svc-photo h2{margin-bottom:6px}.svc-photo .note{margin:0 auto 14px;max-width:480px}
.svc-trust{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:16px;font-size:.9rem;font-weight:600}
.svc-h2{margin-bottom:14px}.bg-soft .svc-h2{margin-bottom:18px}.svc-h2.svc-h2-gap{margin:28px 0 14px}
.svc-case{color:inherit}.svc-case img{width:100%;height:170px;object-fit:cover;border-radius:8px;margin-bottom:10px}.svc-case h3{font-size:1.05rem}.svc-case .note{margin-top:6px}
.svc-others{margin-top:28px}.svc-others>a{color:inherit}.svc-others .price-chip{margin-top:8px}
.est-case-img{width:100%;height:170px;object-fit:cover;border-radius:8px;margin-bottom:10px}
.art .art-next{margin-top:28px;padding:20px 22px}.art .art-next p{margin:0 0 8px}.art .art-next .art-next-cta{margin:12px 0 0}
.art figcaption{color:#9fb6cc;font-size:.88rem;margin-top:8px;line-height:1.5}
.artmeta{color:var(--muted);font-size:.85rem;margin-bottom:16px}

/* ===================== REDESIGN "wet" theme (scoped: only body.wet) ===================== */
/* global water canvas — fixed behind everything, shown only on wet pages */
#waterbg{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:none}
body.wet{background:var(--navy);color:#eaf2fb}
body.wet #waterbg{display:block;z-index:0}
body.wet main,body.wet section,body.wet footer.site,body.wet .wtrust,body.wet .whero{position:relative;z-index:1}
/* whero — full-bleed video, navy scrim, left-aligned (asymmetric) */
.whero{position:relative;overflow:hidden;background:transparent;color:#fff;min-height:82vh;display:flex;align-items:center}
.whero .wrap{position:relative;z-index:2;width:100%}
.whero .col{max-width:660px}
.whero .ey{font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin-bottom:16px}
.whero h1{font-size:clamp(2.4rem,6vw,4.4rem);font-weight:800;line-height:1.03;letter-spacing:-.035em;margin-bottom:20px}
.whero h1 em{font-style:normal;color:var(--cyan)}
.whero p.lead{font-size:1.18rem;color:#cfe0f0;max-width:540px;margin-bottom:30px}
.whero .btns{display:flex;gap:12px;flex-wrap:wrap}
.wtrust{background:var(--navy2);color:#cfe0f0}
.wtrust .wrap{display:flex;flex-wrap:wrap;gap:6px 26px;justify-content:center;padding:16px 22px;font-size:.92rem;font-weight:600}
/* wet sections — transparent so water shows; light text */
body.wet .section,body.wet .wsec{background:transparent}
body.wet .bg-soft,body.wet .wsec.soft{background:rgba(8,25,44,.55)}
body.wet .h2,body.wet .wh2{color:#fff}
body.wet .sub,body.wet .wsub{color:#b8cbe0}
body.wet .eyebrow{color:var(--cyan)}
/* wet cards — translucent glass, light text */
body.wet .card{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);color:#eaf2fb}
body.wet .card h3{color:#fff}body.wet .card p{color:#b8cbe0}
body.wet .step{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.12)}
/* white calculator panel keeps DARK text even under the wet (light-on-dark) theme */
body.wet{--muted:#9fb6cc}
body.wet .calcbox{border-color:transparent;box-shadow:0 34px 70px -34px rgba(0,0,0,.65);color:var(--ink);--muted:#5c6b7a}
body.wet .calcbox .f-label{color:var(--ink)}
body.wet .calcbox .f-in{color:var(--ink)}
body.wet .calcbox .radio-row label{color:#33475b}
body.wet .calcbox .radio-row label.on{color:var(--blue-d)}
/* equipment: readable bullets + spec accents on dark */
body.wet .equip .body li{color:#c7d8ea}
.spec-hot{color:#c0392b}.spec-cold{color:var(--blue)}
body.wet .spec-hot{color:#ff8a6b}
body.wet .spec-cold{color:#5fb0f2}
/* FAQ as dark glass (cohesive with theme, not a stack of white blocks) */
body.wet .faq details{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12);color:#eaf2fb}
body.wet .faq details[open]{border-color:rgba(55,198,221,.4);background:rgba(255,255,255,.07)}
body.wet .faq summary{color:#fff}
body.wet .faq summary::after{color:var(--cyan)}
body.wet .faq details .a,body.wet .faq details p{color:#b8cbe0}
/* footer: let the water flow behind it + brighter social icons */
body.wet footer.site{background:rgba(7,23,38,.62)}
body.wet .socials a{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.14)}
body.wet .socials a:hover{background:var(--cyan);border-color:var(--cyan);color:var(--navy)}

/* ---- wet foundation for inner/content pages ---- */
/* page hero: let water flow through, keep white type */
body.wet .pagehero{background:transparent}
body.wet .pagehero h1{color:#fff}
body.wet .pagehero p{color:#cfe0f0}
/* prose/article body copy readable on dark */
body.wet .prose p,body.wet .prose li{color:#c2d4e6}
body.wet .prose h2,body.wet .prose h3{color:#fff}
body.wet .prose a{color:var(--cyan)}
body.wet .prose strong,body.wet .prose b{color:#fff}
/* tables as dark glass */
body.wet table.tbl,body.wet table:not(.tbl){background:rgba(255,255,255,.05);color:#dbe7f3;box-shadow:none;border:1px solid rgba(255,255,255,.10)}
body.wet table th{background:rgba(255,255,255,.09);color:#fff}
body.wet table td{color:#c7d8ea;border-color:rgba(255,255,255,.10)}
/* generic forms outside the white calc panel */
body.wet .f-label{color:#dbe7f3}
body.wet .f-in{background:#fff;color:var(--ink)}
body.wet .radio-row label{color:#cfe0f0}
/* generic content links on dark */
body.wet main a:not(.btn):not(.card):not(.wtile):not(.price-chip){color:var(--cyan)}
/* highlighted callout card (e.g. graffiti quote-by-photo) */
.callout{border-color:#bcd7f5;background:#eaf3fe}
body.wet .callout{border-color:rgba(55,198,221,.40);background:rgba(55,198,221,.08)}
body.wet .callout h2{color:#fff}
body.wet .callout .note{color:#c2d4e6}
/* clean check/cross markers (replace decorative emoji in trust rows and do/don't lists) */
.trustline span{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}
.trustline span::before{content:'\2713';color:var(--green);font-weight:800}
body.wet .trustline span{color:#c2d4e6}
body.wet .trustline span::before{color:var(--cyan)}
ul.checklist,.prose ul.do,.prose ul.dont{list-style:none;margin:0 0 14px 0;padding-left:0}
ul.checklist li,.prose ul.do li,.prose ul.dont li{position:relative;padding-left:26px;margin-bottom:7px}
ul.checklist li::before,.prose ul.do li::before{content:'\2713';position:absolute;left:0;top:0;color:var(--green);font-weight:800}
.prose ul.dont li::before{content:'\2717';position:absolute;left:0;top:0;color:var(--red);font-weight:800}
body.wet ul.checklist li::before,body.wet .prose ul.do li::before{color:#4bd69a}
body.wet .prose ul.dont li::before{color:#ff7a72}
/* app pages (sign-in, my bookings, order status): white panels on the dark page, dark text inside */
body.wet .authbox,body.wet .mybox,body.wet .box{color:var(--ink);--muted:#5c6b7a}
body.wet .authbox .in,body.wet .mybox .in,body.wet .box .in,body.wet .authbox input,body.wet .mybox input,body.wet .box input{color:var(--ink)}
/* booking form: keep white cards (form widgets are light-themed) on the dark page */
body.reserve .card{background:#fff;color:var(--ink);border-color:var(--line);--muted:#5c6b7a}
body.reserve .card h2,body.reserve .card h3{color:var(--ink)}
body.reserve .card p{color:#33475b}
body.reserve .card .f-label,body.reserve .card label,body.reserve .card .f-in,body.reserve .card input,body.reserve .card select,body.reserve .card textarea{color:var(--ink)}
body.reserve .step{color:#a9c0d6}
/* header language switcher (shown only when 2+ languages are live) */
.langsw{display:inline-flex;gap:4px;margin-left:8px}
.langsw a{padding:5px 9px;border-radius:8px;font-size:.8rem;font-weight:700;color:var(--hdr-muted);text-decoration:none;transition:.15s}
.langsw a:hover{color:var(--hdr-ink)}
.langsw a.on{background:var(--cyan);color:var(--navy)}
@media(max-width:860px){.langsw{margin:8px 0 0 0}}
body.wet .step h3{color:#fff}body.wet .step p{color:#b8cbe0}
/* wash-reveal (before/after) */
.wash{margin-top:40px;border-radius:20px;overflow:hidden;position:relative;aspect-ratio:16/8;cursor:ew-resize;user-select:none;box-shadow:0 30px 60px -30px rgba(0,0,0,.5)}
.wash img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wash .before{filter:grayscale(.55) brightness(.62) contrast(1.05) sepia(.28);clip-path:inset(0 0 0 50%)}
.wash .tag{position:absolute;top:16px;font-size:.72rem;font-weight:800;letter-spacing:.14em;color:#fff;background:rgba(8,25,44,.55);padding:6px 12px;border-radius:8px;z-index:4}
.wash .tag.l{left:16px}.wash .tag.r{right:16px}
.wash .handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;z-index:5}
.wash .handle::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.wash .handle::before{content:'⟺';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:6;color:var(--navy);font-weight:800}
/* bento */
.wgrid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:200px;gap:18px;margin-top:44px}
.wtile{position:relative;border-radius:18px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;text-decoration:none}
.wtile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.wtile:hover img{transform:scale(1.05)}
.wtile .ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,25,44,0) 30%,rgba(8,25,44,.82))}
.wtile .t{position:relative;z-index:2;padding:22px}.wtile h3{font-size:1.25rem;font-weight:700}.wtile p{font-size:.9rem;color:#cfe0f0;margin-top:3px}
.wtile.big{grid-column:span 4;grid-row:span 2}.wtile.sm{grid-column:span 2}.wtile.wide{grid-column:span 3}
@media(max-width:800px){.wgrid{grid-template-columns:1fr 1fr;grid-auto-rows:150px}.wtile.big{grid-column:span 2;grid-row:span 2}.wtile.sm,.wtile.wide{grid-column:span 1}}
/* scroll reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
.wwave{display:block;width:100%;height:54px;color:transparent}

/* trust strip: clean check marks, no emoji */
body.wet .wtrust .wrap span{display:inline-flex;align-items:center;gap:8px}
body.wet .wtrust .wrap span::before{content:'\2713';color:var(--cyan);font-weight:800;font-size:.95em}

/* borderless feature list (replaces repeated card grids for rhythm) */
.wfeat{display:grid;grid-template-columns:1fr 1fr;gap:0 52px;margin-top:30px}
@media(max-width:640px){.wfeat{grid-template-columns:1fr;gap:0 0}}
.wfeat>div{padding:22px 2px;border-top:1px solid rgba(255,255,255,.10)}
.wfeat>div h3{font-size:1.06rem;font-weight:700;color:#fff;margin:0 0 5px;letter-spacing:-.01em}
.wfeat>div p{font-size:.94rem;color:#b8cbe0;margin:0;line-height:1.55}

/* section heading rhythm on wet */
body.wet .section .h2{letter-spacing:-.02em}
body.wet .whero h1{text-wrap:balance}

/* Підпис студії Impeca v4 — джерело: web-studio control/_credit/impeca-credit.css (03.09). Не правити тут окремо. */
.impc-credit {
  font: inherit;
  color: inherit;
  /* Підкреслення — справжнє text-decoration, а не рамка знизу. Рамка малює
     суцільну лінію на всю ширину боксу й читається як окремий елемент;
     підкреслення обтікає літери, стоїть на відступі й лишається тим, чим має
     бути, — ознакою посилання. Колір береться з тексту, тому лягає на будь-яке
     тло без підбору, а приглушення дає opacity — гасне разом і текст, і лінія. */
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: opacity .15s ease;
  opacity: .78;
  -webkit-tap-highlight-color: transparent;
}

.impc-credit:hover,
.impc-credit:focus-visible {
  opacity: 1;
}

.impc-credit:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
  border-radius: 2px;
}

/* Бренд трохи важчий за послугу — так рядок читається як підпис, а не як
   рекламний слоган. Кольором не виділяємо: фірмовий фіолетовий на чужому
   футері дав би непередбачуваний контраст, а на темному тлі просто зник би. */
.impc-credit b {
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  .impc-credit { transition: none; }
}
/* impeca.pt: `footer.site a{display:block;padding:3px 0}` сильніше за .impc-credit — посилання стоїть у рядку .foot-bot, тож inline */
footer.site a.impc-credit{display:inline;padding:0}

/* 25.09: services mega menu now has 4 columns (exterior, interior, surfaces, guides) — it ran off the right edge at 1440.
   Anchor it to the header row (right-aligned) instead of the "Serviços" link, and let long guide names wrap. */
@media (min-width:861px){
  header.site .wrap{position:relative}
  .mainnav>.nav-item:first-child{position:static}
  .submenu.mega{left:auto;right:0;min-width:0;width:min(1040px,calc(100vw - 44px));max-width:none}
  .submenu.mega a{white-space:normal;line-height:1.3}
}

/* ===================== REDESIGN «Artesanal» (02.10; homepage for everyone since 05.10 — body.artesanal) ===================== */
body.artesanal{--art-bg:#fbfaf7;--art-soft:#f1eee7;--art-card:#ffffff;--art-ink:#1b2a33;--art-muted:#5d6a70;--art-line:#e3ded3;--art-acc:#137487;--art-act:#0f5e6e;--art-act-h:#0b4b58;--art-price:#8a5a12;--art-chip:#fbefd9;--art-hand:#c4781a;--art-scrim:rgba(27,42,51,.72);
  background:var(--art-bg);color:var(--art-ink);font-family:"Nunito Sans",system-ui,sans-serif}
@media (prefers-color-scheme:dark){body.artesanal{--art-bg:#141a1d;--art-soft:#1b2327;--art-card:#212b30;--art-ink:#efe9de;--art-muted:#b5ada0;--art-line:#334047;--art-acc:#6fd3e2;--art-act:#187a8b;--art-act-h:#1d8a9c;--art-price:#f0c27a;--art-chip:#3a2f1c;--art-hand:#f0b765;--art-scrim:rgba(0,0,0,.6);color-scheme:dark}}
body.artesanal h1,body.artesanal h2,body.artesanal h3,body.artesanal h4,body.artesanal .h2{font-family:"Bricolage Grotesque",system-ui,sans-serif;color:var(--art-ink)}
body.artesanal .eyebrow{color:var(--art-acc)}
body.artesanal .sub,body.artesanal .card p{color:var(--art-muted)}
body.artesanal .section{background:transparent}body.artesanal .bg-soft{background:var(--art-soft)}
body.artesanal .card{background:var(--art-card);border-color:var(--art-line)}
body.artesanal .btn-primary{background:var(--art-act);border-color:var(--art-act);color:#fff}body.artesanal .btn-primary:hover{background:var(--art-act-h);border-color:var(--art-act-h)}
body.artesanal .price-chip{background:var(--art-chip);color:var(--art-price)}
.art-hero{padding:34px 0 56px}
.art-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center}
.art-txt h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1;letter-spacing:-.03em;font-weight:800;margin:6px 0 0}
.art-cities{display:block;font:600 .36em/1.5 "Nunito Sans",system-ui,sans-serif;letter-spacing:0;margin-top:14px;color:var(--art-muted)}
.art-cities a{color:var(--art-acc);text-decoration:none;border-bottom:2px solid currentColor}.art-cities a:hover{text-decoration-line:underline;border-bottom-color:transparent}
.art-hand{font:600 1.5rem/1.1 "Caveat",cursive;color:var(--art-hand);margin:0}
.art-tag{margin:16px 0 18px;transform:rotate(-2deg);display:inline-block}
.art-lead{font-size:1.08rem;color:var(--art-muted);max-width:520px;margin:0 0 20px}
.art-txt .btns{display:flex;gap:12px;flex-wrap:wrap}
.art-prom{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:6px;font-weight:600}.art-prom li::before{content:"✓ ";color:var(--art-acc);font-weight:800}
.art-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.art-ba{margin:0;background:var(--art-card);padding:8px;border-radius:22px;box-shadow:0 20px 44px -20px rgba(60,45,20,.35)}
.art-ba:first-child{transform:rotate(-2deg)}.art-ba:last-child{transform:rotate(2deg) translateY(24px)}
.art-ba figcaption{font-size:.85rem;font-weight:700;padding:8px 4px 2px;color:var(--art-ink)}
.art-cmp{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;--p:50%}
.art-cmp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(1.08) contrast(1.07) saturate(1.05)}
.art-cmp .art-bef{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.art-cmp::after{content:"";position:absolute;top:0;bottom:0;left:var(--p);width:3px;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.4);pointer-events:none}
.art-cmp input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.art-cmp input:focus-visible+.art-l1{outline:3px solid var(--art-acc)}
.art-l1,.art-l2{position:absolute;top:10px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;background:var(--art-scrim);color:#fff;padding:3px 8px;border-radius:99px;pointer-events:none}.art-l1{left:10px}.art-l2{right:10px}
.art-zones{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.art-zcol ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:8px}
.art-zcol a{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:14px 16px;border-radius:14px;background:var(--art-card);border:1px solid var(--art-line);text-decoration:none;color:var(--art-ink);transition:border-color .15s,transform .15s}
.art-zcol a:hover{border-color:var(--art-acc);transform:translateX(3px)}
.art-zn{font-weight:700}.art-zp{font:800 1.05rem "Bricolage Grotesque",system-ui,sans-serif;color:var(--art-price);text-align:right}.art-zp small{font:500 .72rem "Nunito Sans",sans-serif;color:var(--art-muted)}.art-zo{grid-column:1/-1;font-size:.8rem;color:var(--art-muted)}
.art-svc{display:grid;grid-template-columns:1.4fr 1fr;gap:28px;margin-top:30px}
.art-colh{font-size:1.3rem;margin:0 0 14px}.art-colh small{display:block;font:500 .85rem "Nunito Sans",sans-serif;color:var(--art-muted)}
.art-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.art-tile{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:22px;background:var(--art-card);border:1px solid var(--art-line);text-decoration:none;color:var(--art-ink);transition:transform .18s,box-shadow .18s,border-color .18s}
.art-tile:hover{transform:translateY(-3px);border-color:var(--art-acc);box-shadow:0 20px 44px -20px rgba(60,45,20,.35)}
.art-tile h4{font-size:1.08rem;margin:0}.art-tile p{margin:0;color:var(--art-muted);font-size:.92rem}.art-tile .price-chip{margin-top:auto;align-self:flex-start}
.art-guar{margin:14px 0 0;padding:16px;border-radius:14px;background:var(--art-chip);font-size:.92rem}
@media(max-width:900px){.art-grid{grid-template-columns:1fr;gap:24px}.art-zones,.art-svc{grid-template-columns:1fr}}
@media(max-width:560px){.art-hero{padding-top:18px}.art-txt h1{font-size:2.05rem}.art-lead,.art-prom,.art-tag{display:none}.art-photos{gap:10px}.art-ba{padding:5px;border-radius:16px}.art-ba:last-child{transform:rotate(2deg) translateY(12px)}.art-zones{margin-top:30px}}
@media(prefers-reduced-motion:reduce){.art-zcol a,.art-tile{transition:none}}
/* «Artesanal» inner pages — group 1, service pages (05.10, preview at ?v=artesanal) */
body.artesanal .crumbs{color:var(--art-muted)}body.artesanal .crumbs a{color:var(--art-acc)}
.art-phero .art-hand{margin:10px 0 4px}
.art-phero .art-txt h1{font-size:clamp(2rem,4.4vw,3.3rem)}
.art-phero .art-lead{margin-top:16px}
.art-pline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 20px;font-weight:600;color:var(--art-muted)}
.art-ba.art-cover{transform:rotate(1.5deg)}
.art-cover img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;border-radius:16px;filter:brightness(1.06) contrast(1.05)}
body.artesanal .card{color:var(--art-ink)}body.artesanal .card h2,body.artesanal .card h3{color:var(--art-ink)}
body.artesanal .prose p,body.artesanal .prose li{color:var(--art-ink)}body.artesanal .prose a{color:var(--art-acc)}
body.artesanal .note{color:var(--art-muted)}
body.artesanal .trustline span::before{color:var(--art-acc)}
body.artesanal .svc-guarantee{padding:14px 16px;border-radius:14px;background:var(--art-chip);color:var(--art-ink)}
body.artesanal .faq details{background:var(--art-card);border-color:var(--art-line);color:var(--art-ink)}
body.artesanal .faq summary{color:var(--art-ink)}body.artesanal .faq summary::after{color:var(--art-acc)}
body.artesanal .faq details .a{color:var(--art-muted)}
.art-tile h3{font-size:1.08rem;margin:0}
/* calculator: stays a light panel in day AND night (form widgets are light-themed), header in the Artesanal teal, not navy */
body.artesanal .calcbox{color:#1b2a33;--muted:#5d6a70;border-color:var(--art-line)}
body.artesanal .calcbox .head{background:#0f5e6e}body.artesanal .calcbox .head h3{color:#fff}body.artesanal .calcbox .head p{color:rgba(255,255,255,.86)}
body.artesanal .calcbox .f-label,body.artesanal .calcbox .f-in{color:#1b2a33}body.artesanal .calcbox .f-in{background:#fff}
body.artesanal .calcbox .radio-row label{color:#33475b}body.artesanal .calcbox .radio-row label.on{color:#0f5e6e}
/* .art-ba.art-cover: same specificity as the homepage's .art-ba:last-child (rotate + translateY), declared later, so it wins */
@media(max-width:900px){.art-ba.art-cover{transform:none;max-width:560px}}
@media(max-width:560px){.art-phero .art-lead{display:block;font-size:1rem}.art-hero.art-phero{padding-bottom:8px}}

/* 09.10 Borys: «дуже важко відкрити меню на десктопі… потрібно бути Джекі Чаном». The panel used display:none and sat below a gap
   under the link, so the path from «Serviços» to the panel left the hover area. Now: the panel closes with a 0.35 s delay and an
   invisible bridge covers the gap above it. Mobile keeps its own rule (display:none!important). */
@media (min-width:861px){
 .submenu{display:flex;visibility:hidden;opacity:0;transition:opacity .12s linear .35s,visibility 0s linear .47s}
 .nav-item:hover .submenu,.nav-item:focus-within .submenu{visibility:visible;opacity:1;transition-delay:0s,0s}
 .submenu::before{content:"";position:absolute;left:0;right:0;top:-34px;height:34px}
}

/* 09.10 Borys «2 роби дизайн»: Artesanal on EVERY page (was: home + services). Inner-page blocks below mirror the old
   body.wet overrides with Artesanal tokens, so day and night both read; forms/calculator stay light panels (see above). */
body.artesanal{--ink:var(--art-ink);--line:var(--art-line);--muted:var(--art-muted)}
body.artesanal .pagehero{background:var(--art-soft);color:var(--art-ink);border-bottom:1px solid var(--art-line)}
body.artesanal .pagehero h1{color:var(--art-ink);letter-spacing:-.02em}
body.artesanal .pagehero p{color:var(--art-muted)}
body.artesanal .prose h2,body.artesanal .prose h3,body.artesanal .prose strong,body.artesanal .prose b{color:var(--art-ink)}
body.artesanal main a:not(.btn):not(.card):not(.art-tile):not(.price-chip):not(.wtile),body.artesanal section a:not(.btn):not(.card):not(.art-tile):not(.price-chip):not(.wtile),body.artesanal table a{color:var(--art-acc)}
body.artesanal .btn-light{background:var(--art-card);color:var(--art-ink);border-color:var(--art-line)}body.artesanal .btn-light:hover{border-color:var(--art-acc);color:var(--art-acc)}
body.artesanal table.tbl,body.artesanal table:not(.tbl){background:var(--art-card);color:var(--art-ink);box-shadow:none;border:1px solid var(--art-line)}
body.artesanal table th{background:var(--art-act);color:#fff}
body.artesanal table td{color:var(--art-ink);border-color:var(--art-line)}
body.artesanal .step{background:var(--art-card);border-color:var(--art-line)}
body.artesanal .step h3{color:var(--art-ink)}body.artesanal .step p{color:var(--art-muted)}
body.artesanal .callout{border-color:var(--art-acc);background:var(--art-chip)}
body.artesanal .callout h2{color:var(--art-ink)}body.artesanal .callout .note{color:var(--art-muted)}
body.artesanal .trustline span{color:var(--art-muted)}
body.artesanal ul.checklist li::before,body.artesanal .prose ul.do li::before{color:var(--art-acc)}
body.artesanal .equip .body li{color:var(--art-ink)}
body.artesanal .f-label{color:var(--art-ink)}body.artesanal .f-in{background:#fff;color:#1b2a33}
body.artesanal .radio-row label{color:var(--art-ink)}
body.artesanal .authbox,body.artesanal .mybox,body.artesanal .box{color:#1b2a33;--ink:#1b2a33;--muted:#5d6a70}
body.artesanal .authbox .in,body.artesanal .mybox .in,body.artesanal .box .in,body.artesanal .authbox input,body.artesanal .mybox input,body.artesanal .box input{color:#1b2a33}
body.artesanal .calcbox{--ink:#1b2a33;--line:#e3ded3}
body.artesanal.reserve .card{background:var(--art-card);color:var(--art-ink);border-color:var(--art-line)}body.artesanal.reserve .step{color:var(--art-muted)}
body.artesanal.reserve .card .f-in,body.artesanal.reserve .card input,body.artesanal.reserve .card select,body.artesanal.reserve .card textarea{color:#1b2a33}
@media (prefers-color-scheme:dark){body.artesanal .prose ul.dont li::before{color:#ff7a72}body.artesanal .spec-hot{color:#ff8a6b}body.artesanal .spec-cold{color:#5fb0f2}}

/* 09.10 before/after slider on service pages (same component as the home page) */
.svc-ba{max-width:440px;margin:26px auto}.svc-ba h2{text-align:center;margin-bottom:12px}.svc-ba .art-ba{transform:none}
/* 15.10 Borys «таблиця на телефоні має бути гарна продумана»: on phones every price row becomes a card —
   service name as title, label · value lines (labels from data-k), the action as a full-width button. No sideways scroll. */
@media(max-width:640px){
  .ptable,.ptable tbody,.ptable tr,.ptable td{display:block;width:auto}
  .ptable tr:first-child{display:none}
  .ptable tr{background:var(--art-card,#fff);border:1px solid var(--art-line,#e3ded3);border-radius:14px;padding:14px 16px;margin:0 0 12px}
  .ptable td{border:0;padding:4px 0;display:flex;justify-content:space-between;gap:14px;text-align:right}
  .ptable td::before{content:attr(data-k);color:var(--art-muted,#5d6a70);text-align:left;font-size:.88em;flex:0 0 auto}
  .ptable td:first-child{display:block;text-align:left;font-weight:700;font-size:1.05rem;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--art-line,#e3ded3)}
  .ptable td:first-child::before,.ptable td:last-child::before{content:none}
  .ptable td.empty{display:none}
  .ptable td:last-child{display:block;padding-top:10px}
  .ptable td:last-child a{display:block;text-align:center;padding:11px;border-radius:10px;background:var(--art-act,#0f5e6e);color:#fff!important;font-weight:700;text-decoration:none}
  .ptable tr td{border-bottom:0!important}
  .ptable td:first-child{border-bottom:1px solid var(--art-line,#e3ded3)!important}
}
/* 16.10 Borys: «Copiar» next to every e-mail link (added by JS after the link) */
.mcopy{margin-left:8px;padding:3px 10px;font:600 .8rem/1.4 inherit;border-radius:8px;border:1px solid var(--art-line,#c9d6e4);background:var(--art-soft,#f1eee7);color:var(--art-ink,inherit);cursor:pointer;vertical-align:middle}
.mcopy:hover{border-color:var(--art-acc,#137487)}
/* 19.10: Google Maps card on /contactos (Borys: «інтеграцію Google My Business на наш сайт») */
.gmap{width:100%;height:220px;border:0;border-radius:12px;margin-top:10px}
.foot-gmb a{color:inherit;text-decoration:underline}
/* 19.10 Borys: «кнопку WhatsApp, щоб вона була завжди видна» — WhatsApp is the main conversion (site chat: 0 messages 09–19.10).
   Phones: full-width bottom bar at once (no scroll wait); desktop: pill bottom-right. The chat bubble is hidden; chat stays reachable from «Contactos». */
#imchat-btn{display:none!important}
@media(max-width:860px){.mcta-wa,.mcta-wa.on{display:inline-flex;right:12px;justify-content:center;white-space:nowrap;font-size:15px;padding-top:12px;padding-bottom:12px}}
@media(min-width:861px){.mcta-wa{display:inline-flex;position:fixed;right:20px;bottom:20px;z-index:9997;box-shadow:0 4px 14px rgba(0,0,0,.25)}}
/* 21.10 Borys «по закону, щоб не було штрафів»: complaints book «em local visível e de forma destacada» (DL 156/2005) + RAL line */
.foot-lr{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.14)}
.lr-badge{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#a4161a!important;border:2px solid #a4161a;border-radius:10px;padding:10px 18px 10px 14px!important;text-decoration:none!important;line-height:1.15}
.lr-badge b{display:block;font-size:.95rem}.lr-badge small{display:block;font-size:.72rem;color:#5a2a2a}.lr-ic{font-size:1.5rem}
.lr-ral{flex:1 1 260px;margin:0;font-size:.8rem;color:#9db4ca;line-height:1.5}.lr-ral a{display:inline!important;padding:0!important;color:inherit;text-decoration:underline}

/* 22.10 Google + Instagram block (inc/social_blocks.php) */
.soc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:30px}
.soc-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-s)}
.soc-card p{color:var(--muted);margin:8px 0 16px}
.soc-btns{display:flex;flex-wrap:wrap;gap:10px}
.soc-ig{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:24px;align-items:start}
.soc-ig .instagram-media{min-width:0!important;width:100%!important;margin:0!important}
.soc-ig-off{margin-top:18px}
