:root {
    --stone-950: #0F1311;
    --stone-900: #161C19;
    --stone-800: #1E2622;
    --stone-700: #2A3530;
    --stone-600: #3D4A44;
    --stone-500: #5A6B63;
    --stone-400: #7E8F86;
    --stone-300: #A8B5AE;
    --stone-200: #CDD6D0;
    --stone-100: #E8ECE9;
    --stone-50:  #F3F6F4;

    --forest-900: #0C2818;
    --forest:     #276842;
    --forest-light:#348F5A;

    --amber:      #C9A227;
    --amber-light:#DBBA4F;
    --amber-100:  #FEF5DC;

    --cream-dark: #E8E1D5;
    --cream:      #F4EFE6;
    --cream-light:#FAF7F2;
    --white:      #FEFDFB;

    --font-display: 'Bricolage Grotesque', sans-serif;
    --font-body:    'DM Sans', sans-serif;

    --section-py: clamp(64px, 10vw, 120px);
    --container:  1200px;
    --px:         clamp(20px, 4vw, 40px);
    --gap:        clamp(32px, 5vw, 64px);
    --ease:       cubic-bezier(.16, 1, .3, 1);
    --r-sm:       8px;
    --r-md:       12px;
    --r-lg:       20px;
    --top-h:      40px;
    --nav-h:      72px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--nav-h) + 20px);
    overflow-x: clip;
}

body {
    font-family: var(--font-body);
    font-weight: 400;
    color: var(--stone-800);
    background: var(--white);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;
}

img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; border:none; background:none; }
input, textarea { font:inherit; border:none; outline:none; }
.hide-mobile { }

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding-left: var(--px);
    padding-right: var(--px);
}

.tag {
    display: inline-block;
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--forest);
    background: linear-gradient(135deg, rgba(39,104,66,.1), rgba(39,104,66,.04));
    border: 1px solid rgba(39,104,66,.12);
    padding: 6px 16px;
    border-radius: 100px;
    margin-bottom: 14px;
}

.tag--light {
    color: var(--amber-light);
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.1);
}

.section-head {
    text-align: center;
    max-width: 620px;
    margin: 0 auto clamp(36px, 6vw, 64px);
}

.section-title {
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 4vw, 2.6rem);
    font-weight: 800;
    line-height: 1.12;
    color: var(--stone-900);
    letter-spacing: -.025em;
}

.section-title--light { color: var(--white); }

.section-sub {
    margin-top: 14px;
    font-size: clamp(.95rem, 1.6vw, 1.1rem);
    color: var(--stone-500);
    line-height: 1.7;
}

.btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: .95rem;
    letter-spacing: .01em;
    padding: 16px 32px;
    border-radius: var(--r-md);
    transition: all .4s var(--ease);
    position: relative;
    white-space: nowrap;
    cursor: pointer;
}

.btn svg { transition: transform .4s var(--ease); flex-shrink:0; }
.btn:hover svg { transform: translateX(5px); }

.btn--primary {
    background: linear-gradient(135deg, var(--forest) 0%, var(--forest-light) 100%);
    color: var(--white);
    box-shadow: 0 4px 20px rgba(39,104,66,.35), 0 1px 3px rgba(0,0,0,.1);
    isolation: isolate;
}
.btn--primary::before {
    content:'';
    position:absolute; inset:0;
    border-radius:inherit;
    background:linear-gradient(135deg, var(--forest-light) 0%, #2AA55D 100%);
    opacity:0;
    transition:opacity .4s;
    z-index:-1;
}
.btn--primary:hover::before { opacity:1; }
.btn--primary:hover {
    box-shadow: 0 8px 32px rgba(39,104,66,.4), 0 2px 8px rgba(0,0,0,.1);
    transform: translateY(-3px);
}
.btn--dark {
    background: var(--stone-900);
    color: var(--white);
    box-shadow: 0 2px 12px rgba(0,0,0,.15);
}
.btn--dark:hover { background: var(--stone-700); transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,.2); }

.btn--glass {
    background: rgba(255,255,255,.07);
    color: var(--white);
    border: 1.5px solid rgba(255,255,255,.18);
    backdrop-filter: blur(10px);
}
.btn--glass:hover {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.35);
    transform: translateY(-2px);
}

.btn--full { width:100%; justify-content:center; }

.hero__actions .btn {
    padding: 18px 36px;
    font-size: 1rem;
}
.hero__actions .btn--primary {
    box-shadow: 0 6px 28px rgba(39,104,66,.4), 0 2px 6px rgba(0,0,0,.15);
}

.top-bar {
    background: var(--forest-900);
    color: rgba(255,255,255,.65);
    font-size: .8rem;
    height: var(--top-h);
    display: flex;
    align-items: center;
    position: relative;
    z-index: 1001;
}
.top-bar__inner { display:flex; align-items:center; justify-content:space-between; }
.top-bar__text { font-weight:500; letter-spacing:.02em; }
.top-bar__phone {
    display: flex; align-items: center; gap:6px;
    font-weight: 600; color: var(--amber-light);
    transition: color .3s;
    padding:8px 12px; min-height:44px;
}
.top-bar__phone:hover { color: var(--amber); }
.top-bar__short { display:none; font-weight:500; letter-spacing:.02em; }

