/* ============================================================
   Aozora LP Design System — static port for otoma-ai.com
   White-background, blue/cyan (青系) B2B SaaS landing page.
   Ported from the "Aozora LP Design System" tokens + components
   into plain CSS classes (no React). Emoji禁止 / Lucide line icons.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Outfit:wght@400;500;600;700;800&display=swap');

:root {
  /* ---- Brand blue ---- */
  --blue-50:#EEF4FF; --blue-100:#DBE7FF; --blue-200:#B8CEFF; --blue-300:#8FAEFF;
  --blue-400:#5B8AFB; --blue-500:#2E72F6; --blue-600:#155CF0; --blue-700:#0F47C2;
  --blue-800:#0E3A99; --blue-900:#102E73;
  /* ---- Cyan ---- */
  --cyan-50:#E7FBFE; --cyan-100:#C3F4FB; --cyan-300:#5FE0F2; --cyan-400:#22CDEA;
  --cyan-500:#06B2D4; --cyan-600:#0791b3;
  /* ---- Cool neutral ramp ---- */
  --gray-0:#FFFFFF; --gray-50:#F6F9FC; --gray-100:#EEF2F8; --gray-150:#E6ECF4;
  --gray-200:#DCE3ED; --gray-300:#C4CEDC; --gray-400:#97A4B8; --gray-500:#6B7A91;
  --gray-600:#4E5C72; --gray-700:#374256; --gray-800:#232C3D; --gray-900:#131A28;
  /* ---- Semantic accents ---- */
  --green-500:#1FB271; --green-50:#E7F8F0; --amber-500:#F59E0B; --amber-50:#FEF4E2;
  --red-500:#E5484D; --red-50:#FCECEC;
  /* ---- Aliases ---- */
  --text-strong:var(--gray-900); --text-body:var(--gray-700); --text-muted:var(--gray-500);
  --text-faint:var(--gray-400); --text-on-accent:#FFFFFF; --text-link:var(--blue-600);
  --surface-page:#FFFFFF; --surface-subtle:var(--gray-50); --surface-card:#FFFFFF;
  --surface-sunken:var(--gray-100); --surface-inverse:var(--gray-900);
  --surface-accent-soft:var(--blue-50); --surface-cyan-soft:var(--cyan-50);
  --border-subtle:var(--gray-150); --border-default:var(--gray-200); --border-strong:var(--gray-300);
  --border-accent:var(--blue-600);
  --accent:var(--blue-600); --accent-hover:var(--blue-700); --accent-press:var(--blue-800);
  --accent-soft:var(--blue-50); --accent-cyan:var(--cyan-400);
  --gradient-brand:linear-gradient(110deg, var(--blue-600) 0%, var(--cyan-400) 100%);
  --gradient-brand-soft:linear-gradient(150deg, var(--blue-50) 0%, var(--cyan-50) 100%);
  --gradient-hero:radial-gradient(120% 120% at 80% 0%, var(--cyan-50) 0%, var(--blue-50) 38%, #ffffff 75%);

  /* ---- Typography ---- */
  --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
  --font-latin:"Outfit","Noto Sans JP",system-ui,sans-serif;
  --font-body:var(--font-jp); --font-display:var(--font-jp);
  --fw-regular:400; --fw-medium:500; --fw-bold:700; --fw-black:900;
  --fs-hero:clamp(2.5rem,1.6rem + 3.8vw,4.5rem);
  --fs-h1:clamp(2rem,1.4rem + 2.6vw,3.25rem);
  --fs-h2:clamp(1.625rem,1.2rem + 1.8vw,2.5rem);
  --fs-h3:clamp(1.25rem,1.05rem + 0.8vw,1.625rem);
  --fs-h4:1.25rem; --fs-lead:clamp(1.0625rem,1rem + 0.4vw,1.25rem);
  --fs-body:1rem; --fs-body-lg:1.0625rem; --fs-small:0.875rem; --fs-xs:0.75rem; --fs-eyebrow:0.8125rem;
  --lh-tight:1.18; --lh-snug:1.32; --lh-normal:1.6; --lh-relaxed:1.85;
  --ls-tight:-0.02em; --ls-normal:0; --ls-wide:0.04em; --ls-eyebrow:0.16em;

  /* ---- Radii ---- */
  --radius-xs:6px; --radius-sm:10px; --radius-md:14px; --radius-lg:20px;
  --radius-xl:28px; --radius-2xl:36px; --radius-pill:999px;
  /* ---- Shadows (cool-tinted) ---- */
  --shadow-xs:0 1px 2px rgba(16,36,61,0.06); --shadow-sm:0 2px 8px rgba(16,36,61,0.06);
  --shadow-md:0 10px 26px rgba(16,36,61,0.08); --shadow-lg:0 22px 50px rgba(16,36,61,0.10);
  --shadow-xl:0 36px 80px rgba(16,36,61,0.14);
  --shadow-accent:0 12px 26px rgba(21,92,240,0.30); --shadow-accent-sm:0 6px 16px rgba(21,92,240,0.24);
  --ring-accent:0 0 0 4px rgba(21,92,240,0.18);
  /* ---- Motion ---- */
  --ease-out:cubic-bezier(0.22,1,0.36,1); --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:420ms;
  --header-h:72px;
  /* ---- Spacing ---- */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;
  --space-20:80px; --space-24:96px; --space-32:128px;
  --section-y:clamp(64px,4vw + 40px,128px); --section-y-tight:clamp(48px,3vw + 28px,88px);
  --container:1200px; --container-wide:1320px; --container-text:760px;
  --gutter:clamp(20px,5vw,64px);
}

