/* ============================================================================
   ShoutCreate — Bento design system (classic Japanese "obento" palette)
   Shared across every customer-facing page. Flat block colours, no gradients.
   Light + dark. Include <link rel="stylesheet" href="bento.css"> and add
   class="bento-page" to <body>. Toggle dark with class "bento-dark" on <html>.
   ============================================================================ */

:root{
  --paper:#F0EBDD;      /* rice paper base   */
  --ink:#1A1712;        /* sumi ink          */
  --card:#F6F1E4;       /* warm card         */
  --line:rgba(26,23,18,.12);
  --muted:#5B544A;      /* soft body text    */
  --matcha:#8FA36B;
  --tamago:#E4B24A;
  --salmon:#D8795B;
  --umeboshi:#C0392B;
  --indigo:#2C3E63;
  --paper-on-dark:#F6F1E4;

  --r:26px; --r-sm:16px; --r-pill:999px;
  --shadow:0 20px 44px -26px rgba(26,23,18,.34);
  --maxw:1240px;
  --font:"Helvetica Neue",Helvetica,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
html.bento-dark{
  --paper:#16130E;      /* sumi night        */
  --ink:#F6F1E4;        /* text goes light   */
  --card:#211C15;       /* warm charcoal card*/
  --line:rgba(246,241,228,.14);
  --muted:#AEA695;
  --shadow:0 24px 50px -28px rgba(0,0,0,.6);
}

/* ---- base ---- */
.bento-page{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font); -webkit-font-smoothing:antialiased;
  line-height:1.55; letter-spacing:-.005em;
}
.bento-page *{ box-sizing:border-box; }
/* Plain links inherit surrounding colour — but NOT buttons, and NOT cards that
   are themselves links (a card must keep its own block-colour text rules). */
.bento-page a:not(.bento-btn):not(.bento-card){ color:inherit; }
.bento-page a{ text-decoration:none; }
.bento-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }
@media(max-width:640px){ .bento-wrap{ padding:0 20px; } }

/* ---- top nav (rounded pill bar) ---- */
.bento-nav{
  position:sticky; top:14px; z-index:60;
  max-width:var(--maxw); margin:14px auto 0; padding:12px 20px;
  display:flex; align-items:center; gap:20px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-pill);
  box-shadow:0 10px 30px -22px rgba(26,23,18,.5);
}
.bento-brand{ display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:1.05rem; letter-spacing:-.02em; color:var(--ink); }
/* Brand logo mark — its own red on all fixed pages (nav + footer). */
.bento-brand-mark{ width:28px; height:28px; display:grid; place-items:center; color:#C0392B; }
.bento-footer .bento-brand-mark{ color:#C0392B !important; }
.bento-brand-mark svg{ width:100%; height:100%; }
.bento-nav-links{ display:flex; align-items:center; gap:22px; margin-left:8px; }
.bento-nav-links a{ font-size:14px; font-weight:600; color:var(--muted); transition:color .15s; }
.bento-nav-links a:hover{ color:var(--ink); }
.bento-nav-actions{ margin-left:auto; display:flex; align-items:center; gap:12px; }
@media(max-width:820px){ .bento-nav-links{ display:none; } }

.bento-theme-toggle{
  width:38px; height:38px; border-radius:var(--r-pill); border:1px solid var(--line);
  background:transparent; color:var(--ink); cursor:pointer; display:inline-flex; align-items:center; justify-content:center;
}
.bento-theme-toggle:hover{ background:var(--paper); }
.bento-theme-toggle .ic-sun{ display:none; }
html.bento-dark .bento-theme-toggle .ic-moon{ display:none; }
html.bento-dark .bento-theme-toggle .ic-sun{ display:inline; }

/* ---- headings / text ---- */
.bento-eyebrow{ display:inline-block; font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--umeboshi); }
.bento-h1{ font-size:clamp(38px,5vw,66px); font-weight:850; letter-spacing:-.035em; line-height:.98; margin:.3em 0; }
.bento-h2{ font-size:clamp(26px,3.2vw,40px); font-weight:850; letter-spacing:-.03em; line-height:1.05; margin:0 0 .4em; }
.bento-h3{ font-size:clamp(19px,2vw,25px); font-weight:800; letter-spacing:-.02em; margin:0 0 .4em; }
.bento-lead{ font-size:clamp(16px,1.5vw,18px); color:var(--muted); line-height:1.6; margin:0 0 1.4em; max-width:60ch; }
.bento-muted{ color:var(--muted); }
.bento-page h1,.bento-page h2,.bento-page h3{ color:var(--ink); }

/* ---- section + grid ---- */
.bento-section{ padding:34px 0; }
.bento-section.tight{ padding:20px 0; }
.bento-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:20px; }
.col-3{ grid-column:span 3; } .col-4{ grid-column:span 4; } .col-5{ grid-column:span 5; }
.col-6{ grid-column:span 6; } .col-7{ grid-column:span 7; } .col-8{ grid-column:span 8; }
.col-9{ grid-column:span 9; } .col-12{ grid-column:span 12; }
.row-2{ grid-row:span 2; }
@media(max-width:900px){
  .bento-grid{ grid-template-columns:repeat(6,1fr); }
  .col-3,.col-4,.col-5{ grid-column:span 3; }
  .col-6,.col-7,.col-8{ grid-column:span 6; }
  .col-9,.col-12{ grid-column:span 6; }
}
@media(max-width:560px){
  .bento-grid{ grid-template-columns:1fr; }
  [class*="col-"]{ grid-column:1 / -1; }
}