.nav {
    position: sticky; top:0; z-index:1002;
    height: var(--nav-h);
    border-bottom: 1px solid rgba(30,38,34,.05);
    transition: box-shadow .4s var(--ease);
}
.nav::before {
    content:''; position:absolute; inset:0;
    background: rgba(254,253,251,.88);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    z-index:-1;
}
.nav.scrolled { box-shadow: 0 4px 30px rgba(0,0,0,.06); }
.nav__inner { display:flex; align-items:center; justify-content:space-between; height:100%; }

.nav__logo { display:flex; align-items:center; gap:10px; }
.nav__logo-text { display:flex; flex-direction:column; line-height:1.15; }
.nav__logo-name { font-family:var(--font-display); font-weight:800; font-size:1.1rem; color:var(--stone-900); }
.nav__logo-sub { font-size:.7rem; font-weight:500; color:var(--stone-400); letter-spacing:.04em; text-transform:uppercase; }

.nav__links { display:flex; align-items:center; gap:2px; }
.nav__link {
    font-size: .86rem; font-weight:500; color:var(--stone-600);
    padding: 8px 14px; border-radius:var(--r-sm);
    transition: all .3s;
}
.nav__link:hover { color:var(--stone-900); background:rgba(39,104,66,.04); }
.nav__link.nav__link--cta {
    background: var(--forest); color:var(--white);
    font-family:var(--font-display); font-weight:700;
    padding: 10px 22px; margin-left:6px;
}
.nav__link.nav__link--cta:hover { background:var(--forest-light); }

.nav__toggle { display:none; flex-direction:column; gap:5px; padding:12px; min-width:44px; min-height:44px; z-index:1002; }
.nav__toggle span { display:block; width:24px; height:2px; background:var(--stone-800); border-radius:2px; transition:all .3s var(--ease); transform-origin:center; }
.nav__toggle.active span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
.nav__toggle.active span:nth-child(2) { opacity:0; }
.nav__toggle.active span:nth-child(3) { transform:rotate(-45deg) translate(5px,-5px); }

.hero {
    position: relative;
    min-height: max(92vh, 620px);
    display: flex; align-items: center;
    overflow: hidden;
}
.hero--sub { min-height: max(70vh, 480px); }

.breadcrumb {
    display: flex; align-items: center; gap: 8px;
    font-size: .82rem; font-weight: 500;
    color: rgba(255,255,255,.5);
    margin-bottom: 18px;
}
.breadcrumb a { color: rgba(255,255,255,.65); transition: color .3s; }
.breadcrumb a:hover { color: var(--white); }
.breadcrumb__sep { color: rgba(255,255,255,.3); }

.hero__bg { position:absolute; inset:0; z-index:0; }
.hero__bg-img {
    width:100%; height:100%;
    object-fit:cover;
    object-position: center 60%;
    transform:scale(1.05);
    will-change:transform;
}
.hero__overlay {
    position:absolute; inset:0;
    background:
        linear-gradient(180deg, rgba(15,19,17,.7) 0%, rgba(15,19,17,.55) 40%, rgba(15,19,17,.8) 100%),
        linear-gradient(90deg, rgba(15,19,17,.6) 0%, transparent 60%);
}

.hero__content {
    position:relative; z-index:2;
    padding-top: clamp(80px, 14vw, 160px);
    padding-bottom: clamp(60px, 8vw, 100px);
    max-width: 680px;
}

.hero__title {
    font-family:var(--font-display);
    font-size:clamp(2.2rem, 6.5vw, 4.2rem);
    font-weight:800; color:var(--white);
    line-height:1.06; letter-spacing:-.03em;
    margin-bottom:22px;
}
.hero__title-accent { color:var(--amber); }

.hero__desc {
    font-size:clamp(.95rem, 1.8vw, 1.15rem);
    color:rgba(255,255,255,.72);
    line-height:1.7; margin-bottom:32px;
    max-width:500px;
}

.hero__actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px; }

.hero__stats {
    display:flex; align-items:center;
    padding-top:28px;
    border-top:1px solid rgba(255,255,255,.08);
}
.hero__stat { text-align:center; padding:0 clamp(14px, 3vw, 30px); }
.hero__stat:first-child { padding-left:0; text-align:left; }
.hero__stat-num {
    font-family:var(--font-display);
    font-size:clamp(1.5rem, 3.5vw, 2.2rem);
    font-weight:800; color:var(--white);
    letter-spacing:-.02em;
}
.hero__stat-plus { font-family:var(--font-display); font-size:clamp(1rem, 2vw, 1.4rem); font-weight:700; color:var(--amber); }
.hero__stat-label { display:block; font-size:.78rem; color:rgba(255,255,255,.6); font-weight:500; margin-top:2px; }
.hero__stat-divider { width:1px; height:36px; background:rgba(255,255,255,.1); flex-shrink:0; }


.services { padding:var(--section-py) 0; background:var(--white); }

.services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.scard {
    border-radius:var(--r-lg); overflow:hidden;
    border:1px solid rgba(30,38,34,.06);
    background:var(--cream-light);
    transition:all .5s var(--ease);
}
.scard:hover {
    transform:translateY(-5px);
    box-shadow:0 20px 60px rgba(15,19,17,.08),0 8px 20px rgba(15,19,17,.04);
    border-color:transparent;
}

