@font-face { font-family: "Inter"; src: url("/assets/fonts/inter-latin-ext.woff2") format("woff2"); font-style: normal; font-weight: 400 700; font-display: swap; 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; }
@font-face { font-family: "Inter"; src: url("/assets/fonts/inter-latin.woff2") format("woff2"); font-style: normal; font-weight: 400 700; font-display: swap; 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; }
@font-face { font-family: "Manrope"; src: url("/assets/fonts/manrope-latin-ext.woff2") format("woff2"); font-style: normal; font-weight: 500 800; font-display: swap; 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; }
@font-face { font-family: "Manrope"; src: url("/assets/fonts/manrope-latin.woff2") format("woff2"); font-style: normal; font-weight: 500 800; font-display: swap; 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 {
  --yellow: #ffd900;
  --yellow-hover: #f1cc00;
  --ink: #141619;
  --ink-soft: #202327;
  --text: #202226;
  --muted: #696d75;
  --line: #e4e5e7;
  --paper: #ffffff;
  --warm: #f5f4f0;
  --green: #18a957;
  --display: "Manrope", Arial, sans-serif;
  --body: "Inter", Arial, sans-serif;
  --shadow: 0 22px 55px rgba(19, 24, 30, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--paper); font-family: var(--body); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--display); line-height: 1.12; letter-spacing: -0.035em; }
