/* Project-specific requirements from skills-template; retain the established visual identity. */
:root{--content-width:1440px;--page-gutter:clamp(18px,3vw,40px);--container-gutter:clamp(18px,3vw,40px)}
[hidden]{display:none!important}
::selection{background:#f6c699;color:#174c54}
.content-container{width:100%;max-width:1440px;margin-inline:auto;padding-inline:var(--container-gutter);box-sizing:border-box}
.topbar,.navigation,.section-pad,.first-visit,.contacts,footer{padding-inline:0}
.topbar,.navigation{display:block}
.topbar>.content-container{display:flex;align-items:center;gap:clamp(16px,2vw,32px)}
.topbar .top-book{margin-left:auto}
.navigation>.content-container{display:flex;align-items:center;justify-content:space-between;gap:24px;height:100%}
.navigation nav a,.navigation nav .nav-price-button,.mobile-nav a,.mobile-nav button,.top-book{font-size:20px;font-weight:400}
.topbar .top-book{font-size:20px;min-height:44px}
.navigation .search-button{margin-left:0}
.button,.dialog-inner .button,.price-back,.contact-book{font-size:18px;min-height:48px}
.all-services-button{font-size:14px;border-radius:8px}
.hero-copy{padding-left:max(var(--container-gutter),calc((100% - 1440px)/2 + var(--container-gutter)));padding-top:clamp(48px,7vw,100px)}
.hero{aspect-ratio:auto;min-height:clamp(650px,57vw,810px)}
.hero-desktop{width:62%;object-fit:cover;object-position:right center;mask-image:linear-gradient(to right,transparent 0%,#000 16%);-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 16%)}
.hero h1{font-size:clamp(36px,4vw,58px)}
.hero-rating{gap:16px}
.hero-rating-star,.hero-rating-star svg{width:16px;height:16px}
.hero-rating-label strong{font-size:15px}
.hero-rating-label{font-size:12px}
.hero-rating-avatars img{width:44px;height:44px}
.trust{left:max(var(--container-gutter),calc((100% - 1440px)/2 + var(--container-gutter)))}
.service-copy p{font-size:18px;line-height:26px;min-height:0}
.service-card{display:flex;flex-direction:column;text-align:left}
.service-copy{flex:1;display:flex;flex-direction:column}
.service-copy .learn-link{margin-top:auto;padding-top:20px;font-size:18px}
.first-visit>.content-container{position:relative;display:grid;grid-template-columns:1fr 1.06fr;gap:40px;min-height:540px}
.first-visit p,.first-visit li{font-size:16px;line-height:26px}
.contacts{display:block}
.contacts>.content-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:42px;align-items:center}
.team-grid{justify-content:center;grid-template-columns:repeat(3,minmax(0,400px));gap:24px}
.team-card{display:block;max-width:400px;width:100%;height:auto;max-height:450px;text-align:center;border:1px solid var(--line);border-radius:13px;background:#fcfbf6;box-shadow:var(--card-shadow)}
.team-card .team-photo{height:210px;aspect-ratio:auto!important;object-fit:cover;border-radius:0;width:100%}
.team-copy{padding:16px}
.team-card h3{font-size:22px;line-height:28px;margin:0 0 4px}
.team-card p{font-size:16px;line-height:24px}
.team-card .team-role{font-size:16px}
.review-carousel{gap:24px}
.review-track{grid-auto-columns:calc((100% - 40px)/3);align-items:stretch}
.review-card{max-width:400px;min-height:224px;padding:18px;gap:16px;flex-direction:row}
.neutral-avatar{display:grid;place-items:center;background:var(--mint);color:var(--ink);font-size:24px;font-weight:750;width:64px;height:64px}
.review-content p{margin:8px 0 12px;-webkit-line-clamp:2;line-clamp:2}
.review-content h3{margin-top:auto}
.review-content a{color:#246b6e;min-height:24px}
.review-arrow{min-width:44px;min-height:44px}
.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.guide-card .learn-link{font-size:18px}
.footer-bottom button{cursor:default}
.developer-credit{font-size:14px;text-align:center;margin:24px 0 0;color:#eef3ec}
.developer-credit a{text-decoration:underline;text-underline-offset:3px}
.dialog-inner .all-services-list{gap:8px}
.all-services-list>button{min-height:68px;padding:10px 14px}
.all-services-list strong{font-size:16px}.all-services-list small{font-size:13px}
.catalog-dialog{max-width:540px;max-height:min(740px,calc(100dvh - 32px))}
.catalog-dialog h2{font-size:30px}.catalog-dialog .dialog-lead{font-size:16px}
#site-dialog{padding:40px;overflow:hidden;max-height:calc(100dvh - 32px)}
#site-dialog .dialog-inner{padding:0;overflow:auto;max-height:calc(100dvh - 112px);scrollbar-width:thin;scrollbar-color:#6b9997 transparent}
#site-dialog.catalog-dialog .dialog-inner{max-height:min(660px,calc(100dvh - 112px))}
#site-dialog.price-dialog{max-height:min(650px,calc(100dvh - 32px));width:min(960px,calc(100% - 32px))}
#site-dialog.price-dialog .dialog-inner{max-height:min(570px,calc(100dvh - 112px))}
#site-dialog .close-dialog{position:sticky;float:right;right:0;top:0;margin:0 0 0 8px;z-index:2;background:var(--cream)}
#site-dialog .dialog-inner h2{font-size:30px;margin-right:48px}
.price-back{display:inline-flex;align-items:center;gap:8px;font-size:18px}
.price-table,.price-table th,.price-table td{font-size:16px}
.price-note{color:#486970}
.dialog-inner input:focus-visible,.dialog-inner select:focus-visible{outline:3px solid #247c83;outline-offset:3px}
.form-privacy{font-size:14px;line-height:22px}.form-privacy a,.demo-note a,.form-status a{text-decoration:underline;text-underline-offset:3px}
.form-status{font-size:16px;line-height:24px}
.cookie-notice{position:fixed;z-index:5;bottom:max(16px,env(safe-area-inset-bottom));left:16px;right:16px;max-width:1000px;margin-inline:auto;display:flex;align-items:center;gap:24px;padding:20px 24px;border-radius:16px;background:#fffdf8;box-shadow:0 8px 32px #153b4a26}
.cookie-notice p{font-size:15px;line-height:22px}.cookie-notice .button{flex-shrink:0}
.mobile-nav{max-width:1440px;margin:auto;padding:12px var(--container-gutter) 24px;background:var(--cream)}
.mobile-nav:not([hidden]){display:grid;gap:4px}
.mobile-nav a,.mobile-nav button{display:block;padding:12px 0;text-align:left;min-height:44px;background:transparent}
@media(min-width:768px) and (max-width:1199px){
.navigation nav{display:none}.menu-button{display:grid}.navigation .search-button{margin-left:auto}
.topbar .top-address{display:none}.topbar>.content-container{gap:20px}
.team-grid{grid-template-columns:repeat(2,minmax(0,400px))}
.review-track{grid-auto-columns:calc((100% - 20px)/2)}
.review-card{flex-direction:row}
.hero-copy{width:51%}.hero-description{font-size:20px}.hero h1{white-space:normal}
}
@media(max-width:767px){
.topbar>.content-container{gap:12px}.topbar .top-book{display:none}.topbar{min-height:44px}
.topbar svg{width:16px;height:16px}.topbar a,.topbar span{font-size:12px}
.navigation{height:78px}.navigation>.content-container{gap:12px}
.navigation .brand>svg{width:38px;height:38px}.brand strong{font-size:18px}.brand small{font-size:11px}
.navigation .search-button{margin-left:auto}.icon-button{width:44px;height:44px}
.hero{min-height:0}.hero-copy{width:100%;padding:36px var(--container-gutter) 0}
.hero h1{font-size:clamp(34px,8.8vw,48px);line-height:1.08;margin:18px 0;white-space:normal}
.hero-description{font-size:18px;line-height:26px;margin-bottom:22px}
.hero .eyebrow{font-size:13px}.hero-rating{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin-top:24px}
.hero-rating-avatars{grid-row:span 2}.hero-rating-label{white-space:normal}.hero-rating-stars{align-self:end}
.hero-mobile{height:auto;width:100%;margin-top:24px;aspect-ratio:auto}
.hero-mobile>img{display:block;width:100%;max-width:none;height:auto;margin:0;object-fit:contain;mask-image:linear-gradient(to right,transparent,#000 12%);-webkit-mask-image:linear-gradient(to right,transparent,#000 12%)}
.trust{position:static;width:100%;padding:24px var(--container-gutter);gap:16px}
.trust>div,.trust>div:nth-child(2),.trust>div:nth-child(3){padding:0;gap:12px}
.trust span{font-size:14px;line-height:20px}.trust svg{width:28px;height:28px}
.section-pad{padding-block:40px}.section-heading h2{font-size:30px;line-height:36px}.section-heading .eyebrow{font-size:12px}
.service-grid{grid-template-columns:1fr;gap:18px}
.service-photo-card{display:flex;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fcfbf6}
.service-photo-card .service-image{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9}
.service-photo-card .service-copy{width:100%;padding-top:24px}
.service-copy h3{font-size:22px;line-height:28px;margin:0 0 8px}.service-copy p{font-size:18px;line-height:26px}
.first-visit{padding-block:36px}.first-visit>.content-container{display:block;min-height:0}
.first-visit h2{font-size:34px;line-height:40px}.first-visit p{font-size:16px;line-height:26px}
.team-grid{grid-template-columns:minmax(0,400px);gap:24px}.team-card{margin-inline:auto}
.team-card .team-photo{height:210px}.team-copy{padding:16px}
.review-carousel{grid-template-columns:44px minmax(0,1fr) 44px;gap:10px}
.review-track{grid-auto-columns:100%;gap:20px}.review-card{padding:18px;gap:12px;flex-direction:row}
.review-avatar{width:48px;height:48px}.review-content p{font-size:14px;line-height:22px}
.review-arrow{width:44px;height:44px}.reviews .section-heading h2{font-size:28px;line-height:34px}
.guide-grid{grid-template-columns:1fr;gap:20px}.guide-card{display:block}.guide-photo{width:100%;height:auto}
.guide-card h3{font-size:24px;line-height:30px}.guide-card p{font-size:16px;line-height:24px}
.contacts>.content-container{grid-template-columns:1fr;gap:28px}.contacts h2{font-size:28px}
.contacts .contact-book{font-size:18px;padding:14px 24px}.contacts address,.contacts>div>p{font-size:16px}
footer .brand>svg{width:38px;height:38px}footer nav{font-size:16px;gap:16px}footer nav .nav-price-button{font-size:16px}.footer-bottom{font-size:13px}
#site-dialog{padding:28px 20px;width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
#site-dialog .dialog-inner,#site-dialog.catalog-dialog .dialog-inner,#site-dialog.price-dialog .dialog-inner{max-height:calc(100dvh - 80px)}
#site-dialog .dialog-inner h2{font-size:28px}.catalog-dialog .dialog-inner h2{font-size:30px!important}
.price-table th,.price-table td{padding:10px 8px}.price-table td{white-space:normal;min-width:0}
.price-actions{gap:16px}.price-actions .button{width:100%}
.cookie-notice{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:16px;gap:12px;flex-wrap:wrap}
.cookie-notice p{font-size:14px;line-height:20px}.cookie-notice .button{margin-left:auto}
}
@media(max-width:400px){.review-carousel{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.review-track{order:-1;width:100%;flex:0 0 100%}.review-card{max-width:none}.brand strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* A wrapper is the only grid item of the section; keep the grid inside it. */
.first-visit{display:block}
.hero-desktop{object-position:left center}
.all-services-button{background:#106f74}
footer a:hover{color:#f6c699}
@media(max-width:767px){.navigation .search-button{display:grid}.navigation .brand{gap:8px}.navigation>.content-container{gap:6px}}
@media(max-width:400px){.navigation .brand>svg{width:28px;height:28px}.navigation .brand strong{font-size:14px}.navigation .brand small{font-size:10px}.navigation .brand{gap:6px}.navigation>.content-container{padding-inline:12px;gap:4px}}
@media(max-width:767px){
.service-photo-card{height:auto;min-height:0;align-items:stretch}
.service-photo-card .service-copy{margin-left:0;align-self:stretch}
.service-copy .learn-link{display:inline-flex}
#site-dialog.price-dialog .dialog-inner{max-height:min(594px,calc(100dvh - 80px))}
#site-dialog.catalog-dialog .dialog-inner{max-height:min(684px,calc(100dvh - 80px))}
}
@media(min-width:768px){
.hero{aspect-ratio:3/2;min-height:0}
.hero-desktop{width:100%;height:100%;object-fit:contain;object-position:center;mask-image:linear-gradient(to right,transparent,#000 30%);-webkit-mask-image:linear-gradient(to right,transparent,#000 30%)}
.hero-copy{width:44%;padding-top:clamp(40px,6vw,86px)}
.hero .trust{position:absolute;left:max(var(--container-gutter),calc((100% - 1440px)/2 + var(--container-gutter)));bottom:48px;width:37%;margin:0}
}
@media(min-width:768px) and (max-width:1199px){.hero-copy{width:44%}.hero-description{font-size:18px}.hero h1{font-size:36px}.hero .trust{bottom:24px}}
@media(max-width:767px){.hero-mobile>img{width:100%;height:auto;mask-image:none;-webkit-mask-image:none}}
@media(max-width:767px){.hero-mobile{overflow:hidden}.hero-mobile>img{width:160%;max-width:none;margin-left:-60%}}
.dialog-inner .eyebrow{font-size:12px;line-height:1.5}
/* The supplied 09 Oct screenshot is the visual authority for the header and hero. */
@media(min-width:768px){
.topbar{min-height:70px;padding-block:14px}
.topbar>.content-container{gap:40px}
.topbar a,.topbar span{font-size:16px;font-weight:750}
.topbar .top-book{font-size:20px;font-weight:800;padding:12px 24px}
.navigation{height:78px}
.navigation nav a,.navigation nav .nav-price-button{font-size:20px;font-weight:800}
.navigation .brand strong{font-size:27px}
.navigation .brand small{font-size:14px}
.hero{aspect-ratio:auto;min-height:600px;height:45vw;max-height:860px;padding-bottom:0;background:#eeede5}
.hero-desktop{width:62%;height:100%;object-fit:cover;object-position:left center;mask-image:linear-gradient(to right,transparent,#000 15%);-webkit-mask-image:linear-gradient(to right,transparent,#000 15%)}
.hero-copy{margin-left:0;width:44%;padding:clamp(48px,4.3vw,76px) 0 0 max(var(--container-gutter),calc((100% - 1440px)/2 + var(--container-gutter)))}
.hero-copy .eyebrow{font-size:clamp(14px,1.25vw,20px);line-height:1.4;font-weight:850;letter-spacing:.085em}
.hero h1{font-size:clamp(36px,3.65vw,64px);line-height:1.06;font-weight:850;letter-spacing:-.035em;margin:24px 0 20px;white-space:nowrap}
.hero-description{font-size:clamp(18px,1.55vw,26px);line-height:1.36;max-width:none;margin-bottom:26px}
.hero-copy .button{font-size:clamp(18px,1.5vw,24px);font-weight:800;padding:17px 28px;gap:18px}
.hero-copy .button svg{width:22px;height:22px}
.hero-rating{margin-top:22px}
.hero .trust{bottom:clamp(60px,6.3vw,100px);width:min(37%,480px);grid-template-columns:repeat(3,1fr)}
.trust>div{gap:14px;padding-inline:24px}
.trust>div:first-child{padding-left:0}
.trust svg{width:30px;height:30px}
.trust span{font-size:15px;line-height:1.3;font-weight:750}
}
@media(min-width:768px) and (max-width:1199px){
.topbar>.content-container{gap:24px}.topbar a,.topbar span{font-size:14px}
.hero{height:62vw;min-height:580px}.hero-copy{width:48%;padding-top:44px}
.hero h1{font-size:clamp(32px,3.65vw,44px)}.hero-description{font-size:18px}
.hero-desktop{width:58%;object-position:25% center}
.hero .trust{bottom:40px;width:44%}.trust>div{padding-inline:14px}
}
@media(max-width:767px){.hero-copy{margin-left:0}.hero-copy .button{font-size:18px}.hero-copy .button svg{width:20px;height:20px}}
@media(min-width:1200px){
header .content-container{max-width:1280px;width:92.5%;margin-left:3.75vw;margin-right:auto;padding-inline:0}
.navigation{height:88px}
.hero-copy{padding-left:3.75vw}
.hero h1{margin-top:14px;margin-bottom:10px}
.hero-description{margin-bottom:20px}
.hero-copy .button{padding-block:14px}
.hero-rating{margin-top:14px}
.hero .trust{left:3.75vw;bottom:110px}
}