.scard__img { aspect-ratio:16/10; overflow:hidden; }
.scard__img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.scard:hover .scard__img img { transform:scale(1.05); }

.scard__body { padding:clamp(20px, 3vw, 28px); }

.scard__icon {
    width:40px; height:40px; margin-bottom:14px;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, rgba(39,104,66,.12), rgba(39,104,66,.04));
    border-radius:var(--r-sm); color:var(--forest);
}
.scard__icon svg { width:20px; height:20px; }

.scard__title { font-family:var(--font-display); font-size:1.2rem; font-weight:700; color:var(--stone-900); margin-bottom:8px; }
.scard__desc { font-size:.9rem; color:var(--stone-500); line-height:1.7; margin-bottom:18px; }
.scard__link {
    display:inline-flex; align-items:center; gap:6px;
    font-family:var(--font-display); font-weight:700; font-size:.85rem;
    color:var(--forest); transition:gap .3s var(--ease);
    padding:12px 8px; min-height:44px;
}
.scard__link:hover { gap:12px; }

.about { padding:var(--section-py) 0; background:var(--cream-light); }

.about__grid {
    display:grid; grid-template-columns:1fr 1fr;
    gap:var(--gap); align-items:center;
}

.about__media { position:relative; }

.about__img-main {
    border-radius:var(--r-lg); overflow:hidden;
    aspect-ratio:3/4; box-shadow:0 16px 48px rgba(0,0,0,.1);
}
.about__img-main img { width:100%; height:100%; object-fit:cover; }

.about__img-small {
    position:absolute; bottom:-20px; right:-20px;
    width:55%; border-radius:var(--r-md); overflow:hidden;
    border:4px solid var(--cream-light);
    box-shadow:0 8px 32px rgba(0,0,0,.12);
    aspect-ratio:4/3;
}
.about__img-small img { width:100%; height:100%; object-fit:cover; }

.about__badge {
    position:absolute; top:24px; right:-16px;
    background:var(--forest); color:var(--white);
    padding:16px 20px; border-radius:var(--r-md);
    text-align:center;
    box-shadow:0 8px 32px rgba(39,104,66,.3);
}
.about__badge-num { display:block; font-family:var(--font-display); font-size:1.8rem; font-weight:800; line-height:1; }
.about__badge-text { font-size:.7rem; font-weight:500; opacity:.8; margin-top:2px; display:block; }

.about__content { padding-left:clamp(0px, 3vw, 32px); }
.about__text { font-size:clamp(.92rem, 1.4vw, 1rem); color:var(--stone-600); line-height:1.75; margin-top:14px; }

.about__checks { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:24px 0 28px; }
.about__check {
    display:flex; align-items:center; gap:8px;
    font-size:.88rem; font-weight:500; color:var(--stone-700);
}
.about__check svg { color:var(--forest); flex-shrink:0; }

.rot { padding:clamp(32px, 5vw, 48px) 0; position:relative; overflow:hidden; }
.rot::before {
    content:''; position:absolute; inset:0;
    background:linear-gradient(135deg, var(--forest), var(--forest-light) 60%, #2AA55D);
}
.rot::after {
    content:''; position:absolute; inset:0;
    background-image:radial-gradient(rgba(255,255,255,.07) 1px, transparent 1px);
    background-size:20px 20px;
}
.rot__inner {
    position:relative; z-index:1;
    display:flex; align-items:center; gap:clamp(20px, 4vw, 36px);
}
.rot__text { flex:1; }
.rot__title { font-family:var(--font-display); font-size:clamp(1.1rem, 2.2vw, 1.45rem); font-weight:800; color:var(--white); margin-bottom:4px; }
.rot__desc { font-size:clamp(.85rem, 1.3vw, .92rem); color:rgba(255,255,255,.8); line-height:1.6; }

.process { padding:var(--section-py) 0; background:var(--white); }

.process__steps { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }

.pstep {
    background:var(--cream-light);
    border-radius:var(--r-lg);
    overflow:hidden;
    border:1px solid rgba(30,38,34,.06);
    transition:all .5s var(--ease);
    position:relative;
}
.pstep:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(15,19,17,.06); }

.pstep__num {
    position:absolute; top:16px; left:16px; z-index:2;
    width:42px; height:42px;
    display:flex; align-items:center; justify-content:center;
    background:var(--forest); color:var(--white);
    font-family:var(--font-display); font-weight:800; font-size:.85rem;
    border-radius:50%;
    box-shadow:0 4px 16px rgba(39,104,66,.3);
}

.pstep__img { aspect-ratio:16/10; overflow:hidden; }
.pstep__img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.pstep:hover .pstep__img img { transform:scale(1.04); }

.pstep__title { font-family:var(--font-display); font-size:1.15rem; font-weight:700; color:var(--stone-900); padding:clamp(18px,3vw,24px) clamp(18px,3vw,24px) 0; }
.pstep__desc { font-size:.9rem; color:var(--stone-500); line-height:1.7; padding:8px clamp(18px,3vw,24px) clamp(18px,3vw,24px); }

