/* --------------------------------------------------------------------------
   Editorial Design System — The Edition
   Variables, reset, typography, baseline rhythm
   ------------------------------------------------------------------------- */
:root {
  /* AnA Travel Club palette — Japanese sea / sky / paper system */
  --ed-brand-kamenozoki: #81C7D4; /* 甕覗き：shallow sea / distant sky */
  --ed-brand-hanada: #2775B6;     /* 縹色：clear route blue */
  --ed-brand-rurikon: #19448E;    /* 瑠璃紺：logo deep blue */
  --ed-brand-gunjo: #192F60;      /* 群青色：ink / black replacement */
  --ed-brand-geppaku: #EEF7F2;    /* 月白：mist paper background */
  --ed-brand-torinoko: #FFF1CF;   /* 鳥の子色：warm travel paper */

  /* Blue-gray scale tuned from the brand palette */
  --ed-gray-900: #192F60;
  --ed-gray-800: #1D3B6D;
  --ed-gray-700: #224E7B;
  --ed-gray-600: #3C668A;
  --ed-gray-500: #5B7F99;
  --ed-gray-400: #87A8B8;
  --ed-gray-300: #C7DCE2;
  --ed-gray-200: #D9E9ED;
  --ed-gray-100: #E6F0F2;
  --ed-gray-50:  #F4FAFA;

  /* Paper / surface */
  --ed-paper: #EEF7F2;
  --ed-paper-alt: #FFF1CF;
  --ed-card: rgba(255, 255, 255, .86);
  --ed-card-quiet: rgba(255, 255, 255, .70);
  --ed-card-solid: #FFFFFC;
  --ed-hairline: #C7DCE2;

  /* Ink */
  --ed-ink: var(--ed-brand-gunjo);
  --ed-ink-soft: #102332;
  --ed-muted: #3C668A;
  --ed-micro: #5B7F99;

  /* Links */
  --ed-link: var(--ed-brand-hanada);
  --ed-link-hover: var(--ed-brand-rurikon);

  /* Rule weights */
  --ed-rule: var(--ed-gray-300);
  --ed-rule-strong: var(--ed-gray-500);

  /* Brand / accent */
  --ed-accent: var(--ed-brand-hanada);
  --ed-accent-dark: var(--ed-brand-rurikon);
  --ed-secondary: var(--ed-brand-kamenozoki);
  --ed-focus: var(--ed-brand-hanada);
  --ed-button-ink: #FFFFFC;
  --ed-label-bg: #E6F0F2;
  --ed-label-ink: var(--ed-brand-gunjo);
  --ed-icon-bg: #EEF7F2;

  /* Hero */
  --ed-hero-bg: var(--ed-brand-gunjo);
  --ed-hero-ink: #EEF7F2;
  --ed-hero-deco: var(--ed-brand-kamenozoki);
  --ed-hero-deco-opacity: .16;
  --ed-hero-leading: 1.01;
  --ed-hero-tracking: -.014em;

  /* Footer */
  --ed-footer-bg: var(--ed-brand-gunjo);
  --ed-footer-text: #EEF7F2;

  /* Fonts */
  --ed-font-display: 'Newsreader', Georgia, 'Times New Roman', serif;
  --ed-font-body: 'Source Serif 4', 'Noto Serif JP', 'Noto Serif TC', Georgia, serif;
  --ed-font-editorial: 'Source Serif 4', 'Noto Serif JP', 'Noto Serif TC', Georgia, serif;
  --ed-font-ui: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Typography scale */
  --ed-body-size: 17.5px;
  --ed-body-leading: 1.76;
  --ed-heading-tracking: -.009em;
  --ed-hero-heading-size: clamp(2rem, 5vw, 3.5rem);
  --ed-section-heading-size: clamp(1.4rem, 2.5vw, 1.85rem);

  /* Layout */
  --ed-container: 1170px;
  --ed-content-measure: 68ch;
  --ed-header-height: 84px;
  --ed-logo-size: 1.46rem;
  --ed-logo-weight: 600;
  --ed-logo-tracking: -.012em;

  /* Spacing — editorial vertical rhythm */
  --ed-page-gutter: clamp(1.25rem, 4vw, 2rem);
  --ed-page-gutter-wide: clamp(1.5rem, 5vw, 2.75rem);
  --ed-section-y: clamp(2.2rem, 3.5vw, 3rem);
  --ed-section-y-tight: clamp(1.5rem, 2.5vw, 2.2rem);
  --ed-section-y-compact: clamp(1.2rem, 2vw, 1.8rem);
  --ed-hero-y: clamp(2.8rem, 5vw, 4rem);
  --ed-page-hero-y: clamp(3rem, 5vw, 4.2rem);
  --ed-header-group-gap: clamp(0.5rem, 0.7vw, 0.65rem);
  --ed-header-after: clamp(1rem, 1.6vw, 1.3rem);
  --ed-block-gap: clamp(1.2rem, 2.2vw, 1.8rem);
  --ed-grid-gap: clamp(0.85rem, 1.3vw, 1.1rem);
  --ed-grid-gap-large: clamp(1.2rem, 2vw, 1.8rem);
  --ed-card-pad: clamp(0.75rem, 1.3vw, 1rem);
  --ed-card-pad-sm: clamp(0.6rem, 1vw, 0.8rem);
  --ed-card-gap: clamp(0.5rem, 0.85vw, 0.65rem);
  --ed-label-mb: 0.5rem;
  --ed-title-mb: 0.5rem;
  --ed-paragraph-stack: 0.6rem;
  --ed-button-py: 0.55rem;
  --ed-button-px: 1.65rem;
  --ed-footer-col-pad-y: clamp(2.7rem, 4.5vw, 3.55rem);
  --ed-footer-col-pad-x: clamp(1.45rem, 3vw, 2.15rem);

  /* Radii */
  --ed-radius-label: 3px;
  --ed-radius-card: 9px;
  --ed-radius-button: 7px;
  --ed-radius-image: 6px;
  --ed-radius-icon: 6px;

  /* Shadows */
  --ed-soft-shadow: 0 1px 0 rgba(25,47,96,.025), 0 10px 30px rgba(25,47,96,.045);
  --ed-hover-shadow: 0 1px 0 rgba(25,47,96,.03), 0 14px 36px rgba(25,47,96,.065);
}

