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

:root{
  --bg:#f3faf9;
  --bg-soft:#e8f6f4;
  --white:rgba(255,255,255,.78);
  --white-strong:rgba(255,255,255,.9);
  --text:#123137;
  --muted:#5f7d83;
  --line:rgba(18,49,55,.1);
  --teal:#10a9bc;
  --teal-dark:#0c7f90;
  --green:#67c569;
  --shadow:0 24px 80px rgba(17, 67, 76, .12);
  --shadow-soft:0 18px 46px rgba(17, 67, 76, .08);
  --radius:26px;
}

html { scroll-behavior:smooth; }

body{
  margin:0;
  font-family:"Inter", sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 10% 10%, rgba(16,169,188,.12), transparent 28%),
    radial-gradient(circle at 90% 20%, rgba(103,197,105,.12), transparent 18%),
    linear-gradient(180deg, #f7fcfb 0%, #eef8f6 100%);
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
button, input, textarea{ font:inherit; }

.container{
  width:min(1180px, calc(100% - 32px));
  margin:0 auto;
}

.bg-blur{
  position:fixed;
  pointer-events:none;
  border-radius:999px;
  filter:blur(60px);
  z-index:-1;
  opacity:.55;
}
.blur-1{
  width:280px;height:280px;background:rgba(16,169,188,.22);left:-80px;top:60px;
}
.blur-2{
  width:260px;height:260px;background:rgba(103,197,105,.18);right:-60px;top:200px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter:blur(18px);
  background:rgba(247,252,251,.78);
  border-bottom:1px solid var(--line);
}

.nav{
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.brand img{
  height:64px;
  width:auto;
}

.menu{
  display:flex;
  align-items:center;
  gap:28px;
  color:var(--muted);
}

.menu a{
  transition:transform .25s ease,color .25s ease;
}

.menu a:hover{
  color:var(--text);
  transform:translateY(-1px);
}

.menu-cta{
  padding:12px 18px;
  border-radius:999px;
  background:rgba(16,169,188,.1);
  color:var(--teal-dark)!important;
}

.nav-toggle{
  display:none;
  width:52px;
  height:52px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.85);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
}
.nav-toggle span{
  width:20px;height:2px;background:var(--text);display:block;border-radius:999px;
}

.section{ padding:96px 0; }

.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:42px;
  align-items:center;
}

.eyebrow{
  display:inline-flex;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.85);
  border:1px solid var(--line);
  box-shadow:0 10px 22px rgba(18,49,55,.05);
  color:var(--teal-dark);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.82rem;
  margin-bottom:18px;
}

.hero-copy h1,
.section-head h2,
.text-block h2,
.cta-copy h2{
  margin:0 0 18px;
  line-height:1.03;
  letter-spacing:-.04em;
}

.hero-copy h1{ font-size:clamp(2.8rem, 5vw, 5rem); max-width:11ch; }
.hero-copy p,
.section-head p,
.info-card p,
.text-block p,
.review-card p,
.cta-copy p{
  color:var(--muted);
  line-height:1.75;
  font-size:1.02rem;
}

.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:28px;
}

.btn{
  min-height:54px;
  padding:0 24px;
  border:none;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  cursor:pointer;
  transition:transform .28s ease, box-shadow .28s ease, background .28s ease;
}

.btn:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 44px rgba(17,67,76,.14);
}

.btn-primary{
  background:linear-gradient(180deg, var(--teal) 0%, var(--teal-dark) 100%);
  color:#fff;
}

.btn-secondary{
  background:rgba(255,255,255,.82);
  color:var(--text);
  border:1px solid var(--line);
}

.full{ width:100%; }

.hero-tags{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:30px;
}

.hero-tags span{
  padding:11px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid var(--line);
  color:var(--muted);
}

.hero-media{
  position:relative;
  min-height:620px;
}

.hero-card{
  position:absolute;
  overflow:hidden;
  border-radius:32px;
  background:var(--white-strong);
  border:1px solid rgba(255,255,255,.65);
  box-shadow:var(--shadow);
  transform-style:preserve-3d;
}

.hero-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.main-card{
  inset:24px 0 0 54px;
}

.floating-card{
  top:0;
  right:20px;
  width:250px;
  height:210px;
  padding:18px;
  background:rgba(255,255,255,.92);
}
.floating-card img{ object-fit:contain; }

.trust-strip{
  padding:22px 0;
  border-block:1px solid var(--line);
  background:rgba(255,255,255,.38);
  backdrop-filter:blur(10px);
}

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

.trust-grid div{
  padding:14px 18px;
  border-radius:20px;
  background:rgba(255,255,255,.55);
  border:1px solid var(--line);
}

.trust-grid strong{
  display:block;
  margin-bottom:4px;
}

.trust-grid span{
  color:var(--muted);
  font-size:.95rem;
}

.soft-section{
  background:linear-gradient(180deg, rgba(255,255,255,.36), rgba(255,255,255,.16));
  backdrop-filter:blur(8px);
}

.section-head{
  max-width:760px;
  margin-bottom:40px;
}

.section-head.center{
  text-align:center;
  margin-inline:auto;
}

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

.info-card,
.review-card,
.contact-card{
  background:rgba(255,255,255,.8);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}

.info-card{
  padding:28px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.info-card:hover,
.review-card:hover,
.gallery-item:hover,
.image-stack:hover .rounded-xl,
.contact-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}