.scard--dark {
    background:var(--stone-900);
    border-color:transparent;
}
.scard--dark:hover {
    box-shadow:0 20px 60px rgba(15,19,17,.2),0 8px 20px rgba(15,19,17,.1);
}
.scard__img--overlay { position:relative; }
.scard__img--overlay::after {
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(15,19,17,.1) 0%, rgba(15,19,17,.5) 100%);
}
.scard__icon--light {
    background:rgba(255,255,255,.1);
    color:var(--amber-light);
}
.scard__title--light { color:var(--white); }
.scard__desc--light { color:rgba(255,255,255,.55); }
.scard__link--light { color:var(--amber-light); }

.pool-showcase { padding:var(--section-py) 0; background:var(--cream-light); }

.pool__hero {
    display:grid; grid-template-columns:1.1fr 1fr;
    gap:var(--gap); align-items:center;
    margin-bottom:clamp(40px, 6vw, 64px);
}

.pool__hero-img {
    border-radius:var(--r-lg); overflow:hidden;
    aspect-ratio:4/3;
    box-shadow:0 16px 48px rgba(0,0,0,.1);
}
.pool__hero-img img { width:100%; height:100%; object-fit:cover; }

.pool__hero-title {
    font-family:var(--font-display);
    font-size:clamp(1.3rem, 2.5vw, 1.8rem);
    font-weight:800; color:var(--stone-900);
    margin-bottom:12px;
}
.pool__hero-desc {
    font-size:clamp(.92rem, 1.4vw, 1rem);
    color:var(--stone-500); line-height:1.7;
    margin-bottom:20px;
}

.pool__features { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:28px; }
.pool__feature {
    display:flex; align-items:center; gap:8px;
    font-size:.88rem; font-weight:500; color:var(--stone-700);
}
.pool__feature svg { color:var(--forest); flex-shrink:0; }

.pool__steps { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.pool__step {
    position:relative;
    border-radius:var(--r-lg); overflow:hidden;
    background:var(--white);
    border:1px solid rgba(30,38,34,.06);
    transition:all .4s var(--ease);
}
.pool__step:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(15,19,17,.06); }

.pool__step-img { aspect-ratio:3/4; overflow:hidden; }
.pool__step-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.pool__step:hover .pool__step-img img { transform:scale(1.05); }

.pool__step-num {
    position:absolute; top:12px; left:12px;
    width:32px; height:32px;
    display:flex; align-items:center; justify-content:center;
    background:var(--forest); color:var(--white);
    font-family:var(--font-display); font-weight:800; font-size:.8rem;
    border-radius:50%;
    box-shadow:0 4px 12px rgba(39,104,66,.3);
}

.pool__step-title {
    font-family:var(--font-display); font-weight:700;
    font-size:.9rem; color:var(--stone-900);
    padding:14px 14px 16px; text-align:center;
}

.gallery { padding:var(--section-py) 0 0; background:var(--cream-light); overflow:hidden; position:relative; }

.gallery__scroll {
    overflow-x:auto; overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    padding-bottom:var(--section-py);
}
.gallery__scroll::-webkit-scrollbar { display:none; }

.gallery__track {
    display:flex; gap:16px;
    padding:0 var(--px);
    width:max-content;
}

.gallery__item {
    width:clamp(260px, 28vw, 340px);
    aspect-ratio:3/4;
    border-radius:var(--r-lg);
    overflow:hidden;
    flex-shrink:0;
    transition:transform .4s var(--ease);
}
.gallery__item:hover { transform:scale(1.02); }
.gallery__item img { width:100%; height:100%; object-fit:cover; }

.gallery__arrow {
    position:absolute; top:calc(50% + 40px); transform:translateY(-50%);
    width:48px; height:48px;
    display:flex; align-items:center; justify-content:center;
    background:var(--white); border-radius:50%;
    color:var(--stone-600);
    box-shadow:0 4px 20px rgba(0,0,0,.12);
    transition:all .3s var(--ease); z-index:5;
}
.gallery__arrow--prev { left:clamp(12px, 3vw, 32px); }
.gallery__arrow--next { right:clamp(12px, 3vw, 32px); }
.gallery__arrow:hover { background:var(--forest); color:var(--white); transform:translateY(-50%) scale(1.08); box-shadow:0 6px 28px rgba(39,104,66,.3); }

.gallery__hint {
    display:none; align-items:center; gap:8px; justify-content:center;
    font-size:.82rem; font-weight:500; color:var(--stone-400);
    padding:16px var(--px) var(--section-py);
    animation:hint-nudge 2s ease-in-out infinite;
}
@keyframes hint-nudge { 0%,100%{transform:translateX(0);} 50%{transform:translateX(6px);} }

.reviews { padding:var(--section-py) 0; background:var(--white); }

.reviews__grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }

.rcard {
    background:var(--cream-light);
    border-radius:var(--r-lg);
    padding:clamp(22px, 3vw, 28px);
    border:1px solid rgba(30,38,34,.05);
    transition:all .4s var(--ease);
    display:flex; flex-direction:column;
}
.rcard:hover { box-shadow:0 10px 36px rgba(15,19,17,.05); transform:translateY(-2px); }

.rcard--big {
    grid-row:1/3; background:var(--stone-900); border-color:transparent;
    padding:clamp(28px, 4vw, 36px);
}
.rcard--big:hover { box-shadow:0 16px 48px rgba(15,19,17,.18); }

.rcard__stars { color:var(--amber); font-size:1rem; letter-spacing:2px; margin-bottom:16px; }

