/* === CMatcher theme CSS (from canvas) === */
:root{
  --brand:#0066ff;
  --brand-dark:#0044aa;
  --bg:#f7f9fc;
  --text:#0b1b34;
  --muted:#5b6b82;
  --card:#ffffff;
  --radius:12px;
  --border:#e6ecf5;
  --focus: 0 0 0 3px rgba(0,102,255,.25);
  --overlay: rgba(11,27,52,.6);
  --soft-hero:#f0f5ff;
  --ok:#16a34a;
  --ok-bg:#ecfdf5;
  --ok-border:#bbf7d0;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:1140px;margin:0 auto;padding:16px 24px}
header{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--border);z-index:30}
.nav{display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--brand)}
.logo a{color:inherit;text-decoration:none}
.logo-mark{width:24px;height:24px;border-radius:6px;background:linear-gradient(135deg,var(--brand),var(--brand-dark))}
.menu{display:flex;gap:10px;flex-wrap:wrap}
.menu a{font-weight:700;color:#22324f;padding:8px 12px;border-radius:10px;background:#f6f9ff;border:1px solid var(--border)}
.menu a:hover{background:#eef4ff;text-decoration:none}
.menu .btn-cta{background:var(--brand);color:#fff;border-color:var(--brand)}
.menu .btn-cta:hover{background:var(--brand-dark);border-color:var(--brand-dark)}
.menu .subscribe-btn{display:none}
@media (max-width:640px){ .menu .subscribe-btn{display:inline-block;background:var(--brand);color:#fff;padding:8px 12px;border-radius:10px;font-weight:700} }
.hero{background:var(--soft-hero);border-bottom:1px solid var(--border)}
.hero .container{display:grid;place-items:center;text-align:center;padding-top:56px;padding-bottom:56px}
.hero h1{margin:0 0 10px;font-size:clamp(30px,5vw,48px);color:#003a99}
.hero p{margin:0 0 22px;color:var(--muted);max-width:760px}
.hero .cta{appearance:none;border:0;background:var(--brand);color:#fff;padding:14px 20px;border-radius:12px;font-weight:800;cursor:pointer}
.hero .cta:hover{background:var(--brand-dark)}
.hero .micro{margin-top:10px;color:var(--muted);font-size:.9rem}
.trust{background:#fff;border-bottom:1px solid var(--border)}
.trust .row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:center}
.trust .pill{background:#f6f9ff;border:1px solid var(--border);border-radius:999px;padding:8px 12px;text-align:center;color:#3b4c6a;font-size:.9rem}
@media (max-width:900px){.trust .row{grid-template-columns:1fr 1fr 1fr}}
.section{padding:32px 24px}
.section h2{margin:0 0 12px;font-size:1.5rem;color:#003a99}
.kicker{color:var(--muted);margin:0 0 16px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}
.thumb{height:120px;background:linear-gradient(180deg,#dfeeff,#f6f9ff)}
.card-inner{padding:14px}
.card h3{margin:0 0 6px;color:#003a99;font-size:1rem}
.card p{margin:0 0 8px;color:var(--muted);font-size:.95rem}
.card a.more{font-weight:700}
.band{background:#eef4ff;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.band .inner{max-width:1140px;margin:0 auto;padding:20px 24px}
.inline-form{display:grid;grid-template-columns:1fr 1fr minmax(300px,2fr) auto;gap:12px;align-items:start}
@media (max-width:900px){.inline-form{grid-template-columns:1fr}}
.inline-form input{height:44px}
.consents-inline{display:grid;gap:10px}
.faq{display:grid;gap:10px}
.faq-item{background:#fff;border:1px solid var(--border);border-radius:10px}
.faq-q{padding:12px 14px;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.faq-q .icon{font-weight:800;color:#003a99}
.faq-a{display:none;padding:0 14px 14px;color:#5b6b82}
footer{background:#fff;border-top:1px solid var(--border);color:#6b7280}
footer .container{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
footer a{margin-left:8px}
form{display:grid;gap:12px}
label{font-weight:600;font-size:.95rem}
input{width:100%;padding:12px;border:1px solid var(--border);border-radius:10px;font-size:1rem}
input:focus{outline:none; box-shadow: var(--focus)}
.btn{appearance:none;border:0;background:var(--brand);color:#fff;padding:12px 16px;border-radius:10px;font-weight:700;cursor:pointer}
.btn:hover{background:var(--brand-dark)}
.fine{font-size:.85rem;color:var(--muted)}
.consent-box{display:grid;grid-template-columns:20px 1fr;gap:12px;align-items:start;background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px}
.consent-box input[type="checkbox"]{width:18px;height:18px;margin-top:2px}
.consent-text{font-size:.9rem;line-height:1.35;color:var(--muted)}
.success-msg{display:none;background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok);padding:10px 12px;border-radius:10px;font-weight:700}
.success-msg.show{display:block}
.field{display:grid;gap:6px}
.error{display:none;color:#b91c1c;font-size:.85rem}
.invalid input{border-color:#ef4444}
.invalid .error{display:block}
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal.open{display:flex}
.modal::before{content:"";position:absolute;inset:0;background:var(--overlay)}
.modal-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;max-width:720px;width:100%;box-shadow:none}
.modal-close{position:absolute;top:10px;right:10px;border:1px solid var(--border);background:#fff;border-radius:8px;padding:6px 10px;font-weight:700;cursor:pointer}
.modal-header{margin-bottom:10px}
.modal-title{margin:0 0 6px;font-size:1.25rem;color:#003a99}
.sticky-sub{display:none}
@media (max-width:640px){
  .sticky-sub{display:block;position:fixed;right:16px;bottom:16px;z-index:40}
  .sticky-sub .btn{padding:14px 18px;border-radius:999px}
}
@media (max-width:520px){
  .hero .container{padding:24px}
  .modal-card{padding:14px}
  .modal-title{font-size:1.1rem}
}

/* Featured thumbnails */
.thumb-wrap{display:block;width:100%;height:120px;overflow:hidden;border-bottom:1px solid var(--border);background:#f6f9ff}
.thumb-img{display:block;width:100%;height:120px;object-fit:cover}

/* Breadcrumbs */
.breadcrumbs{font-size:.9rem;color:#5b6b82;margin-bottom:8px}
.breadcrumbs a{color:#0066ff;text-decoration:none}
.breadcrumbs a:hover{text-decoration:underline}

/* Single post neat content */
.article header h1{margin:0 0 10px;color:#003a99}
.entry-content{line-height:1.7}
.entry-content h2,.entry-content h3{color:#003a99;margin-top:1.2em}
.entry-content p{margin:0 0 1em}
.entry-content ul{margin:0 0 1em 1.2em}
.post-nav a{background:#f6f9ff;border:1px solid var(--border);padding:8px 10px;border-radius:8px;text-decoration:none}
.post-nav a:hover{background:#eef4ff}

/* Author box */
.author-box{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px;display:flex;gap:12px;align-items:flex-start}
.author-box .author-meta{line-height:1.4}


/* Two-column layout for single posts */
.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}
@media (max-width:960px){.content-wrap{grid-template-columns:1fr}}

/* Sidebar widgets */
.widget, .subscribe-widget{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}
.widget-title{margin:0 0 10px;color:#003a99}
.sidebar-form .field{display:grid;gap:6px}
.sidebar-form .btn{width:100%}
.subscribe-widget .kicker{color:#5b6b82;margin:0 0 10px}


/* Mobile navigation */
.hamburger{display:none;background:#f6f9ff;border:1px solid var(--border);border-radius:10px;padding:10px;cursor:pointer}
.hamburger .bar{display:block;width:22px;height:2px;background:#22324f;margin:4px 0}
@media (max-width:768px){
  .menu{position:absolute;top:64px;right:16px;left:16px;background:#fff;border:1px solid var(--border);border-radius:12px;display:none;flex-direction:column;gap:8px;padding:12px;z-index:40}
  .menu a{display:block}
  .menu.open{display:flex}
  .hamburger{display:block}
  header .container.nav{position:relative}
}
/* Ensure header height on mobile */
@media (max-width:768px){
  header{padding:12px 0}
  .container.nav{padding:0 16px}
}


/* --- Mobile optimizations for modal form (v1.7) --- */
.modal-card{
  max-height: min(90vh, 720px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.modal-card form .btn{ min-height: 44px; }

@media (max-width: 640px){
  .modal-card{
    width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 0;
    padding: 20px;
  }
  .modal-header{ position: sticky; top: 0; background:#fff; padding-top: 4px; margin-top:-4px; z-index: 1; }
  form{ gap: 14px; }
  .field input{ font-size: 16px; } /* avoid iOS zoom */
  .consent-box{ grid-template-columns: 24px 1fr; padding: 14px; }
  .consent-box input[type="checkbox"]{ width: 22px; height: 22px; margin-top: 2px; }
  .modal-card .btn{ width: 100%; }
}
@media (max-width: 380px){
  .consent-text{ font-size: .85rem; }
}


/* === Modal mobile scrolling fixes === */
.modal{
  overflow-y:auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: env(safe-area-inset-top) 16px env(safe-area-inset-bottom) 16px;
}
.modal-card{
  max-height: calc(100dvh - 32px);
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
}
@supports (height: 100svh){
  .modal-card{ max-height: calc(100svh - 32px); }
}
@media (max-width:640px){
  .modal{ padding: 0; align-items: stretch; }
  .modal-card{
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .modal-header{
    position: sticky;
    top: 0;
    background: #fff;
    border-bottom: 1px solid var(--border);
    z-index: 1;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .modal-card .btn{ width: 100%; }
  .consent-box input[type="checkbox"]{ width:22px; height:22px; }
  .consent-box{ grid-template-columns:24px 1fr; }
}
