/*
Theme Name: QuitForever
Theme URI: https://quitforever.com
Author: Built for QuitForever
Description: Custom telehealth theme for QuitForever. Pixel-matched homepage with editable content fields (Advanced Custom Fields). The store (product, cart, checkout) is handled by WooCommerce.
Version: 83
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: quitforever
*/

/* =========================================================
   TOKENS
   ========================================================= */
:root{
  --qf-red:#EC1C24;
  --qf-red-dark:#C8141C;
  --qf-red-soft:#FDEAEB;
  --qf-dark:#0F1A2C;
  --qf-dark-2:#16233A;
  --qf-ink:#191D24;
  --qf-body:#5C6573;
  --qf-muted:#8A93A1;
  --qf-gray:#EEF0F3;
  --qf-line:#E8EAEE;
  --qf-white:#ffffff;
  --qf-shadow:0 18px 40px -18px rgba(15,26,44,.18);
  --qf-shadow-sm:0 10px 24px -14px rgba(15,26,44,.16);
  --qf-radius:16px;
  --qf-radius-lg:22px;
  --qf-container:1180px;
  --qf-font-head:'Mulish',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --qf-font-body:'Mulish',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}

/* =========================================================
   BASE
   ========================================================= */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
/* Stop the page from being dragged/bounced sideways on touch. clip (not hidden) keeps the sticky header working. */
html,body{overflow-x:clip;overscroll-behavior-x:none;}
body{
  margin:0;
  max-width:100%;
  font-family:var(--qf-font-body);
  color:var(--qf-body);
  background:var(--qf-white);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
/* Behave like a native app on touch: no double-tap zoom / 300ms tap delay (pinch-zoom still works) */
html{touch-action:manipulation;}
a,button,input,select,textarea,label,summary,.qf-burger,.qf-tnav,.qf-dot,.qf-faqitem__q,.qf-btn{touch-action:manipulation;}
h1,h2,h3,h4{font-family:var(--qf-font-head);color:var(--qf-ink);margin:0 0 .4em;line-height:1.18;font-weight:600;}
p{margin:0 0 1rem;}
ul{margin:0;padding:0;list-style:none;}

.qf-container{width:100%;max-width:var(--qf-container);margin:0 auto;padding:0 24px;}
.qf-section{padding:84px 0;}
.qf-section--gray{background:var(--qf-gray);}
.qf-eyebrow{font-family:var(--qf-font-head);}

.qf-heading{font-size:44px;font-weight:700;color:var(--qf-ink);letter-spacing:-.01em;}
.qf-heading--center{text-align:center;}
.qf-subheading{color:var(--qf-body);text-align:center;max-width:600px;margin:0 auto;font-size:17px;}
.qf-red{color:var(--qf-red);}

/* visually-hidden helper */
.qf-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* Accessibility: focus + reduced motion */
a:focus-visible,button:focus-visible{outline:3px solid var(--qf-red);outline-offset:2px;border-radius:6px;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}

/* =========================================================
   BUTTONS
   ========================================================= */
.qf-btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--qf-font-head);font-weight:600;font-size:15px;
  padding:15px 28px;border-radius:40px;border:0;cursor:pointer;
  transition:transform .15s ease,box-shadow .2s ease,background .2s ease;
  text-transform:uppercase;letter-spacing:.04em;
}
.qf-btn svg{width:16px;height:16px;}
.qf-btn--primary{background:var(--qf-red);color:#fff;box-shadow:0 14px 26px -12px rgba(236,28,36,.7);}
.qf-btn--primary:hover{background:var(--qf-red-dark);transform:translateY(-2px);}
.qf-btn--sm{padding:12px 22px;font-size:13px;}

/* =========================================================
   HEADER
   ========================================================= */
.qf-header{
  position:sticky;top:0;z-index:60;
  background:linear-gradient(120deg,rgba(234,246,246,.94) 0%,rgba(243,238,240,.94) 55%,rgba(233,238,246,.94) 100%);
  backdrop-filter:saturate(160%) blur(8px);border-bottom:1px solid var(--qf-line);
}
.qf-header__inner{display:flex;align-items:center;justify-content:space-between;height:74px;gap:24px;}
.qf-logo{display:inline-flex;align-items:center;gap:7px;font-family:var(--qf-font-head);font-weight:700;font-size:22px;color:var(--qf-ink);letter-spacing:-.01em;}
.qf-logo img{max-height:30px;width:auto;}
.qf-logo .swoosh{display:inline-block;}
.qf-nav{display:flex;align-items:center;gap:30px;}
.qf-nav a{font-family:var(--qf-font-head);font-weight:600;font-size:16px;color:var(--qf-ink);transition:color .15s;}
.qf-nav a:hover{color:var(--qf-red);}
.qf-nav__cta{display:none;}
.qf-header__right{display:flex;align-items:center;gap:22px;}
.qf-callus{display:flex;align-items:center;gap:12px;}
.qf-callus__icon{width:40px;height:40px;border-radius:50%;background:#EFF1F5;color:var(--qf-ink);display:grid;place-items:center;}
.qf-callus__icon svg{width:17px;height:17px;}
.qf-callus__txt{display:flex;flex-direction:column;line-height:1.2;}
.qf-callus__label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--qf-muted);font-weight:700;margin-bottom:1px;}
.qf-callus__num{font-family:var(--qf-font-head);font-weight:700;font-size:18px;color:var(--qf-ink);}
.qf-burger{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.qf-burger span{display:block;width:24px;height:2px;background:var(--qf-ink);margin:5px 0;border-radius:2px;transition:.2s;}

/* Transparent overlay header (homepage). Sits on top of the hero image; on scroll
   it fades to the solid frosted-white bar via .is-scrolled (toggled in main.js). */
.qf-header--overlay{
  position:fixed;left:0;right:0;top:0;
  background:transparent;border-bottom-color:transparent;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:background .28s ease,border-color .28s ease,box-shadow .28s ease;
}
.qf-header--overlay.is-scrolled{
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:saturate(160%) blur(8px);backdrop-filter:saturate(160%) blur(8px);
  border-bottom-color:var(--qf-line);
  box-shadow:0 10px 30px -22px rgba(15,26,44,.55);
}
/* Keep the fixed header clear of the WordPress admin bar while logged in. */
body.admin-bar .qf-header--overlay{top:32px;}
@media (max-width:782px){ body.admin-bar .qf-header--overlay{top:46px;} }

/* =========================================================
   HERO
   ========================================================= */
.qf-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#eaf6f6 0%,#f3eef0 55%,#e9eef6 100%);}
.qf-hero__bg{position:absolute;inset:0;z-index:0;}
.qf-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:right center;}
.qf-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(236,247,245,.90) 0%,rgba(238,248,246,.84) 28%,rgba(243,249,249,.56) 46%,rgba(248,251,251,.24) 60%,rgba(255,255,255,0) 73%);}
.qf-hero__inner{position:relative;z-index:2;padding:152px 0 118px;}
.qf-hero__copy{max-width:600px;}
.qf-hero h1{font-size:74px;font-weight:800;line-height:1.04;color:var(--qf-ink);margin-bottom:16px;letter-spacing:-.015em;}
.qf-hero h1 .accent{display:block;font-weight:300;color:#5b6472;}
.qf-hero h1 .q{color:var(--qf-red);}
/* Crossed-Q: red diagonal struck through the first letter, matching the logo mark. */
.qf-visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.qf-hero h1 .qf-qx{position:relative;display:inline-block;}
.qf-hero h1 .qf-qx::after{content:"";position:absolute;left:50%;top:49%;width:0.92em;height:0.135em;background:var(--qf-red);border-radius:1px;transform:translate(-50%,-50%) rotate(44deg);transform-origin:center;pointer-events:none;}
.qf-hero__tagline{font-size:20px;color:#3f4753;margin-bottom:30px;}
.qf-hero__badges{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;margin-top:32px;max-width:430px;}
.qf-hero__photo{display:none;}
.qf-badge{display:flex;align-items:center;gap:11px;font-size:16px;color:#3f4753;font-weight:500;}
.qf-badge .tick{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:var(--qf-red);display:grid;place-items:center;}
.qf-badge .tick svg{width:11px;height:11px;color:#fff;}

/* =========================================================
   NICOTINE FORMS
   ========================================================= */
.qf-forms{background:#fff;padding:64px 0 34px;}
.qf-forms .qf-heading{font-size:30px;}
.qf-forms__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:24px;margin-top:44px;}
.qf-formcard{background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);padding:40px 18px;text-align:center;box-shadow:var(--qf-shadow-sm);transition:transform .18s ease,box-shadow .18s ease;}
.qf-formcard:hover{transform:translateY(-4px);box-shadow:var(--qf-shadow);}
.qf-formcard__icon{width:68px;height:68px;margin:0 auto 18px;border-radius:50%;background:#F2F4F7;color:var(--qf-red);display:grid;place-items:center;}
.qf-formcard__icon svg{width:30px;height:30px;}
.qf-formcard__icon img{height:32px;width:auto;max-width:46px;}
.qf-formcard__label{font-family:var(--qf-font-head);font-weight:600;color:var(--qf-ink);font-size:17px;}

/* =========================================================
   HOW IT WORKS
   ========================================================= */
.qf-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:58px;}
.qf-step{background:#fff;border-radius:var(--qf-radius);box-shadow:var(--qf-shadow-sm);overflow:visible;position:relative;}
.qf-step__media{position:relative;aspect-ratio:16/11;background:linear-gradient(135deg,#dfe9f4,#eef3f8);overflow:hidden;border-radius:var(--qf-radius) var(--qf-radius) 0 0;}
.qf-step__media img{width:100%;height:100%;object-fit:cover;}
.qf-step__num{position:absolute;top:-20px;left:50%;transform:translateX(-50%);width:46px;height:46px;border-radius:50%;background:var(--qf-red);color:#fff;font-family:var(--qf-font-head);font-weight:700;font-size:18px;display:grid;place-items:center;border:5px solid #fff;z-index:3;box-shadow:0 6px 16px -5px rgba(236,28,36,.55);}
.qf-step__body{padding:30px 24px 26px;position:relative;}
.qf-step__title{font-size:19px;font-weight:700;color:var(--qf-ink);margin-bottom:8px;}
.qf-step__text{font-size:16px;line-height:1.6;color:var(--qf-body);margin:0;}

/* =========================================================
   ABOUT VARENICLINE
   ========================================================= */
.qf-about__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;}
.qf-about__title{font-size:42px;font-weight:700;margin-bottom:8px;letter-spacing:-.01em;}
.qf-about__lead{font-weight:700;color:var(--qf-ink);font-size:20px;margin-bottom:14px;}
.qf-about__text{margin-top:10px;}
.qf-about__text p{margin:0 0 1rem;color:var(--qf-body);font-size:16px;line-height:1.65;}
.qf-about__text p:last-child{margin-bottom:0;}
.qf-about__text strong{color:var(--qf-ink);}
.qf-checklist{margin-top:22px;display:grid;gap:16px;}
.qf-checklist li{display:flex;align-items:flex-start;gap:12px;font-size:16px;color:#3f4753;font-weight:500;}
.qf-checklist .tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--qf-red);display:grid;place-items:center;margin-top:1px;}
.qf-checklist .tick svg{width:12px;height:12px;color:#fff;}
.qf-about__media{display:grid;place-items:center;}
.qf-about__media img{max-height:340px;width:auto;filter:drop-shadow(0 26px 40px rgba(15,26,44,.16));}
.qf-imgph{width:100%;border-radius:var(--qf-radius);background:linear-gradient(135deg,#e6edf5,#f1f4f8);display:grid;place-items:center;color:var(--qf-muted);font-family:var(--qf-font-head);font-size:13px;letter-spacing:.03em;min-height:240px;}
.qf-imgph svg{width:42px;height:42px;opacity:.5;margin-bottom:8px;}
.qf-imgph__wrap{text-align:center;display:grid;place-items:center;}

/* =========================================================
   WHY CHOOSE + STATS
   ========================================================= */
.qf-why__grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:center;}
.qf-why__media img,.qf-why__media .qf-imgph{border-radius:var(--qf-radius);overflow:hidden;aspect-ratio:1/1.12;object-fit:cover;object-position:center top;width:100%;box-shadow:var(--qf-shadow);}
.qf-why__title{font-size:42px;font-weight:700;margin-bottom:18px;letter-spacing:-.01em;}
.qf-why__text{margin-bottom:36px;}
.qf-why__text p{font-size:16px;line-height:1.8;color:var(--qf-body);margin:0 0 22px;}
.qf-why__text p:last-child{margin-bottom:0;}
.qf-why__features{display:grid;grid-template-columns:1fr 1fr;gap:36px 30px;}
.qf-feature{display:flex;gap:13px;align-items:flex-start;}
.qf-feature__icon{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--qf-red);display:grid;place-items:center;margin-top:2px;}
.qf-feature__icon svg{width:14px;height:14px;color:#fff;}
.qf-feature__title{font-family:var(--qf-font-head);font-weight:700;font-size:18px;color:var(--qf-ink);margin:0 0 4px;}
.qf-feature__text{font-size:16px;color:var(--qf-body);margin:0;line-height:1.6;}

.qf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:46px;}
.qf-stat{background:#fff;border:1px solid var(--qf-line);border-radius:16px;padding:32px 28px;box-shadow:var(--qf-shadow-sm);}
.qf-stat__num{font-family:var(--qf-font-head);font-weight:800;font-size:44px;color:var(--qf-red);line-height:1;margin-bottom:8px;}
.qf-stat__label{font-size:18px;color:var(--qf-body);}

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.qf-testi__head{text-align:center;margin-bottom:40px;}
.qf-testi__head h2{font-size:44px;margin:0;letter-spacing:-.01em;}
.qf-testi__viewport{position:relative;}
.qf-testi__window{overflow:hidden;border-radius:4px;}
.qf-tnav{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:50%;border:0;background:#E7EAEF;color:var(--qf-ink);display:grid;place-items:center;cursor:pointer;transition:.15s;box-shadow:0 6px 18px rgba(15,26,44,.16);}
.qf-tnav--prev{left:-26px;background:var(--qf-dark);color:#fff;}
.qf-tnav--next{right:-26px;background:var(--qf-dark);color:#fff;}
.qf-tnav:hover{background:var(--qf-red);color:#fff;}
.qf-tnav svg{width:18px;height:18px;}
.qf-testi__track{display:flex;gap:24px;padding:6px 2px 12px;transition:transform .42s cubic-bezier(.4,0,.2,1);will-change:transform;}
.qf-testi__track.qf-snap,.qf-testi__track.qf-snap .qf-tcard,.qf-testi__track.qf-snap .qf-tcard *{transition:none !important;}
.qf-tnav.is-disabled{opacity:.32;pointer-events:none;cursor:default;box-shadow:none;}
.qf-tcard{scroll-snap-align:start;flex:0 0 calc((100% - 48px)/3);background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);padding:36px 32px;box-shadow:var(--qf-shadow-sm);display:flex;flex-direction:column;min-height:432px;transition:background-color .45s ease,border-color .45s ease;}
.qf-tcard--dark{background:var(--qf-dark);border-color:var(--qf-dark);color:#fff;}
.qf-tcard__quote{font-family:var(--qf-font-head);font-weight:700;font-size:22px;color:var(--qf-ink);line-height:1.35;margin-bottom:18px;transition:color .45s ease;}
.qf-tcard--dark .qf-tcard__quote{color:#fff;}
.qf-tcard__text{font-size:17px;line-height:1.7;color:var(--qf-body);margin:0;transition:color .45s ease;}
.qf-tcard--dark .qf-tcard__text{color:#c7cedb;}
.qf-stars{display:flex;gap:4px;margin:20px 0 0;color:var(--qf-red);}
.qf-stars svg{width:17px;height:17px;}
.qf-tcard__foot{margin-top:auto;padding-top:22px;}
.qf-tcard__divider{height:1px;background:var(--qf-line);border:0;margin:0 0 16px;transition:background-color .45s ease;}
.qf-tcard--dark .qf-tcard__divider{background:rgba(255,255,255,.16);}
.qf-tcard__name{font-family:var(--qf-font-head);font-weight:700;font-size:19px;color:var(--qf-ink);transition:color .45s ease;}
.qf-tcard--dark .qf-tcard__name{color:#fff;}
.qf-tcard__role{font-size:16px;color:var(--qf-muted);margin-top:3px;transition:color .45s ease;}
.qf-dots{display:flex;justify-content:center;gap:8px;margin-top:26px;}
.qf-dot{width:8px;height:8px;border-radius:50%;background:var(--qf-line);border:0;padding:0;cursor:pointer;transition:.2s;}
.qf-dot.is-active{background:var(--qf-red);width:22px;border-radius:5px;}

/* =========================================================
   FAQ
   ========================================================= */
.qf-faq__list{max-width:760px;margin:0 auto;display:grid;gap:14px;}
.qf-faqitem{background:#fff;border:1px solid var(--qf-line);border-radius:14px;overflow:hidden;box-shadow:var(--qf-shadow-sm);transition:border-color .2s,box-shadow .2s;}
.qf-faqitem.is-open{border-color:var(--qf-red);box-shadow:0 12px 28px -18px rgba(236,28,36,.5);}
.qf-faqitem__q{width:100%;background:none;border:0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;text-align:left;font-family:var(--qf-font-head);font-weight:600;font-size:18px;color:var(--qf-ink);}
.qf-faqitem__icon{flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--qf-line);display:grid;place-items:center;color:var(--qf-muted);transition:.2s;position:relative;}
.qf-faqitem.is-open .qf-faqitem__icon{border-color:var(--qf-red);color:var(--qf-red);}
.qf-faqitem__icon::before,.qf-faqitem__icon::after{content:"";position:absolute;background:currentColor;border-radius:2px;}
.qf-faqitem__icon::before{width:11px;height:1.6px;}
.qf-faqitem__icon::after{width:1.6px;height:11px;transition:transform .2s;}
.qf-faqitem.is-open .qf-faqitem__icon::after{transform:scaleY(0);}
.qf-faqitem__a{max-height:0;overflow:hidden;transition:max-height .28s ease;}
.qf-faqitem__a-inner{padding:0 24px 24px;font-size:16px;color:var(--qf-body);line-height:1.65;}
.qf-faq__more{text-align:center;margin-top:30px;}
#faq{padding-bottom:56px;}
#faq .qf-heading{margin-bottom:40px;}

/* =========================================================
   FINAL CTA
   ========================================================= */
.qf-finalcta{padding:16px 0 0;position:relative;z-index:2;}
.qf-finalcta__box{position:relative;overflow:hidden;border-radius:var(--qf-radius-lg);background:#EDEFF2;min-height:430px;display:flex;align-items:center;box-shadow:var(--qf-shadow);margin-bottom:-180px;}
.qf-finalcta__copy{position:relative;z-index:2;align-self:center;padding:56px 24px 56px 60px;max-width:54%;}
.qf-finalcta__copy h2{color:var(--qf-ink);font-size:44px;font-weight:300;line-height:1.1;margin-bottom:14px;letter-spacing:-.01em;}
.qf-finalcta__copy h2 strong{font-weight:700;}
.qf-finalcta__copy p{color:#3f4753;font-size:20px;margin-bottom:28px;}
.qf-finalcta__media{position:absolute;inset:0;z-index:0;}
.qf-finalcta__media img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.qf-finalcta__media::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(237,239,242,.82) 0%,rgba(237,239,242,.72) 30%,rgba(237,239,242,.46) 48%,rgba(237,239,242,.14) 64%,rgba(237,239,242,0) 80%);pointer-events:none;}

/* =========================================================
   FOOTER
   ========================================================= */
.qf-footer{background:var(--qf-dark);color:#aeb6c4;padding:80px 0 0;font-size:15px;position:relative;z-index:1;}
.qf-finalcta + .qf-footer{padding-top:250px;}
.qf-footer__grid{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:0;padding-bottom:50px;align-items:stretch;}
.qf-footer__col h4{color:#fff;font-size:19px;font-weight:700;margin-bottom:22px;letter-spacing:.01em;}
.qf-footer__col{padding:4px 48px;}
.qf-footer__col--links{padding-left:0;}
.qf-footer__col--center{text-align:center;border-left:1px solid rgba(255,255,255,.12);}
.qf-footer__col--contact{border-left:1px solid rgba(255,255,255,.12);padding-right:0;}
.qf-footer .qf-logo{justify-content:center;margin-bottom:18px;}
.qf-footer .qf-logo img{max-height:32px;width:auto;}
.qf-footer__links li{margin-bottom:14px;}
.qf-footer__links a{color:#aeb6c4;transition:color .15s;}
.qf-footer__links a:hover{color:#fff;}
.qf-footer__desc{color:#9aa3b2;line-height:1.85;font-size:15px;max-width:430px;margin:0 auto;}
.qf-contact{margin:0;}
.qf-contact li{display:flex;gap:14px;margin-bottom:18px;align-items:center;line-height:1.45;}
.qf-contact__ic{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.06);display:grid;place-items:center;color:var(--qf-red);}
.qf-contact__ic svg{width:17px;height:17px;}
.qf-contact a{color:#aeb6c4;transition:color .15s;}
.qf-contact a:hover{color:#fff;}
.qf-social{display:flex;justify-content:center;gap:14px;margin-top:24px;}
.qf-social a{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.06);display:grid;place-items:center;color:#fff;transition:.18s;}
.qf-social a:hover{background:var(--qf-red);}
.qf-social svg{width:17px;height:17px;}
.qf-footer__bar{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;text-align:center;font-size:13.5px;color:#8b93a2;}
.qf-footer__bar a{color:#8b93a2;}
.qf-footer__bar a:hover{color:#fff;}

/* =========================================================
   STATIC PAGES (About / Terms / Privacy)
   ========================================================= */
.qf-page{padding:64px 0 84px;}
.qf-page__narrow{max-width:780px;}
.qf-page__title{font-size:36px;font-weight:700;margin-bottom:24px;}
.qf-page__content{font-size:16px;color:#3f4753;}
.qf-page__content h2{font-size:24px;margin:34px 0 12px;}
.qf-page__content h3{font-size:19px;margin:26px 0 10px;}
.qf-page__content p{margin:0 0 16px;}
.qf-page__content ul{list-style:disc;padding-left:22px;margin:0 0 16px;}
.qf-page__content li{margin-bottom:8px;}
.qf-page__content a{color:var(--qf-red);text-decoration:underline;}

/* =========================================================
   ABOUT PAGE
   ========================================================= */
.qf-abouthero{background:linear-gradient(120deg,#eaf6f6 0%,#f3eef0 55%,#e9eef6 100%);text-align:center;padding:78px 0 70px;}
.qf-abouthero__title{font-family:var(--qf-font-head);font-size:54px;font-weight:800;color:var(--qf-ink);letter-spacing:-.02em;line-height:1.05;margin:0 0 16px;}
.qf-abouthero__sub{font-size:19px;color:var(--qf-body);max-width:680px;margin:0 auto;line-height:1.6;}

.qf-abt-intro__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;}
.qf-abt-intro__media img{border-radius:var(--qf-radius);box-shadow:var(--qf-shadow);width:100%;object-fit:cover;}
.qf-abt-intro h2{font-size:42px;font-weight:700;letter-spacing:-.01em;margin:0 0 18px;}
.qf-abt-intro__text p{font-size:16px;line-height:1.8;color:var(--qf-body);margin:0 0 18px;}
.qf-abt-intro__text p:last-child{margin-bottom:0;}
.qf-abt-list{display:grid;gap:18px;margin-top:26px;}
.qf-abt-list li{display:flex;gap:13px;align-items:flex-start;font-size:16px;color:var(--qf-body);line-height:1.55;}
.qf-abt-list .tick{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--qf-red);display:grid;place-items:center;margin-top:1px;}
.qf-abt-list .tick svg{width:13px;height:13px;color:#fff;}
.qf-abt-list strong{color:var(--qf-ink);font-family:var(--qf-font-head);font-weight:700;}

.qf-abt-why__head{text-align:center;margin-bottom:44px;}
.qf-abt-why__head h2{font-size:42px;font-weight:700;letter-spacing:-.01em;margin:0;}
.qf-abt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.qf-abt-card{background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);padding:40px 30px;box-shadow:var(--qf-shadow-sm);text-align:center;}
.qf-abt-card__ic{width:64px;height:64px;border-radius:50%;background:var(--qf-red-soft);color:var(--qf-red);display:grid;place-items:center;margin:0 auto 20px;}
.qf-abt-card__ic svg{width:30px;height:30px;}
.qf-abt-card h3{font-size:22px;font-weight:700;color:var(--qf-ink);margin:0 0 12px;}
.qf-abt-card p{font-size:16px;line-height:1.65;color:var(--qf-body);margin:0;}

.qf-abt-you__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center;}
.qf-abt-you__media img{border-radius:var(--qf-radius);box-shadow:var(--qf-shadow);width:100%;object-fit:cover;aspect-ratio:1/1.05;object-position:center top;}
.qf-abt-you h2{font-size:40px;font-weight:700;letter-spacing:-.01em;margin:0 0 18px;}
.qf-abt-you__lead{font-size:16px;line-height:1.8;color:var(--qf-body);margin:0 0 4px;}
.qf-abt-you h3{font-size:20px;font-weight:700;color:var(--qf-ink);margin:26px 0 10px;}
.qf-abt-you__sub{font-size:16px;color:var(--qf-body);margin:0 0 14px;}
.qf-abt-you__points{display:grid;gap:12px;margin:0;}
.qf-abt-you__points li{display:flex;gap:12px;align-items:flex-start;font-size:16px;color:var(--qf-body);line-height:1.5;}
.qf-abt-you__points .tick{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--qf-red);display:grid;place-items:center;margin-top:1px;}
.qf-abt-you__points .tick svg{width:12px;height:12px;color:#fff;}
.qf-abt-you__hq{font-size:16px;line-height:1.7;color:var(--qf-body);margin:0 0 14px;}
.qf-abt-you .qf-btn{margin-top:10px;}

.qf-abt-doc{background:var(--qf-dark);color:#fff;}
.qf-abt-doc__grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.qf-abt-doc h2{font-size:36px;font-weight:700;color:#fff;letter-spacing:-.01em;margin:0 0 16px;line-height:1.12;}
.qf-abt-doc__lead{font-size:16px;line-height:1.8;color:#c7cedb;margin:0;}
.qf-abt-doc__list{display:grid;gap:18px;}
.qf-abt-doc__item{display:flex;gap:16px;align-items:center;font-size:16px;line-height:1.5;color:#e8ebf1;}
.qf-abt-doc__ic{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.06);color:var(--qf-red);display:grid;place-items:center;}
.qf-abt-doc__ic svg{width:22px;height:22px;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
/* ---------- FAQ page ---------- */
.qf-faqhero{background:linear-gradient(180deg,#fff 0%,var(--qf-gray) 100%);text-align:center;padding:72px 0 22px;}
.qf-eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--qf-red);font-family:var(--qf-font-head);font-weight:700;font-size:18px;letter-spacing:.01em;margin:0 0 12px;}
.qf-eyebrow svg{width:20px;height:20px;}
.qf-faqhero__title{font-family:var(--qf-font-head);font-size:54px;font-weight:800;color:var(--qf-ink);letter-spacing:-.02em;line-height:1.05;margin:0 0 14px;}
.qf-faqhero__sub{font-size:18px;color:var(--qf-body);max-width:620px;margin:0 auto;line-height:1.6;}
.qf-faqpage{padding-top:8px;}
.qf-container--narrow{max-width:880px;}

@media (max-width:1024px){
  .qf-forms__grid{grid-template-columns:repeat(3,1fr);}
  .qf-stats{grid-template-columns:repeat(2,1fr);}
  .qf-tcard{flex-basis:calc((100% - 24px)/2);}
  .qf-hero h1{font-size:58px;}
  .qf-heading,.qf-about__title,.qf-why__title,.qf-testi__head h2,.qf-finalcta__copy h2{font-size:36px;}
}
@media (max-width:860px){
  .qf-nav,.qf-callus{display:none;}
  .qf-burger{display:block;}
  .qf-logo img{max-height:26px;}
  .qf-header:not(.qf-header--overlay){background:rgba(255,255,255,.92);}
  .qf-nav.is-open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;background:#fff;padding:18px 24px 22px;gap:16px;border-bottom:1px solid var(--qf-line);box-shadow:var(--qf-shadow-sm);}
  .qf-nav.is-open .qf-nav__cta{display:inline-flex;align-self:center;justify-content:center;color:#fff;margin-top:6px;}
  .qf-section{padding:60px 0;}
  #faq .qf-heading{margin-bottom:28px;}
  .qf-section.qf-forms{padding-top:26px;}
  .qf-forms__grid{margin-top:22px;}
  .qf-faqhero{padding:48px 0 16px;}
  .qf-faqhero__title{font-size:34px;}
  .qf-faqhero__sub{font-size:16px;}
  .qf-faqpage{padding-top:6px;}
  .qf-hero__inner{padding:104px 0 34px;}
  .qf-hero h1{font-size:46px;order:1;}
  .qf-hero__copy{max-width:none;text-align:center;display:flex;flex-direction:column;align-items:center;}
  .qf-hero__tagline{order:2;font-size:18px;margin-bottom:26px;}
  .qf-hero__copy .qf-btn{order:3;margin:0 0 28px;}
  .qf-hero{background:linear-gradient(180deg,#e9f2fb 0%,#eef5fb 100%);}
  .qf-hero__bg{display:block;background:url('assets/img/hero-sky.jpg') center/cover no-repeat;}
  .qf-hero__bg img{display:none;}
  .qf-hero__bg::after{background:linear-gradient(180deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.06) 34%,rgba(255,255,255,.22) 74%,rgba(255,255,255,.46) 100%);}
  .qf-hero__photo{display:none;}
  .qf-header__right .qf-btn{display:none;}
  .qf-steps,.qf-about__grid,.qf-why__grid{grid-template-columns:1fr;gap:34px;}
  .qf-abouthero{padding:48px 0 40px;}
  .qf-abouthero__title{font-size:36px;}
  .qf-abouthero__sub{font-size:16px;}
  .qf-abt-intro__grid,.qf-abt-you__grid{grid-template-columns:1fr;gap:34px;}
  .qf-abt-doc__grid{grid-template-columns:1fr;gap:28px;}
  .qf-abt-doc h2{font-size:28px;}
  .qf-abt-intro__media,.qf-abt-you__media{order:-1;}
  .qf-abt-intro h2,.qf-abt-why__head h2,.qf-abt-you h2{font-size:30px;}
  .qf-abt-cards{grid-template-columns:1fr;gap:18px;}
  .qf-abt-card{padding:32px 26px;}
  .qf-abt-why__head{margin-bottom:30px;}
  .qf-why__features{grid-template-columns:1fr 1fr;}
  .qf-hero__badges{order:4;grid-template-columns:1fr 1fr;max-width:390px;margin:0 auto 30px;text-align:left;gap:14px 16px;}
  .qf-badge{justify-content:flex-start;font-size:15px;}
  .qf-stats{gap:14px;margin-top:30px;}
  .qf-stat{padding:20px 16px;}
  .qf-stat__num{font-size:32px;margin-bottom:5px;}
  .qf-stat__label{font-size:15px;}
  .qf-tcard{flex-basis:84%;min-height:auto;}
  .qf-tnav{width:40px;height:40px;background:#fff;color:var(--qf-dark);box-shadow:0 6px 18px rgba(15,26,44,.28);}
  .qf-tnav--prev{left:3px;}
  .qf-tnav--next{right:3px;}
  .qf-tnav.is-disabled{opacity:0;visibility:hidden;pointer-events:none;}
  .qf-tnav:hover,.qf-tnav:active{background:var(--qf-red);color:#fff;}
  .qf-finalcta__box{position:relative;overflow:hidden;display:block;min-height:0;margin-bottom:0;background:#EDEFF2;border-radius:var(--qf-radius-lg);}
  .qf-finalcta__copy{position:relative;z-index:2;text-align:center;max-width:none;padding:40px 24px 28px;background:transparent;}
  .qf-finalcta__copy h2{font-size:29px;line-height:1.1;margin-bottom:10px;}
  .qf-finalcta__copy p{font-size:16px;line-height:1.5;margin-bottom:24px;}
  .qf-finalcta__media{position:relative;inset:auto;z-index:0;width:100%;min-height:0;}
  .qf-finalcta__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:74% 34%;display:block;}
  .qf-finalcta__media::before{display:none;}
  .qf-finalcta + .qf-footer{padding-top:48px;}
  .qf-footer__grid{grid-template-columns:1fr;gap:0;text-align:center;}
  .qf-footer__col{padding:0;border:0;}
  .qf-footer__col h4{margin-bottom:16px;}
  .qf-footer__col--center{order:-1;text-align:center;padding-bottom:30px;}
  .qf-footer__col--links,.qf-footer__col--contact{border-top:1px solid rgba(255,255,255,.12);padding-top:26px;padding-bottom:6px;}
  .qf-footer__links li{margin-bottom:13px;}
  .qf-contact{display:block;text-align:center;margin:0;}
  .qf-contact li{justify-content:center;}
}
@media (max-width:560px){
  .qf-forms__grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .qf-forms__grid > .qf-formcard:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 8px);}
  .qf-stats{grid-template-columns:repeat(2,1fr);}
  .qf-why__features{grid-template-columns:1fr 1fr;gap:22px 16px;}
  .qf-heading,.qf-about__title,.qf-why__title,.qf-testi__head h2,.qf-finalcta__copy h2{font-size:30px;}
  .qf-hero h1{font-size:38px;}
  .qf-finalcta__box{margin-bottom:0;}
  .qf-finalcta + .qf-footer{padding-top:44px;}
}

/* =========================================================
   PRODUCT PAGE  (/shop)
   ========================================================= */
:root{ --qf-panel:#F6F6F6; --qf-cmp-navy:#1C1E2D; }

.qf-product .qf-section[id],.qf-product #qf-plans{scroll-margin-top:88px;}

/* ---- Product hero ---- */
.qf-phero{background:var(--qf-panel);border-radius:28px 28px 0 0;padding:54px 0 58px;}
.qf-phero__grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.qf-phero__media{display:grid;place-items:center start;align-self:start;}
.qf-phero__media img{width:100%;max-width:600px;height:auto;display:block;}
.qf-phero__rating{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.qf-phero__rating .qf-stars{display:inline-flex;gap:4px;color:var(--qf-red);line-height:0;margin:0;}
.qf-phero__rating .qf-stars svg{width:20px;height:20px;}
.qf-phero__rating-text{font-size:16px;color:var(--qf-body);}
.qf-phero__rating-text strong{color:var(--qf-ink);font-weight:800;}
.qf-phero__title{font-family:var(--qf-font-head);font-weight:800;font-size:44px;line-height:1.1;letter-spacing:-.015em;color:var(--qf-dark);margin:0 0 14px;}
.qf-phero__title .accent{color:var(--qf-red);}
.qf-phero__sub{font-size:19px;line-height:1.5;color:#7c828e;margin:0 0 22px;}
.qf-phero__price{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-family:var(--qf-font-head);flex-wrap:wrap;}
.qf-phero__price-old{color:var(--qf-muted);text-decoration:line-through;font-size:20px;font-weight:600;}
.qf-phero__price-now{color:var(--qf-ink);font-size:24px;font-weight:800;}
.qf-phero__price-sep{color:#cfd5de;font-size:18px;}
.qf-phero__price-term{color:var(--qf-ink);font-size:18px;font-weight:700;}
.qf-plans{display:grid;gap:14px;margin-bottom:22px;}
.qf-plan{position:relative;display:flex;align-items:flex-start;gap:14px;background:#fff;border:1.5px solid var(--qf-line);border-radius:14px;padding:17px 20px;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
.qf-plan input{position:absolute;opacity:0;width:1px;height:1px;}
.qf-plan__radio{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2px solid #cfd5de;margin-top:1px;display:grid;place-items:center;transition:border-color .15s ease;}
.qf-plan__radio::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--qf-red);transform:scale(0);transition:transform .15s ease;}
.qf-plan.is-selected{border-color:var(--qf-red);background:#FEF4F3;}
.qf-plan.is-selected .qf-plan__radio{border-color:var(--qf-red);}
.qf-plan.is-selected .qf-plan__radio::after{transform:scale(1);}
.qf-plan:focus-within{box-shadow:0 0 0 3px rgba(236,28,36,.14);}
.qf-plan__name{display:block;font-family:var(--qf-font-head);font-weight:700;font-size:17px;color:var(--qf-ink);margin-bottom:3px;}
.qf-plan__desc{display:block;font-size:13.5px;color:var(--qf-body);line-height:1.4;}
.qf-phero__cta{width:100%;justify-content:center;font-size:18px;padding:19px 28px;border-radius:42px;margin-bottom:28px;}
.qf-cta-suffix{display:none;}
.qf-phero__badges{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.qf-phero__badges li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;}
.qf-phero__badge-ic{color:var(--qf-red);line-height:0;}
.qf-phero__badge-ic svg{width:30px;height:30px;}
.qf-phero__badges li span:last-child{font-family:var(--qf-font-head);font-size:12.5px;line-height:1.3;color:var(--qf-ink);font-weight:600;}

/* ---- Section tabs ---- */
.qf-tabs{background:#fff;border-bottom:1px solid var(--qf-line);}
.qf-tabs__list{display:flex;justify-content:center;flex-wrap:wrap;gap:44px;}
.qf-tabs__list a{display:block;padding:19px 2px;font-family:var(--qf-font-head);font-weight:600;font-size:16px;color:var(--qf-ink);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease;}
.qf-tabs__list a:hover{color:var(--qf-red);}
.qf-tabs__list a.is-active{color:var(--qf-red);border-bottom-color:var(--qf-red);}

/* ---- About Varenicline ---- */
.qf-amed{padding:62px 0 0;}
.qf-amed__grid{background:var(--qf-panel);border-radius:24px;padding:22px;display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:center;}
.qf-amed__media{display:grid;place-items:center;padding:18px;}
.qf-amed__media img{width:100%;max-width:480px;height:auto;}
.qf-amed__card{background:#fff;border-radius:18px;padding:42px 46px;}
.qf-amed__title{font-family:var(--qf-font-head);font-weight:800;font-size:33px;color:var(--qf-dark);margin:0 0 16px;letter-spacing:-.01em;}
.qf-amed__card p{font-size:16px;line-height:1.6;color:var(--qf-body);margin:0 0 14px;}
.qf-amed__card .qf-checklist{margin-top:22px;gap:18px;}
.qf-amed__card .qf-checklist li{font-size:16px;color:#3f4753;}

/* ---- Product stats ---- */
.qf-pstats{padding:34px 0 0;}
.qf-pstats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.qf-pstat{background:var(--qf-panel);border-radius:16px;padding:32px 22px;text-align:center;}
.qf-pstat__num{font-family:var(--qf-font-head);font-weight:800;font-size:40px;color:var(--qf-red);line-height:1;margin-bottom:10px;}
.qf-pstat__label{font-family:var(--qf-font-head);font-weight:700;font-size:19px;color:var(--qf-ink);margin-bottom:5px;}
.qf-pstat__sub{font-size:14px;color:var(--qf-body);line-height:1.4;}

/* ---- Forms (product: gray panel, white cards) ---- */
.qf-pforms{background:#fff;padding:36px 0 72px;}
.qf-pforms__box{background:var(--qf-panel);border-radius:24px;padding:46px 40px;}
.qf-pforms .qf-heading{font-size:30px;color:var(--qf-dark);}
.qf-pforms .qf-forms__grid{margin-top:32px;}
.qf-pforms .qf-formcard{border-color:#EDEFF2;box-shadow:0 6px 18px -14px rgba(15,26,44,.16);}

/* ---- Comparison ---- */
/* Tighten the gray How-It-Works band so it doesn't leave a big void above this heading */
.qf-product #how-it-works{padding-bottom:48px;}
.qf-compare{padding:6px 0 78px;}
.qf-compare .qf-heading{font-size:32px;color:var(--qf-dark);margin-bottom:34px;}
.qf-compare__panel{background:#fff;border:1px solid var(--qf-line);border-radius:24px;padding:9px;box-shadow:var(--qf-shadow-sm);overflow:hidden;}
.qf-compare__board{background:var(--qf-panel);border-radius:17px;padding:18px 40px 30px;}
.qf-compare__table{display:grid;grid-template-columns:minmax(0,1.32fr) 262px minmax(0,1fr);align-items:center;}
.qf-compare__cell{position:relative;padding:14px 0;}
.qf-compare__label{font-family:var(--qf-font-head);font-weight:600;font-size:15.5px;color:var(--qf-ink);text-align:left;padding-right:18px;}
.qf-compare__label--total{font-weight:700;}
.qf-compare__qf{background:var(--qf-cmp-navy);align-self:stretch;display:grid;place-items:center;}
.qf-compare__qf--head{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-height:96px;padding:0 26px 16px;border-bottom:1px solid rgba(255,255,255,.16);border-radius:22px 22px 0 0;}
.qf-compare__logo{height:23px;width:auto;}
.qf-compare__qf--total{display:block;padding:6px 22px 24px;border-radius:0 0 22px 22px;}
.qf-compare__pill{display:block;width:100%;background:#565E72;color:#fff;border-radius:9px;padding:11px 0;font-family:var(--qf-font-head);font-weight:700;font-size:17px;text-align:center;}
.qf-ck{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;}
.qf-ck svg{width:14px;height:14px;color:var(--qf-cmp-navy);}
.qf-compare__other{text-align:center;}
.qf-compare__other--head{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-height:96px;padding:0 14px 16px;border-bottom:1px solid var(--qf-line);font-family:var(--qf-font-head);font-weight:700;font-size:15px;line-height:1.32;color:var(--qf-dark);}
.qf-compare__other--total{font-family:var(--qf-font-head);font-weight:700;font-size:17px;color:var(--qf-body);}
.qf-x{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#94A3B8;}
.qf-x svg{width:13px;height:13px;color:#fff;}
.qf-partial{font-family:var(--qf-font-head);color:#6A7183;font-weight:600;font-size:15.5px;}
.qf-compare__foot{background:#fff;text-align:center;padding:28px 24px 16px;}
.qf-compare__note{max-width:540px;margin:0 auto 20px;font-size:17px;line-height:1.5;color:var(--qf-body);}
.qf-compare__foot .qf-btn{padding:15px 36px;border-radius:42px;}

/* ---- Sticky mobile CTA ---- */
.qf-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--qf-line);box-shadow:0 -10px 28px -12px rgba(15,26,44,.20);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));transform:translateY(115%);transition:transform .28s ease;display:none;}
.qf-sticky.is-visible{transform:translateY(0);}
.qf-sticky__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;}
.qf-sticky__dose{font-size:14px;color:var(--qf-body);}
.qf-sticky__dose strong{color:var(--qf-ink);font-weight:700;}
.qf-sticky__change{font-size:14px;font-weight:700;color:var(--qf-ink);text-decoration:none;white-space:nowrap;}
.qf-sticky__change:hover{color:var(--qf-red);}
.qf-sticky__cta{width:100%;justify-content:center;border-radius:42px;padding:15px;}

/* ---- Tablet ---- */
@media (max-width:1024px){
  .qf-phero__grid{gap:34px;}
  .qf-phero__title{font-size:42px;}
  .qf-phero__sub{font-size:17px;}
  .qf-amed__card{padding:34px 32px;}
  .qf-amed__title{font-size:29px;}
  .qf-compare__board{padding:16px 22px 26px;}
  .qf-compare__table{grid-template-columns:minmax(0,1.25fr) 220px minmax(0,1fr);}
  .qf-compare__qf--head{padding:0 18px 14px;}
}

/* ---- Mobile ---- */
@media (max-width:860px){
  .qf-phero{border-radius:20px 20px 0 0;padding:30px 0 36px;}
  .qf-phero__grid{grid-template-columns:1fr;gap:22px;text-align:center;}
  .qf-phero__media{place-items:center;align-self:center;}
  .qf-phero__media img{max-width:min(100%,430px);}
  .qf-phero__rating{justify-content:center;}
  .qf-phero__title{font-size:31px;line-height:1.12;}
  .qf-phero__sub{font-size:16px;}
  .qf-phero__price{justify-content:center;gap:10px;margin-bottom:18px;}
  .qf-plans{margin-bottom:18px;}
  .qf-plan{text-align:left;}
  .qf-phero__cta{margin-bottom:24px;padding:17px;}
  .qf-cta-suffix{display:inline;}
  .qf-phero__badges{gap:10px;}
  .qf-phero__badges li span:last-child{font-size:11px;}

  .qf-tabs__list{justify-content:space-between;flex-wrap:wrap;gap:7px 10px;overflow:visible;}
  .qf-tabs__list a{white-space:nowrap;padding:13px 1px;font-size:11.5px;}

  .qf-amed{padding:40px 0 0;}
  .qf-amed__grid{grid-template-columns:1fr;gap:6px;padding:16px;}
  .qf-amed__media{padding:10px;}
  .qf-amed__media img{max-width:360px;}
  .qf-amed__card{padding:26px 22px;}
  .qf-amed__title{font-size:26px;}

  .qf-pstats{padding:26px 0 0;}
  .qf-pstats__grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .qf-pstat{padding:24px 16px;}
  .qf-pstat__num{font-size:34px;}
  .qf-pstat__label{font-size:17px;}

  .qf-pforms{padding:26px 0 48px;}
  .qf-pforms__box{padding:30px 18px;}
  .qf-pforms .qf-heading{font-size:24px;}

  .qf-compare{padding:42px 0 50px;}
  .qf-compare .qf-heading{font-size:24px;margin-bottom:24px;}
  .qf-compare__panel{padding:7px;}
  .qf-compare__board{padding:14px 14px 22px;}
  .qf-compare__table{grid-template-columns:minmax(0,1.15fr) minmax(94px,1fr) minmax(62px,.86fr);}
  .qf-compare__cell{padding:11px 0;}
  .qf-compare__label{font-size:12.5px;padding-right:8px;}
  .qf-compare__qf--head{min-height:74px;padding:0 10px 12px;}
  .qf-compare__logo{height:16px;}
  .qf-compare__other--head{min-height:74px;padding:0 6px 12px;font-size:11.5px;}
  .qf-ck,.qf-x{width:25px;height:25px;}
  .qf-ck svg{width:12px;height:12px;}
  .qf-x svg{width:11px;height:11px;}
  .qf-partial{font-size:12.5px;}
  .qf-compare__pill{font-size:14px;padding:9px 0;}
  .qf-compare__qf--total{padding:6px 10px 18px;}
  .qf-compare__other--total{font-size:14px;}
  .qf-compare__foot{padding:22px 14px 12px;}
  .qf-compare__note{font-size:15px;}

  .qf-sticky{display:block;}
}

@media (max-width:560px){
  .qf-phero__title{font-size:27px;}
  .qf-phero__badges{gap:7px;}
  .qf-compare__table{grid-template-columns:minmax(0,1.1fr) minmax(80px,.95fr) minmax(52px,.78fr);}
  .qf-compare__label{font-size:11.5px;}
  .qf-compare__other--head{font-size:10.5px;padding:0 4px 12px;}
  .qf-compare__qf--head{padding:0 6px 12px;}
}

@media (max-width:384px){
  .qf-tabs__list{justify-content:center;gap:8px 14px;}
  .qf-tabs__list a{font-size:11px;}
}

/* Product page uses title-case buttons (per product design); home stays uppercase. */
.qf-product .qf-btn{text-transform:none;letter-spacing:.01em;}

/* =========================================================
   v38 — Site-wide promo bar  +  Design-G mobile hero
   Desktop hero is unchanged (only shifts down by the promo
   bar's height). The new hero blocks are mobile-only.
   ========================================================= */

/* ---- Announcement / promo bar (every page, desktop + mobile) ---- */
.qf-promo{
  position:relative;z-index:65;
  display:flex;align-items:center;justify-content:center;
  background:var(--qf-red);color:#fff;
  font-family:var(--qf-font-head);font-weight:700;
  font-size:13.5px;letter-spacing:.005em;line-height:1.3;
  text-align:center;padding:10px 46px;
}
.qf-promo__inner{display:inline-flex;align-items:center;gap:9px;max-width:1040px;}
.qf-promo__ic{flex:0 0 auto;display:inline-flex;color:#fff;}
.qf-promo__ic svg{width:16px;height:16px;}
.qf-promo b{font-weight:800;}
.qf-promo__close{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:0;color:#fff;opacity:.82;cursor:pointer;
  font-size:21px;line-height:1;padding:2px 6px;
}
.qf-promo__close:hover{opacity:1;}
.qf-promo.is-hidden{display:none;}
/* Mobile: the full sentence can't fit one readable line, so it renders as a
   deliberate two-line stack split at the "·" (dot dropped, tighter padding)
   with the shield icon kept beside it, same construction as desktop. When the
   promo text has no "·" there is no mobile span and the full text keeps
   rendering on all sizes. */
.qf-promo__txt--mobile{display:none;}
@media (max-width:560px){
  .qf-promo{padding:7px 40px;font-size:13px;line-height:1.35;}
  .qf-promo__txt--full{display:none;}
  .qf-promo__txt--mobile{display:inline;}
}

/* The header now STICKS beneath the promo bar (instead of being fixed), so the
   bar is never covered and the page shifts down cleanly. The homepage keeps its
   transparent-overlay-on-hero look via the negative margin on .qf-hero below. */
.qf-header--overlay{position:sticky;top:0;}
body.admin-bar .qf-header--overlay{top:32px;}
@media (max-width:782px){ body.admin-bar .qf-header--overlay{top:46px;} }
.qf-hero{margin-top:-75px;}              /* pull hero up under the (75px) sticky header */

/* New mobile-only hero blocks: hidden on desktop / tablet */
.qf-hero__product,.qf-hero__divxs,.qf-hero__proof,.qf-hero__proofnote{display:none;}

@media (max-width:860px){
  /* keep the mobile hero to a tidy phone width, centered */
  .qf-hero__copy{max-width:430px;margin-left:auto;margin-right:auto;}

  /* Design-G background — soft tri-tone gradient, no hero photo */
  .qf-hero{background:linear-gradient(168deg,#eef5f8 0%,#f4f1f4 52%,#fdeef0 100%);}
  .qf-hero__bg{display:none;}
  .qf-hero__inner{padding:92px 0 30px;}
  .qf-hero h1{font-size:42px;}

  /* explicit running order of the centered column */
  .qf-hero h1{order:1;}
  .qf-hero__tagline{order:2;margin-bottom:18px;}
  .qf-hero__product{order:3;}
  .qf-hero__copy .qf-btn{order:4;width:100%;max-width:380px;margin:0 auto 16px;justify-content:center;}
  .qf-hero__divxs{order:5;}
  .qf-hero__proof{order:6;}
  .qf-hero__proofnote{order:7;}
  .qf-hero__badges{display:none;}

  /* product image card with floating chips */
  .qf-hero__product{display:block;position:relative;width:280px;max-width:84%;margin:4px auto 18px;}
  .qf-hero__glow{position:absolute;inset:-4% 0 4%;background:radial-gradient(58% 54% at 50% 46%,#fff 0%,rgba(255,255,255,.65) 46%,rgba(255,255,255,0) 72%);border-radius:50%;}
  .qf-hero__product img{position:relative;width:100%;height:auto;filter:drop-shadow(0 24px 32px rgba(15,26,44,.22));}
  .qf-hero__chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:12px;box-shadow:0 12px 26px -12px rgba(15,26,44,.3);padding:8px 12px;font-family:var(--qf-font-head);font-weight:800;font-size:12.5px;color:var(--qf-ink);white-space:nowrap;}
  .qf-hero__chip-ic{display:inline-flex;color:var(--qf-red);}
  .qf-hero__chip-ic svg{width:15px;height:15px;}
  .qf-hero__chip--a{top:4%;left:-8px;}
  .qf-hero__chip--b{bottom:8%;right:-8px;}

  /* thin divider + 3-up proof stats */
  .qf-hero__divxs{display:block;height:1px;background:var(--qf-line);max-width:300px;margin:0 auto 16px;}
  .qf-hero__proof{display:grid;grid-template-columns:repeat(3,1fr);max-width:360px;margin:0 auto;}
  .qf-hero__ps{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 8px;}
  .qf-hero__ps + .qf-hero__ps::before{content:"";position:absolute;left:0;top:14%;height:72%;width:1px;background:var(--qf-line);}
  .qf-hero__psn{font-family:var(--qf-font-head);font-weight:800;font-size:25px;line-height:1.05;letter-spacing:-.01em;color:var(--qf-ink);}
  .qf-hero__psl{font-size:11.5px;font-weight:600;color:var(--qf-muted);line-height:1.25;margin-top:3px;}
  .qf-hero__proofnote{display:block;text-align:center;font-size:10.5px;color:var(--qf-muted);margin:9px 0 0;}
}

@media (max-width:384px){
  .qf-hero h1{font-size:36px;}
  .qf-hero__product{width:250px;}
  .qf-promo{font-size:12px;}
  .qf-promo__ic svg{width:14px;height:14px;}
  .qf-promo__inner{gap:7px;}
}

/* =========================================================
   v39 — Product page buy flow (CTA → cart → checkout)
   The plan radios sit in #qf-buy-form; the four "Quit Nicotine Now"
   buttons submit it. These rules keep the <button> CTAs visually
   identical to the links they replaced, with no layout shift.
   ========================================================= */
.qf-buyform{display:contents;}                 /* transparent wrapper — no box, no spacing change */
button.qf-btn{-webkit-appearance:none;appearance:none;line-height:inherit;}

/* =========================================================
   v40 — Checkout (classic [woocommerce_checkout]).
   Scoped to body.woocommerce-checkout so it only styles the
   checkout page. Targets classic checkout markup; on a Checkout
   *block* page these selectors don't match (no harm). No payment
   behaviour is changed — purely presentation.
   ========================================================= */

/* Use the custom heading; hide the default page title; tighten width */
body.woocommerce-checkout .qf-page__title{display:none;}
body.woocommerce-checkout .qf-page{padding:36px 0 80px;}
body.woocommerce-checkout .qf-page__narrow{max-width:680px;}
body.woocommerce-checkout .woocommerce{width:100%;}

/* ---- Top heading ---- */
.qf-co-head{text-align:center;margin:0 0 24px;}
.qf-co-head h1{font-family:var(--qf-font-head);font-size:32px;font-weight:800;color:var(--qf-ink);letter-spacing:-.01em;margin:0 0 8px;line-height:1.15;}
.qf-co-head p{color:var(--qf-body);font-size:16px;margin:0;}

/* ---- Login / coupon toggles: quiet info bars ---- */
body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-coupon-toggle{margin:0 0 16px;}
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  background:var(--qf-gray);border:1px solid var(--qf-line);border-left:3px solid var(--qf-red);
  border-radius:10px;color:var(--qf-ink);font-size:14px;padding:12px 16px;margin:0;list-style:none;
}
body.woocommerce-checkout .woocommerce-info a,
body.woocommerce-checkout .woocommerce-error a{color:var(--qf-red);}
body.woocommerce-checkout .woocommerce-form-login,
body.woocommerce-checkout .checkout_coupon{
  background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);
  box-shadow:var(--qf-shadow-sm);padding:20px;margin:0 0 22px;
}

/* ---- Card shells: details / order summary table / payment ---- */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-checkout-review-order-table,
body.woocommerce-checkout #payment{
  background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);
  box-shadow:var(--qf-shadow-sm);margin:0 0 22px;overflow:hidden;
}
body.woocommerce-checkout #order_review{margin:0;padding:0;border:0;background:none;}

/* Red section header bars */
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #payment::before{
  display:block;background:var(--qf-red);color:#fff;font-family:var(--qf-font-head);
  font-weight:800;font-size:18px;line-height:1.2;margin:0;padding:15px 22px;
}
body.woocommerce-checkout #payment::before{content:var(--qf-sec-payment,"Payment");}
/* "Order summary" header sits flush on top of the table card */
body.woocommerce-checkout #order_review_heading{
  border-radius:var(--qf-radius) var(--qf-radius) 0 0;margin:0;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table{
  border-top:0;border-radius:0 0 var(--qf-radius) var(--qf-radius);
}

/* Field-box padding (the body of each card) */
body.woocommerce-checkout .woocommerce-billing-fields > .woocommerce-billing-fields__field-wrapper{padding:20px 22px 6px;}
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields{margin:0 0 22px;}
body.woocommerce-checkout .woocommerce-additional-fields{
  background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);box-shadow:var(--qf-shadow-sm);padding:18px 22px;
}

/* ---- Stack billing fields; first/last side by side ---- */
body.woocommerce-checkout #customer_details .col-1,
body.woocommerce-checkout #customer_details .col-2{float:none;width:auto;padding:0;}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row{float:none !important;width:auto !important;margin:0 0 14px;padding:0;}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first{grid-column:1;}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last{grid-column:2;}
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-wide,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first.form-row-last{grid-column:1 / -1;}

/* ---- Labels + inputs ---- */
body.woocommerce-checkout .form-row label{display:block;font-family:var(--qf-font-head);font-weight:700;font-size:14px;color:var(--qf-ink);margin:0 0 6px;}
body.woocommerce-checkout .form-row .required{color:var(--qf-red);border:0;}
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .select2-container .select2-selection,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout #payment .wc-credit-card-form input{
  width:100%;background:#fff;border:1px solid var(--qf-line);border-radius:10px;
  padding:13px 14px;font-family:var(--qf-font-body);font-size:15px;color:var(--qf-ink);box-shadow:none;min-height:50px;line-height:1.3;
}
body.woocommerce-checkout .select2-container--default .select2-selection--single{display:flex;align-items:center;}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:normal;padding:0;color:var(--qf-ink);}
body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:48px;}
body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus{outline:0;border-color:var(--qf-red);box-shadow:0 0 0 3px var(--qf-red-soft);}
body.woocommerce-checkout input::placeholder,
body.woocommerce-checkout textarea::placeholder{color:var(--qf-muted);}

/* ---- Patient intake: radios, hidden DOB labels, in-card section bars ---- */
body.woocommerce-checkout .screen-reader-text{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
body.woocommerce-checkout .qf-co-radio > label{display:block;font-family:var(--qf-font-head);font-weight:700;font-size:15px;color:var(--qf-ink);margin:0 0 9px;}
body.woocommerce-checkout .qf-co-radio .woocommerce-input-wrapper input.input-radio{width:auto;min-height:0;height:auto;margin:0 8px 0 0;padding:0;box-shadow:none;vertical-align:middle;accent-color:var(--qf-red);}
body.woocommerce-checkout .qf-co-radio .woocommerce-input-wrapper label{display:inline-block;margin:0 24px 0 0;font-family:var(--qf-font-body);font-weight:600;font-size:15px;color:var(--qf-ink);vertical-align:middle;cursor:pointer;}
/* WooCommerce appends a required "*" to every OPTION label of a required radio
   (Yes/No, Male/Female). Hide it on the option labels only — the question label
   above keeps its asterisk. */
body.woocommerce-checkout .form-row label.radio .required{display:none;}

/* Section header bars inside the details card (break out to full card width) */
body.woocommerce-checkout .qf-co-health::before,
body.woocommerce-checkout .qf-co-ship::before{
  display:block;margin:26px -22px 20px;padding:15px 22px;
  background:var(--qf-red);color:#fff;
  font-family:var(--qf-font-head);font-weight:800;font-size:18px;line-height:1.2;
}
body.woocommerce-checkout .qf-co-health::before{content:var(--qf-sec-medical,"Medical history");}
body.woocommerce-checkout .qf-co-ship::before{content:var(--qf-sec-shipping,"Shipping address");}

/* Conditional "Yes" detail box — hidden until revealed by JS */
body.woocommerce-checkout .qf-co-detail{display:none;margin-top:-2px;}
body.woocommerce-checkout .qf-co-detail.qf-co-detail--show{display:block;}
body.woocommerce-checkout .qf-co-detail textarea{min-height:84px;}

/* ---- Order summary table ---- */
body.woocommerce-checkout .woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;font-size:15px;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td{padding:14px 22px;border:0;border-top:1px solid var(--qf-line);text-align:left;color:var(--qf-ink);}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td{text-align:right;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td:first-child,
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:first-child{text-align:left;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead{display:none;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name{font-weight:700;text-align:left;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{font-size:18px;font-weight:800;}
/* Separator structure matched to the reference layout: one line under the line
   items, one line above the Total — no lines between the summary rows. */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr:first-child th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr:first-child td{border-top:0;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr:last-child th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr:last-child td{border-bottom:1px solid var(--qf-line);}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{border-top:0;}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .order-total td{border-top:1px solid var(--qf-line);}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount{color:var(--qf-ink);}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount th{color:var(--qf-red);}

/* ---- Payment box ---- */
body.woocommerce-checkout #payment{background:#fff;}
body.woocommerce-checkout #payment .payment_methods{margin:0;padding:18px 22px 4px;list-style:none;border:0;}
body.woocommerce-checkout #payment .payment_methods li{margin:0 0 10px;list-style:none;}
body.woocommerce-checkout #payment .payment_methods li > label{font-family:var(--qf-font-head);font-weight:700;color:var(--qf-ink);}
body.woocommerce-checkout #payment div.payment_box{background:var(--qf-gray);border-radius:10px;margin:10px 0 4px;padding:14px 16px;font-size:14px;color:var(--qf-body);}
body.woocommerce-checkout #payment div.payment_box::before{display:none;}
body.woocommerce-checkout #payment .place-order{padding:6px 22px 22px;border:0;display:block;}
body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper{padding:0 22px;margin:0 0 6px;font-size:14px;}

/* ---- Terms & Conditions checkbox (above Place order) ---- */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row{padding:0;margin:0 0 14px;}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox{display:flex;align-items:flex-start;gap:12px;margin:0;min-height:44px;padding:6px 0;font-family:var(--qf-font-body);font-weight:600;font-size:15px;line-height:1.5;color:var(--qf-ink);cursor:pointer;}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input.woocommerce-form__input-checkbox{width:20px;height:20px;min-height:0;flex:none;margin:3px 0 0;padding:0;accent-color:var(--qf-red);box-shadow:none;cursor:pointer;}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a{color:var(--qf-red);font-weight:700;text-decoration:none;display:inline-block;padding:2px 1px;}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a:hover{text-decoration:underline;}
/* Match the reference look: no asterisk on the agreement line (WooCommerce still enforces it) */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .required{display:none;}

/* Reassurance + secure badge */
.qf-co-secure{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;width:100%;flex:1 0 100%;order:2;clear:both;position:relative;z-index:1;margin:14px 0 0;color:var(--qf-body);font-size:13px;font-weight:600;}
.qf-co-secure span{white-space:nowrap;}
.qf-co-secure svg{width:16px;height:16px;color:var(--qf-red);flex:none;}

/* ---- Place Order button (brand) ---- */
body.woocommerce-checkout #place_order{
  width:100%;background:var(--qf-red);color:#fff;border:0;border-radius:42px;cursor:pointer;
  font-family:var(--qf-font-head);font-weight:800;font-size:18px;letter-spacing:0;text-transform:none;
  padding:18px 28px;margin:0;box-shadow:0 14px 26px -12px rgba(236,28,36,.7);transition:background .15s,transform .15s;
}
body.woocommerce-checkout #place_order:hover{background:var(--qf-red-dark);transform:translateY(-2px);}

/* ---- Express checkout skeleton (Apple / Google / Amazon Pay slot) ----
   Stripe mounts the wallet buttons a couple of seconds after paint; without a
   reserved slot the whole form jumps down when they arrive. The wrapper holds
   the space from first paint (pure CSS), main.js drops shimmer placeholders in
   and removes them the instant the real buttons mount — or fades the slot away
   after 6s if nothing becomes ready. Presentation only; payments untouched. */
body.woocommerce-checkout .wcpay-express-checkout-wrapper{position:relative;min-height:var(--qf-exp-reserve,118px);}
/* Timeout path only: no buttons became ready — collapse the reserved space smoothly. */
body.woocommerce-checkout .wcpay-express-checkout-wrapper.qf-exp-off{min-height:0;transition:min-height .35s ease;}
/* WooPayments gives the element margin-top:12px when it is not the first child;
   our overlay div is the DOM first child during the crossfade, which would bump
   the height 12px→4px when the overlay is removed. Pin it to the settled value. */
body.woocommerce-checkout .wcpay-express-checkout-wrapper #wcpay-express-checkout-element.is-ready:not(:first-child){margin-top:4px;}
/* The skeleton is an absolute overlay from birth — it never participates in
   layout, so nothing Stripe inserts beneath it can stack heights or shift the
   form. The reserved space comes solely from the wrapper's min-height. */
.qf-exp-skel{position:absolute;top:0;left:0;right:0;z-index:1;pointer-events:none;transition:opacity .35s ease;}
/* Crossfade on mount: fade the overlay over the same window WooPayments fades
   the buttons in, so the slot is never blank for a frame. */
.qf-exp-skel--fade{animation:qf-skel-out .45s ease forwards;}
@keyframes qf-skel-out{from{opacity:1;}to{opacity:0;}}
.qf-exp-skel__row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:4px;}
.qf-exp-skel__row i,
.qf-exp-skel__or i{display:block;border-radius:4px;background:linear-gradient(100deg,#e8ebef 40%,#f6f8fa 50%,#e8ebef 60%);background-size:200% 100%;animation:qf-shimmer 1.2s linear infinite;}
.qf-exp-skel__row i{height:48px;}
.qf-exp-skel__or{text-align:center;margin:24px 0 0;line-height:1;}
.qf-exp-skel__or i{display:inline-block;width:64px;height:14px;border-radius:7px;}
@keyframes qf-shimmer{to{background-position:-200% 0;}}
.qf-exp-skel--off{opacity:0;}

/* Old-browser payment notice (injected by main.js when the browser can't run
   WooPayments' scripts). */
body.woocommerce-checkout .qf-browser-notice{margin:0 0 18px;padding:14px 18px;border-radius:10px;background:#FFF4E5;border:1px solid #F0C36D;color:#6b4a12;font-family:var(--qf-font-body);font-size:14.5px;line-height:1.5;}
body.woocommerce-checkout .qf-browser-notice b{display:block;margin-bottom:2px;}

/* ---- Order summary extra rows: discount + "Included" trust row ---- */
body.woocommerce-checkout tr.qf-sum-discount td{color:var(--qf-red);font-weight:800;}
body.woocommerce-checkout tr.qf-sum-included td.qf-sum-included__val{font-weight:800;}
.qf-info{position:relative;display:inline-block;margin-left:6px;vertical-align:-2px;line-height:0;}
.qf-info__btn{width:18px;height:18px;border-radius:50%;border:1.5px solid #9aa3b2;background:transparent;color:#9aa3b2;font:italic 700 11px/15px Georgia,serif;text-align:center;cursor:pointer;padding:0;display:inline-block;}
.qf-info__btn:hover,.qf-info.is-open .qf-info__btn{border-color:var(--qf-red);color:var(--qf-red);}
.qf-info__bubble{position:absolute;bottom:calc(100% + 11px);left:50%;transform:translateX(-38%);width:min(270px,72vw);background:#1C2333;color:#fff;font-family:var(--qf-font-body);font-weight:500;font-size:13px;line-height:1.55;text-transform:none;letter-spacing:0;padding:12px 14px;border-radius:10px;box-shadow:0 12px 30px rgba(16,24,40,.28);opacity:0;visibility:hidden;transition:opacity .15s ease;z-index:40;text-align:left;white-space:normal;}
.qf-info__bubble::after{content:"";position:absolute;top:100%;left:38%;margin-left:-6px;border:6px solid transparent;border-top-color:#1C2333;}
.qf-info.is-open .qf-info__bubble{opacity:1;visibility:visible;}
@media (hover:hover){.qf-info:hover .qf-info__bubble,.qf-info__btn:focus-visible + .qf-info__bubble{opacity:1;visibility:visible;}}
@media (prefers-reduced-motion:reduce){.qf-exp-skel__row i,.qf-exp-skel__or i{animation:none;}}

/* ---- Notices ---- */
/* ---- WooCommerce notices (error / success / info) ----
   The theme's list reset strips Woo's default notice padding while Woo's
   absolutely-positioned icon remains, overlapping the first characters. Own
   the styling completely: white card, colored accent, icon in fixed gutter. */
.woocommerce-NoticeGroup{scroll-margin-top:120px;}
ul.woocommerce-error,ul.woocommerce-message,ul.woocommerce-info,
div.woocommerce-error,div.woocommerce-message,div.woocommerce-info{
  list-style:none;margin:0 0 22px;padding:0;background:#fff;
  border:1px solid var(--qf-line);border-left:4px solid var(--qf-red);
  border-radius:12px;box-shadow:var(--qf-shadow-sm);
  font-family:var(--qf-font-body);font-size:15px;font-weight:600;color:var(--qf-ink);line-height:1.5;
}
ul.woocommerce-message,div.woocommerce-message{border-left-color:#1E9E50;}
ul.woocommerce-info,div.woocommerce-info{border-left-color:#64748B;}
ul.woocommerce-error::before,ul.woocommerce-message::before,ul.woocommerce-info::before{content:none;}
ul.woocommerce-error li,ul.woocommerce-message li,ul.woocommerce-info li,
div.woocommerce-error,div.woocommerce-message,div.woocommerce-info{
  position:relative;margin:0;padding:14px 18px 14px 48px;
}
ul.woocommerce-error li + li,ul.woocommerce-message li + li,ul.woocommerce-info li + li{border-top:1px solid var(--qf-line);}
ul.woocommerce-error li::before,div.woocommerce-error::before{
  content:"";position:absolute;left:16px;top:15px;width:20px;height:20px;background:no-repeat center/20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23C42C37'/%3E%3Crect x='9' y='4.5' width='2' height='7.5' rx='1' fill='%23fff'/%3E%3Ccircle cx='10' cy='15' r='1.3' fill='%23fff'/%3E%3C/svg%3E");
}
ul.woocommerce-message li::before,div.woocommerce-message::before{
  content:"";position:absolute;left:16px;top:15px;width:20px;height:20px;background:no-repeat center/20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%231E9E50'/%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' stroke='%23fff' stroke-width='2.2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
ul.woocommerce-info li::before,div.woocommerce-info::before{
  content:"";position:absolute;left:16px;top:15px;width:20px;height:20px;background:no-repeat center/20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%2364748B'/%3E%3Crect x='9' y='8.5' width='2' height='7' rx='1' fill='%23fff'/%3E%3Ccircle cx='10' cy='5.5' r='1.3' fill='%23fff'/%3E%3C/svg%3E");
}
div.woocommerce-message .button,ul.woocommerce-message .button{float:right;margin-left:12px;}
/* The login/coupon toggle strips reuse .woocommerce-info with their own compact
   layout (no icon gutter) — keep them icon-free. */
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before{content:none;}

/* Removed sections: single address only, no order notes, no coupon row, no login prompt */
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields,
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .checkout_coupon,
body.woocommerce-checkout .woocommerce-form-coupon,
body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-login{display:none !important;}

/* Order summary: hide the redundant Subtotal row (line item + Total still show) */
body.woocommerce-checkout .cart-subtotal{display:none !important;}

/* ---- Mobile ---- */
@media (max-width:560px){
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper{display:block;}
  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row{margin:0 0 14px;}
  .qf-co-head h1{font-size:26px;}
}

/* ============================================================
   ORDER RECEIVED (thank-you) PAGE — scoped to body.qf-thankyou
   ============================================================ */
body.qf-thankyou .qf-page__narrow{max-width:680px;}

/* Confirmation line (strip WooCommerce's default box) */
body.qf-thankyou .woocommerce-thankyou-order-received{
  background:none;border:0;padding:0;margin:0 0 22px;font-size:16px;color:var(--qf-body);
}
body.qf-thankyou .woocommerce-thankyou-order-received::before{display:none;}

/* Next-step questionnaire callout */
.qf-ty-cta{background:var(--qf-red-soft);border:1px solid var(--qf-red);border-radius:var(--qf-radius);overflow:hidden;box-shadow:var(--qf-shadow-sm);margin:0 0 26px;}
.qf-ty-cta__head{background:var(--qf-red);color:#fff;font-family:var(--qf-font-head);font-weight:800;font-size:18px;line-height:1.2;padding:15px 22px;}
.qf-ty-cta__body{padding:18px 22px 20px;}
.qf-ty-cta__body p{margin:0 0 8px;color:var(--qf-ink);font-size:15.5px;line-height:1.55;}
.qf-ty-cta__action{margin:8px 0 0 !important;font-size:16px;}
.qf-ty-cta__action .qf-ty-link{font-family:var(--qf-font-head);font-weight:800;font-size:18px;color:var(--qf-red);text-decoration:underline;text-underline-offset:2px;}
.qf-ty-cta__action .qf-ty-link:hover{color:var(--qf-red-dark);}

/* Order overview (order #, date, total, payment) -> card grid */
/* WooCommerce's stock CSS puts clearfix ::before/::after (content:" ";display:table)
   on ul.order_details. Inside a CSS grid those pseudo-elements become real grid
   items, producing empty "boxed" cells and pushing real content into wrong cells.
   Neutralize them so only the real <li> children occupy the grid. */
body.qf-thankyou .woocommerce-order-overview::before,
body.qf-thankyou .woocommerce-order-overview::after{
  content:none !important;display:none !important;
}
body.qf-thankyou .woocommerce-order-overview{
  list-style:none !important;margin:0 0 26px !important;padding:18px 22px;
  display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;
  background:#fff;border:1px solid var(--qf-line);border-radius:var(--qf-radius);box-shadow:var(--qf-shadow-sm);
}
body.qf-thankyou .woocommerce-order-overview li{
  margin:0 !important;padding:0 !important;border:0 !important;float:none !important;list-style:none;
  font-size:12px;color:var(--qf-muted);text-transform:uppercase;letter-spacing:.05em;font-weight:700;
}
body.qf-thankyou .woocommerce-order-overview li strong{
  display:block;margin-top:4px;font-family:var(--qf-font-head);font-size:17px;color:var(--qf-ink);text-transform:none;letter-spacing:0;font-weight:800;
}

/* Order details -> red-header card + table */
body.qf-thankyou .woocommerce-order-details{margin:0 0 26px;}
body.qf-thankyou .woocommerce-order-details__title{
  background:var(--qf-red);color:#fff;font-family:var(--qf-font-head);font-weight:800;font-size:18px;line-height:1.2;
  margin:0 !important;padding:15px 22px;border-radius:var(--qf-radius) var(--qf-radius) 0 0;
}
body.qf-thankyou .woocommerce-table--order-details{
  width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--qf-line);border-top:0;
  border-radius:0 0 var(--qf-radius) var(--qf-radius);overflow:hidden;box-shadow:var(--qf-shadow-sm);font-size:15px;margin:0;
}
body.qf-thankyou .woocommerce-table--order-details th,
body.qf-thankyou .woocommerce-table--order-details td{padding:13px 22px;border:0 !important;border-top:1px solid var(--qf-line) !important;color:var(--qf-ink);text-align:left;}
body.qf-thankyou .woocommerce-table--order-details thead th{font-family:var(--qf-font-head);font-weight:700;background:var(--qf-gray);border-top:0 !important;}
body.qf-thankyou .woocommerce-table--order-details thead th:last-child,
body.qf-thankyou .woocommerce-table--order-details td.product-total,
body.qf-thankyou .woocommerce-table--order-details tfoot td{text-align:right;}
body.qf-thankyou .woocommerce-table--order-details .product-name{font-weight:700;}
body.qf-thankyou .woocommerce-table--order-details tfoot th{font-weight:700;}
body.qf-thankyou .woocommerce-table--order-details tfoot .order-total th,
body.qf-thankyou .woocommerce-table--order-details tfoot .order-total td{font-size:18px;font-weight:800;}
body.qf-thankyou .woocommerce-table--order-details a{color:var(--qf-red);}

/* Customer details -> address cards */
body.qf-thankyou .woocommerce-customer-details{margin:0;}
/* Same stock-clearfix problem as the overview: .col2-set (the addresses wrapper)
   carries ::before/::after clearfix pseudos that turn into empty grid cells and
   stagger the billing/shipping cards diagonally. Kill the pseudos and the stock
   floats so the two real columns sit side by side in the grid. */
body.qf-thankyou .woocommerce-customer-details .col2-set::before,
body.qf-thankyou .woocommerce-customer-details .col2-set::after,
body.qf-thankyou .woocommerce-customer-details .woocommerce-columns::before,
body.qf-thankyou .woocommerce-customer-details .woocommerce-columns::after{
  content:none !important;display:none !important;
}
body.qf-thankyou .woocommerce-customer-details .woocommerce-columns--addresses,
body.qf-thankyou .woocommerce-customer-details .col2-set{
  display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0;width:100%;
}
body.qf-thankyou .woocommerce-customer-details .col-1,
body.qf-thankyou .woocommerce-customer-details .col-2,
body.qf-thankyou .woocommerce-customer-details .woocommerce-column{
  width:auto !important;float:none !important;padding:0;margin:0;
}
body.qf-thankyou .woocommerce-column__title{
  background:var(--qf-red);color:#fff;font-family:var(--qf-font-head);font-weight:800;font-size:16px;line-height:1.2;
  margin:0 !important;padding:13px 18px;border-radius:var(--qf-radius) var(--qf-radius) 0 0;
}
body.qf-thankyou .woocommerce-customer-details address{
  border:1px solid var(--qf-line);border-top:0;border-radius:0 0 var(--qf-radius) var(--qf-radius);
  background:#fff;box-shadow:var(--qf-shadow-sm);padding:16px 18px;margin:0;
  font-style:normal;font-size:15px;line-height:1.65;color:var(--qf-ink);
}
body.qf-thankyou .woocommerce-customer-details address .woocommerce-customer-details--email,
body.qf-thankyou .woocommerce-customer-details address p{margin:8px 0 0;color:var(--qf-body);font-size:14px;}

/* Mobile */
@media (max-width:560px){
  body.qf-thankyou .woocommerce-customer-details .woocommerce-columns--addresses,
  body.qf-thankyou .woocommerce-customer-details .col2-set{grid-template-columns:1fr;}
}