.rcard__quote { font-size:clamp(.9rem, 1.3vw, .95rem); color:var(--stone-500); line-height:1.75; flex:1; margin-bottom:20px; }
.rcard--big .rcard__quote { font-size:clamp(.95rem, 1.6vw, 1.08rem); color:rgba(255,255,255,.65); }

.rcard__author {
    display:flex; align-items:center; gap:10px;
    padding-top:16px; border-top:1px solid rgba(30,38,34,.06);
}
.rcard--big .rcard__author { border-color:rgba(255,255,255,.08); }

.rcard__avatar {
    width:40px; height:40px; display:flex; align-items:center; justify-content:center;
    background:var(--cream); color:var(--stone-500);
    font-family:var(--font-display); font-weight:700; font-size:.8rem;
    border-radius:50%;
}
.rcard--big .rcard__avatar { background:rgba(255,255,255,.1); color:var(--white); }

.rcard__author strong { display:block; font-size:.88rem; color:var(--stone-800); }
.rcard--big .rcard__author strong { color:var(--white); }
.rcard__author span { font-size:.78rem; color:var(--stone-400); }

.contact { padding:var(--section-py) 0; background:var(--stone-900); position:relative; overflow:hidden; }
.contact::before {
    content:''; position:absolute; top:-80px; right:-80px;
    width:360px; height:360px; border-radius:50%;
    background:radial-gradient(circle, rgba(39,104,66,.15), transparent 70%);
    pointer-events:none;
}

.contact__grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:start; }

.contact__desc {
    font-size:clamp(.95rem, 1.6vw, 1.05rem);
    color:rgba(255,255,255,.72); line-height:1.7;
    margin:14px 0 32px;
}

.contact__cards { display:flex; flex-direction:column; gap:12px; margin-bottom:28px; }

.ccard {
    display:flex; align-items:center; gap:14px;
    padding:14px; border-radius:var(--r-md);
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.06);
    transition:all .3s;
}
a.ccard:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.12); }

.ccard__icon {
    width:42px; height:42px; display:flex; align-items:center; justify-content:center;
    background:rgba(39,104,66,.2); border-radius:var(--r-sm); color:var(--forest-light);
    flex-shrink:0;
}
.ccard small { display:block; font-size:.72rem; color:rgba(255,255,255,.35); font-weight:500; text-transform:uppercase; letter-spacing:.06em; }
.ccard strong { display:block; font-weight:500; color:var(--white); font-size:.9rem; margin-top:1px; overflow-wrap:break-word; word-break:break-word; }

.contact__fine { font-size:.82rem; color:rgba(255,255,255,.3); font-style:italic; }

.contact__form-wrap {
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.07);
    border-radius:var(--r-lg);
    padding:clamp(24px, 4vw, 36px);
    backdrop-filter:blur(8px);
}
.contact__form { display:flex; flex-direction:column; gap:18px; }

#contact-form { max-width:100%; overflow:hidden; }
#contact-form .g-recaptcha { transform-origin:left center; max-width:100%; }

.frow { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.fgroup label {
    display:block; font-size:.82rem; font-weight:500;
    color:rgba(255,255,255,.55); margin-bottom:6px;
}
.fgroup input, .fgroup textarea {
    width:100%; padding:13px 15px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.09);
    border-radius:var(--r-sm);
    color:var(--white); font-size:1rem;
    transition:all .3s;
}
.fgroup input::placeholder, .fgroup textarea::placeholder { color:rgba(255,255,255,.22); }
.fgroup input:focus, .fgroup textarea:focus {
    border-color:var(--forest-light);
    background:rgba(255,255,255,.08);
    box-shadow:0 0 0 3px rgba(52,143,90,.15);
}
.fgroup textarea { resize:vertical; min-height:90px; }

.fgroup select,
.fgroup__select {
    width:100%; padding:13px 15px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.09);
    border-radius:var(--r-sm);
    color:var(--white); font-size:1rem; font-family:inherit;
    transition:all .3s; cursor:pointer;
    appearance:none;
    -webkit-appearance:none;
}
.fgroup select option { background:var(--stone-900); color:var(--white); }
.fgroup select:focus,
.fgroup__select:focus {
    border-color:var(--forest-light);
    background:rgba(255,255,255,.08);
    box-shadow:0 0 0 3px rgba(52,143,90,.15);
    outline:none;
}

.usps { padding:var(--section-py) 0; background:var(--white); }

.usps__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }

.ucard {
    text-align:center;
    padding:clamp(22px, 3vw, 32px) clamp(16px, 2vw, 22px);
    border-radius:var(--r-lg);
    border:1px solid rgba(30,38,34,.05);
    background:var(--cream-light);
    transition:all .4s var(--ease);
}
.ucard:hover { border-color:rgba(39,104,66,.12); box-shadow:0 8px 28px rgba(15,19,17,.04); }

.ucard__icon {
    width:52px; height:52px; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg, rgba(39,104,66,.12), rgba(39,104,66,.04));
    border-radius:var(--r-md); color:var(--forest);
    margin:0 auto 14px;
}

.ucard h4 { font-family:var(--font-display); font-weight:700; font-size:.98rem; color:var(--stone-900); margin-bottom:6px; }
.ucard p { font-size:.85rem; color:var(--stone-500); line-height:1.6; }

