/* ---- Destination AI Toolkit (unified hub) ---- */
.tk-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 26px}
.tk-tab{appearance:none;background:var(--surface,#fff);border:1px solid var(--line,#E4E8EE);border-radius:12px;padding:15px 16px;font-family:var(--sans);font-weight:600;font-size:1.02rem;color:var(--primary,#1B2A4A);cursor:pointer;text-align:left;line-height:1.25;transition:border-color .15s,box-shadow .15s,background .15s,color .15s}
.tk-tab:hover{border-color:#C5CEDA;box-shadow:0 2px 10px rgba(27,42,74,.07)}
.tk-tab.active{background:var(--primary,#1B2A4A);border-color:var(--primary,#1B2A4A);color:#fff}
.tk-tab .tk-tab-sub{display:block;font-weight:400;font-size:.78rem;color:var(--muted-2,#5A6573);margin-top:4px}
.tk-tab.active .tk-tab-sub{color:rgba(255,255,255,.78)}
.tk-view{display:none}
.tk-view.active{display:block}
.community-tag{display:inline-block;background:var(--accent,#00B5A3);color:#06302C;font-family:var(--mono,monospace);font-size:.62rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;white-space:nowrap}
@media(max-width:760px){ .tk-tabs{grid-template-columns:1fr 1fr} }
@media(max-width:440px){ .tk-tabs{grid-template-columns:1fr} }

/* ---- AIRETT history & comparison ---- */
.hist-list{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.hist-row{display:flex;align-items:center;gap:14px;border:1px solid var(--line,#E4E8EE);border-radius:10px;background:var(--surface,#fff);padding:14px 16px;cursor:pointer;transition:box-shadow .15s,border-color .15s}
.hist-row:hover{box-shadow:0 2px 12px rgba(27,42,74,.08);border-color:#CBD3DE}
.hist-check{width:18px;height:18px;flex:0 0 auto;accent-color:var(--accent,#00B5A3);cursor:pointer}
.hist-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}
.hist-date{font-family:var(--sans);font-weight:600;color:var(--primary,#1B2A4A);flex:1 1 auto}
.hist-score{font-family:var(--sans);font-weight:700;font-size:1.2rem}
.hist-score small{font-size:.8rem;font-weight:500;color:var(--muted-2,#5A6573)}
.hist-badge{color:#fff;font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;padding:4px 10px;border-radius:999px;flex:0 0 auto}
.hist-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:14px 16px;background:var(--surface-2,#F2F5F8);border:1px solid var(--line,#E4E8EE);border-radius:10px}
.btn-sm{padding:6px 14px;font-size:.85rem}
/* comparison */
.hist-cmp-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.hist-overall-change{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;justify-items:center;background:var(--surface-2,#F2F5F8);border-radius:12px;padding:20px;margin:0 0 22px;position:relative}
.hoc-col{text-align:center}
.hoc-cap{font-size:.78rem;color:var(--muted-2,#5A6573);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}
.hoc-num{font-family:var(--sans);font-weight:700;font-size:2rem;line-height:1}
.hoc-num small{font-size:.9rem;font-weight:500;color:var(--muted-2,#5A6573)}
.hoc-arrow{display:flex;flex-direction:column;align-items:center;font-size:1.3rem;font-weight:700}
.hoc-arrow .hoc-delta{font-family:var(--sans);font-size:1.1rem;margin-top:2px}
.hoc-arrow.up{color:#2E8B57}.hoc-arrow.down{color:#D94F3D}.hoc-arrow.same{color:#5A6573}
.hoc-label{grid-column:1 / -1;text-align:center;font-family:var(--sans);font-weight:600;color:var(--primary,#1B2A4A);margin-top:4px}
.hist-cmp-table{width:100%;border-collapse:collapse;font-size:.92rem}
.hist-cmp-table th{text-align:left;font-family:var(--sans);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted-2,#5A6573);padding:8px 10px;border-bottom:2px solid var(--line,#E4E8EE)}
.hist-cmp-table td{padding:10px;border-bottom:1px solid var(--line,#E4E8EE);font-family:var(--sans)}
.hist-cmp-table .hct-dim{font-weight:600;color:var(--primary,#1B2A4A)}
.hist-cmp-table small{color:var(--muted-2,#5A6573);font-size:.78rem}
.hct-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}
.hct-change{font-weight:700;white-space:nowrap}
.hct-change.up{color:#2E8B57}.hct-change.down{color:#D94F3D}.hct-change.same{color:#5A6573}
/* sparklines */
.hist-sparks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hist-spark{border:1px solid var(--line,#E4E8EE);border-radius:10px;padding:12px 14px}
.hs-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.hs-name{font-family:var(--sans);font-size:.82rem;font-weight:600;color:var(--primary,#1B2A4A);line-height:1.2}
.hs-val{font-family:var(--sans);font-weight:700;font-size:1.05rem}
.hs-val small{font-size:.72rem;font-weight:500;color:var(--muted-2,#5A6573)}
.hs-canvas{position:relative;height:46px}
@media(max-width:720px){
  .hist-sparks{grid-template-columns:1fr 1fr}
  .hist-row{flex-wrap:wrap}
  .hist-date{flex:1 1 100%;order:-1}
  .hist-overall-change{grid-template-columns:1fr auto 1fr;gap:10px;padding:16px}
  .hoc-num{font-size:1.5rem}
}
@media(max-width:480px){ .hist-sparks{grid-template-columns:1fr} }

/* ---- AI Prompt Library ---- */
.pl-note{background:var(--surface-2,#F2F5F8);border:1px solid var(--line,#E4E8EE);border-left:3px solid var(--accent);border-radius:8px;padding:14px 18px;font-size:.9rem;color:#33414F;margin-bottom:22px;line-height:1.55}
.pl-list{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.pl-card{border:1px solid var(--line,#E4E8EE);border-radius:12px;background:var(--surface,#fff);overflow:hidden;transition:box-shadow .15s}
.pl-card.hide{display:none}
.pl-head{padding:18px 20px}
.pl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.pl-tags span{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:100px;background:var(--surface-2,#F2F5F8);color:var(--primary);border:1px solid var(--line,#E4E8EE)}
.pl-tags span.diff{background:#1B2A4A;color:#fff;border-color:#1B2A4A}
.pl-tags span.diff[data-d="Intermediate"]{background:#0E8FA0;border-color:#0E8FA0}
.pl-tags span.diff[data-d="Advanced"]{background:#7A4DD6;border-color:#7A4DD6}
.pl-card h3{margin:0 0 6px;font-size:1.18rem}
.pl-desc{margin:0 0 14px;color:#4A5563;font-size:.95rem}
.pl-actions{display:flex;gap:10px;flex-wrap:wrap}
.btn-sm{padding:8px 14px;font-size:.82rem}
.pl-body{display:none;border-top:1px solid var(--line,#E4E8EE);padding:18px 20px;background:#FBFCFD}
.pl-card.open .pl-body{display:block}
.pl-prompt{white-space:pre-wrap;font-family:var(--mono);font-size:.82rem;line-height:1.6;color:#1F2B3A;background:#0E1726;color:#E7ECF3;border-radius:10px;padding:18px 20px;margin:0 0 14px;overflow-x:auto}
.pl-notes{font-size:.88rem;color:#4A5563;line-height:1.55;margin:0 0 14px;border-left:3px solid var(--line,#E4E8EE);padding-left:14px}
.pl-copy.copied{background:var(--accent-deep,#0E8FA0)!important;border-color:var(--accent-deep,#0E8FA0)!important;color:#fff!important}
.pl-empty{padding:40px;text-align:center;color:var(--muted-2,#6B7785);font-size:.95rem}
.pl-foot-note{margin-top:34px;font-size:.82rem;color:var(--muted-2,#6B7785);line-height:1.6;border-top:1px solid var(--line,#E4E8EE);padding-top:18px}

/* ---- AIRETT six-dimension results, path, capture ---- */
.airett-dim6{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.tl-dot{width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.airett-path{margin:30px 0 8px}
.path-track{display:flex;align-items:stretch;gap:0;margin-top:14px}
.path-step{flex:1;display:flex;flex-direction:column;gap:8px;padding:0 6px}
.path-conn{flex:0 0 26px;align-self:flex-start;height:38px;display:flex;align-items:center;justify-content:center;color:var(--line,#E4E8EE);font-size:1.2rem}
.path-conn:before{content:"→"}
.path-node{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;border:2px solid var(--line,#E4E8EE);background:#fff;color:var(--muted-2,#6B7785)}
.path-step.done .path-node{background:#2E8B57;border-color:#2E8B57;color:#fff}
.path-step.active .path-node{background:#16C2D5;border-color:#16C2D5;color:#06323a}
.path-step.avail .path-node{background:#fff;border-color:#16C2D5;color:#0E8FA0}
.path-step.upcoming .path-node{opacity:.7}
.path-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--primary)}
.path-desc{font-size:.84rem;color:#4A5563;line-height:1.5;margin:0}
.path-status{font-size:.8rem;font-weight:600;color:var(--primary)}
.path-step.active .path-status{color:#0E8FA0}
.path-step.done .path-status{color:#2E8B57}
.path-step.upcoming .path-status{color:var(--muted-2,#6B7785);font-weight:500}
.path-link{color:#0E8FA0;font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}
.airett-capture{margin-top:26px}
@media (max-width:760px){
  .airett-dim6{grid-template-columns:1fr}
  .path-track{flex-direction:column}
  .path-conn{flex-basis:auto;height:22px;transform:rotate(90deg)}
}

/* ---- checkout discount code ---- */
.discount-block{margin-top:18px;border:1px solid var(--line,#E4E8EE);border-radius:10px;background:var(--surface-2,#F2F5F8);overflow:hidden}
.discount-toggle{width:100%;text-align:left;background:none;border:none;padding:13px 16px;font:inherit;font-weight:600;color:var(--primary);cursor:pointer;display:flex;align-items:center;justify-content:space-between}
.discount-toggle .chev{transition:transform .2s}
.discount-toggle[aria-expanded="true"] .chev{transform:rotate(180deg)}
.discount-body{padding:0 16px 16px}
.disc-row{display:flex;gap:10px;flex-wrap:wrap}
.disc-row input{flex:1;min-width:180px;padding:11px 13px;border:1px solid var(--line,#E4E8EE);border-radius:8px;font:inherit;background:#fff;text-transform:uppercase;letter-spacing:.04em}
.disc-row input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(22,194,213,.15)}
.disc-msg{margin-top:10px;font-size:.9rem;font-weight:600;padding:9px 12px;border-radius:8px}
.disc-msg.ok{color:#1c6b46;background:rgba(46,139,87,.12);border:1px solid rgba(46,139,87,.3)}
.disc-msg.err{color:#a8341f;background:rgba(217,79,61,.1);border:1px solid rgba(217,79,61,.3)}

/* ---- Pilot community banner ---- */
.pilot-banner{background:#EAF9FB;border-top:1px solid rgba(22,194,213,.35);border-bottom:1px solid rgba(22,194,213,.35);color:#0B4650}
.pilot-banner .wrap{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:nowrap;padding:11px 0}
.pilot-banner p{margin:0;font-size:.9rem;line-height:1.5;max-width:74ch}
.pilot-banner strong{font-weight:700}
.pilot-banner .pilot-x{flex:none;background:transparent;border:none;color:#0B4650;font-size:1.4rem;line-height:1;cursor:pointer;padding:0 4px;opacity:.6}
.pilot-banner .pilot-x:hover{opacity:1}
@media(max-width:640px){.pilot-banner .wrap{align-items:flex-start}.pilot-banner p{font-size:.82rem}}

/* ---- AIRETT2026 promo banner ---- */
.promo-banner{background:var(--accent,#16C2D5);color:#06323a}
.promo-banner .wrap{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:11px 0}
.promo-banner p{margin:0;font-weight:600;font-size:.94rem}
.promo-banner .btn{padding:7px 16px;font-size:.85rem;background:#0E1726;color:#fff;border:none}
.promo-banner .promo-x{background:none;border:none;color:#06323a;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px;opacity:.7}
.promo-banner .promo-x:hover{opacity:1}
.pricing-promo-note{font-size:.78rem;color:var(--accent-deep,#0E8FA0);font-weight:600;margin:8px 0 0;line-height:1.4}

/* ---- Homepage: story, what's inside, CTA ---- */
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.story-panel{padding:4px 0}
.story-num{font-family:var(--serif,Georgia);font-size:2.6rem;font-weight:700;color:var(--accent-deep,#0E8FA0);line-height:1;display:block;margin-bottom:12px}
.story-panel h3{font-family:var(--sans);font-size:1.15rem;margin:0 0 10px;color:var(--primary,#1B2A4A)}
.story-panel p{margin:0;color:var(--muted,#5A6573);line-height:1.6}
.inside-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 48px;margin-top:8px}
.inside-item{border-top:2px solid var(--accent,#16C2D5);padding-top:14px}
.inside-item h4{font-family:var(--sans);font-size:1.05rem;margin:0 0 6px;color:var(--primary,#1B2A4A)}
.inside-item p{margin:0;color:var(--muted,#5A6573);line-height:1.55;font-size:.98rem}
.cta-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:48px;align-items:center}
.cta-left h2{margin-bottom:.4em}
.join-box{background:var(--accent,#16C2D5);color:#06323a;border-radius:14px;padding:30px 28px}
.join-box h3{font-family:var(--serif,Georgia);color:#06323a;margin:0 0 10px;font-size:1.4rem}
.join-box p{margin:0 0 14px;color:#0a3d45;line-height:1.55}
.join-box .join-disc{font-weight:600;background:rgba(255,255,255,.55);border-radius:8px;padding:10px 14px;font-size:.95rem}
.join-box .join-disc strong{font-family:var(--mono,monospace);letter-spacing:.03em}
.join-box .btn{margin-top:4px}
@media(max-width:820px){
  .story-grid{grid-template-columns:1fr;gap:26px}
  .inside-grid{grid-template-columns:1fr;gap:24px}
  .cta-grid{grid-template-columns:1fr;gap:30px}
}

/* ---- Star ratings (toolkit tools + use cases; read-only on public tools) ---- */
.card-rating{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.stars-display{display:inline-flex;gap:1px;font-size:1rem;line-height:1;color:#E7B008;letter-spacing:1px}
.stars-display .rs-star{color:#D6DCE5}
.stars-display .rs-star.on{color:#E7B008}
.rating-average{font-weight:700;color:var(--primary);font-size:.92rem}
.rating-count{color:var(--muted-2);font-size:.82rem}
.card-rating .btn-rate{margin-left:auto;background:transparent;border:1px solid var(--line);color:var(--accent-deep);font:inherit;font-size:.82rem;font-weight:600;padding:5px 12px;border-radius:999px;cursor:pointer;transition:background .15s,border-color .15s}
.card-rating .btn-rate:hover{background:#ECFBFD;border-color:var(--accent)}
.rate-panel{width:100%;margin-top:12px;padding:12px;background:#F6F9FC;border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:10px}
.rate-stars{display:flex;gap:2px}
.rate-star{background:transparent;border:none;font-size:1.55rem;line-height:1;color:#D6DCE5;cursor:pointer;padding:0 1px;transition:color .1s}
.rate-star.on,.rate-star:hover{color:#E7B008}
.rate-comment{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit;font-size:.88rem;resize:vertical;box-sizing:border-box}
.rate-actions{display:flex;align-items:center;gap:12px}
.btn-sm{padding:7px 16px;font-size:.85rem}
.rate-msg{font-size:.82rem}
.rate-msg.ok{color:#1A6B45}
.rate-msg.err{color:#9B3528}
.tool-rating-ro{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.tool-rating-ro .rating-note{color:var(--muted-2);font-size:.78rem}

/* ---- Pricing page (restructured) ---- */
.incl-groups{display:flex;flex-direction:column;gap:32px}
.incl-group-title{margin:0 0 4px;font-size:1.18rem;color:var(--primary,#1B2A4A);padding-bottom:8px;border-bottom:1px solid var(--line,#E2E7EE)}
.incl-group-intro{margin:8px 0 14px;color:var(--muted,#5A6675);line-height:1.55;max-width:70ch}
.incl-list{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;margin:6px 0 0;padding:0;list-style:none}
.incl-list li{position:relative;padding-left:30px;line-height:1.5;color:var(--ink,#0E1726)}
.incl-list li:before{content:"✓";position:absolute;left:0;top:0;color:#fff;background:var(--accent-deep,#0E8FA0);width:20px;height:20px;border-radius:50%;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.incl-note{margin-top:22px;background:var(--surface-2,#F2F5F8);border-left:3px solid var(--accent,#16C2D5);border-radius:8px;padding:13px 18px;font-weight:600;color:var(--primary,#1B2A4A)}
.seat-statements{display:flex;flex-direction:column;border:1px solid var(--line,#E2E7EE);border-radius:12px;background:var(--surface,#fff);overflow:hidden}
.seat-statements p{margin:0;padding:20px 24px;line-height:1.6;color:var(--ink,#0E1726)}
.seat-statements p+p{border-top:1px solid var(--line,#E2E7EE)}
.fee-table{display:flex;flex-direction:column;gap:12px}
.fee-row{display:grid;grid-template-columns:1.4fr .9fr auto;gap:20px;align-items:center;border:1px solid var(--line,#E2E7EE);border-radius:12px;background:var(--surface,#fff);padding:20px 24px}
.fee-row .fee-budget{font-weight:600;color:var(--primary,#1B2A4A);font-size:1.05rem}
.fee-row .fee-amount{font-family:var(--serif,Georgia);font-size:1.5rem;color:var(--ink,#0E1726);font-weight:600}
.fee-row .fee-amount small{font-family:var(--sans);font-size:.85rem;color:var(--muted,#5A6573);font-weight:400}
.disc-callout{border:2px solid var(--accent,#16C2D5);border-radius:14px;padding:22px 26px;background:rgba(22,194,213,.06)}
.disc-callout p{margin:0;color:var(--primary,#1B2A4A);font-weight:500;line-height:1.55}
.disc-callout strong{font-family:var(--mono,monospace);letter-spacing:.03em}
.seat-summary{width:100%;border-collapse:collapse;border:1px solid var(--line,#E2E7EE);border-radius:12px;overflow:hidden}
.seat-summary th,.seat-summary td{text-align:left;padding:14px 20px;border-bottom:1px solid var(--line,#E2E7EE);font-size:.98rem}
.seat-summary th{background:var(--surface-2,#F2F5F8);color:var(--primary,#1B2A4A);font-family:var(--sans);font-weight:600;width:38%}
.seat-summary tr:last-child th,.seat-summary tr:last-child td{border-bottom:none}
@media(max-width:680px){
  .incl-list{grid-template-columns:1fr;gap:12px}
  .fee-row{grid-template-columns:1fr;gap:10px;text-align:left}
}

/* ============================================================
   destinationready.ai — shared stylesheet
   Brand: deep slate blue + electric cyan accent, near-white base.
   Type: IBM Plex Serif (display) / IBM Plex Sans (body) / IBM Plex Mono (labels)
   ============================================================ */

:root {
  --primary: #1B2A4A;        /* deep slate blue */
  --primary-2: #243B63;      /* lifted slate */
  --primary-3: #32507F;
  --ink: #0E1726;            /* near-black slate */
  --accent: #16C2D5;         /* electric cyan */
  --accent-deep: #0E8FA0;
  --bg: #FAFBFC;             /* near-white */
  --surface: #FFFFFF;
  --surface-2: #F2F5F8;
  --line: #E2E7EE;
  --line-2: #CDD5DF;
  --muted: #5A6573;
  --muted-2: #7C8694;

  --ok: #1F9D67;             /* green */
  --warn: #D98A1F;           /* amber */
  --bad: #C7493B;            /* red */

  --maxw: 1180px;
  --radius: 10px;
  --radius-sm: 6px;
  --shadow: 0 1px 2px rgba(14,23,38,.05), 0 8px 28px rgba(14,23,38,.06);
  --shadow-sm: 0 1px 2px rgba(14,23,38,.06), 0 2px 8px rgba(14,23,38,.05);

  --serif: "IBM Plex Serif", Georgia, serif;
  --sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { max-width: 100%; display: block; }

a { color: var(--accent-deep); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 { font-family: var(--serif); color: var(--primary); line-height: 1.18; font-weight: 600; letter-spacing: -0.01em; }
h1 { font-size: clamp(2.2rem, 4.4vw, 3.5rem); margin: 0 0 .5em; }
h2 { font-size: clamp(1.7rem, 2.8vw, 2.3rem); margin: 0 0 .55em; }
h3 { font-size: 1.25rem; margin: 0 0 .4em; }
p { margin: 0 0 1.05em; text-wrap: pretty; }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }
.narrow { max-width: 820px; }

.eyebrow {
  font-family: var(--mono);
  font-size: .74rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--accent-deep);
  margin: 0 0 1rem;
  font-weight: 500;
}

section { padding: 84px 0; }
section.tight { padding: 56px 0; }

/* ---------- Header / nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(250,251,252,.86);
  backdrop-filter: saturate(160%) blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav {
  display: flex; align-items: center; gap: 28px;
  height: 68px;
}
.nav .logo { display: flex; align-items: center; gap: 10px; }
.nav .logo svg { display: block; }
.nav .logo .word { font-family: var(--sans); font-weight: 600; font-size: 1.18rem; color: var(--primary); letter-spacing: -0.02em; }
.nav .logo .word .ai { color: var(--accent-deep); }
.nav-links { display: flex; align-items: center; gap: 26px; margin-left: auto; }
.nav-links a { color: var(--ink); font-size: .95rem; font-weight: 500; }
.nav-links a:hover { color: var(--accent-deep); text-decoration: none; }
.nav-toggle { display: none; }

/* Public top bar — brand blue (members area uses .member-bar, untouched) */
.site-header { background: var(--primary); border-bottom-color: rgba(255,255,255,.12); }
.site-header .nav .logo .word { color: #fff; }
.site-header .nav .logo .word .ai { color: var(--accent); }
.site-header .nav-links a { color: rgba(255,255,255,.92); }
.site-header .nav-links a:hover { color: #fff; }
.site-header .nav-toggle { color: #fff; border-color: rgba(255,255,255,.35); }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-weight: 600; font-size: .95rem;
  padding: 12px 22px; border-radius: var(--radius-sm);
  border: 1px solid transparent; cursor: pointer;
  transition: transform .12s ease, background .15s ease, border-color .15s ease;
  text-decoration: none; line-height: 1;
}
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-2); }
.btn-accent { background: var(--accent); color: var(--ink); }
.btn-accent:hover { background: var(--accent-deep); color: #fff; }
.btn-ghost { background: transparent; color: var(--primary); border-color: var(--line-2); }
.btn-ghost:hover { border-color: var(--primary); }
.btn-lg { padding: 15px 28px; font-size: 1rem; }
.btn[disabled] { opacity: .55; cursor: not-allowed; }

/* ---------- Hero ---------- */
.hero {
  background:
    radial-gradient(1100px 520px at 78% -8%, rgba(22,194,213,.16), transparent 60%),
    linear-gradient(180deg, #16233E 0%, var(--primary) 60%, #16233E 100%);
  color: #EAF0F8;
  padding: 92px 0 96px;
  position: relative; overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(900px 500px at 75% 10%, #000, transparent 75%);
          mask-image: radial-gradient(900px 500px at 75% 10%, #000, transparent 75%);
  pointer-events: none;
}
.hero .wrap { position: relative; z-index: 1; }
.hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.hero h1 { color: #fff; }
.hero .lede { font-size: 1.22rem; color: #C5D2E6; max-width: 36ch; }
.hero .eyebrow { color: var(--accent); }
.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 28px; }
.hero-stats { display: flex; gap: 38px; margin-top: 44px; }
.hero-stats .n { font-family: var(--serif); font-size: 2rem; color: #fff; line-height: 1; }
.hero-stats .l { font-family: var(--mono); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #91A4C2; margin-top: 8px; }

/* ---------- Placeholder image ---------- */
.ph {
  position: relative; border-radius: var(--radius);
  background:
    repeating-linear-gradient(135deg, rgba(22,194,213,.10) 0 12px, rgba(22,194,213,0) 12px 24px),
    linear-gradient(180deg, #1f3052, #16233E);
  border: 1px solid rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  min-height: 320px; overflow: hidden;
}
.ph .ph-label {
  font-family: var(--mono); font-size: .76rem; letter-spacing: .08em;
  color: #9DB2D2; text-transform: uppercase; text-align: center;
  padding: 10px 16px; border: 1px dashed rgba(157,178,210,.5); border-radius: 6px;
  background: rgba(14,23,38,.35);
}
.ph.light {
  background:
    repeating-linear-gradient(135deg, rgba(27,42,74,.06) 0 12px, rgba(27,42,74,0) 12px 24px),
    var(--surface-2);
  border: 1px solid var(--line);
}
.ph.light .ph-label { color: var(--muted); border-color: var(--line-2); background: rgba(255,255,255,.6); }

/* ---------- Generic cards / grids ---------- */
.grid { display: grid; gap: 22px; }
.cols-2 { grid-template-columns: repeat(2, 1fr); }
.cols-3 { grid-template-columns: repeat(3, 1fr); }
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 26px; box-shadow: var(--shadow-sm);
}
.card h3 { color: var(--primary); }

/* ---------- Section header ---------- */
.sec-head { max-width: 760px; margin-bottom: 44px; }
.sec-head.center { margin-left: auto; margin-right: auto; text-align: center; }
.sec-head p { color: var(--muted); font-size: 1.08rem; margin-bottom: 0; }

.bg-surface { background: var(--surface); }
.bg-soft { background: var(--surface-2); }
.bg-ink { background: var(--ink); color: #E7ECF3; }
.bg-ink h2, .bg-ink h3 { color: #fff; }

/* ---------- Prose block ---------- */
.prose h2 { margin-top: 1.6em; }
.prose h3 { margin-top: 1.3em; color: var(--primary-2); }
.prose p, .prose li { color: #28303D; }
.prose ul { padding-left: 1.2em; }
.prose li { margin-bottom: .4em; }
.prose strong { color: var(--ink); }

/* ---------- Tools directory ---------- */
.cat-block { margin-bottom: 40px; }
.cat-head { display: flex; align-items: baseline; gap: 12px; border-bottom: 2px solid var(--line); padding-bottom: 10px; margin-bottom: 18px; }
.cat-head h3 { margin: 0; font-size: 1.18rem; }
.cat-head .count { font-family: var(--mono); font-size: .72rem; color: var(--muted-2); letter-spacing: .06em; }
.tool-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.tool {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 18px 18px 16px; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column; gap: 8px;
}
.tool .tool-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tool .tool-name { font-family: var(--sans); font-weight: 600; font-size: 1.02rem; color: var(--primary); }
.tool .tool-desc { font-size: .92rem; color: var(--muted); line-height: 1.5; margin: 0; }
.tool .tool-orgs { font-family: var(--mono); font-size: .64rem; letter-spacing: .05em; text-transform: uppercase; color: var(--accent-deep); margin: 0 0 6px; }
.tool .tool-eth { font-size: .82rem; color: #46505F; border-top: 1px dashed var(--line); padding-top: 8px; margin: 4px 0 0; }
.tool .tool-eth b { font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-deep); font-weight: 500; display: block; margin-bottom: 2px; }
.tier {
  font-family: var(--mono); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase;
  padding: 4px 8px; border-radius: 100px; white-space: nowrap; font-weight: 500;
}
.tier-Free { background: #E3F4EC; color: #1F7A50; }
.tier-Freemium { background: #E1F6F9; color: #0E7C8B; }
.tier-Paid { background: #EAEFF6; color: #345084; }
.tier-Enterprise { background: #EFE9F6; color: #6A4B9C; }

/* ---------- Filters (tools.html) ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; align-items: center; }
.filters .flabel { font-family: var(--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted-2); margin-right: 4px; }
.chip {
  font-family: var(--sans); font-size: .86rem; font-weight: 500;
  padding: 7px 14px; border-radius: 100px; border: 1px solid var(--line-2);
  background: var(--surface); color: var(--ink); cursor: pointer; transition: all .12s ease;
}
.chip:hover { border-color: var(--primary); }
.chip.active { background: var(--primary); color: #fff; border-color: var(--primary); }
.search-input {
  font-family: var(--sans); font-size: .95rem; padding: 10px 14px;
  border: 1px solid var(--line-2); border-radius: var(--radius-sm); min-width: 240px; flex: 1;
}
.search-input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
.no-results { color: var(--muted); font-style: italic; padding: 30px 0; }

/* ---------- FAQ ---------- */
.faq-item { border-bottom: 1px solid var(--line); }
.faq-q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  font-family: var(--serif); font-weight: 600; font-size: 1.18rem; color: var(--primary);
  padding: 22px 44px 22px 0; position: relative; line-height: 1.3;
}
.faq-q::after {
  content: "+"; position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  font-family: var(--sans); font-weight: 400; font-size: 1.6rem; color: var(--accent-deep);
  transition: transform .2s ease;
}
.faq-item.open .faq-q::after { content: "\2212"; }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .28s ease; }
.faq-item.open .faq-a { max-height: 600px; }
.faq-a p { color: #28303D; padding-bottom: 22px; margin: 0; }

/* ---------- Forms ---------- */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field.full { grid-column: 1 / -1; }
.field label { font-family: var(--sans); font-weight: 600; font-size: .88rem; color: var(--ink); }
.field label .req { color: var(--bad); }
.field input, .field select, .field textarea {
  font-family: var(--sans); font-size: .98rem; color: var(--ink);
  padding: 11px 13px; border: 1px solid var(--line-2); border-radius: var(--radius-sm);
  background: var(--surface); width: 100%;
}
.field textarea { resize: vertical; min-height: 96px; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
.field .hint { font-size: .78rem; color: var(--muted-2); }
.checkbox-row { display: flex; gap: 10px; align-items: flex-start; }
.checkbox-row input { width: auto; margin-top: 4px; }
.checkbox-row label { font-weight: 400; font-size: .9rem; color: var(--muted); }
.form-msg { padding: 14px 16px; border-radius: var(--radius-sm); font-size: .95rem; margin-top: 4px; }
.form-msg.ok { background: #E3F4EC; color: #1A6B45; border: 1px solid #B9E2CC; }
.form-msg.err { background: #FBE9E6; color: #9B3528; border: 1px solid #F0C5BD; }
.form-msg.hidden { display: none; }
/* Form placed on a dark section */
.form-dark label { color: #EAF0F8; }
.form-dark .checkbox-row label { color: #B7C2D2; }
.form-dark .hint { color: #8C99AC; }

/* ---------- Footer ---------- */
.site-footer { background: var(--ink); color: #AEB9C8; padding: 56px 0 32px; font-size: .92rem; }
.site-footer h4 { color: #fff; font-family: var(--sans); font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 14px; font-weight: 600; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 36px; }
.footer-grid a { color: #AEB9C8; display: block; margin-bottom: 9px; }
.footer-grid a:hover { color: var(--accent); text-decoration: none; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 44px; padding-top: 22px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .82rem; color: #76829A; }
.translate-note { font-size: .82rem; color: #76829A; max-width: 60ch; }

/* ---------- Misc ---------- */
.badge {
  display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono);
  font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
  padding: 6px 12px; border-radius: 100px; font-weight: 500;
}
.badge.red { background: #FBE9E6; color: var(--bad); }
.badge.amber { background: #FBF1E1; color: var(--warn); }
.badge.green { background: #E3F4EC; color: var(--ok); }
.lock-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; }

/* ============================================================
   MEMBER ZONE
   ============================================================ */
.member-shell { min-height: 100vh; }
.member-bar {
  position: sticky; top: 0; z-index: 50; background: var(--primary);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.member-bar .nav { height: auto; min-height: 60px; flex-wrap: wrap; padding: 9px 0; row-gap: 6px; }
.member-bar .nav .logo .word { color: #fff; }
.member-bar .nav .logo .word .ai { color: var(--accent); }
.member-bar .tag { font-family: var(--mono); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); border: 1px solid rgba(22,194,213,.45); border-radius: 100px; padding: 3px 9px; margin-left: 6px; }
.member-links { display: flex; align-items: center; gap: 16px; margin-left: auto; flex-wrap: wrap; row-gap: 8px; }
.member-links a { color: #C5D2E6; font-size: .88rem; font-weight: 500; white-space: nowrap; }
.member-links a:hover, .member-links a.active { color: #fff; text-decoration: none; }
.member-links .back-public { border: 1px solid rgba(255,255,255,.25); border-radius: 100px; padding: 5px 12px; color: #EAF0F8; }
.member-links .back-public:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.member-links .logout { color: var(--accent); cursor: pointer; background: none; border: 1px solid rgba(22,194,213,.4); border-radius: 6px; padding: 6px 12px; font-family: var(--sans); font-weight: 600; font-size: .85rem; }
.member-main { padding: 48px 0 80px; }
.page-head { margin-bottom: 36px; }
.page-head .eyebrow { margin-bottom: .5rem; }
.page-head h1 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
.page-head p { color: var(--muted); font-size: 1.08rem; max-width: 60ch; margin: 0; }

.dash-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.dash-card { display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: inherit; transition: transform .12s ease, box-shadow .15s ease; }
.dash-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); text-decoration: none; }
.dash-card .ico { width: 42px; height: 42px; border-radius: 10px; background: var(--surface-2); display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-weight: 500; color: var(--accent-deep); font-size: 1.1rem; }
.dash-card h3 { margin: 4px 0 0; font-size: 1.12rem; }
.dash-card p { color: var(--muted); font-size: .92rem; margin: 0; }
.dash-card .go { font-family: var(--mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-deep); margin-top: auto; }

/* Resource list */
.res-list { display: grid; gap: 14px; }
.res-item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 20px 22px; box-shadow: var(--shadow-sm); }
.res-item h3 { margin: 0 0 6px; font-size: 1.12rem; }
.res-item p { margin: 0; color: var(--muted); }
.res-item .meta { font-family: var(--mono); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-deep); margin-bottom: 8px; }

/* Glossary */
.glossary dt { font-family: var(--serif); font-weight: 600; color: var(--primary); font-size: 1.12rem; margin-top: 22px; }
.glossary dd { margin: 4px 0 0; color: #28303D; }
.gl-note { font-size: .9rem; color: var(--muted); margin-top: 10px; }
.gl-filter { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; margin: 24px 0 8px; padding: 18px; background: #F4F7FB; border: 1px solid #E2E8F1; border-radius: 12px; }
.gl-field { display: flex; flex-direction: column; gap: 6px; }
.gl-field label { font-size: .8rem; font-weight: 600; color: var(--primary); }
.gl-field-search { flex: 1 1 280px; }
.gl-filter input, .gl-filter select { padding: 10px 12px; border: 1px solid #CFD8E3; border-radius: 8px; font: inherit; color: var(--primary); background: #fff; min-width: 220px; }
.gl-field-search input { width: 100%; }
.gl-cat-head { font-family: var(--serif); font-size: 1.05rem; color: var(--accent-deep); margin: 34px 0 0; padding-bottom: 8px; border-bottom: 2px solid #E2E8F1; text-transform: none; }
.gl-item dt { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gl-tag { font-family: var(--sans); font-size: .68rem; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--accent-deep); background: #E4F6F9; border: 1px solid #BEE9F0; border-radius: 999px; padding: 2px 9px; white-space: nowrap; }
.gl-item.hidden, .gl-section.hidden, #gl-empty.hidden { display: none; }

/* ============================================================
   AIRETT TOOL
   ============================================================ */
.airett-progress { display: flex; gap: 8px; margin-bottom: 28px; }
.airett-progress .pstep { flex: 1; height: 6px; border-radius: 100px; background: var(--line); }
.airett-progress .pstep.done { background: var(--accent); }
.airett-progress .pstep.current { background: var(--primary); }
.step-label { font-family: var(--mono); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-deep); margin-bottom: 6px; }
.q-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; box-shadow: var(--shadow-sm); margin-bottom: 16px; }
.q-card .q-text { font-family: var(--serif); font-weight: 600; color: var(--primary); font-size: 1.12rem; margin: 0 0 14px; line-height: 1.35; }
.scale { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.scale label {
  display: flex; flex-direction: column; gap: 4px; cursor: pointer;
  border: 1px solid var(--line-2); border-radius: var(--radius-sm); padding: 12px 14px;
  font-size: .9rem; transition: all .12s ease; background: var(--surface);
}
.scale label:hover { border-color: var(--accent); }
.scale input { display: none; }
.scale label .opt { font-weight: 600; color: var(--ink); }
.scale label .pts { font-family: var(--mono); font-size: .68rem; color: var(--muted-2); }
.scale input:checked + .opt-wrap, .scale label.sel { border-color: var(--accent); background: #ECFBFD; }
.scale label.sel { box-shadow: inset 0 0 0 1px var(--accent); }
.airett-nav { display: flex; justify-content: space-between; gap: 14px; margin-top: 24px; margin-bottom: 5mm; }
.airett-nav .spacer { flex: 1; }

/* Verdict */
.verdict-score { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding: 28px; background: var(--primary); color: #fff; border-radius: var(--radius); margin-bottom: 24px; }
.verdict-score .big { font-family: var(--serif); font-size: 4.5rem; line-height: 1; font-weight: 700; }
.verdict-score .big small { font-size: 1.4rem; color: #9DB2D2; }
.verdict-score .band { font-family: var(--mono); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.dim-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-bottom: 24px; }
.dim { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 18px; box-shadow: var(--shadow-sm); }
.dim h4 { font-family: var(--sans); margin: 0 0 8px; font-size: .95rem; color: var(--ink); }
.dim .dscore { font-family: var(--serif); font-size: 2rem; color: var(--primary); line-height: 1; }
.dim .bar { height: 8px; border-radius: 100px; background: var(--line); margin-top: 10px; overflow: hidden; }
.dim .bar > span { display: block; height: 100%; border-radius: 100px; }
.actions-list { counter-reset: a; }
.actions-list .act { display: flex; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.actions-list .act::before { counter-increment: a; content: counter(a); font-family: var(--serif); font-weight: 700; color: var(--accent-deep); font-size: 1.3rem; min-width: 24px; }
.actions-list .act .at { font-weight: 600; color: var(--ink); }
.actions-list .act .ad { color: var(--muted); font-size: .92rem; }

/* ============================================================
   ADMIN PANEL
   ============================================================ */
.admin-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-sm); }
table.admin { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 920px; }
table.admin th, table.admin td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
table.admin thead th { font-family: var(--mono); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); background: var(--surface-2); cursor: pointer; white-space: nowrap; position: sticky; top: 0; }
table.admin thead th:hover { color: var(--primary); }
table.admin thead th .arr { color: var(--accent-deep); }
table.admin tbody tr:hover { background: #F7FAFC; }
table.admin .nm { font-weight: 600; color: var(--primary); }
table.admin .sub { color: var(--muted-2); font-size: .82rem; }
table.admin .stmt { max-width: 260px; color: #46505F; }
table.admin .em { font-family: var(--mono); font-size: .8rem; }
.status-pill { font-family: var(--mono); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; padding: 4px 9px; border-radius: 100px; font-weight: 500; white-space: nowrap; }
.status-Pending { background: #FBF1E1; color: #9A6512; }
.status-Approved { background: #E3F4EC; color: #1A6B45; }
.status-Declined { background: #FBE9E6; color: #9B3528; }
.row-actions { display: flex; gap: 6px; }
.btn-xs { padding: 6px 12px; font-size: .8rem; border-radius: 6px; }
.btn-approve { background: var(--ok); color: #fff; border: none; cursor: pointer; font-family: var(--sans); font-weight: 600; }
.btn-approve:hover { filter: brightness(.95); }
.btn-decline { background: #fff; color: var(--bad); border: 1px solid #F0C5BD; cursor: pointer; font-family: var(--sans); font-weight: 600; }
.btn-decline:hover { background: #FBE9E6; }
.admin-toolbar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
.admin-toolbar .spacer { flex: 1; }
.admin-note { background: #FBF1E1; border: 1px solid #F0DFB8; color: #6E5212; padding: 12px 16px; border-radius: var(--radius-sm); font-size: .86rem; margin-bottom: 20px; }
.admin-stat { display: inline-flex; gap: 6px; align-items: baseline; font-family: var(--mono); font-size: .78rem; color: var(--muted); }
.admin-stat b { font-family: var(--serif); font-size: 1.1rem; color: var(--primary); }

/* ============================================================
   PRICING
   ============================================================ */
.price-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: stretch; }
.price-grid.grid-2 { grid-template-columns: repeat(2, 1fr); max-width: 820px; margin-left: auto; margin-right: auto; }
.price-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 22px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; }
.price-card .flag { font-family: var(--mono); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-deep); background: #ECFBFD; border-radius: 100px; padding: 3px 9px; align-self: flex-start; margin-bottom: 10px; }
.price-card .tier-name { font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-deep); }
.price-card .budget { font-size: .86rem; color: var(--muted); margin: 6px 0 16px; min-height: 2.6em; }
.price-card .price { font-family: var(--serif); font-size: 2.4rem; color: var(--primary); line-height: 1; }
.price-card .price small { font-family: var(--sans); font-size: .9rem; color: var(--muted-2); font-weight: 500; }
.price-card .seats-incl { font-size: .84rem; color: var(--muted); margin: 8px 0 16px; }
.price-card ul { list-style: none; padding: 0; margin: 0 0 20px; display: flex; flex-direction: column; gap: 9px; font-size: .9rem; color: #28303D; }
.price-card li { padding-left: 22px; position: relative; }
.price-card li::before { content: "\2713"; position: absolute; left: 0; color: var(--ok); font-weight: 700; }
.price-card .btn { margin-top: auto; }
.price-card.featured { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), var(--shadow); }

.seat-box { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px; }
.seat-box .seat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 18px; }
.seat-feat h4 { font-family: var(--sans); margin: 0 0 5px; font-size: 1rem; color: var(--ink); }
.seat-feat p { margin: 0; color: var(--muted); font-size: .92rem; }

.cmp-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
table.cmp { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 720px; }
table.cmp th, table.cmp td { padding: 13px 14px; border-bottom: 1px solid var(--line); text-align: center; }
table.cmp th:first-child, table.cmp td:first-child { text-align: left; }
table.cmp thead th { font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); background: var(--surface-2); vertical-align: bottom; }
table.cmp thead th .tprice { display: block; font-family: var(--serif); font-size: 1.05rem; color: var(--primary); text-transform: none; letter-spacing: 0; margin-top: 4px; }
table.cmp tbody td .yes { color: var(--ok); font-weight: 700; }
table.cmp tbody td .no { color: var(--line-2); }
table.cmp .rowlabel { font-weight: 600; color: var(--ink); }

.vat-note { background: var(--surface-2); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--radius-sm); padding: 16px 20px; font-size: .9rem; color: #28303D; }
.vat-note strong { color: var(--ink); }

/* ---------- Currency selector + multi-currency prices ---------- */
.cur-toggle { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: 100px; overflow: hidden; }
.cur-toggle .cur-btn { border: none; background: transparent; font-family: var(--mono); font-size: .72rem; letter-spacing: .04em; padding: 6px 12px; cursor: pointer; color: var(--muted); font-weight: 500; line-height: 1; }
.cur-toggle .cur-btn.active { background: var(--primary); color: #fff; }
.member-bar .cur-toggle { border-color: rgba(255,255,255,.3); }
.member-bar .cur-toggle .cur-btn { color: #C5D2E6; }
.member-bar .cur-toggle .cur-btn.active { background: var(--accent); color: #0E1726; }
.cur-amt { color: var(--muted-2); white-space: nowrap; }
.cur-amt.cur-sel { color: var(--primary); font-weight: 700; }
.cur-sep { color: var(--line-2); margin: 0 6px; }
.cur-note { font-size: .82rem; color: var(--muted); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 12px 16px; }
/* big checkout currency choice */
.cur-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 18px 0 6px; }
.cur-card { border: 1px solid var(--line-2); border-radius: var(--radius); padding: 20px 22px; cursor: pointer; background: var(--surface); transition: border-color .12s ease, box-shadow .12s ease; }
.cur-card:hover { border-color: var(--accent); }
.cur-card.sel { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); background: #ECFBFD; }
.cur-card .cc { font-family: var(--serif); font-size: 1.5rem; color: var(--primary); }
.cur-card .cd { color: var(--muted); font-size: .9rem; margin-top: 2px; }

/* ============================================================
   MEMBERS AI ASSISTANT WIDGET
   ============================================================ */
.ai-fab { position: fixed; right: 22px; bottom: 22px; z-index: 90; display: inline-flex; align-items: center; gap: 9px; background: var(--primary); color: #fff; border: none; border-radius: 100px; padding: 13px 18px; font-family: var(--sans); font-weight: 600; font-size: .92rem; cursor: pointer; box-shadow: 0 6px 22px rgba(14,23,38,.22); }
.ai-fab:hover { background: var(--primary-2); }
.ai-fab .ai-ic { display: inline-flex; }
.ai-panel { position: fixed; right: 22px; bottom: 22px; z-index: 95; width: 400px; max-width: calc(100vw - 32px); height: 560px; max-height: calc(100vh - 40px); background: var(--surface); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 50px rgba(14,23,38,.28); display: flex; flex-direction: column; overflow: hidden; transform: translateY(16px) scale(.98); opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease; }
.ai-panel.open { opacity: 1; transform: none; pointer-events: auto; }
.ai-head { background: var(--primary); color: #fff; padding: 16px 44px 16px 18px; position: relative; }
.ai-head h3 { margin: 0; font-family: var(--serif); font-size: 1.1rem; color: #fff; }
.ai-head p { margin: 4px 0 0; font-size: .8rem; color: #AEC0DD; line-height: 1.4; }
.ai-close { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,.12); border: none; color: #fff; width: 28px; height: 28px; border-radius: 50%; cursor: pointer; font-size: .9rem; line-height: 1; }
.ai-close:hover { background: rgba(255,255,255,.22); }
.ai-msgs { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 12px; background: var(--surface-2); }
.ai-msg { max-width: 86%; padding: 10px 13px; border-radius: 12px; font-size: .9rem; line-height: 1.5; white-space: pre-wrap; }
.ai-msg.user { align-self: flex-end; background: var(--primary); color: #fff; border-bottom-right-radius: 3px; }
.ai-msg.bot { align-self: flex-start; background: var(--surface); border: 1px solid var(--line); color: #28303D; border-bottom-left-radius: 3px; }
.ai-msg.bot.err { border-color: #F0C5BD; background: #FBE9E6; color: #9B3528; }
.ai-typing { align-self: flex-start; color: var(--muted-2); font-size: .85rem; font-style: italic; }
.ai-foot { border-top: 1px solid var(--line); padding: 12px; background: var(--surface); }
.ai-inrow { display: flex; gap: 8px; }
.ai-inrow input { flex: 1; font-family: var(--sans); font-size: .92rem; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 8px; }
.ai-inrow input:focus { outline: 2px solid var(--accent); border-color: var(--accent); }
.ai-send { background: var(--accent); color: var(--ink); border: none; border-radius: 8px; padding: 0 16px; font-weight: 600; cursor: pointer; font-family: var(--sans); }
.ai-send:hover { background: var(--accent-deep); color: #fff; }
.ai-send:disabled { opacity: .5; cursor: not-allowed; }
.ai-disclaimer { font-size: .72rem; color: var(--muted-2); margin: 8px 2px 0; }
.ai-disclaimer a { color: var(--accent-deep); }

/* ---- Toolkit embedded (stationary) assistant ---- */
.tk-layout { display: flex; gap: 28px; align-items: flex-start; margin-top: 8px; }
.tk-main-col { flex: 1 1 0; min-width: 0; }
.tk-assistant-col { flex: 0 0 340px; position: sticky; top: 84px; }
.tk-asst { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: 0 6px 24px rgba(16,33,64,.07); }
.tk-asst-head { background: var(--primary); }
.tk-asst-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: transparent; border: none; color: #fff; padding: 15px 18px; text-align: left; cursor: default; font-family: var(--sans); }
.tk-asst-htext { display: flex; flex-direction: column; gap: 3px; }
.tk-asst-title { font-family: var(--serif); font-size: 1.1rem; font-weight: 600; }
.tk-asst-sub { font-size: .78rem; color: #AEC0DD; line-height: 1.4; }
.tk-asst-chev { display: none; font-size: 1rem; transition: transform .2s; }
.tk-asst-collapse { display: flex; flex-direction: column; }
.tk-asst-msgs { flex: none; height: auto; max-height: calc(100vh - 280px); min-height: 320px; }
.tk-asst-foot { border-top: 1px solid var(--line); padding: 12px; background: var(--surface); }
@media (max-width: 768px) {
  .tk-layout { flex-direction: column; gap: 18px; }
  .tk-assistant-col { flex: none; width: 100%; position: static; top: auto; order: -1; }
  .tk-asst-toggle { cursor: pointer; }
  .tk-asst-chev { display: inline-block; }
  .tk-asst.collapsed .tk-asst-collapse { display: none; }
  .tk-asst.collapsed .tk-asst-chev { transform: rotate(-90deg); }
  .tk-asst-msgs { min-height: 240px; max-height: 52vh; }
}

/* ============================================================
   DESTINATION KNOWLEDGE EXCHANGE
   ============================================================ */
.kx-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); margin-bottom: 22px; }
.kx-tab { background: none; border: none; padding: 12px 18px; font-family: var(--sans); font-weight: 600; font-size: .95rem; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.kx-tab.active { color: var(--primary); border-bottom-color: var(--accent); }
.kx-panel { display: none; }
.kx-panel.active { display: block; }
.kx-notice { background: #FBF1E1; border: 1px solid #F0DFB8; color: #6E5212; border-radius: var(--radius-sm); padding: 14px 16px; font-size: .9rem; margin-bottom: 22px; }
.kx-filters { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 22px; }
.kx-filters label { display: flex; flex-direction: column; gap: 5px; font-family: var(--mono); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.kx-filters select { font-family: var(--sans); font-size: .9rem; padding: 8px 10px; border: 1px solid var(--line-2); border-radius: 6px; min-width: 150px; }
.kx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 18px; align-items: start; }
.kx-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 10px; }
.kx-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.kx-tag { font-family: var(--mono); font-size: .6rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 100px; background: var(--surface-2); color: var(--accent-deep); border: 1px solid var(--line); }
.kx-card h3 { margin: 0; font-size: 1.08rem; line-height: 1.3; }
.kx-card .kx-sum { color: var(--muted); margin: 0; font-size: .92rem; }
.kx-full { display: none; border-top: 1px dashed var(--line); padding-top: 6px; margin-top: 2px; }
.kx-full.open { display: block; }
.kx-full h4 { font-family: var(--sans); font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--accent-deep); margin: 12px 0 3px; }
.kx-full p { margin: 0; font-size: .9rem; color: #28303D; line-height: 1.55; }
.kx-full .src { font-size: .78rem; color: var(--muted-2); font-style: italic; }
.kx-more { align-self: flex-start; background: none; border: 1px solid var(--line-2); border-radius: 6px; padding: 7px 14px; font-weight: 600; font-size: .85rem; color: var(--primary); cursor: pointer; font-family: var(--sans); }
.kx-more:hover { border-color: var(--primary); }
.kx-none { color: var(--muted); font-style: italic; padding: 24px 0; display: none; }
.kx-note-inline { font-size: .78rem; color: var(--muted-2); }

/* Member sub-navigation bar (Destination Toolkit group) */
.member-subbar { background: #0F1A30; border-top: 1px solid rgba(255,255,255,.08); }
.member-subbar .wrap { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 10px 0; }
.member-subbar a { font-family: var(--sans); font-size: .82rem; color: #9FB0C9; text-decoration: none; padding: 3px 0; white-space: nowrap; }
.member-subbar a:hover { color: #fff; }
.member-subbar a.active { color: var(--accent); font-weight: 600; }

/* ============================================================
   MEMBER EXCHANGE
   ============================================================ */
.thread-list { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-sm); }
.thread { padding: 16px 20px; border-bottom: 1px solid var(--line); }
.thread:last-child { border-bottom: none; }
.thread-head { cursor: pointer; }
.thread-top { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.thread-cat { font-family: var(--mono); font-size: .6rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 100px; background: var(--surface-2); color: var(--accent-deep); border: 1px solid var(--line); }
.thread h3 { margin: 8px 0 4px; font-size: 1.05rem; }
.thread-meta { font-size: .8rem; color: var(--muted-2); }
.thread-body { display: none; margin-top: 14px; border-top: 1px dashed var(--line); padding-top: 14px; }
.thread.open .thread-body { display: block; }
.thread-post { font-size: .92rem; color: #28303D; line-height: 1.55; margin: 0; }
.replies { margin: 12px 0 0; }
.reply { background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; padding: 10px 13px; margin-top: 10px; font-size: .88rem; }
.reply .who { font-weight: 600; font-size: .78rem; color: var(--primary); display: block; margin-bottom: 3px; }
.modal { position: fixed; inset: 0; background: rgba(14,23,38,.55); display: none; align-items: center; justify-content: center; z-index: 200; padding: 20px; }
.modal.open { display: flex; }
.modal-card { background: #fff; border-radius: var(--radius); max-width: 580px; width: 100%; max-height: 90vh; overflow: auto; padding: 26px 28px; box-shadow: var(--shadow-lg); }
.modal-card h3 { margin: 0 0 14px; }
.modal-close { float: right; background: none; border: none; font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--muted); }
.radio-row { display: flex; flex-direction: column; gap: 8px; }
.radio-row label { font-weight: 400; display: flex; gap: 8px; align-items: flex-start; }
.radio-row input { width: auto; margin-top: 4px; }
.ex-embed { width: 100%; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); min-height: 600px; }
@media (max-width: 480px) {
  .ai-panel { right: 8px; left: 8px; bottom: 8px; width: auto; height: calc(100vh - 16px); }
  .ai-fab { right: 14px; bottom: 14px; }
}

/* ============================================================
   CHECKOUT
   ============================================================ */
.checkout-steps { display: flex; gap: 0; margin-bottom: 34px; }
.cstep { flex: 1; display: flex; flex-direction: column; gap: 8px; position: relative; }
.cstep .dot { width: 32px; height: 32px; border-radius: 50%; background: var(--line); color: var(--muted); display: flex; align-items: center; justify-content: center; font-family: var(--mono); font-weight: 500; font-size: .9rem; position: relative; z-index: 1; }
.cstep .lbl { font-size: .82rem; color: var(--muted); font-weight: 500; }
.cstep.active .dot { background: var(--primary); color: #fff; }
.cstep.done .dot { background: var(--accent); color: #fff; }
.cstep.active .lbl, .cstep.done .lbl { color: var(--ink); }
.cstep::after { content: ""; position: absolute; top: 15px; left: 32px; right: 0; height: 2px; background: var(--line); }
.cstep:last-child::after { display: none; }
.cstep.done::after { background: var(--accent); }
.checkout-panel { display: none; }
.checkout-panel.active { display: block; }
.summary-box { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; }
.summary-row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }
.summary-row span:last-child { font-variant-numeric: tabular-nums; }
.summary-row.total { border-bottom: none; border-top: 2px solid var(--line-2); margin-top: 6px; padding-top: 14px; font-family: var(--serif); font-size: 1.25rem; color: var(--primary); }
.summary-row .muted { color: var(--muted); }
.seat-stepper { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: var(--radius-sm); overflow: hidden; }
.seat-stepper button { width: 44px; height: 44px; border: none; background: var(--surface); font-size: 1.4rem; line-height: 1; cursor: pointer; color: var(--primary); }
.seat-stepper button:hover { background: var(--surface-2); }
.seat-stepper button:disabled { color: var(--line-2); cursor: not-allowed; }
.seat-stepper .count { width: 60px; text-align: center; font-family: var(--serif); font-size: 1.35rem; color: var(--ink); }
.checkout-nav { display: flex; justify-content: space-between; gap: 14px; margin-top: 28px; }
.field .err-msg { color: var(--bad); font-size: .8rem; display: none; margin-top: 2px; }
.field.error .err-msg { display: block; }
.field.error input, .field.error select { border-color: var(--bad); }
.pay-placeholder { background: #15203a; color: #EAF0F8; border-radius: var(--radius); padding: 38px 34px; text-align: center; }
.pay-placeholder .stripe-badge { font-family: var(--mono); font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.pay-placeholder code { font-family: var(--mono); font-size: .82rem; color: var(--accent); background: rgba(22,194,213,.12); padding: 4px 9px; border-radius: 5px; }

/* ============================================================
   SEAT MANAGEMENT (member dashboard)
   ============================================================ */
.seat-section { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--line); }
.seat-section > h2 { font-size: 1.5rem; }
.seat-section .lead { color: var(--muted); margin-top: -4px; }
.cycle-note { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--accent-deep); background: #ECFBFD; border: 1px solid #C6EEF3; border-radius: 100px; padding: 6px 14px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow-sm); margin-top: 20px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.panel-head h3 { margin: 0; font-size: 1.2rem; }

.sub-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.sub-stat .k { font-family: var(--mono); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.sub-stat .v { font-family: var(--serif); font-size: 1.5rem; color: var(--primary); margin-top: 4px; line-height: 1.1; }
.sub-stat .v small { font-family: var(--sans); font-size: .8rem; color: var(--muted-2); font-weight: 500; }

table.team { width: 100%; border-collapse: collapse; font-size: .92rem; }
table.team th, table.team td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.team tbody tr:last-child td { border-bottom: none; }
table.team thead th { font-family: var(--mono); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
table.team .nm { font-weight: 600; color: var(--primary); }
table.team .em { font-family: var(--mono); font-size: .82rem; color: var(--muted); }
.role-pill { font-family: var(--mono); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 100px; font-weight: 500; }
.role-Admin { background: #EFE9F6; color: #6A4B9C; }
.role-User { background: #EAEFF6; color: #345084; }
.status-active { color: var(--ok); font-weight: 600; font-size: .85rem; }
.status-active::before { content: "\25CF"; font-size: .7em; margin-right: 5px; vertical-align: 1px; }
.btn-remove { background: #fff; color: var(--bad); border: 1px solid #F0C5BD; border-radius: 6px; padding: 6px 12px; font-family: var(--sans); font-weight: 600; font-size: .82rem; cursor: pointer; }
.btn-remove:hover { background: #FBE9E6; }

.seat-msg { padding: 12px 16px; border-radius: var(--radius-sm); font-size: .9rem; margin-bottom: 18px; display: none; }
.seat-msg.show { display: block; }
.seat-msg.ok { background: #E3F4EC; color: #1A6B45; border: 1px solid #B9E2CC; }

/* Modal */
.modal-overlay { position: fixed; inset: 0; background: rgba(14,23,38,.55); display: flex; align-items: center; justify-content: center; padding: 20px; z-index: 100; opacity: 0; pointer-events: none; transition: opacity .15s ease; }
.modal-overlay.open { opacity: 1; pointer-events: auto; }
.modal { background: var(--surface); border-radius: var(--radius); padding: 28px; width: 100%; max-width: 460px; box-shadow: var(--shadow); transform: translateY(8px); transition: transform .15s ease; }
.modal-overlay.open .modal { transform: translateY(0); }
.modal h3 { margin: 0 0 6px; font-size: 1.3rem; }
.modal > p { color: var(--muted); margin: 0 0 16px; }
.modal-actions { display: flex; gap: 12px; justify-content: flex-end; margin-top: 22px; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .price-grid { grid-template-columns: 1fr 1fr; }
  .sub-grid { grid-template-columns: 1fr 1fr; }
  .seat-box .seat-row { grid-template-columns: 1fr; }
  .checkout-steps .lbl { font-size: .72rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .cols-2, .cols-3, .footer-grid { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .nav-links { display: none; }
  .nav-links.open { display: flex; flex-direction: column; position: absolute; top: 68px; left: 0; right: 0; background: var(--surface); padding: 18px 28px; border-bottom: 1px solid var(--line); gap: 16px; }
  .nav-toggle { display: inline-flex; margin-left: auto; background: none; border: 1px solid var(--line-2); border-radius: 6px; padding: 8px 10px; cursor: pointer; }
  .site-header .nav-links.open a { color: var(--ink); }
  section { padding: 60px 0; }
  .hero-stats { flex-wrap: wrap; gap: 24px; }
  .dash-grid, .dim-grid { grid-template-columns: 1fr; }
  .scale { grid-template-columns: 1fr 1fr; }
  .member-links { gap: 12px; }
}
@media (max-width: 480px) {
  body { font-size: 16px; }
  .wrap { padding: 0 20px; }
  .price-grid { grid-template-columns: 1fr; }
  .price-grid.grid-2 { grid-template-columns: 1fr; }
  .checkout-steps .lbl { display: none; }
}

/* ============================================================
   AI in Tourism — members blog
   ============================================================ */
.blog-note { background: var(--surface-2,#F2F5F8); border: 1px solid var(--line,#E2E7EE); border-left: 3px solid var(--accent,#16C2D5); border-radius: 8px; padding: 14px 18px; font-size: .9rem; color: #33414F; line-height: 1.55; margin: 0 0 30px; max-width: 70ch; }
.blog-filter { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; padding-bottom: 22px; border-bottom: 1px solid var(--line,#E2E7EE); }
.blog-filter label { font-family: var(--mono,monospace); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; color: var(--primary,#1B2A4A); }
.blog-filter select { font: inherit; font-size: .95rem; padding: 9px 36px 9px 13px; border: 1px solid var(--line-2,#CDD5DF); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235A6573' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 13px center; -webkit-appearance: none; appearance: none; color: var(--ink,#0E1726); min-width: 240px; cursor: pointer; }
.blog-filter select:focus { outline: none; border-color: var(--accent,#16C2D5); box-shadow: 0 0 0 3px rgba(22,194,213,.15); }
.blog-count { font-size: .85rem; color: var(--muted-2,#7C8694); margin-left: auto; }

.blog-list { display: flex; flex-direction: column; gap: 22px; }
.blog-card { border: 1px solid var(--line,#E2E7EE); border-radius: 14px; background: var(--surface,#fff); padding: 26px 28px; transition: box-shadow .16s, border-color .16s; }
.blog-card:hover { box-shadow: 0 10px 28px rgba(27,42,74,.08); border-color: var(--line-2,#CDD5DF); }
.blog-cat { display: inline-block; font-family: var(--mono,monospace); font-size: .62rem; letter-spacing: .07em; text-transform: uppercase; font-weight: 600; color: var(--accent-deep,#0E8FA0); background: rgba(22,194,213,.1); border-radius: 100px; padding: 4px 11px; margin-bottom: 12px; }
.blog-card h2 { font-size: 1.42rem; line-height: 1.22; margin: 0 0 8px; }
.blog-card h2 a { color: var(--primary,#1B2A4A); }
.blog-card h2 a:hover { color: var(--accent-deep,#0E8FA0); text-decoration: none; }
.blog-meta { font-size: .82rem; color: var(--muted-2,#7C8694); margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.blog-meta .dot { color: var(--line-2,#CDD5DF); }
.blog-excerpt { color: var(--muted,#5A6573); line-height: 1.62; margin: 0 0 18px; font-size: 1rem; }
.blog-readmore { font-family: var(--sans); font-weight: 600; font-size: .9rem; color: var(--accent-deep,#0E8FA0); display: inline-flex; align-items: center; gap: 6px; }
.blog-readmore:hover { text-decoration: none; gap: 9px; }
.blog-empty { padding: 48px; text-align: center; color: var(--muted-2,#7C8694); border: 1px dashed var(--line-2,#CDD5DF); border-radius: 14px; }

.blog-pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line,#E2E7EE); }
.blog-pager .pg-info { font-size: .86rem; color: var(--muted-2,#7C8694); }
.blog-pager button { font: inherit; font-weight: 600; font-size: .9rem; padding: 9px 18px; border: 1px solid var(--line-2,#CDD5DF); border-radius: 8px; background: #fff; color: var(--primary,#1B2A4A); cursor: pointer; }
.blog-pager button:hover:not([disabled]) { border-color: var(--primary,#1B2A4A); }
.blog-pager button[disabled] { opacity: .4; cursor: not-allowed; }

/* individual post */
.post-back { font-size: .9rem; font-weight: 600; color: var(--accent-deep,#0E8FA0); display: inline-block; margin-bottom: 22px; }
.post-article { max-width: 720px; }
.post-article h1 { font-size: clamp(1.9rem, 3.6vw, 2.7rem); margin: 10px 0 14px; }
.post-byline { font-size: .9rem; color: var(--muted-2,#7C8694); display: flex; flex-wrap: wrap; gap: 6px 14px; }
.post-byline .dot { color: var(--line-2,#CDD5DF); }
.post-rule { border: none; border-top: 1px solid var(--line,#E2E7EE); margin: 26px 0; }
.post-body { font-size: 1.1rem; line-height: 1.72; color: var(--ink,#0E1726); }
.post-body > *:first-child { margin-top: 0; }
.post-body p { margin: 0 0 1.2em; }
.post-body h2 { font-size: 1.5rem; margin: 1.6em 0 .5em; }
.post-body h3 { font-size: 1.22rem; margin: 1.5em 0 .5em; color: var(--primary,#1B2A4A); }
.post-body ul { margin: 0 0 1.2em; padding-left: 0; list-style: none; }
.post-body ul li { position: relative; padding-left: 26px; margin-bottom: .7em; line-height: 1.6; }
.post-body ul li:before { content: ""; position: absolute; left: 4px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent,#16C2D5); }
.post-body strong { color: var(--primary,#1B2A4A); }

.post-share { max-width: 720px; margin-top: 8px; background: var(--surface-2,#F2F5F8); border-radius: 12px; padding: 22px 24px; }
.post-share h3 { font-size: 1.05rem; margin: 0 0 10px; }
.post-share .share-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.post-share button { font: inherit; font-weight: 600; font-size: .9rem; padding: 10px 18px; border: 1px solid var(--line-2,#CDD5DF); border-radius: 8px; background: #fff; color: var(--primary,#1B2A4A); cursor: pointer; }
.post-share button:hover { border-color: var(--primary,#1B2A4A); }
.post-share button.copied { background: var(--accent-deep,#0E8FA0); border-color: var(--accent-deep,#0E8FA0); color: #fff; }
.post-share p { font-size: .85rem; color: var(--muted,#5A6573); margin: 12px 0 0; line-height: 1.5; }

.post-related { max-width: 720px; margin-top: 36px; }
.post-related h3 { font-size: .8rem; font-family: var(--mono,monospace); letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2,#7C8694); margin: 0 0 12px; }
.post-related a { display: block; font-family: var(--sans); font-weight: 600; color: var(--primary,#1B2A4A); padding: 10px 0; border-bottom: 1px solid var(--line,#E2E7EE); }
.post-related a:hover { color: var(--accent-deep,#0E8FA0); text-decoration: none; }

.post-nav { max-width: 720px; display: flex; justify-content: space-between; gap: 16px; margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--line,#E2E7EE); }
.post-nav a { font-size: .92rem; font-weight: 600; color: var(--accent-deep,#0E8FA0); max-width: 46%; }
.post-nav a.nxt { text-align: right; margin-left: auto; }
.post-nav .pn-label { display: block; font-family: var(--mono,monospace); font-size: .64rem; letter-spacing: .07em; text-transform: uppercase; color: var(--muted-2,#7C8694); font-weight: 600; margin-bottom: 3px; }

/* notification preferences */
.pref-card { max-width: 560px; }
.pref-opt { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; }
.pref-opt input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--accent-deep,#0E8FA0); }
.pref-opt label { font-weight: 500; color: var(--ink,#0E1726); line-height: 1.5; }
.pref-note { font-size: .86rem; color: var(--muted,#5A6573); line-height: 1.55; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line,#E2E7EE); }

/* admin blog editor */
.admin-tabs { display: flex; gap: 4px; margin-bottom: 22px; border-bottom: 1px solid var(--line,#E2E7EE); }
.admin-tabs button { font: inherit; font-weight: 600; font-size: .95rem; padding: 11px 20px; border: none; background: none; color: var(--muted,#5A6573); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.admin-tabs button:hover { color: var(--primary,#1B2A4A); }
.admin-tabs button.active { color: var(--primary,#1B2A4A); border-bottom-color: var(--accent,#16C2D5); }
.blog-status-pill { display: inline-block; font-size: .7rem; font-weight: 700; padding: 3px 9px; border-radius: 100px; }
.blog-status-pill.published { background: rgba(46,139,87,.14); color: #1c6b46; }
.blog-status-pill.draft { background: var(--surface-2,#F2F5F8); color: var(--muted,#5A6573); }
.blog-editor { border: 1px solid var(--line,#E2E7EE); border-radius: 14px; background: #fff; padding: 26px 28px; }
.blog-editor .field { margin-bottom: 16px; }
.blog-editor .field label { display: block; font-weight: 600; font-size: .85rem; color: var(--primary,#1B2A4A); margin-bottom: 6px; }
.blog-editor input[type=text], .blog-editor input[type=date], .blog-editor select, .blog-editor textarea { width: 100%; font: inherit; font-size: .95rem; padding: 10px 12px; border: 1px solid var(--line-2,#CDD5DF); border-radius: 8px; background: #fff; color: var(--ink,#0E1726); }
.blog-editor input:focus, .blog-editor select:focus, .blog-editor textarea:focus, .rt-area:focus { outline: none; border-color: var(--accent,#16C2D5); box-shadow: 0 0 0 3px rgba(22,194,213,.15); }
.blog-editor .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rt-toolbar { display: flex; flex-wrap: wrap; gap: 4px; border: 1px solid var(--line-2,#CDD5DF); border-bottom: none; border-radius: 8px 8px 0 0; padding: 6px; background: var(--surface-2,#F2F5F8); }
.rt-toolbar button { font: inherit; font-size: .82rem; font-weight: 600; min-width: 34px; padding: 6px 9px; border: 1px solid transparent; border-radius: 6px; background: #fff; color: var(--primary,#1B2A4A); cursor: pointer; }
.rt-toolbar button:hover { border-color: var(--line-2,#CDD5DF); }
.rt-area { border: 1px solid var(--line-2,#CDD5DF); border-radius: 0 0 8px 8px; min-height: 280px; max-height: 460px; overflow-y: auto; padding: 14px 16px; font-size: 1rem; line-height: 1.65; color: var(--ink,#0E1726); background: #fff; }
.rt-area:empty:before { content: attr(data-placeholder); color: var(--muted-2,#7C8694); }
.rt-area h2 { font-size: 1.3rem; margin: .8em 0 .4em; }
.rt-area h3 { font-size: 1.1rem; margin: .8em 0 .4em; }
.rt-area p { margin: 0 0 .8em; }
.blog-editor .editor-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line,#E2E7EE); }
.char-count { font-size: .78rem; color: var(--muted-2,#7C8694); margin-top: 5px; }
.notif-log { margin-top: 30px; }
.notif-log h3 { font-size: 1.05rem; margin: 0 0 12px; }
.notif-log table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.notif-log th, .notif-log td { text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line,#E2E7EE); }
.notif-log th { background: var(--surface-2,#F2F5F8); color: var(--primary,#1B2A4A); font-weight: 600; }
.notif-log td.muted { color: var(--muted-2,#7C8694); }

/* ============================================================
   About — founder section
   ============================================================ */
.founder { display: grid; grid-template-columns: 220px 1fr; gap: 34px; align-items: start; margin: 24px 0 8px; }
.founder-photo { background: var(--primary,#1B2A4A); border-radius: 14px; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; }
.founder-photo span { color: #fff; font-family: var(--serif,Georgia,serif); font-weight: 700; font-size: 3.1rem; letter-spacing: .04em; }
.founder-name { font-family: var(--sans); font-size: 1.35rem; margin: 0 0 4px; color: var(--primary,#1B2A4A); }
.founder-title { font-size: .95rem; color: var(--muted,#5A6573); line-height: 1.5; margin: 0 0 18px; }
.founder-links { display: flex; flex-wrap: wrap; gap: 14px 26px; margin-top: 22px; }
.founder-links a { font-size: .88rem; font-weight: 600; line-height: 1.4; }
.cred-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.cred-chips span { border: 1px solid var(--line-2,#CDD5DF); border-radius: 100px; padding: 7px 15px; font-family: var(--mono,monospace); font-size: .72rem; letter-spacing: .02em; color: var(--muted,#5A6573); }
@media (max-width: 680px) {
  .founder { grid-template-columns: 1fr; gap: 22px; }
  .founder-photo { order: 2; max-width: 200px; }
  .founder-bio { order: 1; }
  .cred-chips { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .blog-card { padding: 22px 20px; }
  .blog-filter select { min-width: 0; width: 100%; }
  .blog-count { margin-left: 0; }
  .blog-editor .field-row { grid-template-columns: 1fr; }
  .post-nav { flex-direction: column; }
  .post-nav a, .post-nav a.nxt { max-width: 100%; text-align: left; }
}
