:root{--ink:#1f2933;--mut:#52606d;--bg2:#f4f6f8;--line:#d9e0e6}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-block:20px calc(84px + env(safe-area-inset-bottom));-webkit-text-size-adjust:100%}
body{margin:0;padding-bottom:calc(76px + env(safe-area-inset-bottom));font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#fff}
.wrap{max-width:1080px;margin:auto;padding-inline:16px}
a{color:var(--a);text-underline-offset:3px}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--a);outline-offset:4px}
.skip{position:absolute;left:-9999px;top:8px;z-index:20;background:#fff;min-height:44px;padding:10px 16px}
.skip:focus{left:8px}
.top{border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px;padding-block:10px}
.brand{font-size:.85rem;font-weight:700;line-height:1.3;max-width:220px}
.top nav{display:none}
.top nav a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;padding:8px;color:var(--ink);font-weight:600;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:48px;padding:10px 16px;border:2px solid var(--a);border-radius:8px;font:700 1rem/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;text-align:center;text-decoration:none;cursor:pointer}
.btn-p{background:var(--a);color:#fff}
.btn-s{background:#fff;color:var(--a)}
.btn:hover{filter:brightness(.94)}
.btn:disabled{opacity:.65;cursor:default}
.top-cta{display:flex;gap:8px;flex:none}
.top .btn{flex:none;min-height:44px;padding:8px 10px;font-size:.82rem;white-space:nowrap}
section{padding-block:32px}
.alt{background:var(--bg2)}
h1,h2,h3,p,figure{margin-top:0}
h1{font-size:clamp(1.75rem,6.8vw,2.65rem);line-height:1.13;letter-spacing:-.025em;margin-bottom:12px;text-wrap:balance}
h2{font-size:clamp(1.4rem,5.4vw,1.9rem);line-height:1.2;letter-spacing:-.015em;margin-bottom:18px}
h3{font-size:1.05rem;line-height:1.3;margin-bottom:8px}
.hero{padding-block:24px;border-bottom:4px solid var(--a)}
.hero-grid{display:grid;gap:20px}
.hero-txt,.hero-img,.contact>*{min-width:0}
.sub{margin-bottom:16px;color:var(--mut);max-width:46ch}
.cta{display:grid;gap:8px;margin-bottom:16px}
.cta .btn-p{min-height:52px;font-size:1.05rem}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9rem}
.ticks li{position:relative;padding-left:24px}
.ticks li:before,.service-points li:before{content:"";position:absolute;left:3px;top:.45em;width:6px;height:10px;border:solid var(--a);border-width:0 2px 2px 0;transform:rotate(45deg)}
.hero-img{margin:0}
.hero-img img{display:block;width:100%;height:180px;object-fit:cover;border-radius:12px}
.hero-img figcaption,.ph figcaption{color:var(--mut);font-size:.8rem;line-height:1.35;margin-top:6px}
.gnote{margin:-8px 0 16px;color:var(--mut);font-size:.85rem}
.gal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
.ph{margin:0;min-width:0}
.ph img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:8px;background:var(--line)}
.grid{display:grid;gap:12px}
.card{border-bottom:1px solid var(--line);padding:0 0 16px}
.service-points{list-style:none;margin:0;padding:0;display:grid;gap:4px;color:var(--mut);font-size:.93rem}
.service-points li{position:relative;padding-left:20px}
.card a{display:inline-flex;align-items:center;min-width:44px;min-height:44px}
.lead{margin-bottom:16px;max-width:65ch}
.area-list{margin-bottom:0}
.area-list summary{font-weight:600}
.area-groups{padding:16px;display:grid;gap:16px}
.lbl{font-weight:700;margin-bottom:6px}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0;font-size:.9rem;color:var(--mut)}
.chips li:not(:last-child):after{content:" · ";white-space:pre;color:var(--a);font-weight:700}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px;counter-reset:step}
.steps li{counter-increment:step;min-width:0}
.step-mark{display:flex;gap:10px;align-items:center;margin-bottom:10px;color:var(--a)}
.step-mark:before{content:"0" counter(step);font-size:.8rem;font-weight:800}
.step-mark svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.steps strong{display:block;line-height:1.3;font-size:1rem;margin-bottom:6px}
.steps li>span{display:block;font-size:.9rem;color:var(--mut)}
.graphic-note{font-size:.75rem;color:var(--mut);margin:16px 0 0}
.prices{display:grid;gap:12px}
.price-card{margin:0;padding:18px;border:1px solid var(--line);border-radius:10px;background:#fff;border-top:3px solid var(--a)}
.price-card dt{font-weight:600;margin-bottom:10px}
.price-card dd{margin:0;color:var(--mut);font-size:.9rem}
.price-card dd strong{display:block;color:var(--a);font-size:1.5rem;line-height:1.25;margin-bottom:6px;letter-spacing:-.02em}
.note{color:var(--mut);font-size:.9rem;margin:14px 0 0}
details{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:#fff}
summary{cursor:pointer;padding:13px 16px;min-height:48px;min-width:44px;font-weight:700;list-style-position:inside}
details[open]>summary{border-bottom:1px solid var(--line)}
details p{margin:0;padding:14px 16px}
.contact{display:grid;gap:24px}
form{display:grid;gap:14px}
.form-demo{margin:0;padding:12px;border-left:3px solid var(--a);background:#fff;font-size:.9rem;color:var(--mut)}
.f label{display:block;font-weight:600;margin-bottom:6px}
.f input,.f select,.f textarea{display:block;width:100%;min-height:48px;border:1px solid #788694;border-radius:8px;padding:10px 12px;font:inherit;font-size:16px;color:var(--ink);background:#fff}
.f textarea{min-height:96px;resize:vertical}
.optional-fields{margin:0}
.optional-fields>div{display:grid;gap:14px;padding:16px}
.chk{position:relative;min-height:44px}
.chk input{position:absolute;left:0;top:0;width:44px;height:44px;margin:0;opacity:0;cursor:pointer}
.chk label{display:block;position:relative;padding:11px 8px 11px 44px;min-height:44px;cursor:pointer;font-size:.93rem}
.chk label:before{content:"";position:absolute;left:10px;top:12px;width:22px;height:22px;background:#fff;border:2px solid #788694;border-radius:4px;pointer-events:none}
.chk input:checked+label:before{background:var(--a);border-color:var(--a)}
.chk input:checked+label:after{content:"";position:absolute;left:18px;top:16px;width:6px;height:12px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);pointer-events:none}
.chk input:focus-visible+label{outline:3px solid var(--a);outline-offset:3px;border-radius:4px}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.req{color:#a21b2d}
.msg{margin:0;font-weight:700;overflow-wrap:anywhere}
form.is-sent>:not(.msg){display:none}
form.is-sent .msg{font-size:1.15rem;padding:8px 0}
.side{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;align-self:start}
.side p{margin-bottom:12px}
.side p:last-child{margin-bottom:0}
.side a,footer a{display:inline-flex;align-items:center;min-width:44px;min-height:44px;overflow-wrap:anywhere}
.side .big{font-size:1.4rem;font-weight:800;text-decoration:none}
footer{background:var(--ink);color:#e4e9ee;padding:28px 0}
footer a{color:#fff}
footer .cols{display:grid;gap:20px}
footer h2{font-size:1rem;margin-bottom:6px;letter-spacing:0}
footer ul{list-style:none;padding:0;margin:0}
footer p{margin:0}
.demo,.photo-credit,.operator{font-size:.85rem;color:#c5cfd8;margin-top:18px}
.operator{max-width:68ch;font-size:.95rem;color:#e4e9ee}
.operator-links{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center;margin-top:4px}
.textbtn{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;background:none;border:0;color:#fff;font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.policy{padding-block:8px 40px}
.policy h1{font-size:clamp(1.6rem,6vw,2.2rem)}
.policy h2{font-size:1.15rem;margin:1.3em 0 .4em}
.policy p,.policy li{max-width:68ch}
.policy ul{margin:0 0 12px;padding-left:1.2em}
.cookie{position:fixed;z-index:40;left:0;right:0;bottom:0;background:#fff;color:var(--ink);border-top:1px solid var(--line);box-shadow:0 -4px 20px #0002;padding:14px 16px calc(14px + env(safe-area-inset-bottom))}
.cookie p{margin:0 0 12px;font-size:.95rem}
.cookie-actions{display:flex;gap:8px}
.cookie-actions .btn{flex:1}
body.cookie-open{padding-bottom:calc(210px + env(safe-area-inset-bottom))}
body.cookie-open .callbar{display:none}
.callbar{display:none;position:fixed;inset:auto 0 0;z-index:10;align-items:center;justify-content:center;min-height:calc(56px + env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--a);color:#fff;font-weight:700;font-size:1rem;text-decoration:none;box-shadow:0 -1px 8px #0002}
.callbar.is-visible{display:flex}
body:has(form :focus) .callbar{display:none}
@media(min-width:640px){.wrap{padding-inline:24px}.gal,.grid,.prices{grid-template-columns:repeat(3,minmax(0,1fr))}.grid{gap:24px}.steps{grid-template-columns:repeat(4,minmax(0,1fr))}.area-groups{grid-template-columns:1fr 1fr}.hero-img img{height:300px}footer .cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:900px){body{padding-bottom:0}.callbar.is-visible{display:none}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:40px}.hero-img img{height:auto;aspect-ratio:4/3}.contact{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}section{padding-block:48px}.hero{padding-block:40px}}
@media(min-width:1040px){.top nav{display:block}.brand{max-width:200px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.cookie-actions .btn{flex:1 1 0;min-width:0;min-height:48px;padding:10px 16px;font-size:1rem}
.cookie-actions .btn-eq{background:#fff;color:var(--a)}