.cta { position:relative; padding:var(--section-py) 0; overflow:hidden; }
.cta__bg { position:absolute; inset:0; }
.cta__bg img { width:100%; height:100%; object-fit:cover; }
.cta__overlay {
    position:absolute; inset:0;
    background:rgba(15,19,17,.82);
}
.cta__bg::after {
    content:''; position:absolute; inset:0;
    background:radial-gradient(ellipse 50% 80% at 10% 50%, rgba(39,104,66,.2), transparent),
               radial-gradient(ellipse 50% 80% at 90% 50%, rgba(212,145,93,.1), transparent);
}

.cta__inner { position:relative; text-align:center; max-width:560px; margin:0 auto; }
.cta__title { font-family:var(--font-display); font-size:clamp(1.5rem, 3.5vw, 2.2rem); font-weight:800; color:var(--white); letter-spacing:-.02em; margin-bottom:10px; }
.cta__desc { font-size:clamp(.92rem, 1.4vw, 1rem); color:rgba(255,255,255,.65); margin-bottom:28px; }
.cta__actions { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

.faq { padding:var(--section-py) 0; background:var(--cream-light); }

.faq__list { max-width:720px; margin:0 auto; }

.faq__item { border-bottom:1px solid rgba(30,38,34,.07); }
.faq__item:first-child { border-top:1px solid rgba(30,38,34,.07); }

.faq__q {
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:20px 0; text-align:left;
    font-family:var(--font-display); font-weight:700;
    font-size:clamp(.95rem, 1.8vw, 1.08rem);
    color:var(--stone-800); transition:color .3s;
}
.faq__q:hover { color:var(--forest); }

.faq__chev { flex-shrink:0; color:var(--stone-400); transition:transform .4s var(--ease), color .3s; }
.faq__item.active .faq__chev { transform:rotate(180deg); color:var(--forest); }

.faq__a { max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq__item.active .faq__a { max-height:500px; }
.faq__a p { padding-bottom:20px; font-size:.92rem; color:var(--stone-500); line-height:1.75; }

.area { padding:var(--section-py) 0; background:var(--white); }

.area__grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:center; }

.area__desc { font-size:clamp(.92rem, 1.4vw, 1rem); color:var(--stone-500); line-height:1.7; margin:14px 0 24px; }

.area__cities { display:flex; flex-wrap:wrap; gap:8px; }
.area__cities span {
    display:inline-block; padding:10px 16px;
    font-size:.85rem; font-weight:500; color:var(--stone-700);
    background:var(--cream); border-radius:100px;
    border:1px solid rgba(30,38,34,.05);
    transition:all .3s;
}
.area__cities span:hover { background:var(--forest); color:var(--white); border-color:var(--forest); }

.area__map { border-radius:var(--r-lg); overflow:hidden; box-shadow:0 8px 28px rgba(15,19,17,.08); }
.area__map iframe { border-radius:var(--r-lg); width:100%; max-width:100%; border:0; }

.footer {
    background:var(--stone-950); color:rgba(255,255,255,.45);
    padding:clamp(48px, 7vw, 72px) 0 0;
}

.footer__grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:clamp(24px, 4vw, 44px); padding-bottom:clamp(36px, 5vw, 56px); }

.footer__logo {
    display:flex; align-items:center; gap:10px;
    color:var(--white); font-family:var(--font-display); font-weight:700;
    font-size:.95rem; margin-bottom:14px;
}
.footer__brand p { font-size:.85rem; line-height:1.65; max-width:260px; }

.footer__social { display:flex; gap:10px; margin-top:18px; }
.footer__social a {
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:50%;
    background:rgba(255,255,255,.06); color:rgba(255,255,255,.55);
    transition: background .3s, color .3s, transform .3s;
}
.footer__social a:hover {
    background:rgb(217, 119, 6); color:var(--white); transform:translateY(-2px);
}