/* ============================================================ Base */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-relaxed);
  color:var(--text-body);background:var(--surface-page);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{margin:0;color:var(--text-strong);font-weight:var(--fw-black);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);}
p{margin:0;}
a{color:var(--text-link);text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;}

/* ---- Helpers ---- */
.az-eyebrow{
  font-family:var(--font-latin);font-size:var(--fs-eyebrow);font-weight:var(--fw-bold);
  letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--accent);
  display:inline-flex;align-items:center;gap:var(--space-2);
}
.az-eyebrow--muted{color:var(--text-muted);}
.az-eyebrow__tick{width:22px;height:2px;border-radius:2px;background:var(--gradient-brand);flex:0 0 auto;}
.az-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter);}
.az-container--wide{max-width:var(--container-wide);}
.az-container--text{max-width:var(--container-text);}
.az-section{padding-block:var(--section-y);}
.az-section--subtle{background:var(--surface-subtle);}
.az-gradient-text{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent;}
.az-mono{font-family:var(--font-latin);}

/* ============================================================ SectionHeading */
.az-sh{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4);max-width:720px;margin-inline:auto;}
.az-sh--left{align-items:flex-start;text-align:left;max-width:none;margin-inline:0;}
.az-sh__title{font-size:var(--fs-h2);margin:0;}
.az-sh__lead{margin:0;font-size:var(--fs-lead);color:var(--text-muted);line-height:var(--lh-normal);max-width:640px;}

/* ============================================================ Button */
.az-btn{
  display:inline-flex;width:auto;align-items:center;justify-content:center;gap:8px;
  padding:13px 26px;font-family:var(--font-body);font-size:1rem;font-weight:var(--fw-bold);
  line-height:1;letter-spacing:0.01em;border-radius:var(--radius-pill);border:1px solid transparent;
  cursor:pointer;white-space:nowrap;text-decoration:none;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background var(--dur-base),color var(--dur-base);
}
.az-btn:hover{transform:translateY(-2px);}
.az-btn--block{display:flex;width:100%;}
.az-btn--sm{padding:9px 18px;font-size:var(--fs-small);gap:6px;}
.az-btn--lg{padding:17px 34px;font-size:var(--fs-body-lg);gap:10px;}
.az-btn--primary{background:var(--gradient-brand);color:var(--text-on-accent);box-shadow:var(--shadow-accent);}
.az-btn--primary:hover{box-shadow:0 16px 32px rgba(21,92,240,0.38);}
.az-btn--solid{background:var(--accent);color:var(--text-on-accent);box-shadow:var(--shadow-accent-sm);}
.az-btn--secondary{background:var(--surface-card);color:var(--text-strong);border-color:var(--border-strong);box-shadow:var(--shadow-xs);}
.az-btn--secondary:hover{border-color:var(--accent);color:var(--accent);}
.az-btn--soft{background:var(--accent-soft);color:var(--accent-hover);}
.az-btn--ghost{background:transparent;color:var(--text-strong);}
.az-btn--on-accent{background:#fff;color:var(--accent);box-shadow:0 8px 22px rgba(0,0,0,0.14);}
.az-btn--ghost-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.4);}
.az-btn i,.az-btn svg{width:1.1em;height:1.1em;}

