/* ============================================================
   FranchiseMatchIQ — Main Stylesheet
   Palette: Plum #3d1a5c | Purple #5c2d8a | Lavender #8a5ab5
            Orange #e8500a | Orange-lt #f07040 | White #ffffff
            Off-white #faf8fc | Stone #ede8f5 | Text #2a1a3e
   ============================================================ */
:root {
  --plum:       #3d1a5c;
  --plum-dark:  #2a1040;
  --plum-light: #5c2d8a;
  --purple:     #6b3fa0;
  --lavender:   #9b6ec8;
  --orange:     #e8500a;
  --orange-lt:  #f07040;
  --white:      #ffffff;
  --off-white:  #faf6ef;
  --stone:      #e8dece;
  --stone-lt:   #f5f0e8;
  --tan:        #c8b89a;
  --tan-dark:   #a09070;
  --text-dark:  #2a1a10;
  --text-body:  #3a2e22;
  --text-muted: #7a6a58;
  --radius:     4px;
  --shadow-sm:  0 1px 4px rgba(60,40,20,0.08);
  --shadow-md:  0 4px 20px rgba(60,40,20,0.14);
  --max-w:      1080px;
  --serif:      'Lora', Georgia, 'Times New Roman', serif;
  --sans:       'Source Sans 3', 'Segoe UI', Arial, sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{font-family:var(--sans);font-size:1rem;line-height:1.7;color:var(--text-body);background:#f7f2ea}
img{max-width:100%;height:auto;display:block}
a{color:var(--purple);text-decoration:none}
a:hover{color:var(--orange)}
h1,h2,h3,h4{font-family:var(--serif);color:var(--plum);line-height:1.25;font-weight:700}
h1{font-size:clamp(1.8rem,4vw,2.8rem)}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:clamp(1.1rem,2.5vw,1.35rem)}
p{margin-bottom:1rem}
p:last-child{margin-bottom:0}
.eyebrow{font-family:var(--sans);font-size:0.7rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange);display:block;margin-bottom:0.5rem}
.container{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}
.section{padding:4rem 0}
.section-lg{padding:5.5rem 0}
.text-center{text-align:center}