.wrap { width: min(1348px, calc(100% - 64px)); margin: 0 auto; }
.section { padding: 108px 0; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.utility { height: 42px; background: #111315; color: #ececef; border-bottom: 1px solid rgba(255, 255, 255, 0.14); position: relative; z-index: 50; }
.utility-inner { height: 100%; display: flex; justify-content: space-between; align-items: center; }
.utility-group { display: flex; align-items: center; height: 100%; }
.utility-group > * { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; white-space: nowrap; }
.utility-group > * + * { margin-left: 22px; padding-left: 22px; border-left: 1px solid rgba(255, 255, 255, 0.22); }
.utility-group i { color: #f4f4f4; font-size: 14px; }
.utility-group a { transition: color .2s ease; }
.utility-group a:hover { color: var(--yellow); }

.site-header { position: absolute; top: 42px; left: 0; right: 0; height: 110px; color: #fff; z-index: 40; background: linear-gradient(180deg, rgba(12, 14, 16, .88), rgba(12, 14, 16, .34) 70%, transparent); }
.nav { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 42px; }
.logo { width: 150px; height: 89px; display: flex; align-items: center; flex: 0 0 auto; }
.logo img { width: 122px; height: 89px; object-fit: contain; object-position: left center; }
.main-navigation { display: flex; align-items: center; gap: 34px; margin-left: auto; }
.nav-link { position: relative; display: inline-flex; align-items: center; gap: 9px; padding: 43px 0 38px; border: 0; background: transparent; color: #fff; font-size: 14px; font-weight: 500; white-space: nowrap; cursor: pointer; }
.nav-link i { font-size: 10px; transition: transform .2s ease; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 27px; height: 3px; background: var(--yellow); transition: right .2s ease; }
.nav-link:hover::after, .nav-link.active::after { right: 0; }
.nav-dropdown { position: relative; }
.nav-dropdown.open .dropdown-toggle i { transform: rotate(180deg); }
.dropdown-panel { position: absolute; top: calc(100% - 17px); left: -26px; min-width: 248px; padding: 13px; background: #fff; color: var(--ink); box-shadow: 0 18px 50px rgba(0, 0, 0, .24); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .2s ease; }
.nav-dropdown:hover .dropdown-panel, .nav-dropdown:focus-within .dropdown-panel, .nav-dropdown.open .dropdown-panel { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown-panel a { display: flex; align-items: center; min-height: 39px; padding: 7px 12px; font-size: 13px; font-weight: 500; border-left: 2px solid transparent; }
.dropdown-panel a:hover { background: var(--warm); border-left-color: var(--yellow); }
.header-cta { min-height: 52px; padding: 0 22px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; color: #111; background: var(--yellow); font-size: 13px; font-weight: 700; white-space: nowrap; transition: background .2s ease, transform .2s ease; }
.header-cta:hover { background: var(--yellow-hover); transform: translateY(-2px); }
.menu-toggle { display: none; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.34); background: transparent; padding: 12px; cursor: pointer; }
.menu-toggle > span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: #fff; }

.home-hero { min-height: 650px; position: relative; display: flex; align-items: center; color: #fff; overflow: hidden; background: #18232a url('/assets/images/hero-modern-v1.png') center center / cover no-repeat; }
.home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11, 18, 23, .92) 0%, rgba(11, 18, 23, .77) 32%, rgba(11, 18, 23, .26) 61%, rgba(11, 18, 23, .05) 100%), linear-gradient(180deg, rgba(0,0,0,.22), transparent 35%, rgba(0,0,0,.18)); }
.hero-content { position: relative; z-index: 2; padding-top: 145px; }
.home-hero .hero-content > .eyebrow { display: none; }
.eyebrow { display: flex; align-items: center; gap: 18px; margin: 0 0 25px; color: #646970; font-size: 12px; font-weight: 700; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; }
.eyebrow::after { content: ""; width: 64px; height: 2px; background: var(--yellow); }
.eyebrow.light { color: #e5e7e9; }
.hero-content h1 { margin: 0; max-width: 790px; color: #f8f8f8; font-size: clamp(48px, 5.1vw, 76px); font-weight: 750; letter-spacing: -.052em; line-height: 1.08; }
.hero-content h1 span { color: var(--yellow); }
.hero-content h1::after { content: ""; display: block; width: 32px; height: 2px; margin-top: 24px; background: var(--yellow); }
.hero-lead { margin: 14px 0 0; max-width: 610px; color: #f0f1f2; font-size: 18px; }
.hero-actions { display: flex; gap: 24px; margin-top: 34px; }
.button { min-height: 54px; padding: 0 27px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; border: 1px solid transparent; border-radius: 0; font-size: 14px; font-weight: 700; line-height: 1.2; cursor: pointer; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.button i { font-size: 13px; }
.button:hover { transform: translateY(-2px); }
.button-yellow { color: #111; background: var(--yellow); border-color: var(--yellow); }
.button-yellow:hover { background: var(--yellow-hover); border-color: var(--yellow-hover); }
.button-outline { color: #fff; background: rgba(16,18,20,.2); border-color: rgba(255,255,255,.82); }
.button-outline:hover { color: #111; background: #fff; }
.button-dark { color: #fff; background: var(--ink); border-color: var(--ink); }
.button-dark:hover { color: #111; background: var(--yellow); border-color: var(--yellow); }
.scroll-cue { position: absolute; z-index: 2; right: 38px; bottom: 32px; display: flex; align-items: center; gap: 12px; color: #fff; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; writing-mode: vertical-rl; }
.scroll-cue i { color: var(--yellow); }

.proof-strip { min-height: 80px; display: flex; align-items: center; color: #fff; background: linear-gradient(90deg, #111315, #1d2023 45%, #111315); }
.proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.proof-grid article { min-height: 80px; display: flex; align-items: center; gap: 20px; padding: 12px 28px; }
.proof-grid article + article { border-left: 1px solid rgba(255,255,255,.22); }
.proof-grid article > i { width: 40px; color: #ffe46c; font-size: 28px; text-align: center; }
.proof-grid strong, .proof-grid span { display: block; }
.proof-grid strong { color: #fff; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.proof-grid span { margin-top: 2px; color: #babdc2; font-size: 12px; line-height: 1.35; }

.product-showcase { padding-top: 62px; padding-bottom: 88px; background: #fff; }
.showcase-grid { display: grid; grid-template-columns: minmax(300px, .76fr) minmax(0, 1.7fr); gap: 90px; align-items: start; }
.showcase-intro { padding-right: 12px; }
.showcase-intro h2, .section-heading h2, .detail-copy h2, .contact-copy h2, .empty-state h2 { margin: 0; color: var(--ink); font-size: clamp(36px, 3.4vw, 54px); font-weight: 700; }
.showcase-intro h2 { font-size: clamp(36px, 2.7vw, 43px); }
.showcase-intro > p:not(.eyebrow) { margin: 24px 0 31px; color: var(--muted); font-size: 17px; }
.showcase-links { border-top: 1px solid var(--line); }
.showcase-links a { min-height: 56px; display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); color: #6a6d72; font-size: 14px; font-weight: 600; }
.showcase-links a span { color: #a0a3a8; font-size: 11px; }
.showcase-links a i { opacity: 0; transform: translateX(-8px); transition: .2s ease; }
.showcase-links a:hover, .showcase-links a.active { color: var(--ink); }
.showcase-links a:hover i, .showcase-links a.active i { color: var(--yellow-hover); opacity: 1; transform: translateX(0); }
.text-link { display: inline-flex; align-items: center; gap: 13px; margin-top: 28px; padding-bottom: 5px; border-bottom: 2px solid var(--yellow); color: var(--ink); font-size: 13px; font-weight: 700; }
.showcase-visual { min-height: 520px; position: relative; overflow: hidden; box-shadow: var(--shadow); }
.showcase-visual::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(10,13,15,.82)); }
.showcase-visual img { width: 100%; height: 520px; object-fit: cover; transition: transform .7s ease; }
.showcase-visual:hover img { transform: scale(1.025); }
.showcase-visual > span { position: absolute; z-index: 2; left: 36px; right: 36px; bottom: 30px; display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: end; color: #fff; font-family: var(--display); font-size: 27px; font-weight: 650; }
.showcase-visual > span small { grid-column: 1 / -1; color: var(--yellow); font-family: var(--body); font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }

.process, .benefits, .values, .listing-section { background: var(--warm); }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 430px); gap: 90px; align-items: end; margin-bottom: 58px; }
.section-heading.compact { grid-template-columns: 1fr; }
.section-heading .eyebrow { margin-bottom: 20px; }
.section-heading > p { margin: 0 0 4px; color: var(--muted); font-size: 16px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #d5d6d7; border-bottom: 1px solid #d5d6d7; }
.process-grid article { position: relative; min-height: 280px; padding: 42px 28px 34px; }
.process-grid article + article { border-left: 1px solid #d5d6d7; }
.process-grid article > span { position: absolute; top: 16px; right: 18px; color: #a8aaad; font-size: 11px; font-weight: 700; }
.process-grid article > i { color: #c2a600; font-size: 32px; }
.process-grid h3 { margin: 34px 0 14px; font-size: 19px; font-weight: 700; letter-spacing: -.02em; }
.process-grid p { margin: 0; color: var(--muted); font-size: 14px; }

.project-feature { padding: 115px 0; color: #fff; background: var(--ink); }
.project-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); gap: 90px; align-items: center; }
.project-image { position: relative; }
.project-image img { width: 100%; height: 560px; object-fit: cover; }
.project-image > span { position: absolute; left: 0; bottom: 0; padding: 14px 22px; color: #111; background: var(--yellow); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-copy h2, .cta-inner h2 { margin: 0; color: #fff; font-size: clamp(38px, 3.8vw, 58px); font-weight: 700; }
.project-copy > p:not(.eyebrow) { margin: 26px 0 32px; color: #bfc2c5; font-size: 16px; }
.project-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0 0 36px; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.project-stats strong, .project-stats span { display: block; }
.project-stats strong { color: var(--yellow); font-family: var(--display); font-size: 29px; line-height: 1.2; }
.project-stats span { margin-top: 4px; color: #aeb2b6; font-size: 11px; }

.recommendation-section { background: #fff; }
.recommendation-grid { display: grid; grid-template-columns: minmax(300px, .82fr) minmax(0, 1.18fr); gap: 100px; align-items: start; }
.recommendation-grid h2, .faq-intro h2 { margin: 0; color: var(--ink); font-size: clamp(36px, 3.5vw, 54px); }
.recommendation-grid > div:last-child > p { color: var(--muted); font-size: 16px; }
.recommendation-grid > div:last-child > p:first-child { color: #34373b; font-size: 19px; }
.recommendation-grid ul { display: grid; gap: 12px; margin: 30px 0 36px; padding: 0; list-style: none; }
.recommendation-grid li { position: relative; padding-left: 27px; color: #41454a; font-size: 14px; }
.recommendation-grid li::before { content: ""; position: absolute; left: 0; top: .72em; width: 10px; height: 2px; background: var(--yellow); }

.locations-section, .local-products { background: var(--warm); }
.location-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.location-card { min-height: 320px; padding: 34px 30px; display: flex; flex-direction: column; background: #fff; border: 1px solid #dedfe0; transition: transform .25s ease, box-shadow .25s ease; }
.location-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.location-card > div { display: flex; align-items: center; gap: 11px; color: #a58d00; }
.location-card > div i { font-size: 19px; }
.location-card > div p { margin: 0; color: #8a8e93; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.location-card h3 { margin: 32px 0 17px; font-size: 23px; }
.location-card > p { margin-bottom: 22px; color: var(--muted); font-size: 13px; }
.location-card .text-link { margin-top: auto; align-self: flex-start; }
.service-area-note { margin-top: 42px; padding: 30px 34px; display: grid; grid-template-columns: auto 1fr auto; gap: 23px; align-items: center; color: #fff; background: var(--ink); }
.service-area-note > i { color: var(--yellow); font-size: 32px; }
.service-area-note h3 { margin: 0 0 7px; color: #fff; font-size: 20px; }
.service-area-note p { margin: 0; color: #b8bbc0; font-size: 13px; }
.service-area-note .button-dark { border-color: #fff; }

.faq-section { background: #fff; }
.faq-layout { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr); gap: 100px; align-items: start; }
.faq-intro > p:not(.eyebrow) { margin: 23px 0 0; color: var(--muted); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { min-height: 74px; display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; color: #292c30; font-family: var(--display); font-size: 17px; font-weight: 700; cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary i { width: 30px; height: 30px; display: grid; place-items: center; color: #111; background: var(--yellow); border-radius: 50%; font-size: 11px; transition: transform .2s ease; }
.faq-list details[open] summary i { transform: rotate(45deg); }
.faq-list details p { margin: -4px 54px 24px 0; color: var(--muted); font-size: 14px; }
.share-bar { min-height: 86px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; color: #73777c; }
.share-bar > span { margin-right: 7px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.share-bar a { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; background: var(--ink); }
.share-bar a:hover { color: #111; background: var(--yellow); }
.answer-cta { padding: 72px 0; color: #fff; background: var(--ink); }
.answer-cta-inner { display: grid; grid-template-columns: 1fr auto; gap: 70px; align-items: center; }
.answer-cta h2 { margin: 0; color: #fff; font-size: clamp(34px, 3vw, 48px); }
.answer-cta p:not(.eyebrow) { margin: 16px 0 0; color: #bfc2c5; }

.cta-section { padding: 78px 0; color: #fff; background: #2c3035; }
.cta-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 80px; }
.cta-inner h2 { max-width: 850px; font-size: clamp(34px, 3.1vw, 48px); }
.cta-inner p:not(.eyebrow) { max-width: 760px; margin: 18px 0 0; color: #c5c7ca; }

.footer { padding-top: 78px; color: #c4c7ca; background: #101214; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.25fr; gap: 72px; padding-bottom: 60px; }
.footer-brand img { width: 122px; height: 89px; object-fit: contain; object-position: left center; margin-bottom: 22px; }
.footer-brand > p { max-width: 330px; color: #a3a7ab; font-size: 14px; }
.footer h2 { margin: 7px 0 24px; color: #fff; font-family: var(--body); font-size: 13px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.footer-grid > div:not(.footer-brand) > a { display: block; margin: 10px 0; color: #aeb1b5; font-size: 13px; }
.footer-grid a:hover { color: var(--yellow); }
.footer-contact p { color: #aeb1b5; font-size: 13px; }
.social-links { display: flex; gap: 10px; margin-top: 25px; }
.social-links a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #3b3e42; }
.footer-bottom { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid #2b2e31; color: #85898e; font-size: 12px; }
.footer-bottom p { margin: 0; }
.footer-bottom div { display: flex; gap: 26px; }
.whatsapp { position: fixed; z-index: 60; right: 24px; bottom: 24px; height: 52px; padding: 0 18px; display: inline-flex; align-items: center; gap: 10px; color: #fff; background: var(--green); border-radius: 26px; box-shadow: 0 12px 28px rgba(0,0,0,.25); font-size: 13px; font-weight: 700; }
.whatsapp i { font-size: 22px; }

.inner-hero { min-height: 460px; position: relative; display: flex; align-items: flex-end; color: #fff; background: #172027 var(--inner-image) center 48% / cover no-repeat; }
.inner-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,14,17,.92), rgba(10,14,17,.53) 55%, rgba(10,14,17,.24)), linear-gradient(180deg, rgba(0,0,0,.25), transparent 45%, rgba(0,0,0,.55)); }
.inner-hero-copy { position: relative; z-index: 1; padding: 0 0 58px; }
.inner-hero h1 { max-width: 900px; margin: 0; color: #fff; font-size: clamp(46px, 5vw, 72px); font-weight: 750; }
.breadcrumbs { display: flex; align-items: center; gap: 11px; margin-top: 24px; color: #cfd2d4; font-size: 12px; }
.breadcrumbs a:hover { color: var(--yellow); }
.breadcrumbs i { color: var(--yellow); font-size: 8px; }
.product-subnav { background: #fff; border-bottom: 1px solid var(--line); }
.product-subnav .wrap { display: flex; gap: 28px; overflow-x: auto; scrollbar-width: thin; }
.product-subnav a { position: relative; flex: 0 0 auto; padding: 20px 0; color: #666b71; font-size: 12px; font-weight: 600; }
.product-subnav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 3px; background: var(--yellow); transition: right .2s ease; }
.product-subnav a:hover, .product-subnav a.active { color: var(--ink); }
.product-subnav a:hover::after, .product-subnav a.active::after { right: 0; }

.detail-section { background: #fff; }
.detail-grid { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr); gap: 100px; align-items: center; }
.detail-copy .eyebrow { margin-bottom: 22px; }
.detail-copy .detail-lead { margin: 28px 0 18px; color: #34373b; font-size: 19px; line-height: 1.65; }
.detail-copy > p:not(.eyebrow):not(.detail-lead) { color: var(--muted); }
.feature-list { display: grid; gap: 13px; margin: 30px 0 36px; padding: 0; list-style: none; }
.feature-list li { display: flex; align-items: flex-start; gap: 13px; color: #4d5156; font-size: 14px; }
.feature-list i { width: 23px; height: 23px; display: grid; place-items: center; flex: 0 0 auto; color: #111; background: var(--yellow); border-radius: 50%; font-size: 10px; }
.detail-media { position: relative; padding: 0 0 48px 48px; }
.detail-media::before { content: ""; position: absolute; left: 0; bottom: 0; width: 62%; height: 62%; background: var(--yellow); }
.detail-media > img { position: relative; z-index: 1; width: 100%; height: 560px; object-fit: cover; box-shadow: var(--shadow); }
.detail-note { position: absolute; z-index: 2; left: 0; bottom: 0; min-width: 310px; display: flex; align-items: center; gap: 16px; padding: 20px 24px; color: #fff; background: var(--ink); }
.detail-note > i { color: var(--yellow); font-size: 24px; }
.detail-note strong, .detail-note span { display: block; }
.detail-note strong { font-size: 13px; }
.detail-note span { color: #aeb2b7; font-size: 11px; }
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid #d8d9da; }
.benefit-grid article { min-height: 230px; padding: 38px; background: rgba(255,255,255,.55); }
.benefit-grid article + article { border-left: 1px solid #d8d9da; }
.benefit-grid article > i { color: #bca100; font-size: 29px; }
.benefit-grid h3 { margin: 26px 0 12px; font-size: 20px; }
.benefit-grid p { margin: 0; color: var(--muted); font-size: 14px; }

.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.product-card { background: #fff; border: 1px solid #dddede; }
.product-image { position: relative; height: 280px; display: block; overflow: hidden; }
.product-image::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(12,15,17,.72)); opacity: 0; transition: opacity .25s ease; }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.product-image > span { position: absolute; z-index: 2; left: 24px; right: 24px; bottom: 18px; display: flex; align-items: center; justify-content: space-between; color: #fff; font-size: 12px; font-weight: 700; opacity: 0; transform: translateY(8px); transition: .25s ease; }
.product-card:hover .product-image img { transform: scale(1.04); }
.product-card:hover .product-image::after, .product-card:hover .product-image > span { opacity: 1; transform: translateY(0); }
.product-copy { padding: 27px 26px 30px; }
.product-copy h3 { margin: 0 0 14px; font-size: 20px; }
.product-copy h3 a:hover { color: #a78e00; }
.product-copy p { margin: 0; color: var(--muted); font-size: 13px; }

.gallery-section { background: var(--warm); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.gallery-item { position: relative; height: 310px; padding: 0; overflow: hidden; border: 0; background: #ddd; cursor: zoom-in; }
.gallery-item:nth-child(7n + 1), .gallery-item:nth-child(7n + 5) { grid-column: span 2; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s ease; }
.gallery-item span { position: absolute; inset: auto 18px 18px; z-index: 2; display: flex; align-items: center; gap: 9px; color: #fff; font-size: 12px; font-weight: 700; opacity: 0; transform: translateY(8px); transition: .2s ease; }
.gallery-item::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%, rgba(0,0,0,.72)); opacity: 0; transition: .2s ease; }
.gallery-item:hover img { transform: scale(1.035); }
.gallery-item:hover::after, .gallery-item:hover span { opacity: 1; transform: translateY(0); }
.gallery-dialog { position: fixed; width: min(1100px, calc(100% - 40px)); max-height: 90vh; padding: 0; border: 0; background: #111; box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.gallery-dialog::backdrop { background: rgba(4,6,8,.86); }
.gallery-dialog img { width: 100%; max-height: 88vh; object-fit: contain; }
.dialog-close { position: absolute; z-index: 2; top: 12px; right: 12px; width: 44px; height: 44px; border: 0; color: #111; background: var(--yellow); cursor: pointer; }

.contact-section { background: var(--warm); }
.contact-layout { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr); gap: 100px; align-items: start; }
.contact-copy > p:not(.eyebrow) { max-width: 560px; margin: 25px 0 34px; color: var(--muted); }
.contact-list { display: grid; gap: 0; margin-bottom: 32px; border-top: 1px solid #d7d8d9; }
.contact-list > * { min-height: 80px; display: flex; align-items: center; gap: 18px; border-bottom: 1px solid #d7d8d9; }
.contact-list > * > i { width: 34px; color: #b69b00; font-size: 21px; text-align: center; }
.contact-list small, .contact-list span { display: block; }
.contact-list small { margin-bottom: 3px; color: #8a8e93; font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-list span { color: #292c30; font-size: 14px; }
.button-whatsapp { color: #fff; background: var(--green); border-color: var(--green); }
.contact-form { display: grid; gap: 20px; padding: 46px; background: #fff; box-shadow: var(--shadow); }
.contact-form > div { display: grid; gap: 8px; }
.contact-form label { color: #3b3e42; font-size: 12px; font-weight: 700; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; min-height: 50px; padding: 11px 14px; color: #25282c; background: #fafafa; border: 1px solid #d8dadd; border-radius: 0; outline: none; }
.contact-form textarea { min-height: 124px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: #bda300; box-shadow: 0 0 0 3px rgba(255,217,0,.16); }
.contact-form .button { width: 100%; }
.form-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 0; color: #84888d; font-size: 11px; }
.honeypot { position: absolute !important; left: -9999px !important; }
.empty-state { text-align: center; }
.empty-state p { color: var(--muted); }

@media (max-width: 1180px) {
  .wrap { width: min(100% - 48px, 1120px); }
  .main-navigation { gap: 22px; }
  .header-cta { padding: 0 17px; }
  .proof-grid article { padding-left: 18px; padding-right: 18px; }
  .showcase-grid, .project-grid, .detail-grid, .contact-layout { gap: 60px; }
  .footer-grid { gap: 44px; }
  .location-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 980px) {
  .utility-right { display: none; }
  .site-header { height: 90px; }
  .nav { gap: 20px; }
  .logo { height: 72px; }
  .logo img { width: 116px; }
  .menu-toggle { display: block; margin-left: auto; }
  .main-navigation { position: fixed; top: 0; right: 0; width: min(390px, 90vw); height: 100dvh; padding: 100px 28px 40px; display: block; overflow-y: auto; color: #fff; background: #131619; box-shadow: -20px 0 50px rgba(0,0,0,.35); transform: translateX(105%); transition: transform .3s ease; }
  .main-navigation.open { transform: translateX(0); }
  .menu-toggle { position: relative; z-index: 3; }
  .nav-link { width: 100%; justify-content: space-between; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .nav-link::after { display: none; }
  .dropdown-panel { position: static; display: none; min-width: 0; padding: 5px 0 8px 14px; background: transparent; color: #d9dbdd; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
  .nav-dropdown.open .dropdown-panel { display: block; }
  .dropdown-panel a { padding: 8px 10px; color: #bec1c4; }
  .dropdown-panel a:hover { color: #111; }
  .header-cta { width: 100%; margin-top: 24px; }
  .home-hero { min-height: 650px; background-position: 60% center; }
  .proof-grid { grid-template-columns: repeat(2, 1fr); }
  .proof-grid article:nth-child(3) { border-left: 0; }
  .proof-grid article:nth-child(n + 3) { border-top: 1px solid rgba(255,255,255,.18); }
  .showcase-grid { grid-template-columns: 1fr; }
  .showcase-intro { max-width: 620px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .process-grid article:nth-child(3) { border-left: 0; }
  .process-grid article:nth-child(n + 3) { border-top: 1px solid #d5d6d7; }
  .project-grid { grid-template-columns: 1fr; }
  .project-image img { height: 480px; }
  .cta-inner { grid-template-columns: 1fr; gap: 36px; }
  .cta-inner .button { justify-self: start; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-contact { grid-column: 1 / -1; }
  .detail-grid, .contact-layout { grid-template-columns: 1fr; }
  .recommendation-grid, .faq-layout { grid-template-columns: 1fr; gap: 48px; }
  .detail-copy, .contact-copy { max-width: 720px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 680px) {
  .wrap { width: calc(100% - 36px); }
  .section { padding: 76px 0; }
  .utility { height: 38px; }
  .site-header { top: 38px; }
  .utility-group > * { font-size: 11px; }
  .utility-group > * + * { margin-left: 12px; padding-left: 12px; }
  .utility-group span { display: none; }
  .home-hero { min-height: 650px; background-position: 64% center; }
  .home-hero::before { background: linear-gradient(90deg, rgba(11,18,23,.94), rgba(11,18,23,.66) 72%, rgba(11,18,23,.34)); }
  .hero-content { padding-top: 118px; }
  .hero-content h1 { font-size: clamp(40px, 11vw, 56px); }
  .hero-lead { font-size: 15px; }
  .hero-actions { flex-direction: column; align-items: stretch; gap: 13px; max-width: 340px; }
  .scroll-cue { display: none; }
  .proof-grid { grid-template-columns: 1fr; padding: 9px 0; }
  .proof-grid article { min-height: 68px; border-left: 0 !important; border-top: 1px solid rgba(255,255,255,.16); }
  .proof-grid article:first-child { border-top: 0; }
  .showcase-grid { gap: 46px; }
  .showcase-visual, .showcase-visual img { min-height: 0; height: 370px; }
  .showcase-visual > span { left: 22px; right: 22px; bottom: 22px; font-size: 21px; }
  .section-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 42px; }
  .showcase-intro h2, .section-heading h2, .detail-copy h2, .contact-copy h2, .empty-state h2 { font-size: 36px; }
  .process-grid { grid-template-columns: 1fr; }
  .process-grid article { min-height: 0; }
  .process-grid article + article { border-left: 0; border-top: 1px solid #d5d6d7; }
  .project-feature { padding: 78px 0; }
  .project-grid { gap: 45px; }
  .project-image img { height: 360px; }
  .project-stats { grid-template-columns: 1fr; }
  .project-stats > div + div { padding-top: 15px; border-top: 1px solid rgba(255,255,255,.13); }
  .cta-section { padding: 64px 0; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand, .footer-contact { grid-column: 1 / -1; }
  .footer-bottom { padding: 20px 0; flex-direction: column; align-items: flex-start; }
  .whatsapp { width: 52px; padding: 0; justify-content: center; }
  .whatsapp span { display: none; }
  .inner-hero { min-height: 400px; }
  .inner-hero-copy { padding-bottom: 42px; }
  .inner-hero h1 { font-size: 42px; }
  .detail-media { padding: 0 0 38px 26px; }
  .detail-media > img { height: 400px; }
  .detail-note { min-width: 0; right: 0; padding: 16px 18px; }
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-grid article + article { border-left: 0; border-top: 1px solid #d8d9da; }
  .product-grid, .gallery-grid { grid-template-columns: 1fr; }
  .gallery-item:nth-child(n) { grid-column: auto; }
  .product-image, .gallery-item { height: 280px; }
  .contact-form { padding: 28px 22px; }
  .location-grid { grid-template-columns: 1fr; }
  .service-area-note, .answer-cta-inner { grid-template-columns: 1fr; }
  .service-area-note .button, .answer-cta-inner .button { justify-self: start; }
  .faq-list summary { font-size: 15px; }
  .share-bar { justify-content: flex-start; flex-wrap: wrap; }
}

.booking-section { background: #f5f6f7; }
.booking-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(520px, .9fr); gap: 70px; align-items: end; margin-bottom: 48px; }
.booking-heading h2 { margin: 10px 0 16px; font-size: clamp(38px, 4vw, 56px); line-height: 1.05; }
.booking-heading > div:first-child > p:last-child { color: #62666c; max-width: 620px; }
.booking-rule-summary { display: grid; gap: 1px; grid-template-columns: repeat(3, 1fr); background: #d9dbde; border: 1px solid #d9dbde; }
.booking-rule-summary article { background: #fff; padding: 18px; display: flex; gap: 12px; min-height: 108px; }
.booking-rule-summary i { color: #ad8e00; font-size: 20px; margin-top: 2px; }
.booking-rule-summary span { display: grid; align-content: start; gap: 7px; }
.booking-rule-summary strong { font-size: 13px; }
.booking-rule-summary small { line-height: 1.45; color: #696d72; }
.booking-form { display: grid; gap: 20px; max-width: 1060px; margin: 0 auto; }
.booking-card { background: #fff; border: 1px solid #dedfe1; padding: 34px; box-shadow: 0 16px 38px rgba(16, 21, 25, .055); }
.booking-step { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 28px; }
.booking-step > span { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #17191b; color: #ffd400; font-size: 12px; font-weight: 800; }
.booking-step h3 { font-size: 24px; margin: 0 0 5px; }
.booking-step p { margin: 0; color: #72767c; }
.booking-type-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.booking-type-grid label { cursor: pointer; }
.booking-type-grid input { position: absolute; opacity: 0; }
.booking-type-grid label > span { position: relative; min-height: 150px; display: grid; align-content: start; gap: 8px; border: 2px solid #e0e1e3; padding: 22px; transition: .2s; }
.booking-type-grid label > span > i { font-size: 24px; color: #9c8000; margin-bottom: 5px; }
.booking-type-grid label > span strong { font-size: 17px; }
.booking-type-grid label > span small { line-height: 1.55; color: #696d72; max-width: 330px; }
.booking-type-grid label > span em { position: absolute; right: 16px; top: 16px; font-style: normal; padding: 5px 8px; background: #f3f4f5; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.booking-type-grid input:checked + span { border-color: #e2ba00; background: #fffbed; box-shadow: 0 0 0 3px rgba(255, 212, 0, .17); }
.booking-date-row { display: grid; grid-template-columns: 300px 1fr; gap: 18px; align-items: end; }
.booking-date-row label, .booking-fields label { display: grid; gap: 8px; font-size: 13px; font-weight: 700; }
.booking-date-row input, .booking-fields input, .booking-fields select, .booking-fields textarea { width: 100%; padding: 13px 14px; border: 1px solid #d6d8db; border-radius: 0; background: #fff; color: #151719; font: inherit; outline: none; }
.booking-date-row input:focus, .booking-fields input:focus, .booking-fields select:focus, .booking-fields textarea:focus { border-color: #b09000; box-shadow: 0 0 0 3px rgba(255, 212, 0, .16); }
.selected-rule { min-height: 48px; background: #f2f3f4; padding: 12px 16px; display: flex; align-items: center; gap: 11px; color: #5d6166; font-size: 13px; }
.selected-rule i { color: #967b00; }
.slot-area { margin-top: 24px; }
.slot-label { font-size: 13px; font-weight: 750; margin-bottom: 12px; }
.booking-slots { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.booking-slot { border: 1px solid #d7d9dc; background: #fff; min-height: 70px; padding: 12px 8px; display: grid; gap: 5px; cursor: pointer; transition: .2s; }
.booking-slot strong { font-size: 14px; }
.booking-slot small { font-size: 11px; color: #5f756a; }
.booking-slot:hover:not(:disabled), .booking-slot.selected { border-color: #d4ae00; background: #fff8cc; transform: translateY(-2px); }
.booking-slot:disabled { cursor: not-allowed; background: #f2f3f4; color: #9a9da2; }
.booking-slot:disabled small { color: #a45252; }
.slot-placeholder { grid-column: 1 / -1; min-height: 84px; display: flex; align-items: center; justify-content: center; gap: 11px; background: #f6f7f8; color: #73777c; font-size: 13px; }
.slot-feedback { min-height: 20px; margin: 11px 0 0; color: #705d00; font-size: 12px; font-weight: 700; }
.booking-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.booking-fields label.full { grid-column: 1 / -1; }
.booking-fields label > small { display: inline; font-weight: 450; }
.booking-consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 20px; color: #65696f; font-size: 12px; line-height: 1.55; }
.booking-consent input { margin-top: 3px; accent-color: #111315; }
.booking-submit { background: #17191b; color: #fff; padding: 22px 26px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.booking-submit > div { display: flex; gap: 13px; align-items: center; }
.booking-submit > div > i { color: #ffd400; font-size: 20px; }
.booking-submit span { display: grid; gap: 5px; }
.booking-submit small { color: #bfc1c4; }
.booking-submit button:disabled { opacity: .45; cursor: not-allowed; }
.booking-alert { max-width: 1060px; margin: 0 auto 18px; padding: 14px 17px; border: 1px solid; }
.booking-alert.error { background: #fff0f0; border-color: #eabbbb; color: #8f2525; }
.booking-alert.success { background: #edf8ef; border-color: #a9d6b0; color: #225c2e; }
.booking-alert.warning { background: #fff8d9; border-color: #e4cb55; color: #685400; }
.booking-success { min-height: 760px; display: grid; place-items: center; background: linear-gradient(135deg, #f3f4f5, #fff); }
.success-card { max-width: 720px; margin: auto; background: #fff; padding: 56px; border: 1px solid #dedfe1; box-shadow: 0 26px 70px rgba(15,20,24,.1); text-align: center; }
.success-card h1 { font-size: 42px; margin: 12px 0 16px; }
.success-card > p:not(.eyebrow) { color: #666a70; line-height: 1.7; }
.success-check { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: #ffd400; margin: 0 auto 24px; font-size: 28px; }
.success-reference { display: grid; gap: 5px; background: #f5f6f7; padding: 17px; margin: 28px 0; }
.success-reference strong { font-size: 22px; letter-spacing: .08em; }
.success-card dl { display: grid; grid-template-columns: 1fr 1fr; text-align: left; border: 1px solid #e0e1e3; margin: 0 0 28px; }
.success-card dl div { padding: 16px; border-bottom: 1px solid #e0e1e3; }
.success-card dl div:nth-child(odd) { border-right: 1px solid #e0e1e3; }
.success-card dt { color: #777b80; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; }
.success-card dd { margin: 0; font-weight: 750; }
.success-actions { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; }
.cms-image-text { display: grid; grid-template-columns: 1fr 1fr; gap: 70px; align-items: center; }
.cms-image-text img { width: 100%; height: 520px; object-fit: cover; }
.cms-copy h2, .cms-text h2 { font-size: clamp(36px,4vw,54px); }
.cms-copy p, .cms-text p { color: #63676c; line-height: 1.75; }
.cms-card-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin: 34px 0; }
.cms-card-grid article { padding: 28px; border: 1px solid #dddfe1; }
.cms-card-grid i { color: #a48800; }
.cms-wide-image img { width: 100%; max-height: 680px; object-fit: cover; }
.cms-wide-image figcaption { padding: 12px 0; color: #6d7075; }
.cms-dark { background: #17191b; color: #fff; }
.cms-dark p { color: #c7c9cc; }
.cms-soft { background: #f4f5f6; }
.cms-yellow { background: #ffd400; }
.cms-cta { padding: 70px 0; }
.cms-cta-inner { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 50px; }

@media (max-width: 980px) {
  .booking-heading { grid-template-columns: 1fr; gap: 35px; }
  .booking-rule-summary { grid-template-columns: 1fr; }
  .booking-rule-summary article { min-height: 0; }
  .cms-image-text { grid-template-columns: 1fr; }
  .cms-card-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 680px) {
  .booking-card { padding: 24px 19px; }
  .booking-type-grid, .booking-date-row, .booking-fields { grid-template-columns: 1fr; }
  .booking-fields label.full { grid-column: auto; }
  .booking-slots { grid-template-columns: 1fr 1fr; }
  .booking-submit { align-items: stretch; flex-direction: column; }
  .booking-submit .button { width: 100%; }
  .success-card { padding: 34px 20px; }
  .success-card h1 { font-size: 34px; }
  .success-card dl { grid-template-columns: 1fr; }
  .success-card dl div:nth-child(odd) { border-right: 0; }
  .cms-card-grid { grid-template-columns: 1fr; }
  .cms-cta-inner { grid-template-columns: 1fr; }
}

.home-booking-section { position: relative; padding: 110px 0; overflow: hidden; background: radial-gradient(circle at 12% 16%, rgba(255,212,0,.10), transparent 30%), #151719; color: #fff; }
.home-booking-section::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, transparent 0 46%, rgba(255,255,255,.025) 46% 47%, transparent 47%); }
.home-booking-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(360px,.78fr) minmax(600px,1.22fr); gap: 86px; align-items: start; }
.home-booking-copy { padding-top: 24px; }
.home-booking-copy h2 { max-width: 570px; margin: 14px 0 24px; font-size: clamp(42px,4.5vw,68px); line-height: 1.02; letter-spacing: -.045em; }
.home-booking-copy > p:not(.eyebrow) { max-width: 600px; color: #c7c9cc; font-size: 17px; line-height: 1.75; }
.home-service-rules { display: grid; gap: 1px; margin: 42px 0 30px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); }
.home-service-rules article { display: grid; grid-template-columns: 48px 1fr; gap: 16px; background: #1c1f22; padding: 22px; }
.home-service-rules article > span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,212,0,.5); color: #ffd400; }
.home-service-rules strong { font-size: 16px; }
.home-service-rules p { margin: 7px 0 0; color: #b8bbc0; font-size: 13px; line-height: 1.6; }
.home-booking-link { display: inline-flex; align-items: center; gap: 13px; padding-bottom: 7px; border-bottom: 1px solid #ffd400; color: #fff; font-size: 13px; font-weight: 750; }
.home-booking-link i { color: #ffd400; }
.availability-calendar { background: #fff; color: #17191c; box-shadow: 0 34px 90px rgba(0,0,0,.34); }
.calendar-type-switch { display: grid; grid-template-columns: 1fr 1fr; background: #e2e3e5; gap: 1px; border-bottom: 1px solid #e2e3e5; }
.calendar-type-switch button { border: 0; background: #f5f6f7; display: flex; align-items: center; gap: 14px; min-height: 84px; padding: 18px 24px; text-align: left; cursor: pointer; color: #64686e; transition: .2s; }
.calendar-type-switch button > i { width: 40px; height: 40px; display: grid; place-items: center; background: #fff; color: #777b80; }
.calendar-type-switch button span { display: grid; gap: 5px; }
.calendar-type-switch button strong { color: #25272a; font-size: 14px; }
.calendar-type-switch button small { font-size: 11px; color: inherit; }
.calendar-type-switch button.active { background: #ffd400; color: #594900; }
.calendar-type-switch button.active > i { background: #17191c; color: #ffd400; }
.calendar-type-switch button.active strong { color: #17191c; }
.calendar-toolbar { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; gap: 16px; padding: 24px 28px 20px; }
.calendar-toolbar > button { width: 42px; height: 42px; border: 1px solid #dadcdf; background: #fff; color: #242629; cursor: pointer; }
.calendar-toolbar > button:disabled { opacity: .35; cursor: not-allowed; }
.calendar-toolbar > div { display: grid; gap: 4px; text-align: center; }
.calendar-toolbar small { text-transform: uppercase; letter-spacing: .12em; font-size: 9px; color: #8a8e94; }
.calendar-toolbar strong { font-size: 20px; }
.calendar-weekdays, .calendar-days { display: grid; grid-template-columns: repeat(7,1fr); margin: 0 28px; }
.calendar-weekdays { border: 1px solid #e1e2e4; border-bottom: 0; background: #f5f6f7; }
.calendar-weekdays span { padding: 10px 4px; text-align: center; color: #7a7e84; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.calendar-days { min-height: 320px; border-top: 1px solid #e1e2e4; border-left: 1px solid #e1e2e4; }
.calendar-blank, .calendar-day { min-height: 64px; border: 0; border-right: 1px solid #e1e2e4; border-bottom: 1px solid #e1e2e4; background: #fff; }
.calendar-blank { display: block; background: #fafafa; }
.calendar-day { position: relative; display: grid; place-items: center; align-content: center; gap: 5px; cursor: pointer; color: #222427; transition: .15s; }
.calendar-day > span { font-size: 14px; font-weight: 800; }
.calendar-day > i { width: 6px; height: 6px; border-radius: 50%; }
.calendar-day > small { position: absolute; right: 5px; top: 4px; font-size: 8px; font-weight: 800; color: #6d7177; }
.calendar-day.available > i { background: #34a36b; }
.calendar-day.limited { background: #fff9df; }
.calendar-day.limited > i { background: #e5aa1a; }
.calendar-day.full { background: #fff0f0; color: #994242; }
.calendar-day.full > i { background: #d75b5b; }
.calendar-day.closed { background: #f2f3f4; color: #afb2b6; cursor: not-allowed; }
.calendar-day.closed > i { background: #c3c6ca; }
.calendar-day:hover:not(:disabled), .calendar-day.selected { z-index: 1; box-shadow: inset 0 0 0 2px #17191c; }
.calendar-day.selected { background: #ffd400; color: #17191c; }
.calendar-loading { grid-column: 1/-1; min-height: 319px; display: flex; align-items: center; justify-content: center; gap: 10px; color: #74787e; font-size: 13px; border-right: 1px solid #e1e2e4; border-bottom: 1px solid #e1e2e4; }
.calendar-loading i { color: #a28400; }
.calendar-loading.error { color: #9c3e3e; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: 16px; padding: 15px 28px; border-bottom: 1px solid #e3e4e6; color: #6e7278; font-size: 10px; }
.calendar-legend span { display: inline-flex; align-items: center; gap: 6px; }
.calendar-legend i { width: 7px; height: 7px; border-radius: 50%; }
.calendar-legend i.available { background: #34a36b; }
.calendar-legend i.limited { background: #e5aa1a; }
.calendar-legend i.full { background: #d75b5b; }
.calendar-legend i.closed { background: #c3c6ca; }
.calendar-selection { min-height: 198px; padding: 22px 28px 26px; background: #fafafa; }
.calendar-selection-placeholder { min-height: 146px; display: flex; align-items: center; justify-content: center; gap: 14px; color: #777b81; text-align: left; }
.calendar-selection-placeholder > i { width: 44px; height: 44px; display: grid; place-items: center; background: #fff2a8; color: #856d00; }
.calendar-selection-placeholder.full > i { background: #ffe3e3; color: #a54141; }
.calendar-selection-placeholder span { display: grid; gap: 5px; }
.selected-date-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.selected-date-head > div { display: grid; gap: 4px; }
.selected-date-head small { color: #777b81; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.selected-date-head strong { font-size: 15px; text-transform: capitalize; }
.selected-date-head > span { padding: 6px 8px; background: #e9f8ef; color: #27704b; font-size: 10px; font-weight: 800; }
.mini-slot-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.mini-slot-grid button { border: 1px solid #d9dbde; background: #fff; padding: 10px 7px; display: grid; gap: 4px; cursor: pointer; }
.mini-slot-grid button strong { font-size: 11px; }
.mini-slot-grid button small { color: #478064; font-size: 9px; }
.mini-slot-grid button:hover, .mini-slot-grid button.selected { border-color: #caa600; background: #fff7c8; }
.calendar-book-button { margin-top: 14px; min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 10px 15px; background: #17191c; color: #fff; font-size: 12px; font-weight: 800; }
.calendar-book-button i { color: #ffd400; }
.calendar-setup-note { display: flex; gap: 7px; align-items: center; margin: 10px 0 0; color: #777b81; font-size: 10px; }

@media (max-width: 1120px) {
  .home-booking-grid { grid-template-columns: 1fr; gap: 52px; }
  .home-booking-copy { max-width: 760px; }
  .availability-calendar { max-width: 760px; width: 100%; }
}

@media (max-width: 680px) {
  .home-booking-section { padding: 78px 0; }
  .home-booking-copy h2 { font-size: 42px; }
  .calendar-type-switch button { min-height: 78px; padding: 12px; gap: 9px; }
  .calendar-type-switch button > i { display: none; }
  .calendar-toolbar { padding: 20px 16px 16px; gap: 10px; }
  .calendar-weekdays, .calendar-days { margin: 0 14px; }
  .calendar-days { min-height: 252px; }
  .calendar-blank, .calendar-day { min-height: 50px; }
  .calendar-loading { min-height: 251px; }
  .calendar-legend { padding: 13px 15px; gap: 11px; }
  .calendar-selection { padding: 18px 15px 20px; }
  .mini-slot-grid { grid-template-columns: 1fr 1fr; }
  .selected-date-head { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.managed-section.managed-dark { background: #17191c; color: #fff; }
.managed-section.managed-soft { background: #f4f5f6; }
.managed-section .managed-wide-image { width: 100%; max-height: 660px; object-fit: cover; border-radius: 4px; margin: 28px 0; }
.managed-text { max-width: 900px; }
.managed-text > p { font-size: 17px; line-height: 1.8; color: #5f6369; }
.managed-dark .managed-text > p { color: #d0d2d5; }
.managed-section .button { margin-top: 20px; }
