/*
Theme Name: FenFile
Theme URI: https://fenfile.com/
Author: FenFile
Author URI: https://fenfile.com/
Description: Custom theme for FenFile — US LLC formation for non-resident founders. Clean, dependency-free WordPress theme designed to pair with Elementor (free) page content. No Blocksy, no page-builder dependency in the theme itself.
Version: 1.2.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: fenfile
*/

/* ============================================================
   FenFile design tokens (source of truth — do not drift)
   ============================================================ */
:root{
  --ff-ink:#0A0A0A;          /* text / black */
  --ff-body-alt:#1F1F1F;     /* body alt */
  --ff-indigo:#5B4CE6;       /* primary */
  --ff-indigo-dark:#3B2FC9;  /* primary dark / gradient end */
  --ff-yellow:#F2E64A;       /* accent */
  --ff-soft-yellow:#FBF7B8;  /* soft section bg */
  --ff-lavender:#E4E0FF;     /* lavender section bg */
  --ff-sage:#A3A368;         /* sage section bg */
  --ff-green:#1E9E5A;        /* success */
  --ff-white:#FFFFFF;
  --ff-content:1180px;       /* boxed content width */
  --ff-radius:32px;          /* card radius */
  --ff-border:2px solid var(--ff-ink);
  --ff-font-body:"Momo Trust Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ff-font-display:"Momo Trust Display","Momo Trust Sans",system-ui,sans-serif;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--ff-ink);background:#FFFEF5;
  font-family:var(--ff-font-body);font-size:17px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--ff-indigo-dark)}
a:hover{color:var(--ff-indigo)}
::selection{background:var(--ff-yellow);color:var(--ff-ink)}

/* ---------- Typography (matches reference design spec) ---------- */
h1,h2,h3,h4{font-family:var(--ff-font-display);font-weight:400;color:var(--ff-ink);margin:0 0 .4em}
h1{font-size:58px;letter-spacing:-2.2px;line-height:1.06}
h2{font-size:46px;letter-spacing:-1.6px;line-height:1.08}
h3{font-size:28px;letter-spacing:-.8px;line-height:1.2}
h4{font-size:22px;letter-spacing:-.6px;line-height:1.25}
p{margin:0 0 1em}
@media (max-width:820px){
  h1{font-size:34px;letter-spacing:-1.2px}
  h2{font-size:30px;letter-spacing:-1px}
  h3{font-size:24px}
  body{font-size:16px}
}

/* ---------- Layout helpers ---------- */
.ff-container{max-width:var(--ff-content);margin:0 auto;padding:0 24px}
.ff-section{padding:72px 0}
@media (max-width:820px){.ff-section{padding:52px 0}}
.ff-narrow{max-width:860px;margin:0 auto;padding:0 24px} /* legal / long-form pages */

/* ---------- Utility classes (.ff-*) ---------- */
.ff-eyebrow{
  display:inline-block;background:var(--ff-indigo);color:var(--ff-white);
  font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;
  padding:6px 14px;border-radius:999px;
}
.ff-eyebrow--yellow{background:var(--ff-yellow);color:var(--ff-ink)}
.ff-eyebrow--black{background:var(--ff-ink);color:var(--ff-white)}

.ff-btn{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:none;
  background:var(--ff-indigo);color:var(--ff-white);border:2px solid var(--ff-indigo);
  font-family:var(--ff-font-body);font-size:15px;font-weight:600;line-height:1;
  padding:14px 26px;border-radius:999px;transition:background .15s ease,color .15s ease;
}
.ff-btn:hover{background:var(--ff-indigo-dark);border-color:var(--ff-indigo-dark);color:var(--ff-white)}
.ff-btn--yellow{background:var(--ff-yellow);border-color:var(--ff-yellow);color:var(--ff-ink)}
.ff-btn--yellow:hover{background:var(--ff-ink);border-color:var(--ff-ink);color:var(--ff-white)}
.ff-btn--ghost{background:var(--ff-white);border-color:var(--ff-ink);color:var(--ff-ink)}
.ff-btn--ghost:hover{background:var(--ff-ink);color:var(--ff-white)}
.ff-btn--wa{background:var(--ff-white);border-color:var(--ff-ink);color:var(--ff-ink)}
.ff-btn--wa:hover{background:var(--ff-green);border-color:var(--ff-green);color:var(--ff-white)}