.num{
  width:48px;height:48px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(16,169,188,.1);
  color:var(--teal-dark);
  font-weight:800;
  margin-bottom:18px;
}

.info-card h3{ margin:0 0 12px; font-size:1.18rem; }

.split-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:38px;
  align-items:center;
}

.image-stack{
  position:relative;
  min-height:620px;
}

.rounded-xl{
  border-radius:30px;
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.7);
  position:absolute;
  transition:transform .3s ease, box-shadow .3s ease;
}

.rounded-xl.large{
  inset:0 80px 70px 0;
}
.rounded-xl.small{
  width:260px;
  height:340px;
  right:0;
  bottom:0;
}

.rounded-xl img,
.gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.check-list{
  list-style:none;
  padding:0;
  margin:26px 0 30px;
  display:grid;
  gap:12px;
}

.check-list li{
  position:relative;
  padding-left:26px;
}

.check-list li::before{
  content:"";
  position:absolute;
  left:0;top:11px;
  width:10px;height:10px;border-radius:50%;
  background:linear-gradient(180deg, var(--teal), var(--green));
}

.gallery-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  grid-template-areas:
    "tall top"
    "tall bottom";
  gap:22px;
}

.gallery-item{
  overflow:hidden;
  border-radius:30px;
  background:rgba(255,255,255,.8);
  border:1px solid var(--line);
  box-shadow:var(--shadow-soft);
  min-height:320px;
  transition:transform .3s ease, box-shadow .3s ease;
}

.gallery-item.tall{ grid-area:tall; min-height:730px; }
.gallery-grid .gallery-item:nth-child(2){ grid-area:top; }
.gallery-grid .gallery-item:nth-child(3){ grid-area:bottom; }

.review-wrap{
  padding:38px;
  border-radius:34px;
  background:linear-gradient(135deg, rgba(255,255,255,.8), rgba(255,255,255,.55));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

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

.review-card{
  padding:28px;
}

.review-card strong{
  display:block;
  margin-top:20px;
}

.cta-box{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:28px;
  padding:34px;
  border-radius:34px;
  background:
    radial-gradient(circle at top right, rgba(103,197,105,.15), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.84), rgba(255,255,255,.6));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  align-items:start;
}

.contact-card{
  padding:28px;
}

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

label{
  display:block;
}

label span{
  display:block;
  font-size:.94rem;
  color:var(--muted);
  margin-bottom:8px;
}

input, textarea{
  width:100%;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.92);
  padding:14px 16px;
  outline:none;
  transition:border-color .25s ease, box-shadow .25s ease;
}

input:focus, textarea:focus{
  border-color:rgba(16,169,188,.45);
  box-shadow:0 0 0 4px rgba(16,169,188,.1);
}

.contact-card label + label,
.contact-card .field-grid + label{
  margin-top:14px;
}

.site-footer{
  border-top:1px solid var(--line);
  background:rgba(255,255,255,.38);
  backdrop-filter:blur(10px);
}

.footer-grid{
  min-height:100px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.footer-brand img{
  height:56px;width:auto;
}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.delay-1{ transition-delay:.12s; }
.reveal.delay-2{ transition-delay:.22s; }
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

@media (max-width: 1080px){
  .hero-grid,
  .split-grid,
  .cta-box{
    grid-template-columns:1fr;
  }

  .cards-grid,
  .review-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .hero-media{ min-height:540px; }
  .main-card{ inset:44px 0 0 0; }
  .floating-card{ width:220px;height:190px; }

  .trust-grid{ grid-template-columns:repeat(2, 1fr); }
}

@media (max-width: 820px){
  .menu{
    position:fixed;
    top:88px;
    left:16px;
    right:16px;
    display:grid;
    gap:8px;
    padding:16px;
    background:rgba(255,255,255,.96);
    border-radius:22px;
    border:1px solid var(--line);
    box-shadow:var(--shadow);
    transform:translateY(-14px);
    opacity:0;
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease;
  }

  .menu.open{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .nav-toggle{ display:inline-flex; }

  .cards-grid,
  .review-grid,
  .field-grid,
  .trust-grid{
    grid-template-columns:1fr;
  }

  .gallery-grid{
    grid-template-columns:1fr;
    grid-template-areas:none;
  }

  .gallery-item.tall,
  .gallery-grid .gallery-item:nth-child(2),
  .gallery-grid .gallery-item:nth-child(3){
    grid-area:auto;
    min-height:360px;
  }

  .image-stack{
    min-height:520px;
  }

  .rounded-xl.large{
    inset:0 40px 120px 0;
  }

  .rounded-xl.small{
    width:220px;height:280px;
  }
}

@media (max-width: 560px){
  .section{ padding:76px 0; }
  .nav{ min-height:78px; }
  .brand img{ height:54px; }

  .hero-copy h1{ max-width:none; }

  .hero-media{ min-height:430px; }
  .main-card{ inset:34px 0 0 0; }
  .floating-card{
    width:170px;height:150px;right:10px;top:0;padding:12px;
  }

  .image-stack{
    min-height:430px;
  }

  .rounded-xl.large{
    inset:0 20px 100px 0;
  }

  .rounded-xl.small{
    width:180px;height:220px;
  }

  .cta-box,
  .review-wrap,
  .contact-card,
  .review-card,
  .info-card{
    padding:22px;
  }

  .footer-grid{
    flex-direction:column;
    justify-content:center;
    text-align:center;
    padding:20px 0;
  }
}