.insta-feed { padding:clamp(48px, 7vw, 80px) 0; background:var(--stone-50, #fafaf9); }
.insta-feed__head { text-align:center; margin-bottom:clamp(28px, 4vw, 44px); }
.insta-feed__embed { max-width:1100px; margin:0 auto; }

.footer__col h4 {
    font-family:var(--font-display); font-weight:700; font-size:.8rem;
    color:rgba(255,255,255,.25); text-transform:uppercase;
    letter-spacing:.1em; margin-bottom:16px;
}
.footer__col a, .footer__col span {
    display:block; font-size:.85rem; color:rgba(255,255,255,.45);
    padding:4px 0; margin-bottom:2px; transition:color .3s;
    overflow-wrap:break-word; word-break:break-word;
}
.footer__col a:hover { color:var(--white); }

.footer__bottom {
    border-top:1px solid rgba(255,255,255,.06);
    padding:18px 0; text-align:center;
    font-size:.78rem; color:rgba(255,255,255,.35);
}

.anim-in {
    opacity:0; transform:translateY(28px);
    transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.anim-in.visible { opacity:1; transform:translateY(0); }

.d1 { transition-delay:.05s; }
.d2 { transition-delay:.1s; }
.d3 { transition-delay:.15s; }
.d4 { transition-delay:.2s; }
.d5 { transition-delay:.25s; }
.d6 { transition-delay:.3s; }
.d7 { transition-delay:.35s; }
.d8 { transition-delay:.45s; }

.hero .anim-in {
    opacity:0; transform:translateY(22px);
    animation:hero-in .9s var(--ease) forwards;
}
.hero .d1 { animation-delay:.05s; }
.hero .d2 { animation-delay:.1s; }
.hero .d3 { animation-delay:.15s; }
.hero .d4 { animation-delay:.2s; }
.hero .d5 { animation-delay:.25s; }
.hero .d6 { animation-delay:.3s; }
.hero .d7 { animation-delay:.35s; }
.hero .d8 { animation-delay:.45s; }

@keyframes hero-in { to { opacity:1; transform:translateY(0); } }

@media(max-width:1024px) {
    .nav__toggle { display:flex; }
    .nav__links {
        position:absolute; top:100%; left:0; right:0;
        background:rgba(254,253,251,.97);
        backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
        flex-direction:column; align-items:stretch; gap:2px;
        padding:8px var(--px) 16px;
        border-radius:0 0 var(--r-lg) var(--r-lg);
        box-shadow:0 16px 40px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.04);
        border-top:1px solid rgba(30,38,34,.06);
        opacity:0; visibility:hidden; transform:translateY(-8px);
        pointer-events:none; transition:all .35s var(--ease);
    }
    .nav__links.open { opacity:1; visibility:visible; transform:translateY(0); pointer-events:all; }
    .nav__link { font-size:1rem; padding:14px 12px; border-radius:var(--r-sm); }
    .nav__link:hover { background:rgba(39,104,66,.06); }
    .nav__link--cta { margin-left:0; margin-top:8px; display:flex; justify-content:center; }

    .services__grid { grid-template-columns:1fr 1fr; }
    .process__steps { grid-template-columns:1fr 1fr; }
    .process__steps .pstep:last-child { grid-column:1 / -1; max-width:500px; justify-self:center; }
    .usps__grid { grid-template-columns:repeat(2,1fr); }
    .reviews__grid { grid-template-columns:1fr; }
    .rcard--big { grid-row:auto; }
    .footer__grid { grid-template-columns:1fr 1fr; gap:28px; }
    .footer__brand p { max-width:none; }
    .about__img-small { right:0; }
    .about__badge { right:0; }
    .rot__inner { flex-direction:column; text-align:center; gap:16px; }
}

@media(max-width:900px) {
    .pool__hero { grid-template-columns:1fr; gap:28px; }
    .pool__steps { grid-template-columns:repeat(2,1fr); }
    .pool__features { grid-template-columns:1fr; }
    .about__grid, .contact__grid, .area__grid { grid-template-columns:1fr; gap:36px; }
    .about__content { padding-left:0; }
    .about__media { margin-bottom:40px; }
    .about__img-small { right:16px; }
    .about__badge { right:auto; left:16px; top:auto; bottom:-16px; }
    .about__checks { grid-template-columns:1fr; }
    .frow { grid-template-columns:1fr; }
}

@media(max-width:768px) {
    .top-bar__text { display:none; }
    .top-bar__short { display:inline; }
    .top-bar__inner { justify-content:center; }
    .hide-mobile { display:none; }

    .services__grid { grid-template-columns:1fr; }
    .process__steps { grid-template-columns:1fr; }
    .process__steps .pstep:last-child { grid-column:auto; max-width:none; justify-self:stretch; }
    .pool__steps { grid-template-columns:repeat(2,1fr); }
    .usps__grid { grid-template-columns:1fr; }

    .hero__stats { flex-direction:column; align-items:flex-start; gap:14px; }
    .hero__stat-divider { display:none; }
    .hero__stat { padding:0; text-align:left; }
    .hero__actions .btn { padding:16px 28px; font-size:.92rem; }
    .gallery__arrow { display:none; }
    .gallery__hint { display:flex; }
    .gallery__scroll { padding-bottom:12px; }

    .footer__grid { grid-template-columns:1fr; gap:28px; }
    .footer__col a, .footer__col span { padding:10px 0; margin-bottom:0; }

    .mobile-bar { display:flex; }
    .float-cta, .float-cta.visible { display:none; }
    .back-top { bottom:calc(70px + env(safe-area-inset-bottom, 0px) + 12px); left:16px; }
    .footer { padding-bottom:calc(80px + env(safe-area-inset-bottom, 0px)); }
    .lightbox__prev { left:8px; }
    .lightbox__next { right:8px; }
    .lightbox__prev, .lightbox__next { width:56px; height:56px; }
    .lightbox__img-wrap { max-width:82vw; }
    .ccard small { font-size:.78rem; }
    .area__map iframe { height:280px; }
}

@media(max-width:480px) {
    .hero__title { font-size:1.9rem; }
    .hero__actions { flex-direction:column; }
    .hero__actions .btn { width:100%; justify-content:center; }
    .cta__actions { flex-direction:column; align-items:center; }
    .btn { white-space:normal; text-align:center; }
}

@media(max-width:400px) {
    #contact-form .g-recaptcha { transform:scale(0.85); }
}

@media(max-width:340px) {
    #contact-form .g-recaptcha { transform:scale(0.75); }
}

.float-cta {
    position:fixed; bottom:28px; right:28px; z-index:900;
    display:flex; align-items:center; gap:10px;
    background:linear-gradient(135deg, var(--forest), var(--forest-light));
    color:var(--white);
    font-family:var(--font-display); font-weight:700; font-size:.9rem;
    padding:16px 24px; border-radius:60px;
    box-shadow:0 8px 32px rgba(39,104,66,.4), 0 2px 8px rgba(0,0,0,.15);
    opacity:0; transform:translateY(20px) scale(.9);
    transition:all .5s var(--ease);
    pointer-events:none;
}
.float-cta.visible {
    opacity:1; transform:translateY(0) scale(1);
    pointer-events:all;
}
.float-cta:hover {
    transform:translateY(-3px) scale(1.04);
    box-shadow:0 12px 40px rgba(39,104,66,.5), 0 4px 12px rgba(0,0,0,.15);
}
.float-cta::before {
    content:'';
    position:absolute; inset:-3px;
    border-radius:inherit;
    background:linear-gradient(135deg, var(--forest-light), var(--amber));
    z-index:-1; opacity:0;
    transition:opacity .4s;
    filter:blur(12px);
}
.float-cta:hover::before { opacity:.5; }

.back-top {
    position:fixed; bottom:28px; left:28px; z-index:900;
    width:44px; height:44px;
    display:flex; align-items:center; justify-content:center;
    background:var(--white);
    border:1px solid rgba(30,38,34,.08);
    border-radius:50%;
    color:var(--stone-600);
    box-shadow:0 4px 20px rgba(0,0,0,.08);
    opacity:0; transform:translateY(16px);
    transition:all .4s var(--ease);
    pointer-events:none;
}
.back-top.visible {
    opacity:1; transform:translateY(0);
    pointer-events:all;
}
.back-top:hover {
    color:var(--forest);
    transform:translateY(-3px);
    box-shadow:0 6px 24px rgba(0,0,0,.12);
}

.mobile-bar {
    display:none;
    position:fixed; bottom:0; left:0; right:0; z-index:950;
    background:var(--white);
    border-top:1px solid rgba(30,38,34,.08);
    box-shadow:0 -4px 24px rgba(0,0,0,.08);
    padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px)) 16px;
    gap:10px;
    opacity:0; transform:translateY(100%);
    transition:all .4s var(--ease);
}
.mobile-bar.visible {
    opacity:1; transform:translateY(0);
}

