:root {
  --serif: "DM Serif Display", Georgia, serif;
  --sans: "Inter", Arial, sans-serif;
}

.hero { padding-top: 54px; }
.gallery-carousel { touch-action: pan-y; overflow:hidden; }
.gallery-track { display:flex; align-items:stretch; will-change:transform; }
.gallery-slide { margin:0; }
.gallery-slide img { width:100%; height:100%; object-fit:cover; object-position:center; }

.floating-socials {
  position:fixed;
  z-index:45;
  right:18px;
  bottom:18px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.floating-action {
  width:56px;
  height:56px;
  border-radius:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  box-shadow:0 14px 38px rgba(6,69,54,.18);
  backdrop-filter:blur(10px);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.floating-action:hover { transform:translateY(-2px); box-shadow:0 18px 44px rgba(6,69,54,.22); }
.floating-action svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.floating-instagram { background:rgba(255,255,255,.94); color:var(--green-deep); border-color:rgba(11,98,77,.12); }
.floating-whatsapp { background:var(--green); color:#fff; position:static; }

.reviews-grid { display:block; overflow:hidden; }
.reviews-track {
  display:flex;
  gap:14px;
  transition:transform .7s cubic-bezier(.25,.9,.2,1);
  will-change:transform;
}
.reviews-track .review-card { flex:0 0 calc((100% - 28px) / 3); margin:0; }

@media (max-width: 980px) {
  .reviews-track .review-card { flex-basis:calc((100% - 14px) / 2); }
}

@media (max-width: 640px) {
  .container { width:min(100% - 20px, 1180px); }
  .section-pad { padding:62px 0; }
  .hero { padding-top:26px; }

  h1 {
    font-size:clamp(44px, 13.5vw, 56px);
    line-height:.98;
    letter-spacing:-.035em;
  }
  h2 {
    font-size:clamp(36px, 11vw, 44px);
    line-height:.99;
    letter-spacing:-.035em;
  }
  .section-heading { margin-bottom:34px; }
  .split-heading { gap:14px; }
  .split-heading > p { font-size:14px; line-height:1.65; }
  .hero-description { font-size:14px; line-height:1.6; margin:18px 0 22px; }
  .eyebrow, .kicker { font-size:9px; letter-spacing:.15em; }
  .btn { min-height:44px; font-size:12px; }

  .gallery-track { gap:0; }
  .gallery-slide {
    flex:0 0 100%;
    width:100%;
    aspect-ratio:4 / 5;
    border-radius:18px;
    margin:0;
  }
  .gallery-slide img { object-position:center; }

  .experience { padding:56px 0; }
  .experience-grid {
    display:grid;
    grid-template-columns:minmax(0, 44%) minmax(0, 56%);
    gap:12px;
    align-items:start;
  }
  .experience-media { min-width:0; }
  .experience-media > img {
    width:100%;
    height:360px;
    object-fit:cover;
    object-position:50% 42%;
    border-radius:14px 58px 14px 14px;
  }
  .experience-badge {
    width:76px;
    height:76px;
    right:-12px;
    bottom:22px;
    border-width:4px;
    font-size:13px;
    line-height:1.05;
    z-index:3;
  }
  .experience-copy { min-width:0; padding-top:4px; }
  .experience-copy .kicker { margin-bottom:8px; }
  .experience-copy h2 {
    font-size:clamp(27px, 8vw, 33px);
    line-height:.98;
    letter-spacing:-.03em;
  }
  .experience-copy > p {
    font-size:10.5px;
    line-height:1.5;
    margin:12px 0 14px;
  }
  .highlights { border-top:1px solid var(--line); }
  .highlight {
    grid-template-columns:26px 1fr;
    gap:7px;
    padding:8px 0;
  }
  .highlight-number { font-size:13px; }
  .highlight h3 { font-size:13px; line-height:1.05; margin-bottom:2px; }
  .highlight p { font-size:9px; line-height:1.35; }

  .reviews-track { gap:0; }
  .reviews-track .review-card {
    flex:0 0 100%;
    min-height:180px;
    border-radius:18px;
  }
  .review-card p { font-size:20px; line-height:1.28; }

  .floating-socials { right:12px; bottom:12px; gap:8px; }
  .floating-action { width:52px; height:52px; border-radius:16px; }
  .floating-action svg { width:22px; height:22px; }
}

@media (max-width: 380px) {
  h1 { font-size:43px; }
  h2 { font-size:35px; }
  .experience-grid { grid-template-columns:45% 55%; gap:10px; }
  .experience-media > img { height:342px; }
  .experience-copy h2 { font-size:26px; }
  .experience-copy > p { font-size:10px; }
  .highlight h3 { font-size:12px; }
  .highlight p { font-size:8.5px; }
}