/* ============================================================ Badge */
.az-badge{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;font-family:var(--font-body);
  font-size:var(--fs-small);font-weight:var(--fw-bold);line-height:1.1;letter-spacing:0.01em;
  border:1px solid transparent;border-radius:var(--radius-pill);
}
.az-badge--sm{padding:3px 9px;font-size:var(--fs-xs);}
.az-badge__dot{width:6px;height:6px;border-radius:999px;background:currentColor;flex:0 0 auto;}
.az-badge--accent-soft{background:var(--accent-soft);color:var(--accent-hover);}
.az-badge--cyan-soft{background:var(--cyan-50);color:var(--cyan-600);}
.az-badge--cyan-solid{background:var(--cyan-500);color:#fff;}
.az-badge--neutral-soft{background:var(--gray-100);color:var(--gray-700);}
.az-badge--green-soft{background:var(--green-50);color:var(--green-500);}
.az-badge--amber-soft{background:var(--amber-50);color:var(--amber-500);}
.az-badge--red-soft{background:var(--red-50);color:var(--red-500);}

/* ============================================================ Card */
.az-card{
  position:relative;background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-8);overflow:hidden;
  transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
}
.az-card--sm-shadow{box-shadow:var(--shadow-sm);}
.az-card--pad-md{padding:var(--space-6);}
.az-card--interactive{cursor:default;}
.az-card--interactive:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.az-card__accent-top{position:absolute;inset-inline:0;top:0;height:4px;background:var(--gradient-brand);}

/* ============================================================ FeatureCard */
.az-feature{
  position:relative;background:var(--surface-card);border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-sm);
  transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);
}
.az-feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.az-feature__num{position:absolute;top:var(--space-6);right:var(--space-8);font-family:var(--font-latin);font-weight:800;font-size:1.4rem;color:var(--gray-150);}
.az-feature__chip{
  display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;
  border-radius:var(--radius-md);background:var(--blue-50);color:var(--accent);margin-bottom:var(--space-5);
}
.az-feature__chip--cyan{background:var(--cyan-50);color:var(--cyan-600);}
.az-feature__chip i,.az-feature__chip svg{width:26px;height:26px;stroke-width:1.75;}
.az-feature__title{font-size:var(--fs-h4);margin:0 0 var(--space-3);}
.az-feature__body{margin:0;font-size:var(--fs-body);color:var(--text-muted);line-height:var(--lh-normal);}

/* ============================================================ Stat */
.az-stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;}
.az-stat--left{align-items:flex-start;text-align:left;}
.az-stat__fig{
  font-family:var(--font-latin);font-weight:800;font-size:clamp(2.4rem,1.6rem + 2.4vw,3.6rem);
  line-height:1;letter-spacing:-0.02em;display:flex;align-items:baseline;gap:2px;color:var(--text-strong);
}
.az-stat__fig.az-gradient-text{color:transparent;}
.az-stat__prefix{font-size:0.55em;}
.az-stat__suffix{font-size:0.5em;font-weight:700;}
.az-stat__label{font-size:var(--fs-small);color:var(--text-muted);font-weight:500;}

/* ============================================================ Avatar */
.az-avatar{
  display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 auto;
  border-radius:var(--radius-pill);overflow:hidden;background:var(--gradient-brand-soft);color:var(--accent-hover);
  font-family:var(--font-latin);font-weight:var(--fw-bold);font-size:17px;
}