.mobile-bar__call {
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px;
    padding:12px; border-radius:var(--r-sm);
    font-family:var(--font-display); font-weight:700; font-size:.88rem;
    color:var(--stone-800);
    border:1.5px solid rgba(30,38,34,.1);
    background:var(--cream-light);
}
.mobile-bar__cta {
    flex:1.2; display:flex; align-items:center; justify-content:center;
    padding:12px; border-radius:var(--r-sm);
    font-family:var(--font-display); font-weight:700; font-size:.88rem;
    color:var(--white);
    background:linear-gradient(135deg, var(--forest), var(--forest-light));
    box-shadow:0 2px 12px rgba(39,104,66,.3);
}

.lightbox {
    position:fixed; inset:0; z-index:9999;
    display:flex; align-items:center; justify-content:center;
    background:rgba(15,19,17,.92);
    backdrop-filter:blur(12px);
    opacity:0; pointer-events:none;
    transition:opacity .4s var(--ease);
}
.lightbox.open { opacity:1; pointer-events:all; }

.lightbox__close {
    position:absolute; top:20px; right:24px;
    width:48px; height:48px;
    display:flex; align-items:center; justify-content:center;
    font-size:2rem; color:rgba(255,255,255,.7);
    background:rgba(255,255,255,.08); border-radius:50%;
    transition:all .3s;
}
.lightbox__close:hover { color:var(--white); background:rgba(255,255,255,.15); }

.lightbox__prev, .lightbox__next {
    position:absolute; top:50%; transform:translateY(-50%);
    width:48px; height:48px;
    display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,.6); background:rgba(255,255,255,.06);
    border-radius:50%; transition:all .3s;
}
.lightbox__prev { left:20px; }
.lightbox__next { right:20px; }
.lightbox__prev:hover, .lightbox__next:hover {
    color:var(--white); background:rgba(255,255,255,.12);
}

.lightbox__img-wrap {
    max-width:90vw; max-height:85vh;
    display:flex; align-items:center; justify-content:center;
}
.lightbox__img {
    max-width:100%; max-height:85vh;
    object-fit:contain;
    border-radius:var(--r-md);
    transform:scale(.92);
    transition:transform .5s var(--ease);
}
.lightbox.open .lightbox__img { transform:scale(1); }

:focus-visible {
    outline:2px solid var(--forest);
    outline-offset:2px;
}
.btn:focus-visible { outline-offset:3px; }
.nav__link:focus-visible, .faq__q:focus-visible { outline-offset:-2px; }
.lightbox__close:focus-visible, .lightbox__prev:focus-visible, .lightbox__next:focus-visible {
    outline-color:var(--white);
}

.gallery__scroll {
    -webkit-mask-image:linear-gradient(90deg, #000 85%, transparent);
    mask-image:linear-gradient(90deg, #000 85%, transparent);
}

.section--cream { background: var(--cream-light); }
.section--white { background: var(--white); }

::selection { background:rgba(39,104,66,.18); color:var(--stone-900); }
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:var(--cream); }
::-webkit-scrollbar-thumb { background:var(--stone-300); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--stone-400); }
