*,*::before,*::after{box-sizing:border-box} img{max-width:100%;height:auto;display:block}
:root{--t:#0F6E6E;--t2:#0B5858;--ink:#10201F;--ink2:#3A4D4B;--mute:#566B69;--tint:#E6F2F1;--line:#D3E2E0;--hf:'Onest',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:#fff;color:var(--ink);font:400 17px/1.6 var(--hf);-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.025em;line-height:1.1}
h2{font-size:clamp(1.75rem,2.8vw,2.4rem)}
h3{font-size:1.15rem;font-weight:600;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:inherit}
:focus-visible{outline:3px solid var(--t);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nowrap{white-space:nowrap}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:10px 14px;z-index:100}
.skip:focus{left:8px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 24px;border-radius:8px;font:600 16px/1 var(--hf);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .15s}
.btn--t{background:var(--t);color:#fff}
.btn--t:hover{background:var(--t2)}
.btn--ghost{border-color:#B7CFCC;color:var(--ink)}
.btn--ghost:hover{border-color:var(--ink)}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.hdr__in{display:flex;align-items:center;gap:28px;height:74px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:19px;letter-spacing:-.02em;white-space:nowrap}
.logo em{font-style:normal;font-weight:500;color:var(--mute)}
.nav{display:flex;gap:24px;margin-left:auto}
.nav a{text-decoration:none;font-size:15.5px;color:var(--ink2)}
.nav a:hover{color:var(--t);text-decoration:underline;text-underline-offset:5px}
.hdr__tel{font-weight:600;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.hdr__cta{min-height:44px;padding:0 18px;font-size:15px}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer}
.menu-btn span{display:block;width:20px;height:2px;background:var(--ink)}
.mnav{border-top:1px solid var(--line);padding:6px 20px 14px}
.mnav a{display:block;padding:12px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600}
.mnav a:last-child{border:0}

/* hero */
.hero{padding:56px 0 0}
.hero__grid{display:grid;grid-template-columns:5fr 6fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(2.4rem,4.8vw,4.1rem);line-height:1.05;letter-spacing:-.04em;margin-bottom:24px;max-width:12ch}
.lead{font-size:1.15rem;color:var(--ink2);max-width:46ch;margin-bottom:30px}
.hero__photo{margin:0}
.hero__photo img{width:100%;aspect-ratio:4/3.3;object-fit:cover;border-radius:10px}
.facts{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.facts li{padding:18px 20px 18px 0;display:flex;flex-direction:column}
.facts li+li{padding-left:24px;border-left:1px solid var(--line)}
.facts b{font-size:1.25rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.facts b span{color:var(--t)}
.facts li>span{font-size:14.5px;color:var(--mute)}

/* sections: sidebar heading */
.sec{padding:104px 0}
.sec--tint{background:var(--tint)}
.side{display:grid;grid-template-columns:4fr 8fr;gap:64px;align-items:start}
.side__head h2{margin-bottom:16px}
.side__head p{color:var(--ink2);margin:0;max-width:34ch}
.side__head--sticky{position:sticky;top:110px}
figcaption{font-size:14.5px;color:var(--mute);line-height:1.5;margin-top:10px}

/* packages */
.pk__sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}
.pk .sz{position:relative;display:block;cursor:pointer}
.pk .sz input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.pk .sz span{display:flex;flex-direction:column;justify-content:center;min-height:68px;padding:10px 16px;border:1px solid #BFD6D3;border-radius:8px;background:#fff}
.pk .sz b{font-size:16.5px}
.pk .sz small{font-size:14px;color:var(--mute)}
.pk .sz input:checked+span{border-color:var(--t);box-shadow:inset 0 0 0 1.5px var(--t);background:var(--tint)}
.pk .sz input:focus-visible+span{outline:3px solid var(--t);outline-offset:2px}
.pk__table{width:100%;border-collapse:collapse;font-size:15.5px}
.pk__table th,.pk__table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.pk__table tbody th{font-weight:500;color:var(--mute);width:28%;padding-left:0}
.pk__table thead th{vertical-align:bottom;border-bottom:1.5px solid var(--ink);padding-top:22px}
.pk__table thead th:first-child{padding-left:0}
.pk__name{display:block;font-size:15px;font-weight:600;color:var(--ink2)}
.pk__price{display:block;font-size:2rem;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:2px 0}
.pk__sub{display:block;font-size:13.5px;font-weight:400;color:var(--mute)}
.pk__mid{background:var(--tint)}
thead .pk__mid{border-radius:8px 8px 0 0}
thead .pk__mid .pk__price{color:var(--t)}
.pk__note{font-size:14.5px;color:var(--mute);margin:16px 0 0}

/* jobs */
.jobs{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.jobs figure{margin:0}
.jobs__a{grid-column:1/-1}
.jobs__a img{aspect-ratio:16/8;object-fit:cover;width:100%;border-radius:10px}
.jobs__b img,.jobs__c img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:10px}
.jobs figcaption b{display:block;color:var(--ink);font-size:15.5px}

/* calendar */
.cal{--lab:190px}
.cal__months{display:grid;grid-template-columns:repeat(12,1fr);margin-left:var(--lab);font-size:13px;color:var(--mute);border-bottom:1px solid var(--ink);padding-bottom:8px}
.cal__months span{padding-left:4px}
.cal__rows{list-style:none;margin:0;padding:0}
.cal__rows li{display:grid;grid-template-columns:var(--lab) 1fr;align-items:center;min-height:58px;border-bottom:1px solid var(--line);position:relative;background:linear-gradient(90deg,transparent calc(var(--lab) - 1px),transparent var(--lab))}
.cal__k{font-weight:600;font-size:15px;padding-right:12px}
.cal__bar{grid-column:2;height:16px;border-radius:4px;background:var(--t);margin-left:calc(var(--s) / 12 * 100%);width:calc((var(--e) - var(--s)) / 12 * 100%)}
.cal__bar--soft{background:#BFDCD9}
.cal__bar--soft2{background:repeating-linear-gradient(135deg,#0F6E6E 0 6px,#5FA39F 6px 12px)}
.cal__bar--mid{background:#5FA39F}
.cal__notes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.cal__notes p{margin:0;font-size:15.5px;color:var(--ink2);border-top:2px solid var(--t);padding-top:12px}
.cal__notes b{display:block;color:var(--ink)}

/* process rows */
.rows{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.rows li{display:grid;grid-template-columns:64px 220px 1fr;gap:20px;padding:26px 0;border-bottom:1px solid #BCD6D3;align-items:baseline}
.rows__n{font-size:15px;font-weight:600;color:var(--t);font-variant-numeric:tabular-nums}
.rows h3{font-size:1.25rem}
.rows p{margin:0;color:var(--ink2)}

/* about */
.about__photo{margin:0}
.about__photo img{width:100%;aspect-ratio:21/9;object-fit:cover;object-position:50% 45%;border-radius:10px}
.about__panel{position:relative;background:#fff;margin:-110px 0 0 64px;max-width:900px;padding:44px 48px 8px;border-radius:10px 10px 0 0}
.about__panel h2{margin-bottom:22px}
.about__cols{display:grid;grid-template-columns:1fr 1fr;gap:36px}
.about__cols p{color:var(--ink2)}
.about__cap{font-size:14.5px;color:var(--mute);margin:4px 0 0}

/* reviews */
.revs{border-top:1.5px solid var(--ink)}
.revs figure{display:grid;grid-template-columns:200px 1fr;gap:32px;margin:0;padding:30px 0;border-bottom:1px solid #BCD6D3}
.revs figcaption{margin:0;font-size:15px;display:flex;flex-direction:column}
.revs figcaption b{color:var(--ink);font-size:16.5px}
.st{color:var(--t);letter-spacing:2px;margin-top:6px;font-size:15px}
.revs blockquote{margin:0}
.revs blockquote p{margin:0;font-size:1.15rem;line-height:1.55;letter-spacing:-.01em}

/* area */
.area{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:start}
.area__map{width:100%;height:auto}
.area__list h3{padding-bottom:12px;border-bottom:1.5px solid var(--ink)}
.area__list ul{list-style:none;margin:0 0 20px;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.area__list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:16px}
.area__list p{font-size:15.5px;color:var(--ink2)}
.area__list a{color:var(--t);font-weight:600}

/* faq */
.faq{border-top:1.5px solid var(--ink)}
.faq details{border-bottom:1px solid #BCD6D3}
.faq summary{list-style:none;cursor:pointer;padding:22px 48px 22px 0;font-weight:600;font-size:1.1rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before,.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:16px;height:2px;background:var(--t)}
.faq summary::after{transform:rotate(90deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(0)}
.faq details p{color:var(--ink2);margin:-6px 0 22px;max-width:62ch}

/* contact */
.contact{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start}
.contact__photo{margin:0;position:sticky;top:110px}
.contact__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px}
.contact__form h2{margin-bottom:12px}
.contact__form>p{color:var(--ink2);margin-bottom:28px}
.form__2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form .f{margin:0 0 18px}
.form .f label{display:block;font-weight:600;font-size:15px;margin-bottom:6px}
.form .f label span{font-weight:400;color:var(--mute)}
.form input:not([type=radio]),.form select,.form textarea{width:100%;min-height:50px;border:1px solid #B7CFCC;border-radius:8px;padding:10px 14px;font:16px var(--hf);color:var(--ink);background:#fff}
.form textarea{resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--t);outline-offset:1px}
.opts{border:0;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.opts legend{font-weight:600;font-size:15px;margin-bottom:8px;padding:0}
.opts .opt{position:relative;display:block}
.opts .opt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.opts .opt span{display:flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #B7CFCC;border-radius:8px;font-size:15.5px;font-weight:500;cursor:pointer;text-align:center;padding:0 8px}
.opts .opt input:checked+span{border-color:var(--t);box-shadow:inset 0 0 0 1.5px var(--t);background:var(--tint);color:var(--t2)}
.opts .opt input:focus-visible+span{outline:3px solid var(--t);outline-offset:2px}
.form__ok{margin:16px 0 0;padding:14px 16px;background:var(--tint);border-left:3px solid var(--t);font-weight:500}

/* footer */
.ftr{background:var(--tint);padding:72px 0 28px;overflow:hidden}
.ftr__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding-bottom:40px}
.ftr h3{font-size:15px;margin-bottom:10px}
.ftr p{color:var(--ink2);font-size:15.5px;margin:0}
.ftr__cols a{text-decoration:none;color:var(--ink);font-weight:500}
.ftr__mark{font-size:clamp(5rem,17vw,15rem);font-weight:800;letter-spacing:-.06em;line-height:.8;color:var(--t);margin:0 0 28px -.04em;opacity:.95}
.ftr__base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid #BCD6D3;padding-top:18px;font-size:14px;color:var(--mute)}
.ftr__base p{margin:0}
.mbar{display:none}

@media (max-width:1140px){.nav{display:none}.menu-btn{display:flex}.hdr__tel{margin-left:auto}}
@media (max-width:900px){
  .wrap{padding:0 20px}
  .hdr__in{height:66px;gap:12px}
  .hdr__cta{display:none}
  .hero{padding-top:32px}
  .hero__grid,.side,.contact,.area{grid-template-columns:1fr}
  .hero__grid{gap:28px}
  .hero__photo img{aspect-ratio:4/3}
  .facts{grid-template-columns:1fr 1fr;margin-top:28px}
  .facts li{padding:14px 12px 14px 0}
  .facts li+li{padding-left:0;border-left:0}
  .facts li:nth-child(even){padding-left:14px;border-left:1px solid var(--line)}
  .facts li:nth-child(n+3){border-top:1px solid var(--line)}
  .sec{padding:72px 0}
  .side{gap:28px}
  .side__head p{max-width:none}
  .side__head--sticky{position:static}
  .pk__sizes{gap:6px}
  .pk .sz span{padding:8px 10px;min-height:64px}
  .pk .sz b{font-size:15px}
  .pk .sz small{font-size:12px}
  .pk__scroll{overflow-x:auto;margin:0 -20px;padding:0 20px}
  .pk__table{min-width:560px}
  .pk__price{font-size:1.5rem}
  .jobs{grid-template-columns:1fr;gap:24px}
  .jobs__a img{aspect-ratio:4/3}
  .cal{--lab:0px}
  .cal__months{margin-left:0;font-size:10.5px}
  .cal__months span{padding-left:1px}
  .cal__rows li{grid-template-columns:1fr;padding:10px 0;min-height:0;gap:6px}
  .cal__k{font-size:14px}
  .cal__bar{grid-column:1}
  .cal__notes{grid-template-columns:1fr;gap:16px}
  .rows li{grid-template-columns:44px 1fr;gap:4px 12px}
  .rows li p{grid-column:2}
  .about__photo img{aspect-ratio:4/3}
  .about__panel{margin:-48px 12px 0;padding:26px 20px 4px}
  .about__cols{grid-template-columns:1fr;gap:0}
  .revs figure{grid-template-columns:1fr;gap:12px;padding:24px 0}
  .area__list ul{grid-template-columns:1fr 1fr}
  .contact{gap:32px}
  .contact__photo{position:static;order:2}
  .contact__photo img{aspect-ratio:4/3}
  .form__2{grid-template-columns:1fr;gap:0}
  .opts{grid-template-columns:1fr 1fr}
  .ftr{padding-bottom:96px}
  .ftr__cols{grid-template-columns:1fr 1fr}
  .mbar{display:grid;grid-template-columns:1fr 1.6fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}
  .mbar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:8px;font-weight:600;text-decoration:none;border:1.5px solid var(--ink)}
  .mbar__main{background:var(--t);border-color:var(--t)!important;color:#fff}
}
@media (max-width:560px){
  .logo{font-size:17px;gap:8px}
  .logo em{display:none}
  .ftr__cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.ftr .ftr__mark{font-size:clamp(5rem,17vw,15rem);font-weight:800;letter-spacing:-.06em;line-height:.8;color:var(--t);margin:8px 0 28px -.04em}
.pk__name{white-space:nowrap}
.pk__table{table-layout:fixed}
.pk__table thead th:first-child{width:26%}
.about__photo img{object-position:50% 40%}
.side>*{min-width:0}
.ftr .ftr__mark{font-size:clamp(4rem,12vw,10.5rem)}
@media (max-width:900px){
  .pk__scroll{overflow:visible;margin:0;padding:0}
  .pk__table{min-width:0;table-layout:auto;font-size:14.5px}
  .pk__table thead tr,.pk__table tbody tr{display:grid;grid-template-columns:repeat(3,1fr)}
  .pk__table thead th:first-child{display:none}
  .pk__table thead th{padding:14px 8px 12px}
  .pk__table tbody th{grid-column:1/-1;width:auto;border-bottom:0;padding:12px 0 2px;font-size:13px}
  .pk__table td{padding:4px 8px 12px}
  .pk__name{white-space:normal;font-size:13.5px;line-height:1.25}
  .pk__price{font-size:1.3rem}
  .pk__sub{font-size:12px;line-height:1.35}
}
.pk__table thead th{vertical-align:top}