/* Buttons */
.btn{display:inline-block;padding:0.75rem 1.75rem;border-radius:var(--radius);font-family:var(--sans);font-size:0.88rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:all 0.2s;border:2px solid transparent;text-decoration:none}
.btn-primary{background:var(--orange);color:#fff;border-color:var(--orange)}
.btn-primary:hover{background:var(--orange-lt);border-color:var(--orange-lt);color:#fff}
.btn-secondary{background:var(--plum);color:#fff;border-color:var(--plum)}
.btn-secondary:hover{background:var(--plum-light);border-color:var(--plum-light);color:#fff}
.btn-outline{background:transparent;color:var(--plum);border-color:var(--plum)}
.btn-outline:hover{background:var(--plum);color:#fff}
.btn-outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,0.6)}
.btn-outline-white:hover{background:rgba(255,255,255,0.12);border-color:#fff;color:#fff}

/* Header */
.site-header{background:#fff;position:sticky;top:0;z-index:100;box-shadow:0 1px 0 rgba(61,26,92,0.1),0 2px 8px rgba(61,26,92,0.06);padding:0.5rem 0}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:130px}
.logo-wrap{display:flex;align-items:center;text-decoration:none}
.logo-img{display:block;height:118px;width:auto}
.site-nav{display:flex;align-items:center;gap:0.25rem}
.site-nav a{font-family:var(--sans);font-size:0.8rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--plum);padding:0.4rem 0.75rem;border-radius:var(--radius);transition:color 0.15s,background 0.15s;text-decoration:none}
.site-nav a:hover,.site-nav a.active{color:var(--plum);background:#f0e8da}
.site-nav .nav-cta{background:var(--orange);color:#fff !important;margin-left:0.5rem;padding:0.4rem 1rem}
.site-nav .nav-cta:hover{background:var(--orange-lt)}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;background:none;border:none}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--plum);border-radius:2px}

/* Hero */
.hero{background:linear-gradient(140deg,#6a4a80 0%,#9a78b8 55%,#CDB4DB 100%);color:#fff;padding:5.5rem 0 5rem;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(250,246,239,0.06) 1px,transparent 1px);background-size:36px 36px}
.hero-inner{position:relative;max-width:720px}
.hero h1{color:#fff;margin-bottom:1.25rem}
.hero h1 em{color:#f0c060;font-style:normal}
.hero-lead{font-size:1.1rem;color:rgba(255,255,255,0.82);margin-bottom:2rem;max-width:580px;line-height:1.8}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero-badge{display:inline-block;background:rgba(232,80,10,0.2);border:1px solid rgba(232,80,10,0.4);color:rgba(255,255,255,0.9);font-size:0.75rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:0.35rem 0.85rem;border-radius:2px;margin-bottom:1.25rem}

/* Tagline band */
.tagline-band{background:var(--orange);color:#fff;padding:1rem 0;text-align:center}
.tagline-band p{font-family:var(--serif);font-size:1.05rem;font-style:italic;margin:0;color:#fff}

/* Section headers */
.section-header{margin-bottom:2.5rem}
.section-header h2{margin-bottom:0.6rem}
.section-header p{color:var(--text-muted);max-width:600px}
.section-header.centered{text-align:center}
.section-header.centered p{margin:0 auto}

/* Process steps */
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;position:relative}
.process-grid::before{content:'';position:absolute;top:40px;left:10%;right:10%;height:2px;background:linear-gradient(90deg,var(--stone),#e8dece,var(--stone));z-index:0}
.process-step{background:#fff;border:1px solid var(--stone);border-radius:var(--radius);padding:2rem 1.5rem;text-align:center;position:relative;z-index:1;margin:0 0.5rem;box-shadow:var(--shadow-sm);transition:box-shadow 0.2s,transform 0.2s}
.process-step:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.step-num{width:48px;height:48px;background:var(--plum);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.2rem;font-weight:700;margin:0 auto 1rem;border:3px solid #fff;box-shadow:0 0 0 2px var(--plum)}
.step-num{background:var(--plum);box-shadow:0 0 0 2px var(--plum)}
.process-step h3{font-size:1rem;margin-bottom:0.5rem;color:var(--plum) !important}
.process-step p{font-size:0.85rem;color:var(--text-muted)}

/* Cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
.card{background:#fff;border:1px solid #e8dece;border-radius:var(--radius);padding:1.75rem;box-shadow:var(--shadow-sm);transition:box-shadow 0.2s,transform 0.2s}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card-icon{width:44px;height:44px;background:#f5f0e8;border:1px solid #e8dece;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.card-icon svg{width:22px;height:22px;stroke:var(--plum);fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:1.05rem;margin-bottom:0.5rem}
.card p{font-size:0.92rem;color:var(--text-muted)}

/* Assessment download cards */
.assessment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}
.assessment-card{background:#fff;border:1px solid #e8dece;border-top:3px solid var(--orange);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-sm)}
.assessment-card.featured{border-top-color:var(--plum)}
.assessment-label{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--plum);margin-bottom:0.25rem}
.assessment-sub{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-muted);margin-bottom:1rem}
.assessment-card p{font-size:0.92rem}
.assessment-form{margin-top:1.5rem}
.assessment-form input{width:100%;padding:0.65rem 0.9rem;border:1px solid var(--stone);border-radius:var(--radius);font-family:var(--sans);font-size:0.92rem;color:var(--text-body);background:var(--off-white);margin-bottom:0.75rem;transition:border-color 0.15s,box-shadow 0.15s}
.assessment-form input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(107,63,160,0.1)}
.assessment-form label{display:block;font-size:0.8rem;font-weight:600;color:var(--plum);margin-bottom:0.35rem;letter-spacing:0.03em}

/* CTA band */
.cta-band{background:#7a5a90;color:#fff;padding:3.5rem 0;text-align:center}
.cta-band h2{color:#fff;margin-bottom:0.75rem}
.cta-band p{color:rgba(255,255,255,0.75);margin-bottom:1.75rem;max-width:520px;margin-left:auto;margin-right:auto}

/* Orange CTA band */
.cta-band-orange{background:var(--orange);color:#fff;padding:3rem 0;text-align:center}
.cta-band-orange h2{color:#fff;margin-bottom:0.75rem;font-size:1.5rem}
.cta-band-orange p{color:rgba(255,255,255,0.9);margin-bottom:1.5rem;max-width:520px;margin-left:auto;margin-right:auto}

/* Subpage hero */
.subpage-hero{background:linear-gradient(135deg,#6a4a80 0%,#9a78b8 100%);color:#fff;padding:3rem 0 2.5rem}
.subpage-hero h1{color:#fff;font-size:clamp(1.5rem,3.5vw,2.2rem)}
.subpage-hero p{color:rgba(255,255,255,0.75);max-width:620px;margin-top:0.75rem}
.breadcrumb{font-size:0.78rem;color:rgba(255,255,255,0.45);margin-bottom:0.75rem}
.breadcrumb a{color:rgba(255,255,255,0.65)}
.breadcrumb a:hover{color:var(--orange)}
.breadcrumb span{margin:0 0.4rem}
.subpage-body{padding:3.5rem 0}

/* Detail list */
.detail-list{list-style:none;margin:0.5rem 0 1.25rem}
.detail-list li{padding:0.4rem 0 0.4rem 1.25rem;position:relative;font-size:0.95rem;border-bottom:1px solid var(--stone)}
.detail-list li::before{content:'▸';position:absolute;left:0;color:var(--orange);font-size:0.75rem;top:0.55rem}

/* FAQ */
.faq-list{display:flex;flex-direction:column;gap:0}
.faq-item{border-bottom:1px solid #e8dece}
.faq-question{font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--plum);padding:1.1rem 2rem 1.1rem 0;cursor:pointer;position:relative;user-select:none}
.faq-question::after{content:'+';position:absolute;right:0;top:1.1rem;font-size:1.2rem;color:var(--orange);font-family:var(--sans);font-weight:400;transition:transform 0.2s}
.faq-item.open .faq-question::after{content:'−'}
.faq-answer{font-size:0.92rem;color:var(--text-body);max-height:0;overflow:hidden;transition:max-height 0.3s ease,padding 0.3s}
.faq-item.open .faq-answer{max-height:300px;padding-bottom:1.1rem}

/* Stat strip */
.stat-strip{background:#6a4a80;color:#fff;padding:2.5rem 0}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;text-align:center}
.stat-num{font-family:var(--serif);font-size:2.5rem;font-weight:700;color:#f0c060;line-height:1}
.stat-label{font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-top:0.25rem}

/* Footer */
.site-footer{background:#2a1a38;color:rgba(255,255,255,0.55);padding:3rem 0 1.5rem}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem}
.footer-logo{height:80px;width:auto;margin-bottom:1rem}
.footer-brand p{font-size:0.85rem;line-height:1.65}
.footer-col h4{font-size:0.7rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.35);margin-bottom:0.75rem}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:0.4rem}
.footer-col ul a{font-size:0.85rem;color:rgba(255,255,255,0.55);transition:color 0.15s}
.footer-col ul a:hover{color:var(--orange)}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding-top:1.25rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem;font-size:0.78rem}
.footer-bottom a{color:rgba(255,255,255,0.4)}
.footer-bottom a:hover{color:var(--orange)}

/* Responsive */
@media(max-width:768px){
  .site-nav{display:none;flex-direction:column;position:absolute;top:136px;left:0;right:0;background:#fff;border-top:1px solid var(--stone);box-shadow:0 4px 12px rgba(61,26,92,0.1);padding:1rem 1.5rem;gap:0.25rem}
  .site-nav.open{display:flex}
  .site-nav a{padding:0.6rem 0.75rem}
  .nav-toggle{display:flex}
  .site-header{position:relative}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  .hero-actions{flex-direction:column;align-items:flex-start}
  .footer-bottom{flex-direction:column;text-align:center}
  .process-grid{grid-template-columns:1fr;gap:1rem}
  .process-grid::before{display:none}
  .process-step{margin:0}
}
@media(max-width:480px){
  .section{padding:2.5rem 0}
  h1{font-size:1.6rem}
}

/* Social links */
.social-links{display:flex;gap:0.6rem;align-items:center;margin-top:0.75rem}
.social-link{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);transition:background 0.15s,color 0.15s;text-decoration:none}
.social-link:hover{background:rgba(255,255,255,0.18);color:#fff}
