/**
 * Floor Plan Single Template - Styles
 * v2.0.0
 * Only loaded on singular floor-plans pages
 *
 * ZERO hero overrides. Hero uses identical structure + classes as homepage.
 * All hero styling comes from swh-global.css.
 */

/* ------------------------------------------------------------------ */
/* Breadcrumb                                                         */
/* ------------------------------------------------------------------ */
#fp-breadcrumb { position:sticky !important; top:114px !important; z-index:50 !important; }
.fp-breadcrumb__list { display:flex; align-items:center; gap:8px; list-style:none; font-size:13px; padding:0; margin:0; }
.fp-breadcrumb__list a { color:var(--gray, #888); transition:color 0.3s; text-decoration:none; }
.fp-breadcrumb__list a:hover { color:var(--red); }
.fp-breadcrumb__sep { color:var(--gray-light, #c8c8c8); font-size:11px; }
.fp-breadcrumb__current { color:var(--charcoal, #3a3a3a); font-weight:600; }
.fp-breadcrumb__btn { font-size:12px !important; padding:8px 16px !important; letter-spacing:0.6px !important; white-space:nowrap; }
nav.breadcrumb { padding:16px 0; background:var(--off-white, #fafaf8); border-bottom:1px solid rgba(0,0,0,0.06); }
nav.breadcrumb .breadcrumb-list { display:flex !important; align-items:center; gap:8px; list-style:none !important; font-size:13px; padding:0; margin:0; }
nav.breadcrumb .breadcrumb-list a { color:var(--gray, #888); transition:color 0.3s; text-decoration:none; }
nav.breadcrumb .breadcrumb-list a:hover { color:var(--red); }
nav.breadcrumb .bc-sep { color:var(--gray-light, #c8c8c8); font-size:11px; }
nav.breadcrumb .bc-current { color:var(--charcoal, #3a3a3a); font-weight:600; }

/* ------------------------------------------------------------------ */
/* Hero Section (reference layout - full bleed, video/image bg)       */
/* ------------------------------------------------------------------ */
.hero { position:relative; height:85vh; min-height:600px; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:1; overflow:hidden; }
.hero-video { position:absolute; top:50%; left:50%; min-width:100%; min-height:100%; width:auto; height:auto; transform:translate(-50%,-50%); object-fit:cover; }
.hero-img { position:absolute; inset:0; background-size:cover; background-position:center; }
.hero-overlay { position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,rgba(0,0,0,0.5) 0%,rgba(0,0,0,0.1) 35%,rgba(0,0,0,0.15) 60%,rgba(0,0,0,0.7) 100%),linear-gradient(90deg,rgba(0,0,0,0.5) 0%,transparent 55%); }
.hero-accent-line { position:absolute; bottom:0; left:0; right:0; height:4px; background:var(--red); z-index:10; }
.hero .hero-slide-text { position:absolute; top:50%; transform:translateY(-50%); left:80px; max-width:720px; z-index:5; }
.hero .hero-indicators { position:absolute; z-index:10; bottom:48px; left:80px; display:flex; gap:10px; align-items:center; }
.hero .hero-dot { width:52px; height:3px; background:rgba(255,255,255,0.2); border-radius:2px; cursor:pointer; position:relative; overflow:hidden; }
.hero .hero-dot::after { content:''; position:absolute; left:0; top:0; height:100%; width:0; background:var(--red); border-radius:2px; }
.hero .hero-dot.active::after { animation:dotFill 6s linear forwards; }
.hero .hero-counter { position:absolute; z-index:10; bottom:40px; right:80px; font-family:var(--font-display,'Playfair Display',Georgia,serif); color:rgba(255,255,255,0.4); font-size:16px; letter-spacing:4px; }
.hero .hero-counter .cur { font-size:44px; font-weight:400; color:#fff; line-height:1; }
.hero-badge { position:absolute; z-index:10; top:50%; right:80px; transform:translateY(-50%); text-align:center; padding:30px 26px; background:rgba(0,0,0,0.45); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,0.08); border-radius:6px; }
.hero-badge-num { font-family:var(--font-display,'Playfair Display',Georgia,serif); font-size:52px; font-weight:400; color:#fff; line-height:1; }
.hero-badge-label { font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.5); margin-top:8px; line-height:1.5; }
.hero-badge-accent { width:28px; height:2px; background:var(--red); margin:10px auto 0; }
.hero .scroll-cue { position:absolute; z-index:10; bottom:48px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:6px; color:rgba(255,255,255,0.35); font-size:9px; letter-spacing:3px; text-transform:uppercase; margin:0; }

/* ------------------------------------------------------------------ */
/* Shared container + section heading elements                        */
/* ------------------------------------------------------------------ */
.section-eyebrow { display:inline-flex; align-items:center; gap:12px; font-size:11px; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:var(--red); margin-bottom:16px; }
.section-eyebrow::before { content:''; width:36px; height:1.5px; background:var(--red); }
.section-heading { font-family:'Playfair Display',Georgia,serif !important; font-size:clamp(30px,3.5vw,50px); font-weight:500; line-height:1.15; color:var(--charcoal, #3a3a3a); margin-bottom:20px; }
.section-heading em { font-style:italic; color:var(--red); }
.section-desc { font-size:16px; line-height:1.75; color:var(--gray-dark, #555); font-weight:300; max-width:560px; }

/* ------------------------------------------------------------------ */
/* Plan Detail Grid                                                   */
/* ------------------------------------------------------------------ */
.plan-detail { padding:64px 0; }
.plan-detail .container { max-width:1280px; margin:0 auto; padding:0 60px; }
.plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.plan-left-col { position:sticky; top:130px; align-self:start; }

/* ------------------------------------------------------------------ */
/* Viewer                                                             */
/* ------------------------------------------------------------------ */
.viewer-tabs { display:flex; gap:0; border-bottom:2px solid var(--gray-bg, #f2f2f0); margin-bottom:16px; }
.viewer-tab { padding:12px 24px; background:none; border:none; font-size:13px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; color:var(--gray, #888); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all 0.3s; }
.viewer-tab.active { color:var(--red); border-bottom-color:var(--red); }
.viewer-wrap { background:var(--off-white, #fafaf8); border-radius:6px; overflow:hidden; border:1px solid rgba(0,0,0,0.06); position:relative; }
.viewer-img { width:100%; display:block; user-select:none; -webkit-user-drag:none; transition:transform 0.3s ease; cursor:pointer; }
.viewer-img.zoomed { cursor:grab; }
.viewer-img.dragging { cursor:grabbing; transition:none; }
.viewer-toolbar { display:flex; gap:6px; justify-content:center; margin-top:14px; }
.tool-btn { width:40px; height:40px; border-radius:4px; border:1.5px solid rgba(0,0,0,0.1); background:#fff; color:var(--charcoal, #3a3a3a); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; }
.tool-btn:hover { border-color:var(--red); color:var(--red); }
.tool-btn.active { background:var(--red); color:#fff; border-color:var(--red); }
.tool-btn svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:2; }
.flip-badge { position:absolute; top:12px; left:12px; background:var(--red); color:#fff; padding:4px 12px; border-radius:3px; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; z-index:2; }
.zoom-badge { position:absolute; bottom:12px; right:12px; background:rgba(0,0,0,0.6); color:#fff; padding:4px 12px; border-radius:3px; font-size:12px; font-weight:600; z-index:2; }
.viewer-hint { font-size:12px; color:var(--gray, #888); text-align:center; margin-top:8px; font-style:italic; }

/* Viewer action buttons (below viewer) */
.viewer-actions { margin-top:28px; padding-top:20px; border-top:1px solid rgba(0,0,0,0.06); display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.viewer-action-btn { justify-content:center; font-size:11px !important; padding:12px 24px !important; letter-spacing:0.8px !important; }
.viewer-action-btn svg { width:14px; height:14px; }

/* ------------------------------------------------------------------ */
/* Lightbox                                                           */
/* ------------------------------------------------------------------ */
.lightbox-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.88); z-index:5000; display:none; align-items:center; justify-content:center; padding:24px; }
.lightbox-overlay.active { display:flex; }
.lightbox-inner { position:relative; width:90vw; max-width:1100px; max-height:90vh; }
.lightbox-close { position:absolute; top:-44px; right:0; background:none; border:none; cursor:pointer; z-index:12; }
.lightbox-close svg { width:28px; height:28px; stroke:#fff; fill:none; stroke-width:2; }
.lightbox-toolbar { position:absolute; top:16px; right:16px; z-index:12; display:flex; gap:6px; }
.lightbox-toolbar .tool-btn { background:rgba(255,255,255,0.95); border-color:rgba(0,0,0,0.1); }
.lightbox-viewer { background:#fff; border-radius:8px; overflow:hidden; height:80vh; max-height:80vh; position:relative; }
.lightbox-hint { text-align:center; color:rgba(255,255,255,0.5); font-size:12px; margin-top:10px; }

/* ------------------------------------------------------------------ */
/* Plan Info (right column)                                           */
/* ------------------------------------------------------------------ */
.plan-eyebrow { font-size:11px; font-weight:600; letter-spacing:4px; text-transform:uppercase; color:var(--red); margin-bottom:12px; display:inline-flex; align-items:center; gap:12px; }
.plan-eyebrow::before { content:''; width:36px; height:1.5px; background:var(--red); }
.plan-h1 { font-family:var(--font-heading); font-size:clamp(28px,3vw,40px); font-weight:500; line-height:1.15; color:var(--charcoal, #3a3a3a); margin-bottom:20px; }
.plan-h1 em { font-style:italic; color:var(--red); }
.plan-specs-line { font-family:var(--font-heading); font-size:clamp(14px,1.5vw,18px); color:var(--red); font-weight:400; font-style:italic; margin-top:-12px; margin-bottom:24px; }
.plan-badges { display:flex; gap:10px; flex-wrap:nowrap; margin-bottom:20px; align-items:center; }
.plan-badge { display:flex; align-items:center; gap:6px; background:var(--gray-bg, #f2f2f0); padding:8px 12px; border-radius:4px; font-size:12px; color:var(--charcoal, #3a3a3a); font-weight:500; white-space:nowrap; }
.plan-badge svg { width:16px; height:16px; color:var(--gray, #888); fill:currentColor; flex-shrink:0; }
.plan-badge strong { font-weight:700; }
.plan-badge-btns { display:flex; gap:12px; margin-bottom:24px; }
.financing-callout { display:flex; align-items:center; gap:14px; background:rgba(194,16,0,0.04); border-left:4px solid var(--red); border-radius:0 4px 4px 0; padding:14px 18px; margin-bottom:24px; }
.financing-callout svg { width:20px; height:20px; stroke:var(--red); fill:none; stroke-width:2; flex-shrink:0; }
.financing-callout-text strong { font-size:14px; font-weight:700; color:var(--red); display:block; }
.financing-callout-text span { font-size:12px; color:var(--gray, #888); }
.plan-description p { font-size:15px; line-height:1.8; color:var(--gray-dark, #555); margin-bottom:14px; font-weight:300; }
.area-table { background:var(--gray-bg, #f2f2f0); border-radius:6px; overflow:hidden; margin-bottom:28px; }
.area-row { display:flex; justify-content:space-between; padding:12px 18px; border-bottom:1px solid #fff; font-size:14px; }
.area-row:last-child { border-bottom:none; font-weight:700; }
.area-label { color:var(--gray-dark, #555); }
.area-val { font-weight:600; color:var(--charcoal, #3a3a3a); }
.plan-ctas { display:flex; flex-direction:column; gap:12px; }
.plan-ctas .btn-cta { width:100%; justify-content:center; }
.plan-ctas .btn-outline { width:100%; justify-content:center; }
.btn-cta.no-border { border:none; }
.btn-scroll { display:inline-flex; align-items:center; gap:10px; padding:15px 32px; background:transparent; color:var(--charcoal, #3a3a3a); font-size:13px; font-weight:600; letter-spacing:1px; text-transform:uppercase; border:1.5px solid rgba(0,0,0,0.2); border-radius:3px; transition:all 0.3s; cursor:pointer; width:100%; justify-content:center; }
.btn-scroll:hover { border-color:var(--red); color:var(--red); }
.btn-scroll svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }

/* Builder contact section */
.plan-builder-contact { margin-top:32px; padding:28px; background:#fff; border-radius:8px; border:2px solid var(--red); box-shadow:0 4px 24px rgba(194,16,0,0.06); }
.builder-contact-heading { font-family:var(--font-heading); font-size:20px; font-weight:500; color:var(--charcoal, #3a3a3a); margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid rgba(0,0,0,0.06); }
.builder-offices { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.builder-office { display:flex; flex-direction:column; gap:3px; }
.builder-office strong { font-size:13px; font-weight:700; color:var(--charcoal, #3a3a3a); }
.builder-office span { font-size:12px; color:var(--gray, #888); line-height:1.4; }
.builder-office a { font-size:13px; font-weight:600; color:var(--red); text-decoration:none; transition:color 0.2s; }
.builder-office a:hover { color:#9e0d00; }

/* TTS slot */
.plan-tts-slot { margin-bottom:8px; }

/* ------------------------------------------------------------------ */
/* Trust Strip                                                        */
/* ------------------------------------------------------------------ */
.trust-strip { background:var(--red, #C21000); padding:36px 0; }
.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; }
.trust-val { font-family:var(--font-heading); font-size:40px; font-weight:400; color:#fff; line-height:1; }
.trust-label { font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.4); margin-top:6px; }

/* ------------------------------------------------------------------ */
/* Customize                                                          */
/* ------------------------------------------------------------------ */
.customize { background:#2d2d2d; padding:80px 0; color:#fff; }
.customize-inner { display:flex; gap:56px; flex-wrap:wrap; align-items:center; }
.customize-text { flex:1; min-width:300px; }
.customize-heading { font-family:'Playfair Display',Georgia,serif !important; font-size:clamp(28px,3vw,42px); font-weight:500; line-height:1.15; margin-bottom:18px; color:#fff !important; }
.customize-heading em { font-style:italic; color:#e8342a; }
.customize-desc { font-size:15px; line-height:1.75; color:rgba(255,255,255,0.6); max-width:460px; font-weight:300; margin-bottom:28px; font-family:'DM Sans',-apple-system,sans-serif; }
.customize-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 28px; flex:1; min-width:300px; }
.customize-item { display:flex; align-items:center; gap:12px; color:rgba(255,255,255,0.85); font-size:14px; font-weight:400; }
.customize-item svg { width:16px; height:16px; stroke:#e8342a; fill:none; stroke-width:2.5; flex-shrink:0; }

/* ------------------------------------------------------------------ */
/* Process                                                            */
/* ------------------------------------------------------------------ */
.process-section { padding:80px 0; background:var(--off-white, #fafaf8); overflow:hidden; }
.process-section > .container { max-width:1280px !important; margin:0 auto !important; padding:0 60px !important; box-sizing:border-box !important; }
.steps-grid { display:grid !important; grid-template-columns:repeat(5, minmax(0, 1fr)) !important; gap:20px !important; margin-top:48px; width:100%; max-width:100%; }
/* rfm_step_process horizontal card overrides */
#fp-process .rfm-steps--horizontal { display:grid !important; grid-template-columns:repeat(5,1fr) !important; gap:20px !important; width:100% !important; }
#fp-process .rfm-step { text-align:center; padding:28px 20px; background:#fff; border-radius:6px; border:1px solid rgba(0,0,0,0.06); box-shadow:0 2px 12px rgba(0,0,0,0.04); transition:transform 0.3s, box-shadow 0.3s; }
#fp-process .rfm-step { transition:transform 0.3s, box-shadow 0.3s !important; padding-left:0 !important; }
#fp-process .rfm-step:hover { transform:translateY(-4px) !important; box-shadow:0 8px 28px rgba(0,0,0,0.08) !important; padding-left:0 !important; }
#fp-process .rfm-step:hover .rfm-step__content { transform:none !important; }
#fp-process .rfm-step:hover .rfm-step__num { transform:none !important; }
#fp-process .rfm-step .rfm-step__content { transform:none !important; transition:none !important; }
#fp-process .rfm-step__connector { display:none !important; }
#fp-process .rfm-step__num { font-family:'Playfair Display',Georgia,serif !important; font-size:40px; font-weight:400; color:var(--red); line-height:1; margin-bottom:12px; width:auto; height:auto; background:none !important; border:none !important; }
#fp-process .rfm-step__title { font-family:'DM Sans',sans-serif !important; font-size:15px; font-weight:700; color:var(--charcoal, #3a3a3a); margin-bottom:8px; }
#fp-process .rfm-step__desc { font-size:13px; color:var(--gray-dark, #555); line-height:1.65; font-weight:300; }
.step-card { text-align:center; padding:28px 20px; background:#fff; border-radius:6px; border:1px solid rgba(0,0,0,0.06); box-shadow:0 2px 12px rgba(0,0,0,0.04); transition:transform 0.3s, box-shadow 0.3s; min-width:0; overflow:hidden; display:flex; flex-direction:column; }
.step-card:hover { transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,0.08); }
.step-num { font-family:'Playfair Display',Georgia,serif; font-size:40px; font-weight:400; color:var(--red); line-height:1; margin-bottom:12px; }
.step-title { font-size:15px; font-weight:700; color:var(--charcoal, #3a3a3a); margin-bottom:8px; }
.step-desc { font-size:13px; color:var(--gray-dark, #555); line-height:1.65; font-weight:300; }

/* ------------------------------------------------------------------ */
/* Calculator + Form                                                  */
/* ------------------------------------------------------------------ */
.calc-form-section { padding:80px 0; }
.calc-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; }
.calc-card { background:var(--gray-bg, #f2f2f0); border-radius:8px; padding:32px; }
.calc-title { font-family:'Playfair Display',Georgia,serif; font-size:32px; font-weight:500; margin-bottom:4px; }
#get-pricing .rfm-sh__heading { font-size:32px !important; }
.calc-disclaimer { font-size:11px; color:var(--gray, #888); margin-bottom:24px; }
.calc-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:28px; }
.calc-label { display:block; font-size:11px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; color:var(--charcoal, #3a3a3a); margin-bottom:8px; }
.calc-input-wrap { position:relative; display:flex; align-items:center; }
.calc-prefix { position:absolute; left:12px; color:var(--gray, #888); font-size:14px; font-weight:600; }
.calc-suffix { position:absolute; right:12px; color:var(--gray, #888); font-size:14px; font-weight:600; }
.calc-input { width:100%; padding:11px 14px 11px 28px; border:1.5px solid #e0e0e0; border-radius:3px; font-size:14px; font-family:var(--font-body); color:var(--charcoal, #3a3a3a); background:#fff; }
.calc-input:focus { outline:none; border-color:var(--red); }
.calc-select { width:100%; padding:11px 14px; border:1.5px solid #e0e0e0; border-radius:3px; font-size:14px; font-family:var(--font-body); color:var(--charcoal, #3a3a3a); background:#fff; }
.calc-select:focus { outline:none; border-color:var(--red); }
.calc-range { width:100%; margin-top:10px; accent-color:var(--red); }
.calc-result { background:var(--charcoal, #3a3a3a); border-radius:6px; padding:24px; text-align:center; }
.calc-result-label { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:rgba(255,255,255,0.45); margin-bottom:6px; }
.calc-result-value { font-family:var(--font-heading); font-size:40px; font-weight:400; color:#fff; }
.calc-result-value span { font-size:16px; font-weight:300; color:rgba(255,255,255,0.4); }

/* ------------------------------------------------------------------ */
/* Form Card (inline contact form)                                    */
/* ------------------------------------------------------------------ */
.form-card { background:#fff; border-radius:8px; padding:32px; border:2px solid var(--red); box-shadow:0 4px 24px rgba(194,16,0,0.06); }
.form-card-title { font-family:var(--font-heading); font-size:20px; font-weight:500; margin-bottom:4px; }
.form-card-sub { font-size:14px; color:var(--gray-dark, #555); margin-bottom:24px; font-weight:300; }
.form-card-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.form-card-input { width:100%; padding:12px 14px; border:1.5px solid #e0e0e0; border-radius:3px; font-size:14px; font-family:var(--font-body); color:var(--charcoal, #3a3a3a); background:var(--off-white, #fafaf8); }
.form-card-input:focus { outline:none; border-color:var(--red); }
.form-card-textarea { width:100%; padding:12px 14px; border:1.5px solid #e0e0e0; border-radius:3px; font-size:14px; font-family:var(--font-body); color:var(--charcoal, #3a3a3a); background:var(--off-white, #fafaf8); resize:vertical; margin-bottom:18px; }
.form-card-textarea:focus { outline:none; border-color:var(--red); }
.form-card-privacy { font-size:11px; color:var(--gray, #888); text-align:center; margin-top:10px; }

/* ------------------------------------------------------------------ */
/* FAQ                                                                */
/* ------------------------------------------------------------------ */
.faq-section { padding:80px 0; background:var(--off-white, #fafaf8); }
.faq-wrap { max-width:760px; margin:0 auto; background:#fff; border-radius:6px; border:1px solid rgba(0,0,0,0.06); overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,0.04); }
.faq-item { border-bottom:1px solid var(--gray-bg, #f2f2f0); }
.faq-item:last-child { border-bottom:none; }
.faq-btn { width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; background:none; border:none; text-align:left; cursor:pointer; transition:background 0.2s; }
.faq-btn:hover { background:var(--off-white, #fafaf8); }
.faq-q { flex:1; font-size:15px; font-weight:600; color:var(--charcoal, #3a3a3a); line-height:1.5; }
.faq-chevron { width:18px; height:18px; stroke:var(--gray, #888); fill:none; stroke-width:2; transition:transform 0.3s, stroke 0.3s; flex-shrink:0; }
.faq-item.open .faq-chevron { transform:rotate(180deg); stroke:var(--red); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.35s ease; }
.faq-answer-inner { padding:0 24px 22px; font-size:14px; color:var(--gray-dark, #555); line-height:1.75; font-weight:300; }

/* ------------------------------------------------------------------ */
/* Related Plans                                                      */
/* ------------------------------------------------------------------ */
.related-section { padding:80px 0; }
.related-header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:8px; }
.related-header .section-heading { margin-bottom:0; }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:32px; }
.related-card { border-radius:6px; overflow:hidden; border:1px solid rgba(0,0,0,0.06); background:#fff; transition:all 0.35s; }
.related-card:hover { transform:translateY(-6px); box-shadow:0 16px 48px rgba(0,0,0,0.1); }
.related-img-wrap { height:220px; overflow:hidden; background:var(--gray-bg, #f2f2f0); }
.related-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s; }
.related-card:hover .related-img-wrap img { transform:scale(1.05); }
.related-body { padding:22px; }
.related-name { font-family:var(--font-heading); font-size:20px; font-weight:500; margin-bottom:10px; }
.related-name a { color:var(--charcoal, #3a3a3a); text-decoration:none; }
.related-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.related-badges { display:flex; gap:6px; flex-wrap:wrap; }
.related-badge { font-size:11px; background:var(--gray-bg, #f2f2f0); padding:4px 10px; border-radius:3px; color:var(--gray-dark, #555); white-space:nowrap; }
.related-view-btn { font-size:11px !important; padding:8px 16px !important; letter-spacing:0.8px !important; white-space:nowrap; flex-shrink:0; }
#fp-related .rfm-fpr__link { display:inline-flex; align-items:center; gap:6px; padding:10px 20px; background:var(--red,#C21000); color:#fff !important; font-size:12px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase; border-radius:3px; transition:all 0.3s; text-decoration:none; }
#fp-related .rfm-fpr__link:hover { background:#9e0d00; transform:translateY(-2px); box-shadow:0 4px 16px rgba(194,16,0,0.3); }

/* ------------------------------------------------------------------ */
/* CTA Band                                                           */
/* ------------------------------------------------------------------ */
.cta-band { background:var(--red); padding:64px 0; }
.cta-band-inner { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:28px; }
.cta-band-heading { font-family:var(--font-heading); font-size:clamp(24px,3vw,36px); font-weight:500; color:#fff; margin-bottom:8px; }
.cta-band-sub { font-size:15px; color:rgba(255,255,255,0.75); max-width:480px; font-weight:300; }
.cta-band-btns { display:flex; gap:14px; flex-wrap:wrap; }
.btn-white { display:inline-flex; align-items:center; gap:10px; padding:16px 36px; background:#fff; color:var(--red); font-size:13px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; border-radius:3px; transition:all 0.3s; text-decoration:none; border:none; cursor:pointer; }
.btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,0.2); }
.btn-white svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2.5; }

/* ------------------------------------------------------------------ */
/* Modal                                                              */
/* ------------------------------------------------------------------ */
.modal-overlay { position:fixed; inset:0; z-index:9000; background:rgba(0,0,0,0.6); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.modal-overlay.active { opacity:1; pointer-events:all; }
.modal-card { background:#fff; border-radius:6px; width:100%; max-width:540px; max-height:92vh; overflow-y:auto; position:relative; transform:translateY(24px); transition:transform 0.35s cubic-bezier(0.34,1.2,0.64,1); box-shadow:0 24px 80px rgba(0,0,0,0.25); }
.modal-overlay.active .modal-card { transform:translateY(0); }
.modal-header { background:var(--red); padding:28px 32px 24px; position:sticky; top:0; z-index:1; }
.modal-header h3 { font-family:var(--font-heading); font-size:22px; font-weight:500; color:#fff; margin-bottom:4px; }
.modal-header p { font-size:13px; color:rgba(255,255,255,0.75); font-weight:300; }
.modal-close { position:absolute; top:16px; right:16px; width:32px; height:32px; border-radius:50%; border:1.5px solid rgba(255,255,255,0.3); background:transparent; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background 0.2s; }
.modal-close:hover { background:rgba(255,255,255,0.15); }
.modal-close svg { width:14px; height:14px; stroke:#fff; fill:none; stroke-width:2.5; }
.modal-body { padding:28px 32px 32px; }
.modal-body .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.modal-body .form-group { margin-bottom:16px; }
.modal-body .form-group label { display:block; font-size:11px; font-weight:600; letter-spacing:0.8px; text-transform:uppercase; color:var(--charcoal, #3a3a3a); margin-bottom:6px; }
.modal-body .form-group input,
.modal-body .form-group select { width:100%; padding:12px 14px; border:1.5px solid #e0e0e0; border-radius:3px; font-size:14px; font-family:var(--font-body); }
.modal-body .form-group input:focus,
.modal-body .form-group select:focus { outline:none; border-color:var(--red); }
.form-submit { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:16px 36px; background:var(--red); color:#fff; font-size:13px; font-weight:700; letter-spacing:1.2px; text-transform:uppercase; border-radius:3px; border:none; cursor:pointer; transition:all 0.3s; }
.form-submit:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(194,16,0,0.3); }
.form-next-step { display:flex; align-items:flex-start; gap:10px; margin-top:16px; font-size:12px; color:var(--gray-dark, #555); line-height:1.6; }
.form-privacy { font-size:11px; color:var(--gray, #888); text-align:center; margin-top:10px; }

/* ------------------------------------------------------------------ */
/* Mobile CTA Bar                                                     */
/* ------------------------------------------------------------------ */
.mobile-cta-bar { display:none; position:fixed; bottom:0; left:0; right:0; z-index:400; height:62px; background:#fff; box-shadow:0 -4px 20px rgba(0,0,0,0.12); border-top:1px solid rgba(0,0,0,0.08); }
.mobile-cta-bar-inner { display:grid; grid-template-columns:1fr 1fr; height:100%; }
.mobile-cta-call { display:flex; align-items:center; justify-content:center; gap:8px; background:var(--off-white, #fafaf8); color:var(--red); font-size:13px; font-weight:700; letter-spacing:0.5px; text-decoration:none; border-right:1px solid rgba(0,0,0,0.08); }
.mobile-cta-call svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; }
.mobile-cta-pricing { display:flex; align-items:center; justify-content:center; background:var(--red); color:#fff; font-size:12px; font-weight:700; letter-spacing:0.8px; text-transform:uppercase; border:none; cursor:pointer; }

/* ------------------------------------------------------------------ */
/* Responsive                                                         */
/* ------------------------------------------------------------------ */
@media (max-width: 1024px) {
  .plan-grid { grid-template-columns:1fr; gap:40px; }
  .plan-left-col { position:static; }
  .steps-grid { grid-template-columns:repeat(3,1fr); }
  .calc-form-grid { grid-template-columns:1fr; }
  .hero-badge { display:none; }
}
@media (max-width: 768px) {
  .hero { height:auto; min-height:500px; padding-bottom:60px; }
  .hero .hero-slide-text { left:20px; right:20px; }
  .hero .hero-indicators { left:20px; }
  .hero .hero-counter { display:none; }
  .hero .scroll-cue { display:none; }
  .hero-h1 { font-size:36px !important; }
  .hero-btns { flex-direction:column; width:100%; }
  .trust-grid { padding-left:24px; padding-right:24px; grid-template-columns:repeat(2,1fr); }
  .steps-grid { grid-template-columns:1fr 1fr; }
  .related-grid { grid-template-columns:1fr; }
  .calc-fields { grid-template-columns:1fr; }
  .form-card-grid { grid-template-columns:1fr; }
  .mobile-cta-bar { display:block; }
  .plan-badges { flex-direction:column; }
}