/* ---- cards ---- */
.bento-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r);
  padding:30px 32px; box-shadow:var(--shadow); position:relative; overflow:hidden;
}
.bento-card.pad-lg{ padding:44px 46px; }
.bento-card.center{ text-align:center; }
.bento-card.flush{ box-shadow:none; }
/* block-colour variants.
   NB: "ink" blocks must stay DARK in both themes, so they use a fixed sumi tone
   (not var(--ink), which flips to light in dark mode). */
.bento-card.is-ink{ background:#1F1A14; color:var(--paper-on-dark); border-color:transparent; }
html.bento-dark .bento-card.is-ink{ background:#2A241C; border:1px solid rgba(246,241,228,.10); }
.bento-card.is-ink h1,.bento-card.is-ink h2,.bento-card.is-ink h3{ color:var(--paper-on-dark); }
.bento-card.is-ink .bento-lead,.bento-card.is-ink .bento-muted{ color:rgba(246,241,228,.74); }
.bento-card.is-indigo{ background:var(--indigo); color:#F6F1E4; border-color:transparent; }
.bento-card.is-indigo h1,.bento-card.is-indigo h2,.bento-card.is-indigo h3{ color:#F6F1E4; }
.bento-card.is-indigo .bento-lead{ color:rgba(246,241,228,.8); }
.bento-card.is-matcha{ background:var(--matcha); color:#1A1712; border-color:transparent; }
.bento-card.is-tamago{ background:var(--tamago); color:#1A1712; border-color:transparent; }
.bento-card.is-salmon{ background:var(--salmon); color:#1A1712; border-color:transparent; }
.bento-card.is-umeboshi{ background:var(--umeboshi); color:#F6F1E4; border-color:transparent; }
.bento-card.is-umeboshi h1,.bento-card.is-umeboshi h2,.bento-card.is-umeboshi h3{ color:#F6F1E4; }
/* accent-block cards force dark headings/eyebrows regardless of theme */
.bento-card.is-matcha h1,.bento-card.is-matcha h2,.bento-card.is-matcha h3,
.bento-card.is-tamago h1,.bento-card.is-tamago h2,.bento-card.is-tamago h3,
.bento-card.is-salmon h1,.bento-card.is-salmon h2,.bento-card.is-salmon h3{ color:#1A1712; }
.bento-card.is-matcha .bento-eyebrow,.bento-card.is-tamago .bento-eyebrow,.bento-card.is-salmon .bento-eyebrow{ color:#1A1712; opacity:.72; }
.bento-card.is-ink .bento-eyebrow,.bento-card.is-indigo .bento-eyebrow,.bento-card.is-umeboshi .bento-eyebrow{ color:var(--tamago); }
/* Body-copy legibility on every colour block (independent of theme). Dark blocks
   get warm-paper text; light accent blocks get sumi text. */
.bento-card.is-ink .bento-lead,.bento-card.is-ink .bento-muted,.bento-card.is-ink p,
.bento-card.is-indigo .bento-lead,.bento-card.is-indigo .bento-muted,.bento-card.is-indigo p,
.bento-card.is-umeboshi .bento-lead,.bento-card.is-umeboshi .bento-muted,.bento-card.is-umeboshi p{ color:rgba(246,241,228,.82) !important; }
.bento-card.is-umeboshi h1,.bento-card.is-umeboshi h2,.bento-card.is-umeboshi h3{ color:#F6F1E4; }
.bento-card.is-matcha .bento-lead,.bento-card.is-matcha .bento-muted,.bento-card.is-matcha p,
.bento-card.is-tamago .bento-lead,.bento-card.is-tamago .bento-muted,.bento-card.is-tamago p,
.bento-card.is-salmon .bento-lead,.bento-card.is-salmon .bento-muted,.bento-card.is-salmon p{ color:rgba(26,23,18,.82) !important; }

.bento-stat strong{ display:block; font-size:clamp(40px,4vw,56px); font-weight:850; letter-spacing:-.04em; line-height:1; }
.bento-stat span{ display:block; font-size:14px; margin-top:10px; opacity:.8; font-weight:600; }

/* ---- buttons ---- */
.bento-btn{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  font-family:inherit; font-size:15px; font-weight:750; line-height:1;
  padding:13px 22px; border-radius:14px; border:1px solid transparent;
  background:var(--ink); color:var(--paper); transition:filter .15s, background .15s, transform .1s;
}
html.bento-dark .bento-btn{ background:var(--tamago); color:#1A1712; }
.bento-btn:hover{ filter:brightness(.96); }
.bento-btn:active{ transform:translateY(1px); }
.bento-btn.is-accent{ background:var(--tamago); color:#1A1712; }
.bento-btn.is-umeboshi{ background:var(--umeboshi); color:#F6F1E4; }
.bento-btn.is-ghost{ background:transparent; color:var(--ink); border-color:var(--line); }
.bento-btn.is-ghost:hover{ background:var(--card); filter:none; }
.bento-btn.lg{ font-size:16px; padding:16px 28px; }
.bento-btn[disabled]{ opacity:.5; cursor:default; }

/* on dark blocks, keep buttons legible */
.bento-card.is-ink .bento-btn, .bento-card.is-indigo .bento-btn, .bento-card.is-umeboshi .bento-btn{ background:var(--tamago); color:#1A1712; }
.bento-card.is-ink .bento-btn.is-ghost, .bento-card.is-indigo .bento-btn.is-ghost, .bento-card.is-umeboshi .bento-btn.is-ghost{ background:transparent; color:#F6F1E4; border-color:rgba(246,241,228,.4); }

/* ---- small parts ---- */
.bento-pill{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); padding:6px 13px; border-radius:var(--r-pill); }
.bento-list{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.bento-list li{ position:relative; padding-left:28px; font-size:15px; }
.bento-list li::before{ content:""; position:absolute; left:0; top:.5em; width:12px; height:12px; border-radius:4px; background:var(--matcha); }
.bento-list li.off{ opacity:.45; }
.bento-list li.off::before{ background:var(--line); }
.bento-back{ display:inline-flex; align-items:center; gap:8px; font-weight:650; color:var(--muted); }
.bento-back:hover{ color:var(--ink); }

/* ---- footer ---- */
.bento-footer{ margin-top:36px; }
.bento-footer .bento-card{ background:#1F1A14; color:var(--paper-on-dark); border-color:transparent; padding:44px 46px; }
html.bento-dark .bento-footer .bento-card{ background:#2A241C; border:1px solid rgba(246,241,228,.10); }
.bento-footer h2{ color:var(--paper-on-dark); }
.bento-footer a{ color:var(--tamago); font-weight:600; }
.bento-footer .fnote{ color:rgba(246,241,228,.6); font-size:13px; line-height:1.9; margin-top:14px; }

/* ---- Dark-mode contrast fix: callout boxes (.note) inside colour-block cards ----
   Base pages style .note with background:var(--paper), which flips to dark in dark
   mode. Cards whose text is a FIXED dark ink (salmon/tamago/matcha) then show dark
   text on a dark box. Force a mode-stable panel + matching text so notes stay legible
   in both light and dark, on every page. Left-accent border (tip/warn) is preserved. */
.bento-card.is-salmon .note,
.bento-card.is-tamago .note,
.bento-card.is-matcha .note{
  background:rgba(255,255,255,.5) !important;
  color:#1A1712 !important;
}
.bento-card.is-salmon .note *,
.bento-card.is-tamago .note *,
.bento-card.is-matcha .note *{ color:#1A1712 !important; }
.bento-card.is-umeboshi .note{
  background:rgba(246,241,228,.10) !important;
  color:#F6F1E4 !important;
}
.bento-card.is-umeboshi .note *{ color:#F6F1E4 !important; }
