/* Hiro's Okinawan Kitchen — site styles */
:root{
  --paper:#f5f2e9; --surface:#ffffff; --ink:#1f1c17; --muted:#6a6357; --line:#ddd6c6; --on:#ffffff;
  --cta:#419721; --cta-hover:#37811b;
  --acc:#7a5a3a; --tint:#ece2d5;
  --serif:"Instrument Serif", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --pad:24px; --wrap:1200px;
}
.c-breakfast{--acc:#a8433a;--tint:#f1dcd3}
.c-lunch{--acc:#4e7d3a;--tint:#dce8cf}
.c-sauce{--acc:#747a2e;--tint:#e7e8cf}
.c-sweet{--acc:#b34e6d;--tint:#f3d7e0}
.c-base{--acc:#7a5a3a;--tint:#ece2d5}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;margin:0}
p{margin:0}
.wrap{width:min(var(--wrap),100% - 2*var(--pad));margin-inline:auto}
.caps{font:600 11px/1.25 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.muted{color:var(--muted)}
.acc{color:var(--acc)}
.italic{font-style:italic}
.small{font-size:13px;line-height:1.5}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.surface{background:var(--surface)}
.section{padding:64px 0}
.h1{font-size:clamp(48px,6.2vw,84px);line-height:.96}
.h2{font-size:clamp(38px,4.3vw,60px);line-height:1.0}
.lead{font-size:17px;line-height:1.55;color:var(--muted)}
.rule{border-top:1px solid var(--line)}
.rule-ink{border-top:1px solid var(--ink)}
.stack>*+*{margin-top:var(--gap,16px)}

/* chapter label */
.chapter{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.chapter .num{font-family:var(--serif);font-size:22px;line-height:1;color:var(--acc)}
.chapter .line{flex:1;height:1px;background:var(--line);max-width:28px}
.chapter .caps{color:var(--muted)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-radius:4px;
  background:var(--cta);color:var(--on);text-decoration:none;font:600 16px/1.2 var(--sans);border:0;cursor:pointer;transition:background .15s,transform .15s}
.btn:hover{background:var(--cta-hover)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.btn .price{font:400 24px/1 var(--serif)}
.btn.block{display:flex;width:100%}
.btn.center{justify-content:center}
.btn.dark{background:var(--ink);color:var(--paper)}
.btn.dark:hover{background:#000}
.btn.outline{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.outline:hover{background:var(--ink);color:var(--paper)}
.btn.sm{padding:11px 16px;font-size:14px}

/* announcement + nav */
.announce{background:var(--ink);color:var(--paper);text-align:center;padding:11px 20px}
.announce a{text-decoration:none}
.nav{border-bottom:1px solid var(--line);background:var(--paper)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 0 14px}
.wordmark{text-decoration:none;display:block;line-height:1}
.wordmark .a{display:block;font:italic 400 18px/1 var(--serif);color:var(--acc)}
.wordmark .b{display:block;font:400 22px/1 var(--serif)}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{text-decoration:none}
.nav-links a:hover{color:var(--acc)}
.nav-links .d{display:none}
.nav .btn{display:none}

/* hero */
.hero{padding:36px 0 48px}
.hero .kicker{color:var(--acc);margin-bottom:14px}
.hero h1{margin-bottom:16px}
.hero .lead{margin-bottom:26px}
.hero figure{margin:0 0 24px}
.hero figure img{width:100%;aspect-ratio:342/400;object-fit:cover}
.hero figcaption{font:italic 15px/1.4 var(--serif);color:var(--muted);padding-top:10px}
.hero .note{text-align:center;margin-top:12px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:30px;padding:16px 0}
.facts div{text-align:center}
.facts div+div{border-left:1px solid var(--line)}
.facts b{display:block;font:400 34px/1 var(--serif)}
.facts span{color:var(--muted)}
.hero-grid{display:flex;flex-direction:column}
.hero-grid .photo{order:0}

/* problem */
.pains{list-style:none;margin:24px 0 28px;padding:0}
.pains li{display:flex;gap:14px;border-top:1px solid var(--line);padding:16px 0;font:italic 22px/1.25 var(--serif)}
.pains li .n{font-style:normal;color:var(--acc)}
.sign{font:italic 26px/1.2 var(--serif);color:var(--acc);margin-top:14px}

/* meet hiro */
.portrait img{width:100%;aspect-ratio:342/420;object-fit:cover}
.quote{border-left:2px solid var(--acc);padding-left:18px;margin-top:24px}
.quote .q{font:italic 34px/1 var(--serif);margin-bottom:6px}

/* collection */
.books{display:grid;gap:0;margin-top:28px}
.book{display:grid;grid-template-columns:118px 1fr;gap:18px;border-top:1px solid var(--line);padding:20px 0;align-items:start}
.book img,.cover{box-shadow:0 10px 24px rgba(31,26,20,.22)}
.book h3{font-size:28px;line-height:1}
.book .k{color:var(--acc);margin-bottom:6px}
.book p{font-size:14px;color:var(--muted);margin:6px 0}
.book .m{font-weight:500;font-size:13px}

/* inside */
.page-sample{max-width:342px;margin:24px auto 26px;box-shadow:0 18px 40px rgba(31,26,20,.18)}
.points{list-style:none;margin:0;padding:0}
.points li{display:flex;gap:14px;border-top:1px solid var(--line);padding:14px 0}
.points .n{font:400 26px/1 var(--serif);color:var(--acc);min-width:22px}
.points b{display:block;font-weight:500}
.points span{display:block;color:var(--muted);font-size:14px}

/* recipe card */
.card{background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.recipe .dish{width:100%;aspect-ratio:342/240;object-fit:cover}
.recipe .body{padding:20px 20px 24px}
.recipe h3{font-size:36px;line-height:1;margin:8px 0 16px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--tint);border-radius:6px;padding:12px 0;text-align:center}
.stats b{display:block;font:400 22px/1 var(--serif)}
.stats span{color:var(--muted)}
.recipe-cols{display:grid;gap:20px;margin-top:20px}
.ing,.steps{list-style:none;margin:6px 0 0;padding:0;font-size:14px}
.ing li{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--line);padding:8px 0}
.ing li span:last-child{color:var(--muted);font-weight:500;white-space:nowrap}
.steps li{display:flex;gap:12px;padding:6px 0;line-height:1.5}
.steps .n{font:400 20px/1.2 var(--serif);color:var(--acc)}

/* steps (how it works) */
.how{list-style:none;margin:20px 0 0;padding:0;display:grid}
.how li{display:flex;gap:18px;border-top:1px solid var(--line);padding:18px 0}
.how .n{font:400 56px/.85 var(--serif);color:var(--acc);min-width:34px}
.how h3{font-size:26px;line-height:1;margin:6px 0 4px}
.how p{color:var(--muted);font-size:15px}

/* free plan band */
.band{background:var(--acc);color:var(--on)}
.band .lead{color:var(--on);opacity:.92}
.band .plan-cover{width:200px;margin:24px auto 28px;transform:rotate(-3deg);box-shadow:0 14px 26px rgba(0,0,0,.3)}

/* who */
.who{display:grid;gap:0;margin-top:24px}
.who div{border-top:1px solid var(--ink);padding:18px 0}
.who .n{font:400 22px/1 var(--serif);color:var(--acc)}
.who h3{font:italic 28px/1.05 var(--serif);margin:8px 0 6px}
.who p{color:var(--muted);font-size:15px}

/* offer */
.offer-grid{display:grid;gap:28px;margin-top:24px}
.box{background:var(--paper);border:1px solid var(--ink);border-radius:6px;padding:12px 20px 22px}
.surface .box{background:var(--paper)}
.box .item{display:flex;align-items:center;gap:12px;padding:14px 0}
.box .item+.item{border-top:1px solid var(--line)}
.box .item .ck{color:var(--acc);font-weight:600}
.box .item .t{font:400 24px/1 var(--serif);flex:1}
.box .item .m{color:var(--muted);font-size:12px;text-align:right}
.box .total{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--ink);padding:18px 0 20px}
.box .total b{display:block;font-weight:500}
.box .total .p{font:400 52px/1 var(--serif)}
.box .pay{text-align:center;margin-top:12px}
.guarantee{background:var(--paper);border-radius:6px;padding:32px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}
.surface .guarantee{background:var(--paper)}
.seal{width:130px;height:130px;border:1.5px solid var(--acc);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--acc);margin-bottom:24px}
.seal b{font:400 56px/.9 var(--serif)}
.guarantee h3{font-size:32px;line-height:1.05;margin-bottom:14px}

/* faq */
.faq{margin-top:24px;border-bottom:1px solid var(--line)}
.faq details{border-top:1px solid var(--line)}
.faq details:first-child{border-top-color:var(--ink)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font:400 22px/1.15 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 28px/1 var(--serif);color:var(--acc)}
.faq details[open] summary::after{content:"–"}
.faq details p{color:var(--muted);padding:0 0 20px;max-width:640px}

/* final cta */
.final{background:var(--ink);color:var(--paper);overflow:hidden}
.final .lead{color:var(--paper);opacity:.8}
.final .k{opacity:.7}
.final .note{opacity:.7;margin-top:14px}
.fan{position:relative;height:330px;margin:40px auto 0;max-width:360px}
.fan img{position:absolute;width:52%;box-shadow:0 24px 48px rgba(0,0,0,.45)}
.fan .f1{left:0;top:40px;transform:rotate(-7deg)}
.fan .f2{right:0;top:40px;transform:rotate(7deg)}
.fan .f3{left:24%;top:0}

/* footer */
.footer{padding:56px 0 48px;border-top:1px solid var(--line)}
.footer nav{display:flex;flex-wrap:wrap;gap:6px 18px;margin:18px 0 10px}
.footer nav a{text-decoration:none}
.footer nav a:hover{color:var(--acc)}
.footer .legal-links{color:var(--muted)}
.footer .disc{color:var(--muted);font-size:13px;line-height:1.6;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}

/* sticky bar (mobile) */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--paper);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  display:flex;align-items:center;justify-content:space-between;gap:12px;transform:translateY(110%);transition:transform .25s}
.sticky.show{transform:none}
.sticky .t{font:400 20px/1 var(--serif)}
.sticky .s{color:var(--muted);font-size:12px}

/* generic two-col helpers */
.split{display:grid;gap:28px}
.cols-4,.cols-3{display:grid;gap:0}

/* legal */
.legal-head{padding:44px 0 28px}
.legal-tabs{display:flex;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin-top:24px}
.legal-tabs a{text-decoration:none;color:var(--muted)}
.legal-tabs a[aria-current]{color:var(--acc)}
.legal-side{display:none}
.legal-body .intro{font:italic 24px/1.25 var(--serif);margin-bottom:20px}
.legal-body section{border-top:1px solid var(--line);padding:18px 0}
.legal-body h2{font:500 16px/1.4 var(--sans);display:flex;gap:12px;align-items:baseline;margin-bottom:8px}
.legal-body h2 .n{font:400 18px/1 var(--serif);color:var(--acc)}
.legal-body p{color:var(--muted);line-height:1.65}

/* ---------- desktop ---------- */
@media (min-width:900px){
  :root{--pad:120px}
  @media (max-width:1440px){:root{--pad:clamp(48px,8.3vw,120px)}}
  .section{padding:112px 0}
  .chapter{gap:14px;margin-bottom:40px}
  .chapter .num{font-size:28px}
  .chapter .line{max-width:none}
  .lead{font-size:18px;line-height:1.6}
  .btn{padding:20px 28px;font-size:18px}
  .btn .price{font-size:28px}
  .nav .wrap{padding:20px 0}
  .wordmark .a{font-size:20px}.wordmark .b{font-size:26px}
  .nav-links .d{display:inline}
  .nav-links .m{display:none}
  .nav .btn{display:inline-flex;padding:14px 20px;font-size:15px}
  .hero{padding:72px 0 96px}
  .hero-grid{display:grid;grid-template-columns:1fr 440px;gap:96px;align-items:center}
  .hero-grid .photo{order:2}
  .hero figure{margin:0}
  .hero figure img{aspect-ratio:440/560}
  .hero .note{text-align:left}
  .hero .btn{min-width:420px}
  .facts{padding:20px 0;margin-top:48px}
  .facts div{text-align:left;padding-left:24px}
  .facts div:first-child{padding-left:0}
  .facts b{font-size:44px}
  .split{grid-template-columns:1fr 1fr;gap:96px;align-items:start}
  .split.center{align-items:center}
  .split.wide-l{grid-template-columns:1.2fr 1fr}
  .split.wide-r{grid-template-columns:1fr 1.25fr}
  .pains{margin-top:0}
  .pains li{font-size:28px;padding:22px 0}
  .portrait img{aspect-ratio:520/620}
  .quote .q{font-size:44px}
  .head-row{display:grid;grid-template-columns:640px 1fr;gap:96px;align-items:end}
  .books{grid-template-columns:repeat(4,1fr);gap:32px;margin-top:56px}
  .book{display:block;border:0;padding:0}
  .book img{width:100%;margin-bottom:26px}
  .book .txt{border-top:1px solid var(--line);padding-top:16px}
  .book h3{font-size:32px}
  .book p{font-size:15px}
  .page-sample{max-width:520px;margin:0}
  .points li{gap:20px;padding:20px 0}
  .points .n{font-size:34px;min-width:28px}
  .points b{font-size:18px}.points span{font-size:16px}
  .recipe{display:grid;grid-template-columns:500px 1fr}
  .recipe .dish{height:100%;aspect-ratio:auto}
  .recipe .body{padding:44px 48px 48px}
  .recipe h3{font-size:52px;margin:10px 0 20px}
  .stats{padding:16px 0}.stats b{font-size:28px}
  .recipe-cols{grid-template-columns:1fr 1fr;gap:40px;margin-top:28px}
  .how{grid-template-columns:repeat(3,1fr);gap:48px;margin-top:48px}
  .how li{display:block;padding-top:24px}
  .how .n{font-size:80px;display:block;margin-bottom:10px}
  .how h3{font-size:34px}
  .how p{font-size:16px}
  .band .section{padding:96px 0}
  .band-grid{display:grid;grid-template-columns:420px 1fr;gap:96px;align-items:center}
  .band .plan-cover{width:340px;margin:0 auto}
  .who{grid-template-columns:repeat(4,1fr);gap:32px;margin-top:48px}
  .who h3{font-size:30px}
  .who p{font-size:16px}
  .offer-grid{grid-template-columns:640px 1fr;gap:96px;align-items:stretch;margin-top:0}
  .box{padding:20px 36px 32px}
  .box .item{gap:16px;padding:18px 0}
  .box .item .t{font-size:30px}
  .box .item .m{font-size:15px}
  .box .total .p{font-size:64px}
  .guarantee{padding:48px 44px}
  .seal{width:150px;height:150px}.seal b{font-size:64px}
  .guarantee h3{font-size:38px}
  .faq-grid{display:grid;grid-template-columns:400px 1fr;gap:96px;align-items:start}
  .faq{margin-top:0}
  .faq summary{font-size:28px;padding:24px 0}
  .faq details p{font-size:17px;padding-bottom:24px}
  .final-grid{display:grid;grid-template-columns:560px 1fr;gap:40px;align-items:center}
  .final .h1{font-size:84px}
  .fan{height:520px;max-width:600px;margin:0}
  .fan img{width:260px}
  .fan .f1{left:20px;top:110px}.fan .f2{left:330px;right:auto;top:80px}.fan .f3{left:170px;top:20px}
  .footer{padding:64px 0 56px}
  .footer .top{display:flex;justify-content:space-between;align-items:center}
  .footer nav{margin:0}
  .footer .bottom{display:flex;justify-content:space-between;gap:64px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
  .footer .disc{margin:0;padding:0;border:0;max-width:760px}
  .footer .legal-links.m{display:none}
  .sticky{display:none}
  .legal-head{padding:96px 0 56px}
  .legal-tabs{display:none}
  .legal-grid{display:grid;grid-template-columns:280px 680px;gap:120px}
  .legal-side{display:block}
  .legal-side a{display:block;border-top:1px solid var(--line);padding:14px 0;font:400 22px/1.1 var(--serif);text-decoration:none}
  .legal-side a[aria-current]{color:var(--acc);font-style:italic}
  .legal-body .intro{font-size:30px;margin-bottom:32px}
  .legal-body section{padding:24px 0}
  .legal-body h2{font-size:18px}
  .legal-body p{font-size:16px}
}
@media (max-width:899px){
  .footer .bottom .legal-links{display:none}
  .d-only{display:none!important}
}
@media (min-width:900px){.m-only{display:none!important}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sticky,.btn{transition:none}}
@media (max-width:899px){.block-m{display:flex;width:100%}}
.cover{box-shadow:0 12px 26px rgba(31,26,20,.22)}
.sticky{visibility:hidden;transition:transform .25s,visibility 0s .25s}
.sticky.show{visibility:visible;transition:transform .25s}
.box .item .t{white-space:nowrap}
.box .item .m{flex:0 1 auto}
@media (max-width:899px){.facts div:last-child b{font-size:28px;line-height:1.2}}
.ai{position:relative}
.ai-badge{position:absolute;top:12px;right:12px;background:rgba(31,28,23,.82);color:var(--paper);font-size:10px;padding:6px 10px;border-radius:99px;pointer-events:none}
