/* ============================================================================
   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:#FAFAF8;      /* near-white designer neutral */
  --paper-2:#F1EFEA;    /* faint band                  */
  --ink:#1E1A14;        /* sumi ink                    */
  --card:#FFFFFF;       /* clean white card            */
  --line:rgba(30,26,20,.10);
  --muted:#726A57;      /* soft body text      */
  /* Brighter obento palette (Canva-market vivid, still tasteful) */
  --matcha:#A7C64F;     --matcha-d:#8FB236;
  --tamago:#FFC63B;     --tamago-d:#F0B21F;
  --salmon:#FF8B5A;
  --umeboshi:#EE4230;   --umeboshi-d:#D8331F;   /* vermilion accent + logo */
  --indigo:#33488E;
  --paper-on-dark:#F6F1E4;

  --r:26px; --r-sm:16px; --r-pill:999px;
  --shadow:0 2px 0 rgba(33,28,20,.04), 0 18px 42px -24px rgba(33,28,20,.34);
  --shadow-lift:0 4px 0 rgba(33,28,20,.05), 0 30px 56px -26px rgba(33,28,20,.46);
  --ease:cubic-bezier(.2,.7,.2,1);
  --maxw:1240px;
  --font:"Helvetica Neue",Helvetica,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
html.bento-dark{
  --paper:#16130E;      /* sumi night        */
  --paper-2:#1F1A12;
  --ink:#F6F1E4;        /* text goes light   */
  --card:#221C14;       /* warm charcoal card*/
  --line:rgba(246,241,228,.14);
  --muted:#AEA695;
  --shadow:0 24px 50px -28px rgba(0,0,0,.62);
  --shadow-lift:0 30px 60px -26px rgba(0,0,0,.7);
}

/* ---- premium polish utilities (shared) ---- */
.bento-reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.bento-reveal.in{ opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .bento-reveal{ opacity:1; transform:none; transition:none; } }
.bento-lift{ transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
.bento-lift:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
.bento-gradient-text{ background:linear-gradient(100deg,var(--umeboshi),var(--salmon)); -webkit-background-clip:text; background-clip:text; color:transparent; }
/* Clickable cards get a subtle premium lift on hover (text cards stay put). */
a.bento-card{ transition:transform .2s var(--ease), box-shadow .2s var(--ease); }
a.bento-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift); }
@media(prefers-reduced-motion:reduce){ a.bento-card:hover{ transform:none; } }

/* ---- 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:#EE4230; }
.bento-footer .bento-brand-mark{ color:#EE4230 !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; }
