:root{--deep-ocean:#0A2540;--ocean-blue:#12457A;--teal:#2AA6A0;--teal-dark:#1F857F;--sand:#F4EDE0;--sand-2:#E8DFCC;--tropical-green:#A9CBB0;--warm-white:#FBFAF6;--white:#FFFFFF;--ink:#0F1E2E;--muted:#5A6A78;--border:rgba(10,37,64,0.08);--shadow-sm:0 1px 2px rgba(10,37,64,0.05);--shadow-md:0 10px 30px -12px rgba(10,37,64,0.15);--shadow-lg:0 30px 60px -20px rgba(10,37,64,0.22);--radius-xs:8px;--radius:14px;--radius-lg:22px;--container:1200px;--nav-h:84px;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-display:"Iowan Old Style","Palatino Linotype","Book Antiqua",Palatino,Georgia,serif;--ease:cubic-bezier(.2,.7,.2,1)}
*,*::before,*::after{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);color:var(--ink);background:var(--warm-white);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,svg,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,textarea,select,button{font:inherit}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1.25rem}
@media(min-width:1024px){.container{padding-inline:2rem}}
.display{font-family:var(--font-display);font-weight:700;letter-spacing:-0.015em;line-height:1.08;color:var(--deep-ocean)}
.eyebrow{display:inline-block;font-size:0.75rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--teal-dark);font-weight:600;margin-bottom:0.75rem}
.section-title{font-family:var(--font-display);font-weight:700;color:var(--deep-ocean);font-size:clamp(1.9rem,4vw,2.75rem);letter-spacing:-0.01em;line-height:1.15}
.lead{color:var(--muted);font-size:1.0625rem;max-width:60ch}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.95rem 1.5rem;border-radius:999px;font-weight:600;font-size:0.98rem;letter-spacing:0.01em;transition:transform 220ms var(--ease),box-shadow 220ms var(--ease),background 220ms var(--ease),color 220ms var(--ease);white-space:nowrap;will-change:transform}
.btn:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.btn-primary{background:var(--deep-ocean);color:var(--white);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--ocean-blue);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-secondary{background:var(--teal);color:var(--white);box-shadow:0 0 0 3px rgba(42,166,160,0.14),var(--shadow-md)}
.btn-secondary:hover{background:var(--teal-dark);transform:translateY(-1px);box-shadow:0 0 0 4px rgba(42,166,160,0.20),var(--shadow-lg)}
.btn-ghost{background:transparent;color:var(--teal-dark);border:1.5px solid var(--teal)}
.btn-ghost:hover{background:rgba(42,166,160,0.08)}
.btn-lg{padding:1.05rem 1.75rem;font-size:1rem}
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,250,246,0.72);backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid transparent;transition:border-color 220ms var(--ease),background 220ms var(--ease)}
.site-header.scrolled{background:rgba(251,250,246,0.92);border-bottom-color:var(--border)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:1rem}
.brand img{height:52px;width:auto}
.nav-links{display:none;gap:2rem;list-style:none;padding:0}
.nav-links a{font-size:0.95rem;font-weight:500;color:var(--deep-ocean);position:relative;padding:0.25rem 0}
.nav-links a:hover{color:var(--teal-dark)}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ease)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-cta{display:none}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:var(--white)}
.nav-toggle svg{width:22px;height:22px}
.mobile-menu{display:none;padding:0.5rem 1.25rem 1.25rem;background:rgba(251,250,246,0.98);border-bottom:1px solid var(--border)}
.mobile-menu.open{display:block}
.mobile-menu ul{list-style:none;padding:0;display:grid;gap:0.25rem}
.mobile-menu a{display:block;padding:0.85rem 0.25rem;font-size:1.05rem;font-weight:500;color:var(--deep-ocean);border-bottom:1px solid var(--border)}
.mobile-menu .btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;margin-top:1rem;padding:0.95rem 1.25rem;text-align:center;line-height:1.2;border-radius:16px;box-sizing:border-box}
@media(min-width:1024px){.nav-links{display:flex}.nav-cta{display:inline-flex}.nav-toggle{display:none}.mobile-menu{display:none !important}}
.hero{position:relative;padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,7vw,6rem);overflow:hidden}
.hero::before{content:"";position:absolute;inset:-40px auto auto -80px;width:520px;height:520px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%232AA6A0' stroke-width='1.4' stroke-linecap='round' opacity='0.55'><path d='M60 340 C 140 260, 220 200, 320 90'/><path d='M80 320 C 130 300, 170 280, 210 250'/><path d='M100 300 C 150 280, 190 260, 230 230'/><path d='M120 280 C 170 260, 210 240, 250 210'/><path d='M140 260 C 190 240, 230 220, 270 190'/><path d='M160 240 C 210 220, 250 200, 290 170'/><path d='M180 220 C 230 200, 270 180, 310 150'/></g></svg>");background-repeat:no-repeat;background-size:contain;opacity:0.35;pointer-events:none}
.hero-grid{display:grid;gap:2.25rem;align-items:center}
.hero-text h1{font-family:var(--font-display);font-weight:700;color:var(--deep-ocean);font-size:clamp(2.35rem,6.4vw,4.25rem);line-height:1.05;letter-spacing:-0.02em;margin-bottom:1.25rem}
.hero-text p{color:var(--muted);font-size:1.075rem;max-width:46ch;margin-bottom:2rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:0.75rem}
.hero-media{position:relative;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:4/3;background:var(--sand)}
.hero-media img{width:100%;height:100%;object-fit:cover}
@media(min-width:1024px){.hero-grid{grid-template-columns:1.05fr 1fr;gap:4rem}.hero-media{aspect-ratio:5/4}}
.section{padding:clamp(3.5rem,7vw,6rem) 0}
.section--alt{background:var(--white)}
.section-head{text-align:center;max-width:720px;margin:0 auto clamp(2rem,4vw,3rem)}
.section-head .lead{margin-inline:auto;margin-top:0.75rem}
section[id]{scroll-margin-top:calc(var(--nav-h) + 12px)}
.steps{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:768px){.steps{grid-template-columns:repeat(3,1fr)}}
.step-card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:2rem 1.5rem;box-shadow:var(--shadow-sm);transition:transform 320ms var(--ease),box-shadow 320ms var(--ease);position:relative}
.step-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.step-num{width:44px;height:44px;border-radius:50%;background:var(--sand);color:var(--deep-ocean);font-family:var(--font-display);font-weight:700;font-size:1.25rem;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem}
.step-icon{color:var(--teal);margin-bottom:1rem}
.step-icon svg{width:44px;height:44px}
.step-card h3{font-size:1.15rem;color:var(--deep-ocean);margin-bottom:0.4rem}
.step-card p{color:var(--muted);font-size:0.98rem}
.step-card::after{content:"";display:block;width:36px;height:2px;background:var(--teal);margin-top:1rem;border-radius:2px;opacity:0.9}
.features{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:640px){.features{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.features{grid-template-columns:repeat(4,1fr)}}
.feature{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:1.75rem 1.5rem;box-shadow:var(--shadow-sm);transition:transform 320ms var(--ease),box-shadow 320ms var(--ease)}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.feature-icon{color:var(--teal);margin-bottom:1rem}
.feature-icon svg{width:34px;height:34px}
.feature h3{font-size:1.05rem;color:var(--deep-ocean);margin-bottom:0.3rem}
.feature p{color:var(--muted);font-size:0.95rem}
.pricing-grid{display:grid;gap:1.5rem;grid-template-columns:1fr;max-width:880px;margin:0 auto}
@media(min-width:768px){.pricing-grid{grid-template-columns:1fr 1fr}}
.price-card{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.25rem 1.75rem;box-shadow:var(--shadow-sm);transition:transform 320ms var(--ease),box-shadow 320ms var(--ease);display:flex;flex-direction:column;gap:0.35rem}
.price-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.price-card--featured{border-color:var(--teal);box-shadow:0 0 0 2px rgba(42,166,160,0.14),var(--shadow-md);background:linear-gradient(180deg,#FFFFFF 0%,#FBFEFD 100%)}
.price-badge{position:absolute;top:-12px;right:20px;background:var(--teal);color:var(--white);font-size:0.7rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;padding:0.4rem 0.8rem;border-radius:999px;box-shadow:var(--shadow-sm)}
.price-tier{font-size:0.78rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:0.25rem}
.price-amount{font-family:var(--font-display);font-size:clamp(2.75rem,6vw,3.75rem);color:var(--deep-ocean);font-weight:700;letter-spacing:-0.02em;line-height:1}
.price-period{font-family:var(--font-body);font-size:1rem;color:var(--muted);font-weight:500;letter-spacing:0}
.price-sub{color:var(--muted);font-size:1rem;margin:0.5rem 0 1.5rem}
.price-list{list-style:none;padding:0;margin:0;display:grid;gap:0.65rem}
.price-list li{display:flex;align-items:flex-start;gap:0.6rem;font-size:0.98rem;color:var(--ink)}
.price-list li::before{content:"";flex-shrink:0;width:18px;height:18px;margin-top:2px;background-repeat:no-repeat;background-position:center;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232AA6A0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>")}
.area-grid{display:grid;gap:2rem;grid-template-columns:1fr;align-items:center}
@media(min-width:1024px){.area-grid{grid-template-columns:1fr 1fr;gap:3.5rem}}
.chips{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:1.5rem}
.chip{padding:0.5rem 0.95rem;border-radius:999px;background:var(--sand);color:var(--deep-ocean);font-size:0.88rem;font-weight:500;transition:box-shadow 220ms var(--ease),background 220ms var(--ease)}
.chip:hover{background:var(--sand-2);box-shadow:0 0 0 2px rgba(42,166,160,0.35)}
.map-card{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3;background:var(--sand)}
.map-card iframe{width:100%;height:100%;border:0;display:block}
.form-section{background:var(--white)}
.form-wrap{max-width:720px;margin:0 auto;background:var(--warm-white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(1.5rem,3vw,2.5rem);box-shadow:var(--shadow-md)}
.form-grid{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:640px){.form-grid.two-col{grid-template-columns:1fr 1fr}}
.field{display:grid;gap:0.4rem}
.field label{font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);font-weight:600}
.field .req{color:var(--teal-dark);margin-left:0.25rem}
.field input,.field textarea{width:100%;padding:0.85rem 1rem;border-radius:var(--radius-xs);border:1px solid var(--border);background:var(--white);color:var(--ink);transition:border-color 200ms var(--ease),box-shadow 200ms var(--ease)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(42,166,160,0.15)}
.field textarea{resize:vertical;min-height:140px}
.form-actions{margin-top:1.25rem;display:flex;justify-content:flex-end}
@media(max-width:639px){.form-actions{justify-content:stretch}.form-actions .btn{width:100%}}
.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;overflow:hidden}
.faq{max-width:820px;margin:0 auto;display:grid;gap:0.75rem}
.faq details{background:var(--white);border:1px solid var(--border);border-radius:var(--radius);padding:0 1.25rem;box-shadow:var(--shadow-sm);transition:box-shadow 220ms var(--ease)}
.faq details[open]{box-shadow:var(--shadow-md)}
.faq summary{list-style:none;cursor:pointer;padding:1.15rem 0;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:600;color:var(--deep-ocean);font-size:1.02rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:12px;height:12px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);transition:transform 260ms var(--ease);flex-shrink:0}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{color:var(--muted);padding:0 0 1.15rem;font-size:0.98rem;max-width:68ch}
.thankyou{padding:clamp(3rem,8vw,6rem) 0}
.thankyou-card{max-width:640px;margin:0 auto;text-align:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(2rem,5vw,3.25rem);box-shadow:var(--shadow-md)}
.thankyou-card h1{font-size:clamp(2rem,5vw,3rem);margin-bottom:0.75rem}
.thankyou-card p{margin-bottom:2rem}
.site-footer{position:relative;background:var(--deep-ocean);color:var(--warm-white);padding:clamp(2.5rem,5vw,4rem) 0 2rem;margin-top:clamp(3rem,6vw,5rem);overflow:hidden}
.site-footer::before{content:"";position:absolute;right:-60px;bottom:-60px;width:380px;height:380px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%232AA6A0' stroke-width='1.4' stroke-linecap='round' opacity='0.7'><path d='M60 340 C 140 260, 220 200, 320 90'/><path d='M80 320 C 130 300, 170 280, 210 250'/><path d='M100 300 C 150 280, 190 260, 230 230'/><path d='M120 280 C 170 260, 210 240, 250 210'/><path d='M140 260 C 190 240, 230 220, 270 190'/></g></svg>");background-size:contain;background-repeat:no-repeat;opacity:0.18;pointer-events:none}
.footer-grid{display:grid;gap:2rem;grid-template-columns:1fr;position:relative}
@media(min-width:768px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr}}
.footer-logo{filter:brightness(0) invert(1);opacity:0.95;height:52px;width:auto}
.footer-tag{color:rgba(251,250,246,0.75);margin-top:0.75rem;font-size:0.95rem}
.site-footer h4{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.18em;color:var(--tropical-green);margin-bottom:0.75rem}
.site-footer a{color:rgba(251,250,246,0.85);transition:color 220ms var(--ease)}
.site-footer a:hover{color:var(--teal)}
.footer-bottom{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid rgba(251,250,246,0.12);color:rgba(251,250,246,0.6);position:relative}
[data-animate]{opacity:0;transform:translateY(18px);transition:opacity 700ms var(--ease),transform 700ms var(--ease)}
[data-animate].in-view{opacity:1;transform:translateY(0)}
[data-animate][data-delay="1"]{transition-delay:80ms}
[data-animate][data-delay="2"]{transition-delay:160ms}
[data-animate][data-delay="3"]{transition-delay:240ms}
[data-animate][data-delay="4"]{transition-delay:320ms}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto !important}[data-animate]{opacity:1;transform:none}}