/* ============================================================ Accordion (FAQ) */
.az-acc{display:flex;flex-direction:column;gap:var(--space-3);}
.az-acc__item{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--dur-fast);}
.az-acc__item[open]{border-color:var(--border-accent);box-shadow:var(--shadow-sm);}
.az-acc__sum{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;cursor:pointer;
  padding:var(--space-5) var(--space-6);font-size:var(--fs-body-lg);font-weight:var(--fw-bold);color:var(--text-strong);
}
.az-acc__sum::-webkit-details-marker{display:none;}
.az-acc__q{display:flex;gap:12px;align-items:center;}
.az-acc__q-mark{font-family:var(--font-latin);font-weight:800;color:var(--accent);font-size:0.95rem;}
.az-acc__chev{
  flex:0 0 auto;width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--surface-sunken);color:var(--text-muted);transition:all var(--dur-fast);
}
.az-acc__item[open] .az-acc__chev{background:var(--accent);color:#fff;}
.az-acc__chev svg{transition:transform var(--dur-base) var(--ease-out);}
.az-acc__item[open] .az-acc__chev svg{transform:rotate(180deg);}
.az-acc__body{margin:0;padding:0 var(--space-6) var(--space-6);color:var(--text-muted);line-height:var(--lh-relaxed);}

/* ============================================================ Header */
.az-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0);border-bottom:1px solid transparent;transition:all var(--dur-base) var(--ease-out);}
.az-head.is-scrolled{background:rgba(255,255,255,0.86);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom-color:var(--border-subtle);}
.az-head__inner{max-width:var(--container-wide);margin:0 auto;height:var(--header-h);padding:0 var(--gutter);display:flex;align-items:center;gap:14px;}
.az-head__brand{display:flex;align-items:center;gap:10px;}
.az-head__brand-name{font-family:var(--font-latin);font-weight:800;font-size:1.18rem;color:var(--text-strong);letter-spacing:-0.01em;}
.az-head__brand-sub{font-size:0.72rem;color:var(--text-muted);font-weight:500;}
.az-head__nav{display:flex;gap:26px;margin-left:18px;}
.az-head__nav a{font-size:0.95rem;font-weight:500;color:var(--text-body);white-space:nowrap;}
.az-head__nav a:hover{color:var(--accent);}
.az-head__cta{margin-left:auto;display:flex;align-items:center;gap:10px;}

/* ============================================================ Hero */
.az-hero{position:relative;background:var(--gradient-hero);overflow:hidden;}
.az-hero__inner{max-width:var(--container);margin:0 auto;padding:clamp(48px,6vw,96px) var(--gutter) clamp(40px,4vw,72px);}
.az-hero__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,4vw,64px);align-items:center;}
.az-hero h1{font-size:var(--fs-hero);margin:18px 0 0;line-height:1.16;}
.az-hero__lead{font-size:var(--fs-lead);color:var(--text-muted);line-height:1.7;margin:20px 0 0;max-width:480px;}
.az-hero__cta{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap;}
.az-hero__fine{font-size:var(--fs-small);color:var(--text-faint);margin-top:16px;}

/* ---- Hero stat cards ---- */
.az-herostats{gap:8px;padding:16px 14px;}
.az-herostats__num{font-family:var(--font-latin);font-weight:800;font-size:1.65rem;line-height:1;}
.az-herostats__num--sm{font-size:1.3rem;}
.az-herostats__label{font-size:0.66rem;color:var(--text-muted);margin-top:4px;line-height:1.35;}

/* ============================================================ Grids */
.az-g3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.az-g4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.az-g2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.az-mt-grid{margin-top:48px;}

/* ---- Plain icon chip (neutral, for Problem cards) ---- */
.az-chip-neutral{display:inline-flex;width:48px;height:48px;border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-muted);align-items:center;justify-content:center;margin-bottom:18px;}
.az-chip-neutral i,.az-chip-neutral svg{width:24px;height:24px;stroke-width:1.75;}
.az-chip-warn{background:var(--red-50);color:var(--red-500);}
.az-chip-amber{background:var(--amber-50);color:var(--amber-500);}

/* ============================================================ Steps */
.az-step{text-align:center;padding:0 8px;}
.az-step__badge{width:64px;height:64px;margin:0 auto 18px;border-radius:var(--radius-pill);background:var(--gradient-brand);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-latin);font-weight:800;font-size:24px;box-shadow:var(--shadow-accent);}
.az-step h3{font-size:1.2rem;margin:0 0 8px;}
.az-step p{margin:0;color:var(--text-muted);}

/* ============================================================ Stats band */
.az-statband{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:clamp(32px,4vw,56px);background:var(--gradient-brand-soft);border-radius:var(--radius-2xl);border:1px solid var(--border-subtle);}

