:root{
  --bg:#fff8ec;
  --bg-2:#ffecc7;
  --sand:#f6ddb0;
  --sun:#ffb84d;
  --coral:#ff7a59;
  --hibiscus:#ff5470;
  --leaf:#2f8f6b;
  --teal:#16b7b3;
  --ocean:#1976b5;
  --lagoon:#56d6d0;
  --night:#184463;
  --ink:#15324a;
  --white:#fffdf8;
  --glass:rgba(255,255,255,.35);
  --glass-strong:rgba(255,255,255,.55);
  --line:rgba(21,50,74,.12);
  --shadow:0 18px 50px rgba(23,68,99,.14);
  --radius-xl:32px;
  --radius-lg:24px;
  --radius-md:18px;
  --container:min(1180px, calc(100% - 32px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%, rgba(255,203,98,.65), transparent 24%),
    radial-gradient(circle at 88% 10%, rgba(86,214,208,.45), transparent 22%),
    radial-gradient(circle at 62% 28%, rgba(255,122,89,.18), transparent 18%),
    linear-gradient(180deg,#fff9ef 0%, #fff2d9 34%, #fff8ed 65%, #fffef7 100%);
  min-height:100vh;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea{font:inherit}
main{position:relative;z-index:1}
.section{padding:40px 0}
.section-lg{padding:80px 0}
.container{width:var(--container);margin:0 auto;position:relative}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 16px;border-radius:999px;
  background:rgba(255,255,255,.55);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.45);
  box-shadow:var(--shadow);font-weight:700;font-size:14px;letter-spacing:.04em;
}
.kicker::before{content:"";width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--sun),var(--hibiscus));box-shadow:0 0 18px rgba(255,122,89,.55)}
.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.18em;color:var(--leaf);font-weight:800;margin-bottom:14px}
h1,h2,h3,h4{font-family:"Poppins", Inter, sans-serif;line-height:1.04;margin:0 0 16px}
h1{font-size:clamp(42px,6vw,84px);max-width:10ch}
h2{font-size:clamp(32px,4vw,58px)}
h3{font-size:clamp(22px,2.5vw,30px)}
p{font-size:17px;line-height:1.7;margin:0 0 16px;color:rgba(21,50,74,.86)}
.lead{font-size:20px;max-width:58ch}
.muted{color:rgba(21,50,74,.66)}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:15px 22px;border-radius:999px;border:none;cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  font-weight:800;letter-spacing:.01em
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(135deg,var(--coral),var(--sun));color:white;box-shadow:0 16px 34px rgba(255,122,89,.34)}
.btn-secondary{background:rgba(255,255,255,.65);color:var(--ink);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(16px);box-shadow:var(--shadow)}
.btn-ghost{background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(14px)}
.site-header{
  position:sticky;top:12px;z-index:50;padding:16px 0 0;
}
.nav-shell{
  width:var(--container);margin:0 auto;padding:14px 18px;border-radius:26px;
  background:linear-gradient(180deg, rgba(255,255,255,.62), rgba(255,255,255,.34));
  border:1px solid rgba(255,255,255,.55);box-shadow:0 14px 40px rgba(24,68,99,.12);
  backdrop-filter:blur(16px);
  display:flex;align-items:center;justify-content:space-between;gap:18px;
}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(22,90,144,.18))}
.brand-text{display:flex;flex-direction:column;gap:4px}
.brand-title{font-family:"Poppins",sans-serif;font-size:22px;font-weight:800;letter-spacing:.02em}
.brand-sub{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf);font-weight:800}
.nav-menu{display:flex;align-items:center;gap:24px}
.nav-menu a{font-weight:700;position:relative}
.nav-menu a::after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:2px;background:linear-gradient(90deg,var(--sun),var(--ocean));transform:scaleX(0);transform-origin:left;transition:.25s ease}
.nav-menu a:hover::after,.nav-menu a.active::after{transform:scaleX(1)}
.nav-actions{display:flex;align-items:center;gap:12px}
.phone-pill{padding:12px 16px;border-radius:999px;background:rgba(255,255,255,.45);font-weight:800;white-space:nowrap}
.burger{display:none;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.45);backdrop-filter:blur(16px)}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:2px;background:var(--ink);position:relative;border-radius:2px;transition:.25s ease}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-7px}.burger span::after{top:7px}
.mobile-panel{display:none}
.hero{padding:48px 0 16px}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:stretch}
.glass-card{
  position:relative;border-radius:var(--radius-xl);
  background:linear-gradient(180deg, rgba(255,255,255,.56), rgba(255,255,255,.26));
  border:1px solid rgba(255,255,255,.55);
  box-shadow:var(--shadow);backdrop-filter:blur(18px);
  overflow:hidden;
}
.glass-card::before{
  content:"";position:absolute;inset:0;background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,.46), transparent 24%),
    linear-gradient(135deg, rgba(255,255,255,.12), transparent 50%);
  pointer-events:none;
}
.hero-copy{padding:44px 40px 40px}
.hero-copy h1 span{display:block;color:var(--ocean)}
.hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}
.mini-stat{padding:16px;border-radius:22px;background:rgba(255,255,255,.38);border:1px solid rgba(255,255,255,.42)}
.mini-stat strong{display:block;font-size:20px;margin-bottom:4px}
.hero-visual{padding:26px;display:grid;grid-template-rows:auto 1fr;min-height:100%}
.scene{
  position:relative;min-height:100%;border-radius:28px;overflow:hidden;
  background:
    linear-gradient(180deg, #7adff2 0%, #5ecbf0 30%, #f6db95 31%, #f4cf6e 48%, #39b8c9 48.2%, #178bb1 60%, #126b95 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
.sun{position:absolute;right:12%;top:10%;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle, #fff3bf 0%, #ffd265 42%, #ffac45 74%, rgba(255,172,69,.1) 75%);filter:blur(.2px);box-shadow:0 0 70px rgba(255,190,70,.55);animation:floaty 8s ease-in-out infinite}
.ocean-wave,.ocean-wave::before,.ocean-wave::after{position:absolute;left:-10%;right:-10%;height:130px;border-radius:50% 50% 0 0 / 80% 80% 0 0;background:rgba(255,255,255,.18);bottom:0}
.ocean-wave{bottom:16%;transform:rotate(-2deg)}
.ocean-wave::before,.ocean-wave::after{content:""}
.ocean-wave::before{bottom:-22px;left:8%;right:8%;background:rgba(255,255,255,.2)}
.ocean-wave::after{bottom:-48px;left:12%;right:12%;background:rgba(255,255,255,.14)}
.palm,.palm::before,.palm::after{position:absolute}
.palm{bottom:21%;width:12px;height:220px;background:linear-gradient(180deg,#8a5c25,#5d3814);border-radius:12px;transform-origin:bottom center}
.palm.left{left:14%;transform:rotate(-7deg)}
.palm.right{right:16%;height:180px;transform:rotate(8deg)}
.palm::before{content:"";top:-52px;left:-76px;width:160px;height:74px;background:transparent;border-radius:100px 100px 0 100px;box-shadow:
  0 0 0 9999px transparent,
  24px 8px 0 -12px #2ea76f,
  48px -6px 0 -10px #2a9e69,
  70px 2px 0 -12px #34b977,
  6px 2px 0 -12px #38b56d,
  -16px 18px 0 -12px #289362;
  transform:rotate(-4deg)}
.palm::after{content:"";top:-36px;left:-58px;width:128px;height:58px;box-shadow:
  18px -6px 0 -10px #38b56d,
  44px -4px 0 -10px #2ca364,
  -2px 4px 0 -10px #309d61,
  60px 12px 0 -10px #2f8f6b;transform:rotate(12deg)}
.island{position:absolute;left:50%;transform:translateX(-50%);bottom:27%;width:72%;height:64px;background:radial-gradient(circle at 50% 0%, #dca95f 0%, #b97f39 62%, #8e5a21 100%);border-radius:50% 50% 28px 28px/100% 100% 28px 28px;filter:drop-shadow(0 18px 25px rgba(0,0,0,.18))}
.flower-burst{position:absolute;width:210px;height:210px;left:-30px;bottom:-30px;opacity:.45;filter:blur(1px);animation:spin 20s linear infinite}
.flower-burst::before,.flower-burst::after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,var(--hibiscus),#ffb16c,var(--sun),var(--hibiscus))}
.flower-burst::after{inset:42px;background:rgba(255,248,236,.55);backdrop-filter:blur(8px)}
.scene-badge{position:absolute;padding:12px 14px;border-radius:20px;background:rgba(255,255,255,.4);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.48);font-weight:800;box-shadow:var(--shadow);animation:floaty 7s ease-in-out infinite}
.badge-1{top:18px;left:18px}.badge-2{right:16px;bottom:24px;animation-delay:-3s}.badge-3{left:26px;bottom:94px;animation-delay:-1.5s}
.floating-logo{position:absolute;right:8%;top:20%;width:min(320px,54%);filter:drop-shadow(0 18px 40px rgba(15,58,88,.28));animation:drift 10s ease-in-out infinite}
.grid{display:grid;gap:18px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.tile{padding:24px;border-radius:28px;position:relative;overflow:hidden}
.tile h3,.tile h4{margin-bottom:10px}
.tile-icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg, rgba(255,255,255,.66), rgba(255,255,255,.3));font-size:24px;box-shadow:var(--shadow);margin-bottom:18px}
.wave-divider{height:100px;margin:16px 0;background:
  radial-gradient(80px 60px at 10% 18%, rgba(86,214,208,.22), transparent 60%),
  radial-gradient(120px 70px at 70% 40%, rgba(255,184,77,.2), transparent 60%),
  linear-gradient(180deg, transparent 0 44%, rgba(25,118,181,.06) 44%, rgba(25,118,181,.12) 56%, transparent 56%);
  clip-path:path("M0,55 C130,110 240,0 360,50 C470,96 640,10 780,44 C916,76 1030,28 1200,58 L1200,100 L0,100 Z");
}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}
.section-head p{max-width:52ch}
.featured-banner{padding:32px 34px;display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:center}
.shape-stack{position:relative;min-height:260px}
.shape{position:absolute;border-radius:36px;filter:blur(.3px)}
.shape.one{inset:28px 68px 34px 20px;background:linear-gradient(135deg, rgba(255,255,255,.5), rgba(255,255,255,.2));border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(18px);transform:rotate(-8deg)}
.shape.two{inset:60px 16px 28px 100px;background:linear-gradient(135deg, rgba(255,184,77,.45), rgba(255,84,112,.2));transform:rotate(10deg)}
.shape.three{inset:18px 120px 92px 44px;background:linear-gradient(135deg, rgba(86,214,208,.35), rgba(25,118,181,.22));transform:rotate(22deg)}
.palm-shadow{position:absolute;inset:auto 0 0 auto;width:180px;height:180px;opacity:.3;background:radial-gradient(circle at 60% 60%, rgba(0,0,0,.22), transparent 55%);filter:blur(18px)}
.price-card{display:flex;flex-direction:column;justify-content:space-between;min-height:240px}
.price{font-size:42px;font-family:"Poppins",sans-serif;font-weight:900;margin:10px 0 4px;color:var(--ocean)}
.list{display:grid;gap:10px;padding:0;margin:16px 0 0;list-style:none}
.list li{display:flex;gap:12px;align-items:flex-start}
.list li::before{content:"✦";color:var(--coral);font-size:14px;margin-top:5px}
.accordion{display:grid;gap:14px}
.acc-item{border-radius:24px;overflow:hidden}
.acc-btn{width:100%;text-align:left;padding:22px 24px;background:transparent;border:none;font-weight:800;font-size:18px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.acc-content{max-height:0;overflow:hidden;transition:max-height .35s ease, padding .35s ease;padding:0 24px}
.acc-item.active .acc-content{max-height:220px;padding:0 24px 22px}
.acc-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.45)}
.form-wrap{display:grid;grid-template-columns:.95fr 1.05fr;gap:18px;align-items:stretch}
.form-card{padding:28px}
.contact-list{display:grid;gap:14px;margin-top:20px}
.contact-line{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:22px;background:rgba(255,255,255,.34)}
.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:8px;margin-bottom:14px}
.field label{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--leaf)}
.input, textarea{
  width:100%;padding:16px 18px;border-radius:18px;border:1px solid rgba(21,50,74,.08);
  background:rgba(255,255,255,.72);outline:none;transition:border-color .2s ease, box-shadow .2s ease;
}
.input:focus, textarea:focus{border-color:rgba(25,118,181,.35);box-shadow:0 0 0 4px rgba(86,214,208,.18)}
textarea{min-height:150px;resize:vertical}
.form-note{font-size:14px;color:rgba(21,50,74,.64);margin-top:10px}
.blog-grid .tile{min-height:240px}
.post-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--leaf);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}
.coverage-map{
  min-height:360px;border-radius:30px;position:relative;overflow:hidden;
  background:linear-gradient(180deg,#8fe7f5 0%, #b9f0f3 26%, #f7e3ae 26.2%, #f3d18d 40%, #63d3cf 40.2%, #26a7be 58%, #1f6fa8 100%);
}
.coverage-map::before{content:"";position:absolute;inset:24px;background:radial-gradient(circle at 68% 42%, rgba(255,255,255,.68), transparent 18%), radial-gradient(circle at 22% 76%, rgba(255,255,255,.25), transparent 22%)}
.map-island{position:absolute;background:linear-gradient(180deg,#57b36f,#2f8f6b);box-shadow:0 10px 18px rgba(0,0,0,.18);opacity:.96}
.i1{width:120px;height:46px;left:20%;top:54%;border-radius:40% 54% 42% 58%/64% 52% 48% 36%;transform:rotate(-12deg)}
.i2{width:92px;height:38px;left:39%;top:47%;border-radius:52% 40% 60% 44%/46% 62% 38% 58%;transform:rotate(16deg)}
.i3{width:118px;height:42px;left:56%;top:54%;border-radius:58% 46% 42% 62%/54% 44% 56% 46%;transform:rotate(-8deg)}
.i4{width:70px;height:32px;left:73%;top:66%;border-radius:58% 42% 62% 38%/56% 44% 58% 42%;transform:rotate(14deg)}
.pin{position:absolute;padding:10px 14px;border-radius:18px;background:rgba(255,255,255,.48);backdrop-filter:blur(12px);font-weight:800;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.52);animation:floaty 8s ease-in-out infinite}
.pin:nth-child(6){left:18%;top:44%}.pin:nth-child(7){left:36%;top:37%;animation-delay:-2s}.pin:nth-child(8){left:55%;top:46%;animation-delay:-4s}.pin:nth-child(9){left:70%;top:59%;animation-delay:-1s}
.footer{padding:18px 0 38px}
.footer-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr .85fr;gap:18px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.footer .brand img{width:86px;height:86px}
.socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.socials a{padding:12px 16px;border-radius:999px;background:rgba(255,255,255,.45);font-weight:800}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid rgba(21,50,74,.1);color:rgba(21,50,74,.66)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease, transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
.ornament{position:fixed;pointer-events:none;inset:0;z-index:0;overflow:hidden}
.orb{position:absolute;border-radius:50%;filter:blur(48px);opacity:.32;animation:floaty 14s ease-in-out infinite}
.orb.one{width:220px;height:220px;left:-60px;top:18%;background:rgba(255,122,89,.42)}
.orb.two{width:320px;height:320px;right:-80px;top:8%;background:rgba(86,214,208,.36);animation-delay:-5s}
.orb.three{width:260px;height:260px;left:30%;bottom:8%;background:rgba(255,184,77,.3);animation-delay:-2s}
.lei-line{height:8px;border-radius:999px;background:linear-gradient(90deg,var(--hibiscus),var(--sun),var(--leaf),var(--lagoon),var(--coral));opacity:.75}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes drift{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@media (max-width: 1080px){
  .hero-grid,.featured-banner,.form-wrap,.footer-grid{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3{grid-template-columns:repeat(2,1fr)}
  h1{max-width:12ch}
  .hero-visual{min-height:520px}
}
@media (max-width: 820px){
  .nav-menu,.nav-actions .phone-pill,.nav-actions .btn{display:none}
  .burger{display:grid}
  .mobile-panel{
    display:none;position:absolute;left:16px;right:16px;top:92px;padding:16px;border-radius:28px;
    background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.62));backdrop-filter:blur(18px);
    border:1px solid rgba(255,255,255,.7);box-shadow:var(--shadow)
  }
  .mobile-panel.open{display:grid;gap:10px}
  .mobile-panel a,.mobile-panel .btn,.mobile-panel .phone-pill{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.5)}
  .hero-copy{padding:34px 24px 28px}
  .hero-stats,.grid-4,.grid-3,.grid-2,.input-grid{grid-template-columns:1fr}
  .section{padding:28px 0}.section-lg{padding:58px 0}
  .scene{min-height:420px}.floating-logo{width:58%;right:3%}
  .brand img{width:58px;height:58px}.brand-title{font-size:18px}
}
@media (max-width: 560px){
  .nav-shell{padding:12px 14px;border-radius:22px}
  .container{width:min(100% - 20px, 1180px)}
  h1{font-size:clamp(38px,11vw,58px)}
  .lead{font-size:18px}
  .tile,.form-card,.featured-banner,.hero-copy{padding:22px}
  .scene-badge{font-size:13px;padding:10px 12px}
}