.ff-card{
  background:var(--ff-white);border:var(--ff-border);border-radius:var(--ff-radius);
  padding:32px;
}
.ff-card__title{font-family:var(--ff-font-body);font-size:22px;font-weight:700;letter-spacing:-.6px;line-height:1.25;margin:0 0 8px}
.ff-card--soft{background:var(--ff-soft-yellow)}
.ff-card--lav{background:var(--ff-lavender)}
.ff-card--sage{background:var(--ff-sage)}
.ff-card--indigo{background:linear-gradient(160deg,var(--ff-indigo),var(--ff-indigo-dark));color:var(--ff-white);border-color:var(--ff-indigo-dark)}
.ff-card--indigo .ff-card__title,.ff-card--indigo h2,.ff-card--indigo h3{color:var(--ff-white)}

.ff-grid{display:grid;gap:16px}
.ff-grid--2{grid-template-columns:repeat(2,1fr)}
.ff-grid--3{grid-template-columns:repeat(3,1fr)}
.ff-grid--4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1020px){.ff-grid--3,.ff-grid--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.ff-grid--2,.ff-grid--3,.ff-grid--4{grid-template-columns:1fr}}

.ff-bg-white{background:var(--ff-white)}
.ff-bg-soft{background:var(--ff-soft-yellow)}
.ff-bg-lav{background:var(--ff-lavender)}
.ff-bg-sage{background:var(--ff-sage)}
.ff-bg-yellow{background:var(--ff-yellow)}
.ff-bg-indigo{background:linear-gradient(160deg,var(--ff-indigo),var(--ff-indigo-dark));color:var(--ff-white)}
.ff-bg-indigo h1,.ff-bg-indigo h2,.ff-bg-indigo h3{color:var(--ff-white)}
.ff-center{text-align:center}
.ff-lead{font-size:19px;color:var(--ff-body-alt);line-height:1.55}
.ff-pill{
  display:inline-flex;align-items:center;gap:8px;background:var(--ff-white);
  border:1.5px solid var(--ff-ink);border-radius:999px;padding:7px 14px;
  font-size:14px;font-weight:600;
}
.ff-checks{list-style:none;margin:0;padding:0}
.ff-checks li{padding:6px 0 6px 30px;position:relative}
.ff-checks li::before{content:"\2713";position:absolute;left:0;top:6px;color:var(--ff-green);font-weight:800}

/* ============================================================
   Header — top bar + floating pill nav (Growly style)
   ============================================================ */
.ff-topbar{background:var(--ff-ink);color:var(--ff-white);text-align:center;font-size:14px;padding:9px 16px}
.ff-topbar a{color:var(--ff-yellow);font-weight:700;text-decoration:none}
.ff-topbar a:hover{text-decoration:underline}

.ff-header{position:sticky;top:12px;z-index:100;padding:12px 16px 0}
.ff-nav{
  position:relative;max-width:var(--ff-content);margin:0 auto;
  background:#111111;color:var(--ff-white);border-radius:999px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:10px 12px 10px 22px;box-shadow:0 10px 30px rgba(10,10,10,.18);
}
.ff-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ff-white);flex-shrink:0}
.ff-brand img,.ff-brand .custom-logo{width:40px;height:40px;border-radius:10px;object-fit:cover;display:block}
.ff-brand__name{font-family:var(--ff-font-display);font-size:23px;letter-spacing:-.5px;line-height:1;color:var(--ff-white)}
.ff-menu{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}
.ff-menu>li{position:relative}
.ff-menu a{color:var(--ff-white);text-decoration:none;font-size:15px;font-weight:500;opacity:.88;white-space:nowrap}
.ff-menu a:hover,.ff-menu .current-menu-item>a,.ff-menu .current_page_item>a{opacity:1}
.ff-nav__actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.ff-nav__wa{
  display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:50%;border:1.5px solid rgba(255,255,255,.5);color:var(--ff-white);text-decoration:none;font-size:18px;
}
.ff-nav__wa:hover{background:var(--ff-green);border-color:var(--ff-green)}
.ff-nav .ff-btn{padding:12px 22px}

