:root{--navy:#101418;--navy2:#181d23;--char:#0b0e11;--char2:#161b20;--blue:#4f8a38;--blue2:#7dbb5c;--bg:#f6f3ee;--text:#1d2125;--muted:#5f6670;--line:#e4ddd0;--r:8px;--shadow:0 18px 40px -18px rgba(16,20,24,.28);--serif:Fraunces,Georgia,"Times New Roman",serif}
body{font-family:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#fff;color:var(--text)}
h1,h2,h3,.logo span{font-family:var(--serif);font-weight:600;letter-spacing:-.012em}
h1{font-weight:500}h2{font-weight:500}h3{font-weight:600;font-size:1.2rem}
.eyebrow{font-weight:700;letter-spacing:.2em;font-size:.72rem;display:inline-flex;align-items:center;gap:12px}
.eyebrow:before{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.center .eyebrow:before{display:none}
section{padding:96px 0}.alt{background:var(--bg)}
.dark{background:var(--char)}
.btn{border-radius:4px;font-weight:600;letter-spacing:.01em;padding:14px 26px;font-size:.95rem}
.btn-primary{background:var(--blue);color:#fff;box-shadow:none}
.btn-primary:hover{background:#3f7029;transform:none;box-shadow:0 10px 24px -12px rgba(79,138,56,.8)}
.btn-outline{border-color:#c9bfae;color:var(--navy);background:transparent}.btn-outline:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.dark .btn-outline,.hero .btn-outline{color:#fff;border-color:rgba(255,255,255,.35)}
.btn-ghost{border-color:rgba(255,255,255,.4)}
.topbar{background:var(--char);font-size:.78rem;letter-spacing:.02em}
header.site{background:rgba(11,14,17,.92);border-bottom:1px solid rgba(255,255,255,.08)}
.menu a.l{font-weight:600;font-size:.88rem;letter-spacing:.02em;border-radius:4px}
.menu a.l:hover,.menu a.active{background:transparent;color:var(--blue2)}
.drop{border-radius:6px;border:1px solid var(--line)}.drop a:hover{background:var(--bg)}
.logo span{font-size:1.1rem;font-weight:600}.logo span b{color:var(--blue2);font-weight:600}
@media(max-width:1020px){.menu{background:var(--char)}}
/* hero with moving background */
.hero{background:var(--char);padding:0}
.hero:before{display:none}
.hero .wrap{display:block}
.hero-video{min-height:min(88vh,780px);display:flex;align-items:center}
.hero-video .wrap{padding:120px 0 110px;max-width:1180px}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0b0e11}
.hero-bg video,.hero-bg canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-bg video{opacity:0;transition:opacity 1.6s}.hero-bg.has-video video{opacity:1}.hero-bg.has-video canvas{opacity:0}
.hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,10,12,.9) 0%,rgba(8,10,12,.62) 55%,rgba(8,10,12,.35) 100%),linear-gradient(0deg,rgba(8,10,12,.7),transparent 35%)}
.hero-video .wrap>div{max-width:680px}
.hero h1{font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.04;font-weight:400}
.hero h1 em{background:none;color:var(--blue2);font-style:italic;-webkit-text-fill-color:currentColor}
.hero p{color:#cfd3d8;font-size:1.08rem;max-width:520px}
.page-hero{padding:72px 0 60px;background:linear-gradient(180deg,#0b0e11,#161b20)}
.page-hero h1{font-weight:500}
.stats{margin-top:-52px;border-radius:6px;box-shadow:var(--shadow);position:relative;z-index:3;background:#fff;border:1px solid var(--line)}
.stat b{font-family:var(--serif);font-weight:500;color:var(--navy)}
/* cards */
.card{border-radius:6px;border:1px solid var(--line);box-shadow:none;background:#fff;padding:30px}
.card.hover:hover,a.card:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:var(--shadow)}
.ico{background:transparent;border:1px solid var(--line);color:var(--blue);border-radius:50%}
.media,.shot,.mapbox{border-radius:6px}
.band{background:var(--char2)}
.num{font-family:var(--serif);font-size:2rem;color:var(--blue);display:block;margin-bottom:8px}
/* forms */
.f{border-radius:8px;border:1px solid var(--line);box-shadow:var(--shadow)}
.fld input,.fld select,.fld textarea{border-radius:4px;border:1px solid #d6cdbc;background:#fffdf9;font-family:inherit}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid rgba(79,138,56,.35);border-color:var(--blue)}
.submit-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}.submit-row .btn{flex:1 1 210px;justify-content:center}
.fine{font-size:.8rem;margin-top:12px;color:var(--muted)}
.msg{background:#f3efe6;color:var(--navy);border:1px solid var(--line);border-left:3px solid var(--blue);font-weight:500}
.msg a{font-weight:700;text-decoration:underline}
/* reviews */
.review-card{text-align:center;border:1px solid var(--line);background:#fff;border-radius:8px;padding:48px 28px;box-shadow:var(--shadow)}
.review-card p{max-width:520px;margin:12px auto 26px}
.review-card .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.review-card small{display:block;margin-top:16px;color:var(--muted)}
.stars-o{display:flex;justify-content:center;gap:6px;margin-bottom:16px}
.stars-o svg{width:26px;height:26px;fill:none;stroke:var(--blue);stroke-width:1.5;stroke-linejoin:round}
.maplinks{margin-top:14px}
/* terms gate */
.tos-lock body{overflow:hidden}
.tos-lock .topbar,.tos-lock header.site,.tos-lock main,.tos-lock footer.site,.tos-lock .fab{display:none!important}
.gate{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 70% 20%,#1d242b,#0b0e11 70%)}
.gate[hidden]{display:none}
.gate.over{background:rgba(8,10,12,.82);backdrop-filter:blur(6px)}
.gate-card{width:min(560px,100%);background:#fff;border-radius:8px;padding:40px 36px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7);max-height:94vh;display:flex;flex-direction:column}
.gate-card h2{font-size:1.9rem;margin:6px 0 6px}.gate-sub{font-size:.95rem}
.gate-scroll{margin:18px 0;overflow:auto;border:1px solid var(--line);background:var(--bg);border-radius:6px;padding:18px 22px;font-size:.9rem;color:var(--text);max-height:280px}
.gate-scroll li{margin:0 0 10px 18px}
.gate-actions{display:flex;gap:12px;flex-wrap:wrap}.gate-actions .btn{flex:1 1 160px;justify-content:center}
@media(max-width:520px){.gate-card{padding:28px 22px}}
@media(prefers-reduced-motion:reduce){.hero-bg video{display:none}}

.logo{gap:12px}.logo-img{width:54px;height:auto}
.gate-logo{width:min(250px,70%);height:auto;margin:0 auto 14px}
.gate-card{text-align:center}.gate-card .eyebrow{justify-content:center}.gate-scroll{text-align:left}
/* RAF assistant, styled after the logo: heavy black outline, condensed caps, green accent */
.fab{gap:12px;align-items:flex-end}
.raf-btn{display:flex;align-items:center;gap:8px;height:54px;padding:0 20px 0 14px;border-radius:16px;background:#fff;color:#000;border:3px solid #000;font:400 1.15rem Anton,Impact,sans-serif;letter-spacing:.04em;cursor:pointer;box-shadow:0 10px 24px rgba(0,0,0,.28);-webkit-tap-highlight-color:transparent}
.raf-btn img{width:34px;height:auto}.raf-btn b{color:var(--blue);font-weight:400}
.raf{position:fixed;right:18px;bottom:160px;z-index:1000;width:380px;height:min(560px,calc(100dvh - 190px));background:#fff;border:3px solid #000;border-radius:22px;box-shadow:0 30px 70px -20px rgba(0,0,0,.55);display:none;flex-direction:column;overflow:hidden}
.raf.open{display:flex}
.raf-h{position:relative;padding:16px 16px 14px;display:flex;align-items:center;gap:12px;border-bottom:3px solid #000;background:#fff}
.raf-h img{width:62px;height:auto;flex:none}
.raf-h b{display:block;font:400 1.7rem/1 Anton,Impact,sans-serif;letter-spacing:.03em;color:#000;text-transform:uppercase}.raf-h b span{color:var(--blue)}
.raf-h small{display:block;margin-top:3px;font:700 .64rem Manrope,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#222}
.raf-h button{margin-left:auto;width:44px;height:44px;flex:none;border:2px solid #000;border-radius:12px;background:#fff;color:#000;font-size:1.6rem;line-height:1;cursor:pointer}
.raf-log{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px;background:#fff;display:flex;flex-direction:column;gap:10px}
.raf-m{max-width:88%;padding:11px 14px;border-radius:14px;font-size:.95rem;line-height:1.5;background:#f2f4f0;border:2px solid #000;color:#111;align-self:flex-start;border-top-left-radius:4px;overflow-wrap:anywhere}
.raf-m.u{align-self:flex-end;background:#000;color:#fff;border-radius:14px;border-top-right-radius:4px}
.raf-m a{color:#2f6a1c;font-weight:800;text-decoration:underline}
.raf-chips{display:flex;gap:8px;padding:2px 16px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:none;background:#fff}
.raf-chips::-webkit-scrollbar{display:none}
.raf-chips button{flex:none;border:2px solid #000;background:#fff;border-radius:99px;padding:9px 15px;min-height:40px;font:700 .82rem Manrope,sans-serif;color:#000;cursor:pointer;white-space:nowrap}
.raf-chips button:active{background:var(--blue2)}
.raf-f{display:flex;gap:10px;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));border-top:3px solid #000;background:#fff;flex:none}
.raf-f input{flex:1;min-width:0;border:2px solid #000;border-radius:12px;padding:12px 14px;font:inherit;font-size:16px;background:#fff;color:#000}
.raf-f input:focus{outline:3px solid rgba(79,138,56,.4)}
.raf-f button{flex:none;min-width:76px;min-height:48px;border:2px solid #000;background:var(--blue);color:#fff;border-radius:12px;font:400 1.05rem Anton,Impact,sans-serif;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}
body.raf-lock{overflow:hidden}
.tos-lock .raf,.tos-lock .raf-btn{display:none!important}
@media(max-width:600px){
 .raf{inset:0;right:0;bottom:0;width:100%;height:var(--rafh,100dvh);max-height:none;border:0;border-radius:0}
 .raf-h{padding-top:calc(14px + env(safe-area-inset-top,0px))}
 .raf-btn{height:52px;padding:0 16px 0 12px}
 .fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px))}
 .raf-btn.hide{display:none}
}

/* ---- RAF: thinking indicator, typed replies, rich answers ---- */
.raf-m{animation:rafin .25s ease both}
.raf-m p{margin:0 0 6px}.raf-m p:last-child,.raf-m ul:last-child{margin-bottom:0}
.raf-m ul{margin:2px 0 6px;padding-left:18px}.raf-m li{margin:3px 0}.raf-m strong{font-weight:800;color:#000}
.raf-m.think{display:flex;align-items:center;gap:10px;min-height:48px}
.raf-dots{display:inline-flex;gap:5px}
.raf-dots i{width:8px;height:8px;border-radius:50%;background:var(--blue);animation:rafdot 1.2s ease-in-out infinite}
.raf-dots i:nth-child(2){animation-delay:.15s}.raf-dots i:nth-child(3){animation-delay:.3s}
.raf-st{font:700 .84rem Manrope,sans-serif;background:linear-gradient(90deg,#777 20%,#000 50%,#777 80%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:rafshim 1.6s linear infinite}
.raf-m.typing:after{content:"";display:inline-block;width:2px;height:1em;background:#000;margin-left:2px;vertical-align:-2px;animation:rafblink .8s steps(1) infinite}
.raf-chips a{flex:none;display:inline-flex;align-items:center;border:2px solid #000;background:var(--blue);color:#fff;border-radius:99px;padding:9px 15px;min-height:40px;font:700 .82rem Manrope,sans-serif;text-decoration:none;white-space:nowrap}
.raf-chips.dis{opacity:.45;pointer-events:none}
.raf-f button:disabled{opacity:.5;cursor:default}
@keyframes rafin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes rafdot{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}
@keyframes rafshim{to{background-position:-200% 0}}
@keyframes rafblink{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.raf-m,.raf-dots i,.raf-st,.raf-m.typing:after{animation:none}.raf-st{background:none;color:#222;-webkit-text-fill-color:currentColor}}
.raf-m p,.raf-m li{color:#111;font-size:inherit;line-height:inherit}.raf-m.u{color:#fff}

/* footer social icons: 60px circles, tappable */
footer.site .social-icons{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}
footer.site a.soc-ico{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:#121212;border:2px solid #d4c5a0;color:#fff;font-size:26px;line-height:1;text-decoration:none;box-sizing:border-box;transition:transform .2s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}
footer.site a.soc-ico i{color:#fff;pointer-events:none}
footer.site a.soc-ico:hover,footer.site a.soc-ico:focus-visible{color:#fff;transform:translateY(-2px);box-shadow:0 0 0 3px rgba(212,197,160,.25)}

/* ---- Floating buttons: one column bottom-right. RAF on top, WhatsApp and Call (iOS-style app icons) below ---- */
.fab{display:contents}
.fab .raf-btn,.fab .wa,.fab .ph{position:fixed;right:20px;width:55px;height:55px;min-width:0;padding:0;margin:0;box-shadow:0 6px 18px rgba(0,0,0,.30),0 2px 6px rgba(0,0,0,.18)}
.fab .raf-btn{border-radius:50%;bottom:calc(152px + env(safe-area-inset-bottom,0px));z-index:1000;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:.62rem;line-height:1;letter-spacing:.06em;border-width:2.5px}
.fab .raf-btn img{width:30px;height:auto}
.fab .raf-btn span{display:block}
.fab .wa,.fab .ph{z-index:999;display:block;border-radius:50%;background:none;overflow:hidden;-webkit-tap-highlight-color:transparent}
.fab .wa{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
.fab .ph{bottom:calc(20px + env(safe-area-inset-bottom,0px))}
.fab .wa svg,.fab .ph svg{display:block;width:100%;height:100%}
/* chat panel sits above the button stack on desktop */
.raf{right:20px;bottom:calc(220px + env(safe-area-inset-bottom,0px));height:min(560px,calc(100dvh - 250px))}
@media(max-width:768px){body{padding-bottom:100px}footer.site{margin-bottom:-100px;padding-bottom:150px}}
@media(max-width:600px){
 .raf{inset:0;right:0;bottom:0;width:100%;height:var(--rafh,100dvh)}
}

footer.site a.soc-ico svg{display:block;width:26px;height:26px;pointer-events:none}
