@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  --bg:#f7f3ea;
  --surface:#ffffff;
  --ink:#1a1611;
  --ink-dim:#726b5e;
  --line:#e9e2d2;
  --accent:#e8622f;
  --accent-2:#ff8a4c;
  --cta-blue:#3d5fe0;
  --dark:#171208;
  --font-head:'Baloo 2', sans-serif;
  --font-body:'Work Sans', sans-serif;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--ink);
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{list-style:none;margin:0;padding:0;}
h1,h2,h3,h4{font-family:var(--font-head);margin:0;}
p{margin:0;}

.page-inner{max-width:1320px;margin:0 auto;padding:0 32px;}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 32px;border-radius:999px;font-weight:700;font-size:15px;font-family:var(--font-body);cursor:pointer;border:none;}
.btn-primary{background:var(--cta-blue);color:#fff;box-shadow:0 14px 28px -10px rgba(61,95,224,.55);}
.btn-primary:hover{background:#3151c9;}

/* ---------- NAV ---------- */
.site-nav{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;background:rgba(247,243,234,.92);backdrop-filter:blur(10px);}
.brand{display:flex;align-items:center;gap:10px;}
.brand-logo{width:40px;height:40px;object-fit:contain;}
.brand-logo--glow{filter:drop-shadow(0 0 10px rgba(232,98,47,.35));}
.brand-word{font-family:var(--font-head);font-weight:700;font-size:20px;color:var(--ink);}
.nav-links{display:flex;align-items:center;gap:8px;background:var(--surface);border-radius:999px;padding:8px 10px;box-shadow:0 1px 2px rgba(20,15,10,.05);}
.nav-links li a{display:block;padding:8px 16px;border-radius:999px;font-weight:500;font-size:14.5px;color:var(--ink);}
.nav-links li a:hover{background:var(--bg);}
.nav-right{display:flex;align-items:center;gap:14px;}
.call-btn{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 10px;border-radius:999px;background:var(--surface);}
.call-icon{width:34px;height:34px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;}
.call-icon svg{width:16px;height:16px;}
.call-num{font-weight:600;font-size:14px;white-space:nowrap;}

/* ---------- HERO ---------- */
.hero{padding:64px 0 40px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;}
.quote-pill{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border-radius:999px;padding:8px 16px 8px 8px;margin-bottom:22px;font-size:13px;font-weight:600;}
.quote-pill .ball{width:20px;height:20px;border-radius:50%;background:var(--accent);}
.eyebrow{color:var(--accent);font-weight:700;letter-spacing:.14em;font-size:13px;text-transform:uppercase;margin:0 0 18px;font-family:ui-monospace,monospace;}
.hero-title{font-size:clamp(34px,4.6vw,58px);line-height:1.1;font-weight:700;margin:0 0 24px;}
.hero-title em{font-style:normal;color:var(--accent);}
.hero-lead{font-size:18px;line-height:1.65;color:var(--ink-dim);max-width:540px;margin:0 0 32px;}

.hero-blob-wrap{position:relative;min-height:440px;display:flex;align-items:center;justify-content:center;}
.hero-blob{width:100%;max-width:400px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-2),var(--accent) 60%,#b4451f 100%);display:flex;align-items:center;justify-content:center;position:relative;}
.hero-blob img{width:44%;filter:brightness(0) saturate(100%);opacity:.92;}
.hero-tag{position:absolute;font-size:11.5px;letter-spacing:.1em;font-weight:600;color:var(--ink-dim);text-transform:uppercase;line-height:1.5;}
.hero-tag.t1{top:6%;left:-4%;text-align:right;}
.hero-tag.t2{bottom:8%;right:-6%;text-align:left;}
.pass-card{position:absolute;bottom:4%;left:-4%;background:#fff;border-radius:18px;padding:20px 22px;box-shadow:0 20px 40px -14px rgba(20,15,10,.28);width:260px;}
.pc-top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.pc-chip{width:16px;height:16px;border-radius:5px;background:var(--accent);display:inline-block;}
.pc-eyebrow{font-size:10.5px;letter-spacing:.1em;color:var(--ink-dim);font-weight:700;text-transform:uppercase;}
.pass-card h4{font-size:14.5px;font-weight:700;margin:0 0 12px;font-family:var(--font-body);}
.pc-barcode{height:22px;background:repeating-linear-gradient(90deg,var(--ink) 0 2px,transparent 2px 5px);opacity:.85;}

/* ---------- QUOTE ---------- */
.quote{padding:36px 0;border-top:1px solid var(--line);}
.quote-inner{max-width:900px;margin:0 auto;text-align:center;}
.quote blockquote{margin:0 0 18px;font-size:clamp(20px,2.6vw,30px);line-height:1.4;font-weight:400;color:var(--ink);}
.qmark{color:var(--accent);font-size:1.3em;font-weight:800;}
.quote-attr{font-family:ui-monospace,monospace;font-size:12.5px;letter-spacing:.05em;}
.quote-attr b{color:var(--ink);}
.quote-attr span{color:var(--accent-2);}

/* ---------- ABOUT ---------- */
.about{padding:70px 0;border-top:1px solid var(--line);}
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start;}
.section-title{font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15;margin:0 0 18px;}
.about-lead{font-size:19px;font-style:italic;color:var(--ink);margin:0 0 14px;}
.about-body{font-size:15.5px;line-height:1.75;color:var(--ink-dim);max-width:52ch;margin:0 0 30px;}
.about-cta{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.about-phone{display:flex;flex-direction:column;gap:2px;}
.about-phone span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);font-family:ui-monospace,monospace;}
.about-phone a{font-weight:700;font-size:15px;}
.checklist{display:flex;flex-direction:column;}
.checklist li{display:flex;gap:16px;padding:18px 0;border-top:1px solid var(--line);align-items:flex-start;}
.checklist li:first-child{border-top:none;}
.tick{width:20px;height:20px;color:var(--accent);flex:none;margin-top:3px;}
.checklist h3{font-size:16.5px;font-weight:700;margin:0 0 4px;}
.checklist p{font-size:14px;color:var(--ink-dim);line-height:1.55;}

/* ---------- SECTION HEAD (generic) ---------- */
.section-head{text-align:center;max-width:720px;margin:0 auto 48px;}
.section-lead{font-size:16.5px;line-height:1.65;color:var(--ink-dim);margin-top:14px;}

/* ---------- SERVICES ---------- */
.services{padding:70px 0;border-top:1px solid var(--line);}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.svc-card{background:var(--bg);border:1px solid var(--line);border-radius:22px;padding:30px 26px;}
.svc-card:last-child{background:var(--surface);box-shadow:0 18px 34px -18px rgba(20,15,10,.22);}
.svc-card .icon,.icon-badge{width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:26px;}
.svc-card .icon svg,.icon-badge svg{width:22px;height:22px;}
.svc-card h3{font-size:18px;font-weight:700;margin:0 0 10px;line-height:1.3;}
.svc-card p{font-size:14px;color:var(--ink-dim);line-height:1.6;}

/* ---------- APPROACH (marquee flow) ---------- */
#approach-c{padding:70px 0;border-top:1px solid var(--line);}
.mq-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:20px;position:relative;}
.mq-flow::before{content:"";position:absolute;top:44px;left:8%;right:8%;border-top:2px dashed var(--line);z-index:0;}
.mq-node{position:relative;z-index:1;text-align:center;padding:0 6px;}
.mq-circle{width:88px;height:88px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin:0 auto 22px;color:var(--accent);box-shadow:0 14px 26px -16px rgba(20,15,10,.2);}
.mq-circle svg{width:28px;height:28px;}
.mq-node:nth-child(2) .mq-circle{background:var(--accent);color:#fff;box-shadow:0 16px 30px -12px rgba(232,98,47,.55);}
.mq-node h3{font-size:17px;font-weight:700;margin:0 0 8px;}
.mq-node p{font-size:13.5px;color:var(--ink-dim);line-height:1.55;}
.mq-note{display:flex;align-items:center;gap:18px;background:var(--surface);border-radius:20px;padding:24px 28px;margin-top:44px;box-shadow:0 16px 30px -20px rgba(20,15,10,.18);}
.seal{width:30px;height:30px;color:var(--accent);flex:none;}
.mq-note b{display:block;font-size:15px;margin-bottom:3px;}
.mq-note span{font-size:13.5px;color:var(--ink-dim);}

/* ---------- FEATURES ---------- */
.features{padding:70px 0;border-top:1px solid var(--line);}
.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;}
.feat-card{background:var(--bg);border:1px solid var(--line);border-radius:24px;padding:34px 30px;}
.feature-grid .feat-card:nth-child(2){background:linear-gradient(155deg,var(--accent-2),var(--accent) 60%,#8a2f11);color:#fff;border:none;transform:rotate(1.5deg);box-shadow:0 26px 46px -20px rgba(232,98,47,.5);}
.feat-card .icon{width:46px;height:46px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;margin-bottom:24px;}
.feature-grid .feat-card:nth-child(2) .icon{background:rgba(255,255,255,.25);}
.feat-card .icon svg{width:20px;height:20px;}
.feat-card h3{font-size:19px;font-weight:700;margin:0 0 10px;}
.feat-card p{font-size:14px;line-height:1.6;margin-bottom:20px;opacity:.92;}
.tick-list{display:flex;flex-direction:column;gap:10px;}
.tick-list li{font-size:14px;padding-left:22px;position:relative;}
.tick-list li::before{content:"\2713";position:absolute;left:0;color:var(--accent);font-weight:700;}
.feature-grid .feat-card:nth-child(2) .tick-list li::before{color:#fff;}

/* ---------- CTA ---------- */
.cta{padding:60px 0;text-align:center;border-top:1px solid var(--line);}
.cta h2{font-size:clamp(24px,3vw,34px);font-weight:600;font-family:var(--font-body);margin:0 0 28px;max-width:760px;margin-left:auto;margin-right:auto;}
.cta-contacts{display:flex;align-items:center;justify-content:center;gap:60px;flex-wrap:wrap;}
.cta-contacts span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);font-family:ui-monospace,monospace;margin-bottom:6px;}
.cta-contacts a{font-size:19px;font-weight:600;}

/* ---------- BLOG ---------- */
.blog{padding:70px 0;border-top:1px solid var(--line);}
.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.blog-cover{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:340px;border-radius:26px;padding:28px;color:#fff;overflow:hidden;}
.blog-grid .blog-cover:first-child,.blog-list .blog-cover:first-child{background:linear-gradient(150deg,#ff8548,#e8622f 55%,#2a1409 100%);}
.blog-grid .blog-cover:last-child,.blog-list .blog-cover:nth-child(2){background:linear-gradient(160deg,#2c2620,#171208 70%);}
.cover-tags{display:flex;gap:10px;}
.cover-tags span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 14px;}
.cover-num{font-family:ui-monospace,monospace;font-size:12.5px;opacity:.75;margin:0 0 8px;}
.cover-title{font-size:21px;font-weight:700;line-height:1.3;max-width:36ch;margin:0;}
.cover-arrow{position:absolute;bottom:26px;right:26px;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;}
.cover-arrow svg{width:18px;height:18px;}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--dark);color:#c9c2b4;border-radius:32px;margin:20px 0 40px;padding:56px 48px 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;max-width:1320px;margin:0 auto;}
.footer-col h4{color:var(--accent);font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-family:ui-monospace,monospace;font-weight:700;margin:0 0 18px;}
.footer-brand .brand{margin-bottom:16px;}
.footer-brand .brand-word{color:#fff;}
.footer-brand p{font-size:14px;line-height:1.7;max-width:36ch;}
.footer-col ul{display:flex;flex-direction:column;gap:12px;}
.footer-col ul a{font-size:14.5px;color:#c9c2b4;}
.footer-col ul a:hover{color:#fff;}
.footer-col p{font-size:14.5px;margin-bottom:10px;}
.footer-col p a{color:#c9c2b4;}
.socials{display:flex;gap:10px;margin-top:14px;}
.socials a{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#c9c2b4;}
.footer-bottom{text-align:center;font-size:13px;color:#8a8375;border-top:1px solid rgba(255,255,255,.1);margin-top:40px;padding-top:24px;max-width:1320px;margin-left:auto;margin-right:auto;}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1;transform:none;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1080px){
  .card-grid{grid-template-columns:repeat(2,1fr);}
  .feature-grid{grid-template-columns:1fr;}
  .mq-flow{grid-template-columns:repeat(3,1fr);row-gap:36px;}
  .mq-flow::before{display:none;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:860px){
  .hero-grid,.about-grid{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .blog-grid,.blog-list{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .card-grid{grid-template-columns:1fr;}
  .mq-flow{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .cta-contacts{gap:28px;}
}

.site-footer .brand-logo{filter:brightness(0) invert(1);}
.site-footer .brand-logo--glow{filter:brightness(0) invert(1) drop-shadow(0 0 10px rgba(232,98,47,.35));}


/* ---------- REFINEMENTS: hero 3D, hover states, footer flush ---------- */
.hero-blob{background:radial-gradient(circle at 32% 26%,#ffb27a 0%,var(--accent-2) 32%,var(--accent) 66%,#8f3319 100%);box-shadow:inset -16px -20px 46px rgba(0,0,0,.38),inset 14px 16px 36px rgba(255,255,255,.30),0 44px 74px -22px rgba(184,69,31,.55);overflow:hidden;}
.hero-blob::after{content:"";position:absolute;top:8%;left:14%;width:34%;height:22%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.55),rgba(255,255,255,0) 70%);filter:blur(2px);pointer-events:none;}
.hero-blob img{position:relative;z-index:1;filter:brightness(0) saturate(100%) invert(1) drop-shadow(0 6px 10px rgba(0,0,0,.25));opacity:.96;}
.pass-card{box-shadow:0 26px 48px -16px rgba(20,15,10,.35);}
.hero-tag{display:none;}

.svc-card .icon-badge{transition:background-color .35s ease,transform .35s ease;}
.svc-card:hover .icon-badge{background:var(--accent);transform:translateY(-2px);}

.feat-card{transition:transform .35s ease,box-shadow .35s ease;}
.feat-card:hover{transform:rotate(-2deg);box-shadow:0 24px 44px -20px rgba(20,15,10,.28);}
.feature-grid .feat-card:nth-child(2):hover{transform:rotate(4deg);box-shadow:0 30px 54px -20px rgba(232,98,47,.55);}

.site-footer{margin:20px 0 0;border-radius:32px 32px 0 0;}


/* ---------- LEGAL PAGES (Privacy / Terms) ---------- */
.legal-hero{padding:52px 4px 8px;text-align:center;}
.legal-hero .section-lead{margin:0 auto;}
.legal-meta{text-align:center;font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.06em;color:var(--ink-dim);margin:10px 0 0;}
.legal-wrap{max-width:760px;margin:0 auto;padding:34px 4px 90px;}
.legal-wrap h2{font-family:var(--font-head);font-weight:800;font-size:21px;margin:38px 0 14px;color:var(--ink);}
.legal-wrap h2.legal-part{font-size:15px;letter-spacing:.08em;text-transform:uppercase;font-family:ui-monospace,monospace;color:var(--accent);border-top:1px solid var(--line);padding-top:34px;margin-top:46px;}
.legal-wrap h3{font-family:var(--font-head);font-weight:700;font-size:16.5px;margin:24px 0 10px;color:var(--ink);}
.legal-wrap p{font-size:14.5px;line-height:1.75;color:var(--ink-dim);margin:0 0 14px;}
.legal-wrap ul{margin:0 0 16px;padding-left:20px;}
.legal-wrap li{font-size:14.5px;line-height:1.7;color:var(--ink-dim);margin-bottom:8px;}
.legal-wrap strong{color:var(--ink);}


/* ---------- CONTACT PAGE: dark theme + call booking ---------- */
.contact-dark{background:var(--dark);border-radius:32px;margin:0 4px;padding:1px 0 8px;color:#c9c2b4;}
.contact-dark .contact-hero{padding:52px 24px 8px;}
.contact-dark .contact-hero .eyebrow{color:var(--accent);}
.contact-dark .contact-hero .section-title{color:#fff;}
.contact-dark .contact-hero .section-lead{color:#c9c2b4;}
.contact-dark .contact-grid{padding:40px 24px 56px;}
.contact-dark .contact-form-card{background:#1f1a12;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 60px -20px rgba(0,0,0,.6);}
.contact-dark .field label{color:#9a9282;}
.contact-dark .field input,.contact-dark .field textarea,.contact-dark .field select{background:#141110;border:1px solid rgba(255,255,255,.14);color:#f4f0e8;}
.contact-dark .field input::placeholder,.contact-dark .field textarea::placeholder{color:#6b6456;}
.contact-dark .field input:focus,.contact-dark .field textarea:focus,.contact-dark .field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,98,47,.18);}
.contact-dark .form-note{color:#9a9282;}
.contact-dark .contact-card{background:#1f1a12;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 40px -20px rgba(0,0,0,.5);}
.contact-dark .contact-card h3{color:#fff;}
.contact-dark .contact-card p{color:#9a9282;}
.contact-dark .contact-card a.direct{color:#f4f0e8;}
.contact-dark .contact-card a.direct:hover{color:var(--accent);}
.contact-dark .mq-note{background:#1f1a12;border:1px solid rgba(255,255,255,.08);}
.contact-dark .mq-note b{color:#fff;}
.contact-dark .mq-note span{color:#9a9282;}
.contact-dark .mq-note .seal{color:var(--accent);}

.booking-label{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#9a9282;margin:26px 0 10px;}
.time-slots{display:flex;flex-direction:column;gap:10px;margin-bottom:6px;}
.time-slot{display:flex;align-items:center;gap:12px;background:#141110;border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:13px 16px;cursor:pointer;transition:border-color .2s ease;}
.time-slot:hover{border-color:var(--accent);}
.time-slot input[type=checkbox]{width:17px;height:17px;accent-color:var(--accent);flex:none;}
.time-slot span{font-size:14px;color:#f4f0e8;}
.tz-row{margin-top:18px;}


/* ---------- ROUND 2 REFINEMENTS ---------- */

/* Approach circles: all same default color, orange only on hover */
.mq-node:nth-child(2) .mq-circle{background:var(--surface);color:var(--accent);box-shadow:0 14px 26px -16px rgba(20,15,10,.2);}
.mq-circle{transition:background-color .3s ease,color .3s ease,box-shadow .3s ease;}
.mq-node:hover .mq-circle{background:var(--accent);color:#fff;box-shadow:0 16px 30px -12px rgba(232,98,47,.55);}

/* Feature cards: normalize the middle card to match the others, color shift on hover for all */
.feature-grid .feat-card:nth-child(2){background:var(--bg);color:var(--ink);border:1px solid var(--line);transform:none;box-shadow:none;}
.feature-grid .feat-card:nth-child(2) .icon{background:var(--ink);}
.feature-grid .feat-card:nth-child(2) p{color:var(--ink-dim);}
.feature-grid .feat-card:nth-child(2) .tick-list li{color:var(--ink-dim);}
.feature-grid .feat-card:nth-child(2) .tick-list li::before{color:var(--accent);}
.feat-card:hover{background:linear-gradient(155deg,var(--accent-2),var(--accent) 60%,#8a2f11);color:#fff;border-color:transparent;}
.feat-card:hover .icon{background:rgba(255,255,255,.25);}
.feat-card:hover h3,.feat-card:hover p{color:#fff;}
.feat-card:hover .tick-list li{color:rgba(255,255,255,.92);}
.feat-card:hover .tick-list li::before{color:#fff;}

/* Hero tags: drop the top-left tag, bring the bottom-right tag in close to the mark */
.hero-tag.t2{display:block;bottom:6%;right:2%;}

/* Legal pages: Poppins font + breathing room between numbered sections */
.legal-wrap,.legal-wrap h2,.legal-wrap h3,.legal-hero .section-title,.legal-hero .section-lead{font-family:'Poppins',sans-serif;}
.legal-wrap h2{font-weight:700;margin:46px 0 16px;padding-top:26px;border-top:1px solid var(--line);}
.legal-wrap h2:first-of-type{border-top:none;padding-top:0;}
.legal-wrap h2.legal-part{font-family:ui-monospace,monospace;}
.legal-wrap h3{font-weight:600;}

.hero-tag.hero-tag-combo{display:block;position:absolute;top:-7%;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;line-height:1.6;}


/* ---------- ROUND 3: fix middle feature card hover (was losing to the always-on reset), nav font ---------- */
.feature-grid .feat-card:nth-child(2):hover{background:linear-gradient(155deg,var(--accent-2),var(--accent) 60%,#8a2f11);color:#fff;border-color:transparent;box-shadow:0 26px 46px -20px rgba(232,98,47,.5);transform:rotate(-2deg);}
.feature-grid .feat-card:nth-child(2):hover .icon{background:rgba(255,255,255,.25);}
.feature-grid .feat-card:nth-child(2):hover h3,.feature-grid .feat-card:nth-child(2):hover p{color:#fff;}
.feature-grid .feat-card:nth-child(2):hover .tick-list li{color:rgba(255,255,255,.92);}
.feature-grid .feat-card:nth-child(2):hover .tick-list li::before{color:#fff;}

/* Header menu: Poppins */
.nav-links li a,.nav-links a{font-family:'Poppins',sans-serif;}


/* ---------- Hero tags reverted to original two-tag layout (rotated, wrapped, sitting outside the circle) ---------- */
.hero-tag.t1{display:block;top:-4%;left:-6%;width:150px;text-align:left;transform:rotate(-8deg);}
.hero-tag.t2{display:block;bottom:-2%;right:-8%;width:150px;text-align:right;transform:rotate(8deg);}


/* ---------- Hero blob: organic shape (not a perfect circle) + flatter gradient, matching reference ---------- */
.hero-blob{border-radius:63% 37% 30% 70% / 50% 45% 55% 50%;background:linear-gradient(135deg,var(--accent-2),var(--accent) 55%,#b4451f 100%);}

/* Hero tag text: subtle pop-in on load */
@keyframes heroTagPop{0%{opacity:0;transform:scale(.85) rotate(var(--tag-rot,0deg));}100%{opacity:1;transform:scale(1) rotate(var(--tag-rot,0deg));}}
.hero-tag.t1{--tag-rot:-8deg;animation:heroTagPop .6s cubic-bezier(.2,.8,.2,1) .15s both;}
.hero-tag.t2{--tag-rot:8deg;animation:heroTagPop .6s cubic-bezier(.2,.8,.2,1) .35s both;}


/* ---------- Hero icon: match reference more closely (size + soft drop shadow for depth) ---------- */
.hero-blob img{width:46%;opacity:1;filter:brightness(0) saturate(100%) drop-shadow(0 16px 20px rgba(20,10,5,.35));}


/* ---------- REVERT: undo today's blob-shape/drop-shadow/pop-animation experiment, back to the circle + tags version ---------- */
.hero-blob{border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--accent-2),var(--accent) 60%,#b4451f 100%);}
.hero-blob img{width:44%;opacity:.92;filter:brightness(0) saturate(100%);}
.hero-tag.t1{animation:none;}
.hero-tag.t2{animation:none;}


/* ---------- Nav menu: revert to original body font (Poppins removed per feedback) ---------- */
.nav-links li a,.nav-links a{font-family:var(--font-body);}

/* ---------- Hero circle: smoother, flatter gradient (kept as a perfect circle), closer to reference ---------- */
.hero-blob{border-radius:50%;background:linear-gradient(150deg,var(--accent-2) 0%,var(--accent) 55%,#b4451f 100%);}


/* ---------- Floating side Quote CTA (left edge) ---------- */
.side-quote-cta{position:fixed;left:22px;top:32%;z-index:70;display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;}
.side-quote-dot{width:44px;height:44px;border-radius:50%;background:var(--dark);box-shadow:0 14px 26px -12px rgba(20,15,10,.45);transition:background-color .25s ease,transform .25s ease;}
.side-quote-label{writing-mode:vertical-rl;transform:rotate(180deg);background:var(--dark);color:#fff;padding:16px 9px;border-radius:999px;font-size:11px;letter-spacing:.16em;font-weight:700;text-transform:uppercase;box-shadow:0 14px 26px -12px rgba(20,15,10,.45);transition:background-color .25s ease;}
.side-quote-cta:hover .side-quote-dot,.side-quote-cta:hover .side-quote-label{background:var(--accent);}
@media (max-width:900px){.side-quote-cta{display:none;}}


/* ---------- ROUND 4 fixes ---------- */
/* Header: icon-only call button, hide the visible phone number */
.call-num{display:none;}
.call-btn{padding:0;width:44px;height:44px;justify-content:center;}

/* Hero logo: restore original logo colors instead of forcing pure black */
.hero-blob img{filter:none;}


/* ---------- Make body/nav text bolder ---------- */
body{font-weight:500;}
.nav-links li a,.nav-links a{font-weight:600;}


/* ---------- All headlines bolder ---------- */
.hero-title,.cover-title,.legal-wrap h2,.legal-wrap h3{font-weight:800;}

/* ---------- Mobile nav (hamburger menu) ---------- */
.nav-toggle{display:none;width:40px;height:40px;border-radius:50%;background:var(--surface);border:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;flex:none;}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease;}
.site-nav.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.site-nav.nav-open .nav-toggle span:nth-child(2){opacity:0;}
.site-nav.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:860px){
  .nav-toggle{display:flex;}
  .site-nav{flex-wrap:wrap;position:relative;}
  .site-nav .nav-links{
    display:none;
    width:100%;
    order:10;
    flex-direction:column;
    align-items:stretch;
    gap:4px;
    background:var(--surface);
    border-radius:16px;
    padding:10px;
    margin-top:14px;
    box-shadow:0 16px 32px -18px rgba(20,15,10,.3);
  }
  .site-nav .nav-links li a{padding:12px 16px;border-radius:10px;}
  .site-nav.nav-open .nav-links{display:flex;}
}


/* ---------- ROUND 5: full responsive polish for small phones ---------- */
@media (max-width:640px){
  .page-inner{padding:0 20px;}
  .hero{padding:36px 0 24px;}
  .btn{padding:13px 22px;font-size:14px;}
  .pass-card{width:min(260px,80vw);padding:16px 18px;left:0;}
  .hero-tag{width:120px;font-size:10px;}
  .hero-tag.t1{left:0;}
  .hero-tag.t2{right:0;}
  .section{padding:52px 0;}
  .quote-inner blockquote{font-size:clamp(18px,5vw,26px);}
}

@media (max-width:480px){
  .call-btn{display:none;}
  .nav-right{gap:8px;}
  .btn.btn-primary{padding:10px 16px;font-size:13px;}
  .brand-word{font-size:15px;}
  .brand-logo{width:32px;height:32px;}
}

/* Safety net: nothing on the page should force horizontal scroll */
html{overflow-x:hidden;max-width:100%;}
.page-inner,.hero-grid,.hero-copy,.hero-blob-wrap{max-width:100%;}


/* ---------- BLOG SINGLE POST (real WP Posts, via theme-builder template) ---------- */
.post-wrap{max-width:760px;margin:0 auto;padding:48px 4px 80px;}
.post-back{display:inline-flex;align-items:center;gap:8px;font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim);text-decoration:none;margin-bottom:28px;}
.post-back:hover{color:var(--accent);}
.post-hero{position:relative;border-radius:26px;overflow:hidden;padding:44px 34px;color:#fff;isolation:isolate;background:linear-gradient(150deg,#ff8548,#ff5a1f 55%,#2a1409 100%);box-shadow:0 20px 40px -18px rgba(20,15,10,.4);margin-bottom:36px;}
.post-hero::after{content:"";position:absolute;right:-10%;bottom:-18%;width:65%;aspect-ratio:1;z-index:-1;background:center/contain no-repeat url("https://falconeleven.com/wp-content/uploads/falcon-eleven-assets/logo.png");opacity:.14;filter:brightness(0) invert(1);}
.post-hero .cover-tags{margin-bottom:18px;}
#post-title-el h1,#post-title-el h2,#post-title-el .elementor-heading-title{font-family:var(--font-head);font-weight:900;font-size:clamp(26px,4vw,36px);line-height:1.2;margin:0;text-shadow:0 2px 14px rgba(0,0,0,.35);color:#fff;}
.post-meta{margin-top:18px;font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.06em;color:rgba(255,255,255,.75);}
#post-image-el img{width:100%;border-radius:20px;margin:0 0 28px;display:block;}
.post-body{font-size:16px;line-height:1.8;color:var(--ink);}
.post-body p{margin:0 0 20px;}
.post-body h2,.post-body h3{font-family:var(--font-head);font-weight:800;margin:34px 0 14px;}
.post-body ul,.post-body ol{margin:0 0 20px;padding-left:22px;}
.post-body img{max-width:100%;border-radius:16px;margin:20px 0;}
.post-body a{color:var(--accent);text-decoration:underline;}
.post-body blockquote{margin:24px 0;padding:4px 0 4px 20px;border-left:3px solid var(--accent);font-style:italic;color:var(--ink-dim);}
.post-cta{margin-top:48px;border-radius:22px;padding:34px;text-align:center;background:var(--ink);color:var(--bg);}
.post-cta h2{font-family:var(--font-head);font-weight:800;font-size:22px;margin:0 0 18px;}


/* ---------- Blog grid: excerpt/read-more text + extra colors for 3rd+ posts ---------- */
.blog-cover--full .cover-excerpt{color:rgba(255,255,255,.82);font-size:14px;line-height:1.65;margin:12px 0 0;max-width:46ch;}
.blog-cover--full .cover-read{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-family:ui-monospace,monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#fff;}
.blog-grid .blog-cover:nth-child(odd),.blog-list .blog-cover:nth-child(odd){background:linear-gradient(150deg,#ff8548,#e8622f 55%,#2a1409 100%);}
.blog-grid .blog-cover:nth-child(even),.blog-list .blog-cover:nth-child(even){background:linear-gradient(160deg,#2c2620,#171208 70%);}


/* ---------- More side breathing room on mobile (cards/text were touching the edges) ---------- */
@media (max-width:640px){
  .page-inner{padding:0 24px;}
}
@media (max-width:480px){
  .page-inner{padding:0 22px;}
}


/* ---------- Desktop: more side breathing room, content pulled in from the edges ---------- */
.page-inner{max-width:1280px;padding:0 56px;}
@media (max-width:1080px){
  .page-inner{padding:0 40px;}
}


/* ---------- FIX: single-post title was rendering white-on-white (unreadable) ---------- */
/* Root cause: the title can't visually sit inside a gradient box split across separate
   Elementor widgets, since each widget gets its own wrapper div. Replaced the big gradient
   hero band with a simple readable layout instead. */
.post-tagline{margin-bottom:16px;}
.post-tagline span{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line);color:var(--accent);border-radius:999px;padding:6px 14px;}
#post-title-el h1,#post-title-el h2,#post-title-el .xpro-post-title-text{font-family:var(--font-head);font-weight:800;font-size:clamp(28px,4.4vw,42px);line-height:1.18;margin:0;color:var(--ink);text-shadow:none;}
.post-meta{margin:16px 0 28px;font-family:ui-monospace,monospace;font-size:12px;letter-spacing:.06em;color:var(--ink-dim);}
#post-image-el{margin-bottom:8px;}
#post-image-el img{width:100%;border-radius:20px;display:block;}

/* ---------- Headline font: bold sans-serif instead of the rounded display font ---------- */
:root{--font-head:'Poppins', sans-serif;}
h1,h2,h3,h4,.hero-title,.cover-title,.section-title{font-weight:800;}


/* ---------- Blog cards: show the real featured image (large, cover-fit) when a post has one ---------- */
.blog-cover{position:relative;background-size:cover;background-position:center;}
.blog-cover.has-cover-image::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,5,.05) 0%,rgba(10,8,5,.75) 100%);}
.blog-cover.has-cover-image>*{position:relative;z-index:1;}
.blog-cover.has-cover-image .cover-arrow{position:absolute;z-index:1;}


/* fix: don't let the compact-card arrow rule override the full-card's inline arrow layout */
.blog-cover.has-cover-image:not(.blog-cover--full) .cover-arrow{position:absolute;z-index:1;}
.blog-cover--full.has-cover-image .cover-arrow{position:relative;z-index:1;}


/* ---------- Safety net: force our cream body background on real WP Posts (the theme's own reset.css was overriding it) ---------- */
body{background-color:var(--bg) !important;}


/* ---------- FIX: blog grid rendering full-width edge-to-edge ---------- */
/* The shortcode widget sits outside the page-inner wrapper's DOM nesting (Elementor
   wraps each widget separately), so it needs its own self-contained width/centering
   instead of relying on the surrounding container's padding. */
.blog-list,.blog-grid{max-width:1280px;margin:0 auto;box-sizing:border-box;}
.blog-list{padding:40px 56px 76px;}
.blog-grid{padding:0 56px;}
@media (max-width:1080px){
  .blog-list,.blog-grid{padding-left:40px;padding-right:40px;}
}
@media (max-width:640px){
  .blog-list,.blog-grid{padding-left:24px;padding-right:24px;}
}
.site-footer{max-width:1280px;margin-left:auto;margin-right:auto;box-sizing:border-box;}


/* ---------- Blog carousel (clean images, caption + dots/arrows below) ---------- */
.blog-carousel{max-width:1280px;margin:0 auto;padding:40px 56px 76px;box-sizing:border-box;}
.carousel-viewport{position:relative;height:440px;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.carousel-track{position:relative;width:100%;height:100%;}
.carousel-slide{position:absolute;top:50%;left:50%;width:min(66%,660px);height:380px;border-radius:24px;background-size:cover;background-position:center;background-color:var(--ink);display:block;transform:translate(-50%,-50%) scale(.5);opacity:0;pointer-events:none;z-index:1;transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s ease,filter .5s ease;box-shadow:0 30px 60px rgba(10,8,5,.28);}
.carousel-slide[data-offset="0"]{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto;z-index:5;filter:none;cursor:default;}
.carousel-slide[data-offset="-1"]{transform:translate(-104%,-50%) scale(.8);opacity:.75;pointer-events:auto;z-index:4;filter:brightness(.6);cursor:pointer;}
.carousel-slide[data-offset="1"]{transform:translate(4%,-50%) scale(.8);opacity:.75;pointer-events:auto;z-index:4;filter:brightness(.6);cursor:pointer;}
.carousel-slide[data-offset="-2"]{transform:translate(-145%,-50%) scale(.65);opacity:.4;pointer-events:auto;z-index:3;filter:brightness(.45);cursor:pointer;}
.carousel-slide[data-offset="2"]{transform:translate(45%,-50%) scale(.65);opacity:.4;pointer-events:auto;z-index:3;filter:brightness(.45);cursor:pointer;}
.carousel-caption{text-align:center;margin-top:28px;}
.carousel-caption-tag{font-family:ui-monospace,monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;}
.carousel-caption-title{margin:0;font-size:clamp(18px,2.2vw,24px);}
.carousel-caption-title a{font-family:var(--font-head);font-weight:800;color:var(--ink);text-decoration:none;}
.carousel-caption-title a:hover{color:var(--accent);}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:24px;}
.carousel-dots{display:flex;gap:8px;align-items:center;}
.carousel-dot{width:8px;height:8px;border-radius:50%;background:var(--line);border:none;padding:0;cursor:pointer;transition:background .2s,transform .2s;}
.carousel-dot.active{background:var(--accent);transform:scale(1.4);}
.carousel-arrow{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;color:var(--ink);transition:background .2s,border-color .2s,color .2s;}
.carousel-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent);}
.carousel-arrow:disabled{opacity:.3;cursor:not-allowed;}
@media (max-width:1080px){
  .blog-carousel{padding-left:40px;padding-right:40px;}
}
@media (max-width:720px){
  .blog-carousel{padding-left:24px;padding-right:24px;padding-bottom:56px;}
  .carousel-viewport{height:300px;}
  .carousel-slide{width:80%;height:250px;}
  .carousel-slide[data-offset="-1"]{transform:translate(-95%,-50%) scale(.8);}
  .carousel-slide[data-offset="1"]{transform:translate(-5%,-50%) scale(.8);}
  .carousel-slide[data-offset="-2"],.carousel-slide[data-offset="2"]{opacity:0;pointer-events:none;}
  .carousel-caption-title{font-size:17px;padding:0 12px;}
}


/* ---------- FIX: contact form Time Zone select had no visible dropdown arrow on the dark theme ---------- */
.contact-dark .field select{
  color-scheme:dark;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4f0e8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px;
  padding-right:40px;
  cursor:pointer;
}
.contact-dark .field select:invalid,.contact-dark .field select option[value=""]{color:#9a9282;}