/* Hamburger (mobile) */
.ff-burger{display:none;background:none;border:0;cursor:pointer;padding:10px;flex-shrink:0}
.ff-burger span{display:block;width:24px;height:2px;background:var(--ff-white);margin:5px 0;border-radius:2px}
.ff-mobile-menu{display:none;background:#111111;border-radius:28px;max-width:var(--ff-content);margin:10px auto 0;padding:20px 24px}
.ff-mobile-menu ul{list-style:none;margin:0;padding:0}
.ff-mobile-menu a{color:var(--ff-white);text-decoration:none;display:block;padding:10px 0;font-size:16px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.12)}
.ff-mobile-menu .ff-mega-cols a{border-bottom:0;font-weight:500;font-size:15px;padding:5px 0;opacity:.9}
body.ff-menu-open .ff-mobile-menu{display:block}
@media (max-width:1099px){
  .ff-nav .ff-menu,.ff-nav__wa{display:none}
  .ff-burger{display:block}
}

/* ---------- Mega menu (desktop >=1100px, CSS + hover/focus) ---------- */
.ff-mega{
  position:absolute;left:50%;transform:translateX(-50%) translateY(8px);top:calc(100% + 8px);
  width:min(1060px,92vw);background:var(--ff-white);color:var(--ff-ink);
  border:var(--ff-border);border-radius:28px;padding:32px;
  box-shadow:0 24px 60px rgba(10,10,10,.22);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,transform .15s ease;
}
.ff-mega::before{content:'';position:absolute;left:0;right:0;top:-14px;height:14px}
.ff-navwrap.ff-mega-open #ffMega,.ff-navwrap.ff-mega-states-open #ffMegaStates,.ff-mega:focus-within{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.ff-mega-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.ff-mega h4{
  font-family:var(--ff-font-body);font-size:12px;font-weight:800;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--ff-indigo-dark);margin:0 0 12px;
}
.ff-mega ul{list-style:none;margin:0;padding:0}
.ff-mega a{
  color:var(--ff-ink);text-decoration:none;display:block;padding:6px 0;
  font-size:15px;font-weight:600;line-height:1.35;
}
.ff-mega a:hover{color:var(--ff-indigo-dark);text-decoration:underline}
.ff-mega a small{display:block;font-weight:400;color:var(--ff-body-alt);font-size:13px}
@media (max-width:1099px){.ff-mega{display:none}}

/* ============================================================
   Footer
   ============================================================ */
.ff-footer{background:var(--ff-ink);color:var(--ff-white);padding:64px 0 30px;margin-top:0}
.ff-footer a{color:var(--ff-white);opacity:.85;text-decoration:none}
.ff-footer a:hover{opacity:1;text-decoration:underline}
.ff-footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:36px}
.ff-footer h4{font-family:var(--ff-font-body);font-size:16px;font-weight:700;color:var(--ff-white);letter-spacing:0;margin:0 0 14px}
.ff-footer ul{list-style:none;margin:0;padding:0}
.ff-footer li a{display:block;padding:4px 0;font-size:15px}
.ff-footer__brand p{opacity:.85;font-size:15px;max-width:300px}
.ff-footer__brand .ff-brand{margin-bottom:14px}
.ff-footer__bottom{
  border-top:1px solid rgba(255,255,255,.18);margin-top:40px;padding-top:22px;
  font-size:13px;opacity:.85;display:flex;flex-wrap:wrap;gap:8px 22px;justify-content:space-between;
}
.ff-footer__disclaimer{font-size:13px;opacity:.7;margin-top:10px}
@media (max-width:900px){.ff-footer__cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ff-footer__cols{grid-template-columns:1fr}}