/* Mobile variable overrides */
@media (max-width: 959px) {
  :root {
    --ed-body-size: 17px;
    --ed-body-leading: 1.78;
    --ed-page-gutter: clamp(1rem, 5vw, 1.25rem);
    --ed-section-y: clamp(2rem, 7vw, 2.5rem);
    --ed-section-y-tight: clamp(1.4rem, 6vw, 1.85rem);
    --ed-section-y-compact: clamp(1.1rem, 5vw, 1.5rem);
    --ed-hero-y: clamp(2.4rem, 9vw, 3.2rem);
    --ed-page-hero-y: clamp(2.8rem, 10vw, 3.5rem);
    --ed-header-after: clamp(0.95rem, 4vw, 1.25rem);
    --ed-block-gap: clamp(1rem, 4.5vw, 1.4rem);
    --ed-grid-gap: 0.8rem;
    --ed-grid-gap-large: clamp(1rem, 4.5vw, 1.4rem);
    --ed-card-pad: clamp(0.7rem, 3.5vw, 0.9rem);
    --ed-card-pad-sm: clamp(0.55rem, 3vw, 0.7rem);
    --ed-button-py: 0.5rem;
    --ed-button-px: 1rem;
  }
}

@media (max-width: 420px) {
  :root {
    --ed-page-gutter: 0.9rem;
  }
}

/* Reset / base */
*, *::before, *::after { box-sizing: border-box; }
html { line-height: 1.15; -webkit-text-size-adjust: 100%; text-rendering: optimizeLegibility; }
body {
  margin: 0;
  background: var(--ed-paper);
  color: var(--ed-ink);
  font-family: var(--ed-font-body);
  font-size: var(--ed-body-size);
  line-height: var(--ed-body-leading);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.nav-open { overflow: hidden; }
img, svg, video { max-width: 100%; height: auto; display: block; }
a {
  color: var(--ed-link);
  text-decoration: none;
}
a:hover { color: var(--ed-link-hover); }
.entry-content a,
.breadcrumbs a,
.comment-content a { text-decoration: underline; text-underline-offset: 2px; }
.entry-content a:hover,
.breadcrumbs a:hover,
.comment-content a:hover { text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
::selection { background: #D9E9ED; color: #192F60; }

.screen-reader-text,
.says {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0;
  position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
  clip: auto !important; clip-path: none; display: block;
  height: auto; left: 1rem; padding: .75rem 1rem; top: 1rem;
  width: auto; z-index: 100000;
  background: var(--ed-hero-bg); color: var(--ed-hero-ink);
}
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 2px solid var(--ed-focus); outline-offset: 3px;
}

html, body { max-width: 100%; overflow-x: hidden; }
@supports (overflow-x: clip) {
  html, body { overflow-x: clip; }
  body.nav-open { overflow: hidden; }
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ed-font-display);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: var(--ed-heading-tracking);
}
h1 { font-size: var(--ed-hero-heading-size); }
h2 { font-size: var(--ed-section-heading-size); }
h3 { font-size: clamp(1.45rem, 2vw, 1.8rem); }
p { margin-top: 0; margin-bottom: 1.15rem; }
small, .entry-meta, .entry-footer, .editorial-kicker,
.blog-date, .footer-label, .footer-col-title {
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

/* Body text in long-form contexts */
.entry-content, .story-body, .prog-desc,
.founder-bio, .testimonial-card p, .section-lead {
  font-family: var(--ed-font-body);
  line-height: 1.82;
}

/* UI text (nav, buttons, labels) */
.primary-menu a, .header-cta, .btn-primary,
.btn-dark, .btn-outline-primary, .btn-outline-white,
.btn-amber, .label-pill, .badge-pill {
  font-family: var(--ed-font-ui);
}