/* ============================================================ Pricing */
.az-price{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:stretch;}
.az-price__card{display:flex;flex-direction:column;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-sm);}
.az-price__card--featured{background:var(--surface-inverse);color:#fff;border-color:transparent;box-shadow:var(--shadow-xl);transform:translateY(-8px);}
.az-price__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.az-price__name{font-family:var(--font-latin);font-weight:800;font-size:1.05rem;color:var(--text-strong);}
.az-price__card--featured .az-price__name{color:#fff;}
.az-price__desc{margin:0 0 18px;font-size:0.88rem;color:var(--text-muted);}
.az-price__card--featured .az-price__desc{color:rgba(255,255,255,.65);}
.az-price__amount{display:flex;align-items:baseline;gap:2px;margin-bottom:8px;}
.az-price__amount .num{font-family:var(--font-latin);font-weight:800;font-size:40px;letter-spacing:-0.02em;}
.az-price__amount .unit{font-size:0.9rem;color:var(--text-muted);}
.az-price__card--featured .az-price__amount .unit{color:rgba(255,255,255,.6);}
.az-price__strike{font-family:var(--font-latin);color:var(--text-faint);text-decoration:line-through;font-size:1.05rem;margin-bottom:14px;}
.az-price__card--featured .az-price__strike{color:rgba(255,255,255,.5);}
.az-price__feats{list-style:none;padding:0;margin:0 0 26px;display:flex;flex-direction:column;gap:11px;flex:1;}
.az-price__feats li{display:flex;gap:9px;align-items:center;font-size:0.92rem;color:var(--text-body);}
.az-price__card--featured .az-price__feats li{color:rgba(255,255,255,.92);}
.az-price__feats .ck{width:18px;height:18px;display:inline-flex;color:var(--accent);flex:0 0 auto;}
.az-price__card--featured .az-price__feats .ck{color:var(--cyan-300);}

/* ============================================================ CTA band */
.az-ctaband{padding:clamp(56px,6vw,104px) var(--gutter);}
.az-ctaband__inner{max-width:var(--container);margin:0 auto;background:var(--gradient-brand);border-radius:var(--radius-2xl);padding:clamp(40px,5vw,72px);text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-accent);}
.az-ctaband__inner::before{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,0.12);top:-160px;right:-80px;}
.az-ctaband h2{color:#fff;font-size:var(--fs-h1);margin:0;position:relative;}
.az-ctaband p{color:rgba(255,255,255,0.88);font-size:var(--fs-lead);margin:16px auto 0;max-width:520px;position:relative;}
.az-ctaband__btns{display:flex;gap:12px;justify-content:center;margin-top:30px;flex-wrap:wrap;position:relative;}

/* ============================================================ Footer */
.az-foot{background:var(--surface-inverse);color:rgba(255,255,255,0.7);padding:clamp(48px,5vw,72px) var(--gutter) 32px;}
.az-foot__grid{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px;}
.az-foot__lead{font-size:0.88rem;line-height:1.8;margin:18px 0 0;max-width:300px;color:rgba(255,255,255,0.55);}
.az-foot__h{font-weight:700;color:#fff;font-size:0.9rem;margin-bottom:16px;}
.az-foot__col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;}
.az-foot__col a{color:rgba(255,255,255,0.6);font-size:0.88rem;}
.az-foot__col a:hover{color:#fff;}
.az-foot__bottom{max-width:var(--container);margin:40px auto 0;padding-top:22px;border-top:1px solid rgba(255,255,255,0.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:0.8rem;color:rgba(255,255,255,0.45);}
.az-foot__bottom a{color:inherit;}
.az-foot__bottom a:hover{color:#fff;}

/* ============================================================ Callout / note boxes */
.az-note{background:var(--surface-subtle);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);font-size:0.92rem;color:var(--text-muted);}
.az-note--warn{background:var(--amber-50);border-color:#F5D9A0;color:#8A6314;}
.az-note strong{color:var(--text-strong);}
.az-disclaimer{font-size:0.78rem;color:var(--text-faint);line-height:1.7;margin-top:16px;}

/* ---- check list (generic) ---- */
.az-checklist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.az-checklist li{display:flex;gap:10px;align-items:flex-start;color:var(--text-body);}
.az-checklist .ck{flex:0 0 auto;width:20px;height:20px;color:var(--accent);margin-top:2px;}
.az-xlist li .xk{color:var(--red-500);}

/* ============================================================ Sticky CTA */
.az-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);padding:12px var(--gutter);transform:translateY(110%);transition:transform var(--dur-base) var(--ease-out);box-shadow:0 -8px 30px rgba(16,36,61,0.08);}
.az-sticky.show{transform:translateY(0);}
.az-sticky__inner{max-width:var(--container);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.az-sticky__price{display:flex;flex-direction:column;line-height:1.3;}
.az-sticky__price .now{font-family:var(--font-latin);font-weight:800;font-size:1.2rem;color:var(--text-strong);}
.az-sticky__price .lbl{font-size:0.74rem;color:var(--text-muted);}

/* ============================================================ Responsive */
@media (max-width:860px){
  .az-hero__grid{grid-template-columns:1fr;}
  .az-g3{grid-template-columns:1fr;}
  .az-g4{grid-template-columns:repeat(2,1fr);}
  .az-statband{grid-template-columns:repeat(2,1fr);}
  .az-price{grid-template-columns:1fr;}
  .az-price__card--featured{transform:none;}
  .az-foot__grid{grid-template-columns:1fr 1fr;}
  .az-head__nav{display:none;}
}
@media (max-width:520px){
  .az-g2{grid-template-columns:1fr;}
  .az-g4{grid-template-columns:1fr 1fr;}
  .az-foot__grid{grid-template-columns:1fr;}
  .az-sticky__inner{gap:10px;}
  .az-head__brand-sub{display:none;}
  /* スマホ: リード文は左寄せ＋PC用の強制改行を解除して自然に折り返す */
  .az-sh__lead{text-align:left;}
  .az-sh__lead br{display:none;}
  /* スマホ: 長いCTA文言がnowrapで画面幅からはみ出すのを防ぐ */
  .az-btn{white-space:normal;text-align:center;}
}
@media (max-width:380px){
  .az-herostats{gap:4px;padding:10px 8px;}
  .az-herostats__num{font-size:1.2rem;}
  .az-herostats__num--sm{font-size:1.05rem;}
  .az-herostats__label{font-size:0.6rem;}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:0.001ms !important;transition-duration:0.001ms !important;}}

/* ---- Document pages (特商法/privacy) ---- */
.az-doc{max-width:var(--container-text);margin:0 auto;padding:clamp(48px,6vw,88px) var(--gutter) 96px;}
.az-doc h1{font-size:var(--fs-h1);margin-bottom:8px;}
.az-doc__sub{font-family:var(--font-latin);font-size:0.78rem;color:var(--accent);letter-spacing:0.14em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:36px;}
.az-doc h2{font-size:1.1rem;margin:36px 0 12px;padding-left:12px;border-left:4px solid var(--accent);}
.az-doc p,.az-doc li{color:var(--text-body);margin-bottom:10px;}
.az-doc table{width:100%;border-collapse:collapse;font-size:0.92rem;margin:16px 0;}
.az-doc th,.az-doc td{border:1px solid var(--border-default);padding:14px 18px;text-align:left;vertical-align:top;}
.az-doc th{background:var(--surface-subtle);width:30%;font-weight:700;color:var(--text-strong);}
.az-doc td{color:var(--text-body);}
.az-doc td strong,.az-doc p strong{color:var(--text-strong);}
.az-doc .back{display:inline-block;margin-top:32px;font-size:0.9rem;font-weight:700;}

/* ---- Spec / key-value table (必要環境) ---- */
.az-spec{width:100%;border-collapse:collapse;font-size:0.92rem;}
.az-spec th,.az-spec td{border:1px solid var(--border-default);padding:13px 16px;text-align:left;vertical-align:top;}
.az-spec th{background:var(--surface-subtle);width:30%;font-weight:700;color:var(--text-strong);}
.az-spec td{color:var(--text-body);}

/* ---- Mobile: stack key-value tables into per-row cards ---- */
@media (max-width:520px){
  .az-spec,.az-spec tbody,.az-doc table,.az-doc tbody{display:block;width:100%;}
  .az-spec tr,.az-doc table tr{display:block;border:1px solid var(--border-default);border-radius:10px;overflow:hidden;margin-bottom:12px;}
  .az-spec th,.az-spec td,.az-doc th,.az-doc td{display:block;width:auto;border:0;}
  .az-spec th,.az-doc th{width:auto;background:var(--surface-subtle);padding:9px 14px;border-bottom:1px solid var(--border-default);font-size:0.82rem;letter-spacing:0.02em;}
  .az-spec td,.az-doc td{padding:12px 14px;}
}