/* ---------- Content / blog basics ---------- */
.ff-entry{padding:56px 0}
.ff-entry__title{margin-bottom:10px}
.ff-entry__meta{color:var(--ff-body-alt);font-size:14px;margin-bottom:24px}
.ff-entry img{border-radius:20px}
.ff-postnav{display:flex;justify-content:space-between;gap:16px;margin-top:36px}
.ff-404{text-align:center;padding:90px 0}
.ff-404 h1{font-size:110px;letter-spacing:-4px;color:var(--ff-indigo)}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- WooCommerce (FenFile) ---- */
.woocommerce .site-main,.woocommerce-page .site-main{max-width:1180px;margin:0 auto;padding:8px 24px 72px}
.woocommerce ul.products{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:26px;margin:24px 0;padding:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{float:none!important;width:auto!important;margin:0!important;background:#fff;border:2px solid var(--ff-ink);border-radius:28px;padding:18px;list-style:none}
.woocommerce ul.products li.product img{border-radius:16px;margin:0 0 14px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--ff-font-body);font-size:19px;font-weight:700;letter-spacing:-.4px;color:var(--ff-ink);padding:0}
.woocommerce ul.products li.product .price{color:var(--ff-indigo-dark);font-size:18px;font-weight:800;margin:6px 0 14px}
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{background:var(--ff-indigo);color:#fff;border-radius:999px;padding:12px 22px;font-weight:700;border:2px solid var(--ff-indigo)}
.woocommerce a.button:hover,.woocommerce button.button:hover{background:var(--ff-indigo-dark);color:#fff}
.woocommerce div.product .product_title{font-size:40px;letter-spacing:-1.4px}
.woocommerce div.product p.price{color:var(--ff-indigo-dark);font-weight:800;font-size:26px}
.woocommerce .woocommerce-breadcrumb{margin:18px 0 6px;font-size:14px}
.woocommerce-cart .site-main,.woocommerce-checkout .site-main{max-width:1180px;margin:0 auto;padding:8px 24px 72px}
.woocommerce table.shop_table{border:2px solid var(--ff-ink);border-radius:16px;overflow:hidden}
.woocommerce .page-title{font-size:44px;letter-spacing:-1.6px;margin:10px 0 4px}
@media(max-width:700px){.woocommerce .page-title{font-size:32px}.woocommerce div.product .product_title{font-size:30px}}

/* ============================================================
   v1.1 polish — WhatsApp float, FAQ, typography, tables, fixes
   ============================================================ */

/* Floating WhatsApp */
.ff-wa-float{position:fixed;right:22px;bottom:22px;z-index:9990;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.ff-wa-btn{width:60px;height:60px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(10,10,10,.28);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease;position:relative}
.ff-wa-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 30px rgba(10,10,10,.32)}
.ff-wa-btn::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid rgba(37,211,102,.55);animation:ffWaPulse 2.6s ease-out infinite}
@keyframes ffWaPulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.35);opacity:0}100%{transform:scale(1.35);opacity:0}}
.ff-wa-card{width:290px;max-width:calc(100vw - 44px);background:#fff;border:2px solid var(--ff-ink);border-radius:22px;padding:18px 20px 16px;box-shadow:0 18px 44px rgba(10,10,10,.25);position:relative;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease}
.ff-wa-card--in{opacity:1;transform:translateY(0)}
.ff-wa-card strong{font-family:var(--ff-font-display);font-size:17px;letter-spacing:-.2px;display:block;margin-bottom:6px;padding-right:22px}
.ff-wa-card p{margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--ff-body-alt)}
.ff-wa-card a{color:var(--ff-indigo-dark);font-weight:700;text-decoration:none;font-size:14.5px}
.ff-wa-card a:hover{text-decoration:underline}
.ff-wa-card__x{position:absolute;top:8px;right:12px;background:none;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--ff-body-alt);padding:4px}
@media (max-width:640px){.ff-wa-float{right:16px;bottom:16px}.ff-wa-btn{width:56px;height:56px}}

