/* latin-ext */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/montserrat-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root { --ink:#16343a; --muted:#52666a; --teal:#08616c; --green:#d1eb9a; --paper:#f6f8f5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; font-family:"Montserrat",sans-serif; color:var(--ink); background:var(--paper); }
a { color:var(--teal); text-underline-offset:4px; }
a:focus-visible,button:focus-visible { outline:3px solid #518e02; outline-offset:5px; }
p,li { font-size:16px; line-height:1.85; }
h1,h2,h3 { font-weight:650; letter-spacing:-.045em; line-height:1.15; }
h2,h3 { font-size:clamp(28px,3vw,40px); margin:0 0 24px; }
.site-header { max-width:1200px; margin:auto; padding:24px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:block; max-width:310px; }
.brand img { width:100%; height:auto; }
.site-header nav { display:flex; align-items:center; gap:28px; }
.site-header nav a { font-size:13px; font-weight:600; text-decoration:none; white-space:nowrap; }
.header-contact { padding:13px 20px; border:1px solid #c7d3cf; border-radius:8px; }
.hero { position:relative; isolation:isolate; overflow:hidden; min-height:640px; display:flex; align-items:center; max-width:1440px; margin:0 auto; padding:88px max(32px,calc((100% - 1136px)/2)); background:#123f45; color:white; border-radius:16px; }
.imgHolder,.overlay { position:absolute; inset:0; z-index:-1; }
.imgHolder { background:url('/assets/images/hero.webp') center 58%/cover; }
.overlay { background:linear-gradient(90deg,rgba(9,44,49,.95) 0%,rgba(9,44,49,.8) 48%,rgba(9,44,49,.2) 100%); }
.hero-copy { max-width:660px; }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:.16em; margin:0 0 20px; color:var(--teal); }
.hero .eyebrow { color:var(--green); }
#slogan { font-size:clamp(40px,5.5vw,72px); white-space:pre-line; margin:0 0 28px; }
#sloganCont { font-size:16px; line-height:1.85; max-width:570px; color:#e3ece8; }
#broneeriBtn { display:flex; align-items:center; gap:28px; margin-top:32px; flex-wrap:wrap; }
.btn-success { background:var(--green); border:1px solid var(--green); color:var(--ink); padding:15px 24px; border-radius:8px; font-size:14px; font-weight:650; }
.btn-success:hover,.btn-success:focus { background:#bddf7d; border-color:#bddf7d; color:var(--ink); }
.btn-success:disabled { background:#d1eb9a; border-color:#d1eb9a; color:var(--ink); }
.btn span { margin-left:20px; }
.hero-secondary { color:white; font-size:13px; font-weight:550; text-decoration:none; }
.hero-note { margin:36px 0 0; color:#c4d6d1; font-size:11px; letter-spacing:.04em; }
.services-section { max-width:1200px; padding:88px 32px; margin:auto; }
.intro-block { max-width:850px; margin:0 auto 72px; text-align:center; }
.intro-block p:not(.eyebrow) { color:var(--muted); }
.services-block { margin-bottom:72px; }
.services-block ul { padding:0; margin:32px 0 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; list-style:none; }
.services-block li { background:white; border:1px solid #e0e8e1; border-radius:14px; padding:28px; color:var(--muted); }
.services-block li b { display:block; color:var(--ink); margin-bottom:12px; font-size:20px; font-weight:650; }
.info-grid { display:grid; grid-template-columns:1.25fr 1fr; gap:64px; align-items:start; }
.info-grid p { color:var(--muted); }
.pricing-block { padding:36px; background:#e7efe6; border-radius:16px; }
.text-link { display:inline-block; margin-top:8px; font-size:13px; font-weight:650; }
.imgSect { padding-top:88px; }
.imgs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:32px; }
.imgs a { display:block; overflow:hidden; border-radius:12px; background:#e0e8e1; }
.imgs img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .25s ease; }
.imgs a:hover img { transform:scale(1.035); }
.contact-section { background:#eaf0eb; padding:64px max(32px,calc((100% - 1136px)/2)); display:grid; grid-template-columns:1fr 1.1fr; gap:80px; align-items:start; }
.contact-details { padding-top:24px; }
.contact-intro { color:var(--muted); margin:24px 0 32px; }
#phone a,#email a { font-size:17px; font-weight:600; text-decoration:none; }
#phone p,#email p { margin-bottom:18px; }
#address { font-size:14px; color:var(--muted); margin-top:28px; }
#contactForm { background:white; padding:36px; border-radius:16px; box-shadow:0 12px 40px #16343a08; min-width:0; }
#contactForm h2 { font-size:28px; margin-bottom:12px; }
#contactForm > p { font-size:13px; color:var(--muted); margin-bottom:24px; }
#contactForm label { display:block; font-size:12px; font-weight:650; margin-bottom:8px; }
#contactForm input,#contactForm textarea { padding:12px 14px; font-size:14px; border:1px solid #d9e2dc; border-radius:7px; background:#fafcf9; margin-bottom:18px; }
#contactForm .form-control:focus { border-color:var(--teal); box-shadow:0 0 0 3px #08616c15; }
#contactForm textarea { min-height:130px; resize:vertical; }
#formStatus { font-size:13px; margin:16px 0 0; }
#formStatus:empty { display:none; }
footer { padding:28px 32px; display:flex; gap:16px; justify-content:space-between; max-width:1200px; margin:auto; }
footer p,footer div p { font-size:11px; color:var(--muted) !important; margin:0; }
footer a { color:var(--muted) !important; }
@media (max-width:800px) {
 .site-header { padding:20px 24px; } .brand { max-width:230px; } .site-header nav { gap:16px; } .site-header nav a:not(.header-contact) { display:none; }
 .hero { border-radius:0; min-height:600px; padding:64px 24px; } .overlay { background:linear-gradient(90deg,#092c31ed,#092c31a8); }
 .services-section { padding:64px 24px; } .info-grid { grid-template-columns:1fr; gap:28px; } .imgs { gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .contact-section { grid-template-columns:1fr; padding:48px 24px; gap:32px; } .contact-details { padding:0; max-width:580px; }
}
@media (max-width:480px) {
 .site-header { padding:18px 20px; gap:14px; } .brand { max-width:180px; } .header-contact { padding:10px 12px; } .site-header nav a { font-size:11px; }
 .hero { padding:56px 24px; } #slogan { font-size:46px; } #sloganCont { font-size:14px; } #broneeriBtn { gap:20px; } .hero-note { line-height:1.8; }
 .services-block ul { grid-template-columns:1fr; gap:14px; } .services-block li { padding:24px; } .intro-block { text-align:left; margin-bottom:48px; }
 p,li { font-size:14px; } .services-block { margin-bottom:48px; } .pricing-block { padding:28px; } .imgSect { padding-top:64px; }
 #contactForm { padding:24px; } #phone a,#email a { font-size:15px; } footer { padding:24px; flex-direction:column; gap:8px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .imgs img { transition:none; } }

/* Refined opening section. */
.hero { width:calc(100% - 48px); max-width:1376px; min-height:610px; padding:80px clamp(32px,6vw,88px); border-radius:20px; }
.imgHolder { background-position:center 52%; }
.overlay { background:linear-gradient(90deg,rgba(9,40,45,.97) 0%,rgba(9,40,45,.86) 38%,rgba(9,40,45,.35) 70%,rgba(9,40,45,.08) 100%); }
.hero-copy { max-width:720px; }
.hero-location { display:flex; align-items:center; gap:10px; margin-bottom:28px; letter-spacing:.14em; }
.hero-location span { width:6px; height:6px; border-radius:50%; background:var(--green); box-shadow:0 0 0 5px #d1eb9a12; }
#slogan { font-size:clamp(42px,5.2vw,72px); line-height:1.08; letter-spacing:-.055em; margin-bottom:24px; }
#slogan span { display:block; }
#slogan span:last-child { color:#dcebbb; }
#sloganCont { max-width:455px; font-size:17px; line-height:1.8; color:#dde6e1; }
#broneeriBtn { margin-top:30px; gap:28px; }
.hero-secondary { display:inline-flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid #ffffff45; }
.hero-secondary:hover { color:var(--green); border-color:var(--green); }
.hero-note { display:flex; flex-wrap:wrap; gap:12px 24px; padding:24px 0 0; margin:40px 0 0; border-top:1px solid #ffffff24; width:fit-content; list-style:none; }
.hero-note li { color:#bdceca; font-size:11px; line-height:1.6; letter-spacing:.04em; }
@media (max-width:800px) {
 .hero { width:calc(100% - 32px); padding:64px 32px; min-height:570px; border-radius:16px; }
 .overlay { background:linear-gradient(90deg,#09282deb 0%,#09282dc7 60%,#09282d70 100%); }
 #slogan { font-size:clamp(40px,6.3vw,60px); }
}
@media (max-width:480px) {
 .hero { width:calc(100% - 24px); padding:48px 24px; min-height:560px; border-radius:14px; }
 .imgHolder { background-position:60% center; }
 .hero-location { font-size:10px; margin-bottom:26px; }
 #slogan { font-size:clamp(33px,9.4vw,44px); line-height:1.13; margin-bottom:22px; }
 #sloganCont { font-size:14px; line-height:1.85; }
 #broneeriBtn { gap:12px 24px; margin-top:26px; }
 .hero-note { gap:10px 16px; margin-top:28px; padding-top:20px; }
 .hero-note li { font-size:10px; }
}

body { line-height:1.5; }
p { margin-top:0; margin-bottom:16px; }
button,input,textarea { font-family:inherit; }
.btn { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; cursor:pointer; line-height:1.5; }
.form-control { display:block; width:100%; line-height:1.5; color:var(--ink); }
input[type="hidden"] { display:none; }
.skip-link { position:fixed; top:12px; left:12px; padding:12px 20px; background:white; z-index:10000; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.brand { width:280px; max-width:280px; flex-shrink:1; }
.brand img { display:block; }
.services-block h3 { font-size:20px; letter-spacing:-.025em; margin:0 0 12px; }
.services-block li p { margin-bottom:12px; }
.services-block li .text-link { margin-top:0; font-size:12px; }
.contact-icon { display:inline-block; width:22px; color:var(--teal); }
.hero-note a { color:inherit; text-decoration:none; }
.hero-note a:hover { color:white; text-decoration:underline; }
.faq-section { margin-top:72px; max-width:850px; }
.faq-section details { border-bottom:1px solid #d9e2dc; padding:18px 0; }
.faq-section summary { cursor:pointer; font-weight:600; font-size:15px; line-height:1.7; }
.faq-section details p { color:var(--muted); margin:16px 0 0; }
footer { flex-wrap:wrap; align-items:center; }
.footer-links { display:flex; flex-wrap:wrap; gap:12px 20px; }
.footer-links a { font-size:11px; }
.service-main { max-width:1200px; margin:auto; padding:20px 32px 72px; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:0 0 36px; font-size:12px; list-style:none; color:var(--muted); }
.breadcrumb li { font-size:12px; }
.breadcrumb li + li:before { content:' / '; padding-right:10px; color:#879a91; }
.service-intro { display:grid; grid-template-columns:1.3fr 1fr; align-items:center; gap:64px; margin-bottom:64px; }
.service-intro h1 { font-size:clamp(38px,4.5vw,60px); margin:0 0 24px; }
.service-intro p:not(.eyebrow) { color:var(--muted); }
.service-intro img { width:100%; height:auto; max-height:460px; object-fit:cover; border-radius:16px; }
.service-content { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:64px; align-items:start; }
.service-copy h2 { font-size:28px; margin-top:40px; }
.service-copy h2:first-child { margin-top:0; }
.service-copy p,.service-copy li { color:var(--muted); }
.service-copy ul,.service-copy ol { padding-left:22px; }
.service-aside { background:#e7efe6; padding:32px; border-radius:16px; }
.service-aside h2 { font-size:26px; }
.service-aside p { font-size:14px; }
.service-aside a { overflow-wrap:anywhere; }
.service-aside .btn { margin:16px 0; }
.service-related { margin-top:56px; padding-top:28px; border-top:1px solid #d9e2dc; }
.service-related h2 { font-size:24px; }
.service-related ul { display:flex; flex-wrap:wrap; padding:0; list-style:none; gap:16px 28px; }
.service-related li { font-size:14px; }
@media(max-width:800px) {
 .service-main { padding:20px 24px 48px; } .service-intro,.service-content { grid-template-columns:1fr; gap:28px; }
 .service-intro { margin-bottom:40px; } .service-intro img { max-height:360px; }
 .service-aside { max-width:580px; }
}
@media(max-width:480px) {
 .brand { max-width:180px; } .site-header nav { flex-shrink:0; }
 .hero .imgHolder { background-image:url('/assets/images/hero-mobile.webp'); }
 .faq-section { margin-top:48px; } .faq-section summary { font-size:14px; }
 .service-intro h1 { font-size:36px; } .service-copy h2 { font-size:25px; }
}
.imgs img { height:auto; }

.site-header { position:relative; z-index:10; }
.services-menu { position:relative; }
.services-menu summary,.mobile-menu > summary { cursor:pointer; list-style:none; font-size:13px; font-weight:600; color:var(--teal); display:flex; gap:8px; align-items:center; border-radius:6px; }
.services-menu summary { padding:12px 0; }
.services-menu summary::-webkit-details-marker,.mobile-menu > summary::-webkit-details-marker { display:none; }
.services-menu summary:focus-visible,.mobile-menu > summary:focus-visible { outline:3px solid #518e02; outline-offset:5px; }
.services-menu .menu-chevron { flex-shrink:0; transition:transform .15s ease; }
.services-menu[open] .menu-chevron { transform:rotate(180deg); }
.services-dropdown { position:absolute; top:calc(100% + 8px); left:-18px; width:240px; padding:10px; background:#fff; border:1px solid #dfe7df; border-radius:12px; box-shadow:0 16px 40px #16343a18; }
.site-header nav .services-dropdown a { display:block; white-space:normal; border-radius:6px; padding:12px; font-size:13px; }
.services-dropdown a:hover,.services-dropdown a[aria-current="page"] { background:#edf3e8; }
.services-dropdown .menu-overview { border-top:1px solid #e0e8e1; margin-top:6px; border-radius:0; }
.mobile-menu { display:none; }
.service-tools-image { aspect-ratio:4/3; object-fit:cover; }
.service-visual { margin:0; min-width:0; }
.service-visual img { display:block; }
.service-visual figcaption { margin-top:10px; font-size:11px; color:var(--muted); }
@media(max-width:800px) {
 .site-header { padding:18px 24px; }
 .site-header .desktop-nav { display:none; }
 .mobile-menu { display:block; flex-shrink:0; }
 .mobile-menu > summary { padding:12px 0 12px 12px; min-height:44px; gap:10px; }
 .menu-icon { display:flex; flex-direction:column; gap:5px; width:20px; }
 .menu-icon span { display:block; height:2px; background:var(--ink); width:20px; transition:transform .15s; }
 .mobile-menu[open] .menu-icon span:first-child { transform:translateY(3.5px) rotate(45deg); }
 .mobile-menu[open] .menu-icon span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
 .site-header .mobile-menu-panel { display:block; position:absolute; left:24px; right:24px; top:calc(100% - 4px); padding:20px; background:white; border:1px solid #dfe7df; border-radius:14px; box-shadow:0 20px 40px #16343a20; }
 .menu-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.14em; margin:0 12px 8px; }
 .site-header nav.mobile-menu-panel a { display:block; white-space:normal; font-size:14px; padding:13px 12px; min-height:48px; border-radius:6px; }
 .mobile-menu-panel a:hover,.mobile-menu-panel a[aria-current="page"] { background:#edf3e8; }
 .mobile-menu-panel .mobile-gallery-link { margin-top:6px; border-top:1px solid #dfe7df; border-radius:0; }
 .site-header nav.mobile-menu-panel .btn { display:flex; margin-top:12px; }
}
@media(max-width:480px) {
 .site-header { padding:16px 24px; }
 .brand { max-width:196px; }
 .mobile-menu > summary { font-size:12px; }
}
/* Small, consistent interactions for navigation. */
.desktop-nav > a,.services-menu > summary,.services-dropdown a,.mobile-menu > summary,.mobile-menu-panel a { transition:color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
.desktop-nav > a:not(.header-contact),.services-menu > summary { position:relative; }
.desktop-nav > a:not(.header-contact)::after,.services-menu > summary::after { content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:transform .18s ease; border-radius:2px; }
.services-menu > summary::after { bottom:5px; right:22px; }
.desktop-nav > a:focus-visible::after,.services-menu > summary:focus-visible::after,.services-menu[open] > summary::after { transform:scaleX(1); }
@media(hover:hover) and (pointer:fine) {
 .desktop-nav > a:not(.header-contact):hover,.services-menu > summary:hover { color:var(--ink); }
 .desktop-nav > a:not(.header-contact):hover::after,.services-menu > summary:hover::after { transform:scaleX(1); }
 .header-contact:hover { color:var(--ink); background:var(--green); border-color:var(--green); box-shadow:0 3px 10px #16343a0a; }
 .services-dropdown a:hover,.site-header nav.mobile-menu-panel a:not(.btn):hover { color:var(--ink); background:#edf3e8; }
 .mobile-menu > summary:hover { color:var(--ink); background:#eaf0e6; }
}
@media(prefers-reduced-motion:reduce) {
 .desktop-nav > a,.services-menu > summary,.services-dropdown a,.mobile-menu > summary,.mobile-menu-panel a,.menu-icon span,.services-menu .menu-chevron { transition:none; }
 .desktop-nav > a::after,.services-menu > summary::after { transition:none; }
}
