:root{--navy:#0b222b;--deep:#07191f;--mint:#68dfc4;--paper:#f5f7f6;--ink:#12303a;--muted:#597078;--line:#d9e3e3;--white:#fff;--radius:8px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.6;color:var(--ink);background:var(--paper)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #12a889;outline-offset:5px}img{display:block;max-width:100%}button{cursor:pointer}p,h1,h2,h3{margin:0}p+p{margin-top:16px}
.wrap{width:min(1320px,calc(100% - 96px));margin:auto}
.skip{position:fixed;left:16px;top:-100px;z-index:20;padding:12px;background:white}
.skip:focus{top:12px}
.site-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:10;border-bottom:1px solid #ffffff18}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:92px}
.brand{display:flex;align-items:center;gap:12px;line-height:1.05;flex-shrink:0}
.brand-mark{font-weight:900;font-size:1.9375rem;letter-spacing:-2px;border-right:1px solid #ffffff55;padding-right:14px}
.brand-name{font-size:0.875rem;font-weight:700;letter-spacing:1.4px}
.brand-name small{display:block;font-size:0.75rem;letter-spacing:3.4px;color:var(--mint);margin-top:8px}
.nav{display:flex;align-items:center;gap:28px;font-size:0.875rem}
.nav a:not(.button):hover,.footer-links a:hover{text-decoration:underline;text-underline-offset:5px}
.lang{font-weight:700;letter-spacing:.04em}
.nav-toggle{display:none;background:transparent;color:#fff;border:1px solid #ffffff50;border-radius:4px;padding:9px 12px}
.button{display:inline-flex;justify-content:center;align-items:center;gap:14px;padding:14px 21px;border:1px solid transparent;border-radius:4px;background:var(--mint);color:var(--deep);font-size:0.9375rem;font-weight:700;line-height:1.3;min-height:50px;transition:background .2s,transform .2s}
.button:hover{background:#99ecd9;transform:translateY(-1px)}
.button-outline{background:transparent;color:inherit;border-color:currentColor}
.button-outline:hover{background:#ffffff0e}
.button-dark{background:var(--navy);color:#fff}
.button-dark:hover{background:#19424c}
.button-white{background:#fff;color:var(--navy)}
.arrow{font-size:1.3125rem;font-weight:400;line-height:1}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:0.75rem;font-weight:700;line-height:1.5}
.hero{background:var(--navy);color:#fff;padding:52px 0 0}
.hero-grid{display:grid;grid-template-columns:1fr 1.06fr;gap:56px;align-items:center}
.hero-copy{padding:10px 0 30px}
.hero .eyebrow{color:var(--mint);margin-bottom:25px}
.hero h1{font-size:clamp(48px,6vw,88px);font-weight:500;line-height:1.03;letter-spacing:-.055em}
.hero h1 em{font-style:normal;color:var(--mint)}
.hero-description{font-size:1.125rem;color:#c4d3d6;max-width:460px;line-height:1.7;margin-top:27px}
.hero-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:28px}
.hero-footnote{font-size:0.8125rem;color:#a7bdc3;margin-top:18px}
.hero-photo{position:relative;margin:0;min-height:570px;height:100%;overflow:hidden;border-radius:100px 8px 8px 8px;background:#174651}
.hero-photo img{height:100%;width:100%;position:absolute;inset:0;object-fit:cover;object-position:55% center}
.hero-photo:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#061c25c9)}
.photo-label{position:absolute;top:25px;right:24px;color:white;background:#0b222bbf;border:1px solid #ffffff50;padding:8px 13px;border-radius:3px;font-size:0.75rem;letter-spacing:.1em;z-index:1}
.photo-caption{position:absolute;left:32px;right:28px;bottom:28px;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:12px}
.photo-caption strong{display:block;font-size:1.375rem;font-weight:500}
.photo-caption span{font-size:0.8125rem;color:#e0eeee}
.photo-caption b{font-size:1.8125rem;font-weight:400}
.hero-bottom{display:flex;gap:30px;justify-content:space-between;border-top:1px solid #ffffff25;margin-top:45px;padding:21px 0;color:#c1d0d3;font-size:0.8125rem}
.hero-bottom strong{color:#fff;font-weight:500}
.section{padding:92px 0}
.section-top{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}
.section-top p{max-width:390px;color:var(--muted)}
.section .eyebrow{color:#366c72;margin-bottom:17px}h2{font-size:clamp(30px,3.5vw,47px);line-height:1.15;font-weight:500;letter-spacing:-.04em}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.service-card{background:#fff;padding:30px;border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;min-height:370px}
.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}
.card-num{font-size:0.875rem;color:#547079}
.card-category{font-size:0.75rem;letter-spacing:.09em;text-transform:uppercase;background:#eff6f5;padding:5px 9px;border-radius:2px}h3{font-size:1.625rem;font-weight:500;line-height:1.2;letter-spacing:-.025em}
.service-card p{font-size:1rem;color:var(--muted);margin-top:16px}
.service-card ul{list-style:none;padding:0;margin:20px 0 25px;font-size:0.875rem;line-height:1.8}
.service-card li:before{content:"—";color:#288779;margin-right:9px}
.text-link{display:flex;justify-content:space-between;gap:12px;font-weight:700;font-size:0.875rem;border-top:1px solid var(--line);padding-top:19px;margin-top:auto}
.text-link:hover{color:#147b6d}
.process{background:#e8eeed;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.process-grid{display:grid;grid-template-columns:.85fr 1.5fr;gap:90px}
.process-intro p{margin-top:22px;color:var(--muted)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.step-num{display:block;font-size:0.8125rem;color:#39726f;margin-bottom:34px}
.steps h3{font-size:1.25rem}
.steps p{font-size:1rem;color:var(--muted);margin-top:13px}
.contact{background:var(--navy);color:#fff}
.contact .eyebrow{color:var(--mint)}
.contact-grid{display:grid;grid-template-columns:.95fr 1fr;gap:90px}
.contact h2{font-size:clamp(38px,4.4vw,60px)}
.contact-intro{max-width:430px;color:#bed0d4;margin-top:24px}
.contact-phone{display:block;font-size:clamp(28px,3vw,40px);letter-spacing:-.025em;margin-top:34px}
.contact-email{display:inline-block;color:var(--mint);font-size:1.125rem;margin-top:7px;overflow-wrap:anywhere}
.contact-location{margin-top:32px;padding-top:22px;border-top:1px solid #ffffff25;font-size:0.875rem;color:#b3c6ca}
.contact-form{background:#fff;border-radius:var(--radius);padding:32px;color:var(--ink)}
.contact-form h3{font-size:1.4375rem;margin-bottom:8px}
.form-intro{font-size:0.875rem;color:var(--muted);margin-bottom:24px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:17px}
.field label{display:block;font-size:0.875rem;font-weight:700;margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:12px 13px;border:1px solid #bfcecf;border-radius:4px;min-height:48px;color:var(--ink);background:#fff}
.field textarea{min-height:110px;resize:vertical}
.form-buttons{display:flex;gap:10px;flex-wrap:wrap}
.form-buttons .button{flex:1;font-size:0.875rem;padding:13px 15px}
.form-note{font-size:0.75rem;color:var(--muted);margin-top:14px;line-height:1.5}
.faq-layout{display:grid;grid-template-columns:.85fr 1.5fr;gap:90px}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:23px 0;font-weight:500;font-size:1.0625rem;line-height:1.45}summary::-webkit-details-marker{display:none}summary:after{content:"+";font-size:1.5625rem;color:#277e75;font-weight:400}details[open] summary:after{content:"−"}
.faq-list details p{padding:0 28px 23px 0;color:var(--muted);font-size:1rem}
.site-footer{background:var(--deep);color:#fff;padding:42px 0 24px}
.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:start}
.footer-links{display:flex;gap:25px;flex-wrap:wrap;font-size:0.8125rem;color:#c4d3d6}
.footer-bottom{display:flex;justify-content:space-between;gap:25px;font-size:0.75rem;color:#91aab1;border-top:1px solid #ffffff22;padding-top:20px;margin-top:35px}
.mobile-contact{display:none}
.breadcrumb{font-size:0.8125rem;color:#bbd0d4;margin-bottom:32px;display:flex;gap:12px;flex-wrap:wrap}
.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.detail-hero{padding:45px 0 65px}
.detail-hero h1{max-width:980px;font-size:clamp(43px,5.5vw,76px)}
.detail-hero .hero-description{max-width:740px}
.detail-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:80px}
.content-block+.content-block{margin-top:45px}
.content-block h2{font-size:1.9375rem;margin-bottom:20px}
.content-block p{color:var(--muted)}
.content-block p a{color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-color:#58bba7;text-underline-offset:4px}
.check-list{padding-left:20px;color:var(--muted)}
.check-list li{padding:7px 0}
.detail-aside{align-self:start;border:1px solid var(--line);background:#fff;padding:28px;border-radius:var(--radius);position:sticky;top:120px}
.detail-aside h3{font-size:1.375rem;margin-bottom:15px}
.detail-aside p{font-size:1rem;color:var(--muted);margin-bottom:23px}
.detail-aside .button{width:100%;margin-top:10px}
.related{border-top:1px solid var(--line);padding-top:30px;margin-top:50px}
.related-links{display:flex;gap:20px;flex-wrap:wrap;margin-top:20px}
.related-links a{text-decoration:underline;text-underline-offset:5px}
.legal{max-width:820px}
.legal h2{font-size:1.625rem;margin:32px 0 15px}
.legal p{color:var(--muted)}
.legal a{text-decoration:underline}
.notice{border-left:3px solid #27a48e;padding:15px 20px;background:#e8f3ef;color:var(--ink)}
@media(min-width:1550px){.hero-grid{gap:85px}}
@media(max-width:1100px){.wrap{width:calc(100% - 56px)}
.nav{gap:18px}
.hero-grid{gap:30px}
.hero-photo{min-height:520px}
.hero h1{font-size:4.25rem}
.service-card{padding:23px}
.process-grid,.contact-grid,.faq-layout{gap:45px}
.hero-actions .button{font-size:0.875rem;padding:13px 16px}
.steps{gap:18px}
.detail-grid{gap:40px}}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}
.header-inner{min-height:78px;gap:16px}
.brand-mark{font-size:1.75rem}
.nav-toggle{display:block}
.nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--navy);padding:24px;flex-direction:column;align-items:stretch;border-bottom:1px solid #ffffff30}
.nav.is-open{display:flex}
.nav a{padding:8px}
.hero{padding-top:35px}
.hero-grid{gap:28px;grid-template-columns:1fr}
.hero-copy{padding:0}
.hero h1{font-size:clamp(53px,10vw,76px);max-width:640px}
.hero-description{max-width:580px;font-size:1.0625rem}
.hero-photo{min-height:390px;height:390px;border-radius:65px 6px 6px 6px}
.hero-photo img{object-position:50% 62%}
.hero-bottom{margin-top:30px;gap:12px;flex-wrap:wrap;font-size:0.75rem}
.section{padding:65px 0}
.section-top{align-items:start;gap:22px;flex-direction:column}
.service-grid{grid-template-columns:1fr}
.service-card{min-height:0;padding:26px}
.card-top{margin-bottom:22px}
.service-card ul{margin-bottom:20px}
.process-grid,.contact-grid,.faq-layout,.detail-grid{grid-template-columns:1fr;gap:35px}
.steps{gap:26px}
.step-num{margin-bottom:18px}
.contact-form{padding:25px}
.footer-top{flex-direction:column}
.footer-bottom{flex-direction:column;gap:8px}
.site-footer{padding-bottom:105px}
.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:12;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#07191ff5;border-top:1px solid #ffffff25}
.mobile-contact .button{flex:1;min-height:45px;font-size:0.875rem;padding:12px}
.detail-aside{position:static}
.detail-hero{padding:25px 0 45px}
.detail-hero h1{font-size:3.125rem}
.breadcrumb{margin-bottom:25px}
.footer-links{gap:16px}}
@media(max-width:450px){.wrap{width:calc(100% - 32px)}
.brand-name{font-size:0.75rem}
.brand-name small{font-size:0.6875rem}
.hero h1{font-size:3.3125rem}
.hero-actions{gap:10px}
.hero-actions .button{flex:1}
.hero-photo{height:335px;min-height:335px}
.photo-caption{left:23px;bottom:22px}
.photo-caption strong{font-size:1.25rem}
.hero-bottom span:last-child{width:100%}
.steps{grid-template-columns:1fr;gap:28px}
.step-num{margin-bottom:10px}
.steps h3{font-size:1.375rem}
.field-grid{grid-template-columns:1fr;gap:0}
.contact-form{padding:22px}
.contact-phone{font-size:1.9375rem}
.detail-hero h1{font-size:2.6875rem}
.section-top h2 br{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Responsive and accessible refinements to the original marine identity. */
[hidden] { display: none !important; }
:root { --mint-hover: #9aedda; }
html { scroll-padding-top: 6.5rem; }
body { overflow-wrap: break-word; }
main, section, article, aside, .hero-copy, .contact-form, .field, .field-grid > *, .footer-top > * { min-width: 0; }
.accent { color: var(--mint); }
.header-inner { min-height: 5.125rem; }
.nav .button { min-height: 2.75rem; padding: .75rem 1rem; font-size: .875rem; font-variant-numeric: tabular-nums; }
.nav a[aria-current], .footer-links a[aria-current] { color: var(--mint); }
.hero { padding-top: 2.625rem; }
.hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr); gap: 3rem; }
.hero h1 { font-size: clamp(3.25rem, 5.9vw, 5.25rem); line-height: 1.04; text-wrap: balance; }
.hero-description { max-width: 31rem; font-size: 1.0625rem; }
.hero-photo { min-height: 31.875rem; border-radius: 5rem .5rem .5rem .5rem; }
.hero-photo picture { display: block; height: 100%; }
.hero-photo img { object-position: 57% center; }
.hero-actions { gap: .75rem; }
.hero-actions .button { min-height: 3.25rem; }
.hero-bottom { margin-top: 2.25rem; }
.hero-bottom span { display: flex; gap: .3rem; flex-wrap: wrap; }
.section { padding-block: 5.25rem; }
.section-top p { font-size: 1rem; }
.service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.service-card { position: relative; border-top: 3px solid #58bba7; padding: 1.75rem; box-shadow: 0 5px 20px #0b222b03; transition: border-color .2s, box-shadow .2s; }
.service-card:nth-child(2) { border-top-color: #214e59; }
.service-card:nth-child(3) { border-top-color: #bba362; }
.service-card:hover, .service-card:focus-within { border-color: #5e9995; box-shadow: 0 12px 28px #0b222b0a; }
.service-card h3 { font-size: 1.625rem; line-height: 1.25; hyphens: auto; }
.service-card p { line-height: 1.65; }
.card-top { gap: .8rem; }
.card-category { font-size: .75rem; text-align: right; }
.service-card ul { font-size: .9375rem; line-height: 1.65; }
.service-card li { padding-block: .25rem; }
.service-card p.service-symptom { font-size: .8125rem; color: #46666e; margin: auto 0 1.25rem; padding-top: .5rem; }
.text-link { min-height: 3.25rem; margin-top: 0; font-size: .9375rem; align-items: center; }
.process-grid { grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); align-items: start; gap: 4rem; }
.steps article { border-top: 1px solid #b3c7c5; padding-top: 1rem; }
.steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.step-num { margin-bottom: 1.8rem; }
.steps h3 { line-height: 1.3; }
.contact-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 4rem; }
.contact-phone { font-variant-numeric: tabular-nums; width: fit-content; }
.contact-phone:hover, .contact-email:hover { text-decoration: underline; text-underline-offset: .25em; }
.contact-local { border-left: 2px solid var(--mint); padding-left: 1.25rem; margin-top: 2rem; max-width: 27rem; }
.contact-local strong { font-size: 1rem; font-weight: 500; }
.contact-local p { font-size: .9375rem; line-height: 1.65; color: #c4d3d6; margin-top: .5rem; }
.contact-location { font-size: .875rem; line-height: 1.8; }
.contact-form { padding: 2rem; box-shadow: 0 15px 55px #0002; }
.form-heading { display: flex; gap: 1rem; justify-content: space-between; align-items: start; }
.form-heading h3 { line-height: 1.25; font-size: 1.5rem; }
.form-step { flex-shrink: 0; color: #537775; font-size: .75rem; letter-spacing: .08em; padding-top: .25rem; }
.form-intro { margin: .5rem 0 1rem; }
.field-required { margin: 0 0 1rem; color: var(--muted); font-size: .75rem; }
.field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.optional { font-weight: 400; font-size: .75rem; color: var(--muted); white-space: nowrap; }
.field input, .field select, .field textarea { font-size: 1rem; min-width: 0; max-width: 100%; border-color: #9fb8ba; transition: border-color .15s; }
.field textarea { min-height: 8rem; }
.field input::placeholder, .field textarea::placeholder { color: #657c83; opacity: 1; }
.field select:has(option[value=""]:checked) { color: #657c83; }
.field select option { color: var(--ink); }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #357f79; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible { outline: 3px solid #0b806d; outline-offset: 2px; }
.field [aria-invalid="true"] { border-color: #a52c34; background: #fffafa; }
.field-help { margin: 0 0 .5rem; color: #526970; font-size: .875rem; line-height: 1.55; }
.field-error { display: block; color: #a52c34; font-size: .875rem; margin-top: .4rem; }
.photo-hint { font-size: .8125rem; color: #436966; margin: .25rem 0 1rem; }
.contact-help { margin-top: -.25rem; }
.contact-error { margin: -.25rem 0 1rem; }
.consent { display: flex; align-items: flex-start; gap: .75rem; margin: .25rem 0 1rem; color: #3d555c; font-size: .875rem; line-height: 1.55; cursor: pointer; }
.consent input { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; margin-top: .15rem; accent-color: #147b6d; }
.consent input:focus-visible { outline: 3px solid #0b806d; outline-offset: 3px; }
.consent input[aria-invalid="true"] { outline: 2px solid #a52c34; outline-offset: 2px; }
.consent a, .form-note a { color: #154f4a; font-weight: 700; text-decoration: underline; text-underline-offset: .2em; }
.consent-error { margin: -.6rem 0 1rem 1.875rem; }
.honeypot { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(1px, 1px, 1px, 1px) !important; white-space: nowrap !important; }
.form-actions { display: flex; align-items: center; gap: 1rem; margin-top: .25rem; }
.form-submit { min-width: 13rem; min-height: 3.25rem; justify-content: center; }
.form-security { color: #436966; font-size: .75rem; line-height: 1.45; }
.button:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.form-feedback { margin-top: 1rem; background: #edf4f4; border-left: 3px solid #52767a; padding: .875rem 1rem; font-size: .875rem; line-height: 1.55; }
.form-feedback[data-kind="success"] { background: #eaf6f1; border-color: #27786b; color: #174f47; }
.form-feedback[data-kind="error"] { background: #fff1f1; border-color: #a52c34; color: #79222a; }
.form-feedback:focus { outline: none; }
.form-note { font-size: .8125rem; line-height: 1.6; }
.faq-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.5fr); gap: 4rem; }
.faq-services { display: flex; align-items: start; flex-direction: column; gap: .8rem; margin-top: 1.75rem; font-size: .9375rem; }
.faq-services a { text-decoration: underline; text-underline-offset: .25em; text-decoration-color: #8ab5ac; }
.faq-services a:hover { color: #147b6d; }
.faq-list summary { min-height: 4rem; }
.faq-list details p { font-size: 1rem; }
.footer-top { display: grid; grid-template-columns: 1fr 1.1fr 1fr; gap: 2rem; }
.footer-location { color: #b4c8ce; margin-top: 1.2rem; font-size: .875rem; }
.footer-links { flex-direction: column; gap: .65rem; font-size: .875rem; }
.footer-contact { display: flex; flex-direction: column; gap: .65rem; font-size: .875rem; font-style: normal; }
.footer-contact a:last-child { color: var(--mint); }
.footer-contact a:hover, .footer-bottom a:hover { text-decoration: underline; text-underline-offset: .25em; }
.footer-bottom a { display: inline-block; padding-block: .4rem; }
.mobile-contact { color: #fff; transition: transform .2s; }
.mobile-contact .button-outline { border-color: #7e9da5; color: #fff; }
.form-active .mobile-contact { display: none; }
.detail-hero { padding-top: 2.5rem; padding-bottom: 3.5rem; }
.detail-hero h1 { font-size: clamp(2.5rem, 5vw, 4.625rem); max-width: 70rem; text-wrap: initial; }
.detail-hero .hero-description { max-width: 49rem; }
.detail-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, .7fr); gap: 4rem; }
.content-block { position: relative; padding-left: 3rem; }
.content-block + .content-block { padding-top: 2rem; margin-top: 2rem; border-top: 1px solid var(--line); }
.content-index { position: absolute; left: 0; top: .25rem; font-size: .8125rem; color: #377a72; }
.content-block + .content-block .content-index { top: 2.25rem; }
.content-block h2 { font-size: clamp(1.5rem, 2.6vw, 1.875rem); line-height: 1.25; }
.check-list { line-height: 1.7; padding-left: 1.125rem; }
.check-list li::marker { color: #228b7b; }
.detail-aside { top: 6.8rem; }
.detail-aside .button { font-size: .9375rem; }
.aside-email { display: block; margin-top: 1.25rem; font-size: .875rem; text-align: center; text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
.page-contents { display: grid; gap: .85rem; border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 1.5rem; }
.page-contents span { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: #42686c; }
.page-contents a { font-size: .875rem; line-height: 1.5; }
.page-contents a:hover { color: #147b6d; text-decoration: underline; }
.detail-faq { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.detail-faq h2 { font-size: 1.875rem; margin-bottom: 1.5rem; }
.related-links a { font-size: .9375rem; line-height: 1.6; }
@media (hover: hover) { .button:hover { transform: translateY(-2px); } }
@media (max-width: 64rem) {
  .header-inner { flex-wrap: wrap; gap: 1rem; }
  .nav-toggle { display: none; min-height: 2.75rem; min-width: 4.75rem; font-size: .875rem; }
  .js .nav-toggle { display: block; }
  .nav { display: flex; position: static; width: 100%; flex-direction: column; align-items: stretch; gap: .75rem; padding: 0 0 1.5rem; font-size: 1rem; }
  .nav a { padding: .65rem 1rem; }
  .js .nav { display: none; position: absolute; top: 5.125rem; left: 0; right: 0; width: auto; padding: 1rem 1.25rem; max-height: calc(100vh - 10.5rem); max-height: calc(100dvh - 10.5rem - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; box-shadow: 0 14px 25px #0002; border-bottom: 1px solid #ffffff30; }
  .js .nav.is-open { display: flex; }
  .hero-grid { gap: 2rem; }
  .hero h1 { font-size: clamp(3rem, 6.5vw, 4.5rem); }
  .hero-photo { min-height: 31.25rem; }
  .hero-actions .button { flex: 1 1 11rem; padding-inline: .9rem; font-size: .9375rem; }
  .service-card { padding: 1.4rem; }
  .card-top { align-items: start; }
  .card-category { max-width: 80%; }
  .contact-grid { gap: 2.5rem; }
  .contact-form { padding: 1.5rem; }
  .form-step { display: none; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-contact { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; gap: .5rem 1.75rem; }
  .detail-grid { gap: 2rem; }
}
@media (max-width: 50rem) {
  .hero { padding-top: 2rem; }
  .hero-grid, .service-grid, .process-grid, .contact-grid, .faq-layout, .detail-grid { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { font-size: clamp(3.125rem, 10vw, 4.5rem); }
  .hero-photo { height: clamp(20rem, 55vw, 28rem); min-height: 0; border-radius: 3.5rem .5rem .5rem .5rem; }
  .hero-photo img { object-position: 54% 63%; }
  .hero-bottom { margin-top: 1.75rem; }
  .section { padding-block: 3.75rem; }
  .hero-actions .button { flex: 0 1 auto; }
  .service-card { padding: 1.5rem; }
  .service-card .card-category { text-align: right; }
  .service-card p.service-symptom { margin-top: 0; }
  .service-card ul { margin-bottom: .75rem; }
  .contact h2 { font-size: clamp(2.625rem, 8vw, 3.5rem); }
  .contact-form { padding: 1.5rem; }
  .contact-local { margin-top: 1.5rem; }
  .detail-hero h1 { font-size: clamp(2.5rem, 7vw, 3.5rem); }
  .content-block { padding-left: 2.25rem; }
  .detail-aside { position: static; }
  .page-contents { display: none; }
  .form-buttons { flex-wrap: wrap; }
}
@media (max-width: 30rem) {
  .hero-actions .button { flex: 1 1 100%; }
  .hero-actions .button-outline { flex-basis: auto; }
  .hero-actions { align-items: start; }
  .hero h1 { font-size: clamp(2.8rem, 12vw, 3.5rem); }
  .hero-photo { height: 20rem; }
  .field-grid { grid-template-columns: 1fr; gap: 0; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .form-submit { width: 100%; }
  .contact-form { padding: 1.25rem; }
  .contact-phone { font-size: 1.9375rem; }
  .contact-email { font-size: 1rem; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-contact { grid-column: auto; flex-direction: column; }
  .hero-bottom { font-size: .8125rem; }
  .footer-links, .footer-contact { font-size: .9375rem; }
  .steps { grid-template-columns: 1fr; }
  .steps article { padding-top: .75rem; }
  .step-num { margin-bottom: .875rem; }
  .related-links { flex-direction: column; align-items: start; }
}
@media (max-height: 42rem) { .detail-aside { position: static; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