/* FAQ accordions — rounded, spaced, readable (site-wide) */
.elementor-accordion .elementor-accordion-item{border:2px solid var(--ff-ink)!important;border-radius:20px!important;margin-bottom:14px!important;overflow:hidden;background:#fff}
.elementor-accordion .elementor-accordion-item:last-child{margin-bottom:0!important}
.elementor-accordion .elementor-tab-title{padding:20px 24px!important;line-height:1.4!important}
.elementor-accordion .elementor-tab-title .elementor-accordion-title{font-size:17.5px!important;font-weight:600;line-height:1.4}
.elementor-accordion .elementor-tab-content{padding:4px 24px 22px!important;line-height:1.68!important;font-size:16px;border-top:0!important}
.elementor-accordion .elementor-accordion-icon{font-size:15px}

/* Homepage Quick Answer — background hugs the content */
.elementor-13 .elementor-element-431050f{max-width:920px;margin-left:auto;margin-right:auto;border-radius:32px;padding-left:36px;padding-right:36px}

/* Typography refinement */
.elementor-widget-text-editor{line-height:1.7}
.elementor-widget-text-editor p{margin-top:0;margin-bottom:1em}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-widget-text-editor ul,.elementor-widget-text-editor ol{margin:0 0 1em;padding-left:1.25em;line-height:1.65}
.elementor-widget-text-editor li{margin-bottom:.35em}
.elementor-widget-icon-box .elementor-icon-box-description{line-height:1.62}
.elementor-widget-icon-list .elementor-icon-list-text{line-height:1.5}

/* State fees table */
.ff-state-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15.5px}
.ff-state-table th,.ff-state-table td{padding:12px 14px;text-align:left;vertical-align:top;line-height:1.45}
.ff-state-table thead th{background:var(--ff-ink);color:#fff;font-weight:700;white-space:nowrap}
.ff-state-table tbody tr:nth-child(even){background:#FBF7B8}
.ff-state-table tbody tr:hover{background:#E4E0FF}
.ff-state-table td:first-child{font-weight:700;white-space:nowrap}

/* Contact page — unified soft-yellow below the header */
body.page-id-58{background:#FBF7B8}
body.page-id-58 .ff-footer{margin-top:0}

/* Card hover lift for Elementor icon boxes used as cards */
.elementor-widget-icon-box .elementor-icon-box-wrapper{transition:transform .18s ease}

/* ============================================================
   v1.1.1 mobile stability pack — no sideways drift, consistent
   buttons, proper tap targets, no focus zoom
   ============================================================ */
html,body{overflow-x:clip}
body{touch-action:manipulation}
a,button{-webkit-tap-highlight-color:transparent}
img,video,iframe{max-width:100%}
.ff-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.25;text-align:center}
.elementor-widget-button .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.3}
.elementor-widget-text-editor:has(> table.ff-state-table){overflow-x:auto;-webkit-overflow-scrolling:touch}
.ff-state-table{min-width:660px}
@media (max-width:768px){
  input,select,textarea{font-size:16px!important}
  .ff-header{top:8px;padding:8px 10px 0}
  .ff-nav{padding:8px 10px 8px 14px;gap:8px;border-radius:24px}
  .ff-brand img,.ff-brand .custom-logo{width:34px;height:34px}
  .ff-brand__name{font-size:19px}
  .ff-nav .ff-btn{padding:10px 14px;font-size:13.5px;white-space:nowrap}
  .ff-burger{width:44px;height:44px;padding:0;flex-direction:column;align-items:center;justify-content:center}
  .ff-burger span{margin:2.5px auto}
  .ff-topbar{font-size:12.5px;padding:8px 12px;line-height:1.45}
  .ff-mobile-menu{border-radius:22px;padding:8px 18px 18px;margin-top:8px}
  .ff-mobile-menu a{padding:12px 0;font-size:16.5px}
  .ff-mobile-menu .ff-btn{width:100%;margin-top:14px}
  .ff-wa-float{right:14px;bottom:14px}
}
@media (max-width:360px){
  .ff-brand__name{display:none}
}

/* ============================================================
   v1.2.0 — de-congested typography, yellow canvas, QA fit,
   button consistency, focus + motion (per owner review)
   ============================================================ */

/* Yellow canvas on inner pages: no white strip behind the header,
   the page top flows straight into the yellow hero. */
body:not(.home){background:#FBF7B8}

/* --- Typography: open the spacing up everywhere --- */
.elementor-heading-title{letter-spacing:-0.01em!important;line-height:1.2!important}
h1.elementor-heading-title{letter-spacing:-0.015em!important;line-height:1.14!important}
h2.elementor-heading-title{line-height:1.18!important}
.elementor-widget-text-editor{letter-spacing:0.004em;line-height:1.75}
.elementor-widget-text-editor p{margin-bottom:1.15em;line-height:1.75}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-widget-text-editor ul,.elementor-widget-text-editor ol{line-height:1.7}
.elementor-widget-text-editor li{margin-bottom:.45em;line-height:1.65}
/* Real heading structure inside long text blocks (services, guides) */
.elementor-widget-text-editor h2{font-family:var(--ff-font-display);font-size:clamp(26px,3.4vw,34px);letter-spacing:-0.01em;line-height:1.22;margin:1.3em 0 .55em;color:var(--ff-ink)}
.elementor-widget-text-editor h3{font-family:var(--ff-font-display);font-size:clamp(20px,2.6vw,24px);letter-spacing:-0.008em;line-height:1.3;margin:1.15em 0 .45em;color:var(--ff-ink)}
.elementor-widget-text-editor h2:first-child,.elementor-widget-text-editor h3:first-child{margin-top:0}
/* FAQ breathing room */
.elementor-accordion .elementor-tab-title{letter-spacing:0!important;line-height:1.5!important}
.elementor-accordion .elementor-tab-content{letter-spacing:0.004em;line-height:1.75!important}
.elementor-accordion .elementor-accordion-title{letter-spacing:0!important}
/* Icon lists and small print */
.elementor-widget-icon-list .elementor-icon-list-item{margin-bottom:7px}
.elementor-widget-icon-list .elementor-icon-list-text{letter-spacing:0.002em;line-height:1.55}

/* --- Quick Answer: box and label hug the content --- */
.ff-qa-box{max-width:900px!important;margin-left:auto!important;margin-right:auto!important}
.ff-qa-label{width:auto!important;flex:0 0 auto!important}
.ff-qa-label .elementor-heading-title{display:inline-block}

/* --- Buttons: consistent, tappable, obviously clickable --- */
.elementor-widget-button .elementor-button{min-height:48px;cursor:pointer}
.elementor-button{letter-spacing:0.01em}

/* --- Focus visibility + reduced motion --- */
:focus-visible{outline:3px solid var(--ff-indigo);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion: reduce){
  .ff-wa-btn::after{animation:none}
  html{scroll-behavior:auto}
}

/* WhatsApp float: respect the phone safe area */
.ff-wa-float{bottom:calc(22px + env(safe-area-inset-bottom))}
@media (max-width:768px){.ff-wa-float{bottom:calc(14px + env(safe-area-inset-bottom))}}

/* v1.2.1 — hamburger hardening: the open panel scrolls within the
   viewport, the button always sits above overlays, and the WP admin
   bar (when logged in) no longer covers the sticky header. */
.ff-mobile-menu{max-height:calc(100vh - 120px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.ff-burger{position:relative;z-index:130;touch-action:manipulation}
body.admin-bar .ff-header{top:44px}
@media (max-width:782px){body.admin-bar .ff-header{top:58px}}
