/* ============================================================
   ✏️  EASY EDITS — COLORS  (Zahan Studio site)
   Change values between the lines below. Save, refresh.
   ============================================================ */
:root{
  --ai:#1d3a5c;           /* primary — noren indigo            */
  --ai-soft:#dde6ee;      /* pale indigo fills                 */
  --shu:#d6401f;          /* accent — hanko vermillion, CTAs   */
  --shu-soft:#fbe3da;     /* pale vermillion fills             */
  --paper:#f7f2e7;        /* page background — washi           */
  --surface:#ffffff;      /* card background                   */
  --ink:#241f1a;          /* main text                         */
  --ink-soft:#635a4d;     /* muted text                        */
  --line:#e4dac6;         /* borders                           */
}
/* ============================================================
   Stop here — everything below is layout machinery.
   ============================================================ */
:root{
  --shadow:0 1px 2px rgba(36,31,26,.05),0 14px 34px rgba(36,31,26,.07);
  --radius:16px;
  --maxw:1080px;
  --font-display:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif;
  --font-body:'Noto Sans JP','Hiragino Sans',sans-serif;
  --font-latin:'Inter',-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--shu-soft);color:var(--shu)}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--ai);outline-offset:3px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
section{padding:76px 0}
.eyebrow{font-family:var(--font-latin);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--shu);font-weight:700}
.head{max-width:640px;margin:0 auto 44px;text-align:center}
.head h2{font-size:clamp(24px,3.6vw,32px);font-weight:700;margin-top:10px}
.head p{color:var(--ink-soft);font-size:15.5px;margin-top:12px}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;font-family:var(--font-display)}
.brand .seal{width:30px;height:30px;border-radius:50%;background:var(--shu);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:700;flex-shrink:0}
.header-cta{background:var(--shu);color:#fff;padding:10px 20px;border-radius:999px;font-weight:700;font-size:14px;white-space:nowrap;box-shadow:0 6px 16px rgba(214,64,31,.25);transition:transform .18s}
.header-cta:hover{transform:translateY(-2px)}

/* ---------- hero ---------- */
.hero{padding:64px 0 40px}
.hero-grid{display:grid;grid-template-columns:1fr;gap:44px;align-items:center}
@media(min-width:860px){.hero-grid{grid-template-columns:1.05fr .95fr}}
.hero h1{font-size:clamp(34px,5.6vw,52px);font-weight:700;line-height:1.35;margin-top:14px}
.hero .lede{font-size:16.5px;color:var(--ink-soft);margin-top:20px;max-width:46ch}
.hero .cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:999px;font-weight:700;font-size:15px;transition:transform .18s,box-shadow .18s}
.btn-primary{background:var(--shu);color:#fff;box-shadow:0 8px 20px rgba(214,64,31,.28)}
.btn-primary:hover{transform:translateY(-2px)}
.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn-secondary:hover{border-color:var(--ai)}

/* ---------- photo slots ---------- */
.photo-slot{
  border-radius:var(--radius); border:1.5px dashed var(--line); background:var(--surface);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  color:var(--ink-soft); text-align:center; padding:20px; overflow:hidden; position:relative;
}
.photo-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-slot .ph-icon{width:38px;height:38px;border-radius:50%;background:var(--ai-soft);display:grid;place-items:center;color:var(--ai);font-size:17px}
.photo-slot .ph-label{font-size:13px;font-weight:600}
.photo-slot .ph-hint{font-family:var(--font-latin);font-size:11px;color:var(--ink-soft);opacity:.75}
.hero .photo-slot{aspect-ratio:4/5}
.hero .photo-slot img{object-position:50% 20%}

/* ---------- pain points ---------- */
.pain-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:640px){.pain-grid{grid-template-columns:repeat(2,1fr)}}
.pain-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px 26px;display:flex;gap:16px;align-items:flex-start}
.pain-card .mark{width:34px;height:34px;border-radius:50%;background:var(--shu-soft);color:var(--shu);display:grid;place-items:center;flex-shrink:0;font-weight:700}
.pain-card p{font-size:15px;color:var(--ink)}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
@media(min-width:760px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--surface);padding:28px 24px}
.step .sn{font-family:var(--font-latin);color:var(--ai);font-weight:700;font-size:13px}
.step h3{font-size:17px;margin-top:10px;margin-bottom:8px}
.step p{font-size:13.5px;color:var(--ink-soft);line-height:1.7}

/* ---------- compare table ---------- */
.compare-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
table.compare{width:100%;border-collapse:collapse;min-width:560px;font-size:14px}
table.compare th,table.compare td{padding:16px 18px;text-align:center;border-bottom:1px solid var(--line)}
table.compare tr:last-child td{border-bottom:none}
table.compare th{font-family:var(--font-latin);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);font-weight:700}
table.compare td:first-child,table.compare th:first-child{text-align:left;font-weight:600}
table.compare .col-zahan{background:var(--ai-soft);font-weight:700;color:var(--ai)}
table.compare th.col-zahan{background:var(--ai);color:#fff}

/* ---------- pricing ---------- */
.price-card{max-width:460px;margin:0 auto;background:var(--surface);border:2px solid var(--ai);border-radius:20px;padding:40px 36px;box-shadow:var(--shadow);text-align:center}
.price-card h3{font-size:20px;margin-bottom:6px}
.price-card .price-line{margin-top:20px}
.price-card .amount{font-family:var(--font-display);font-weight:700;font-size:38px;color:var(--shu)}
.price-card .unit{font-size:13px;color:var(--ink-soft)}
.price-card ul{list-style:none;margin:26px 0 0;padding:0;text-align:left;display:flex;flex-direction:column;gap:12px}
.price-card li{font-size:14.5px;padding-left:24px;position:relative;color:var(--ink)}
.price-card li::before{content:'✓';position:absolute;left:0;color:var(--ai);font-weight:700}
.price-note{text-align:center;font-size:12.5px;color:var(--ink-soft);margin-top:18px}

/* ---------- founder / trust ---------- */
.founder-grid{display:grid;grid-template-columns:1fr;gap:36px;align-items:center}
@media(min-width:760px){.founder-grid{grid-template-columns:.8fr 1.2fr}}
.founder-grid .photo-slot{aspect-ratio:1/1;border-radius:50%}
.founder-grid h3{font-size:20px}
.founder-grid p{font-size:15px;color:var(--ink-soft);margin-top:14px;line-height:1.8}

/* ---------- sample mockups ---------- */
.sample-grid{display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:700px){.sample-grid{grid-template-columns:1fr 1fr}}
.browser-frame{border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}
.browser-bar{background:#eee5d3;padding:9px 12px;display:flex;gap:6px}
.browser-bar span{width:9px;height:9px;border-radius:50%;background:#d8cdb5}
.sample-a .mock-hero{background:linear-gradient(160deg,#2b2320,#1a1512);color:#f3e6cf;padding:34px 26px}
.sample-a .mock-hero b{font-family:var(--font-display);font-size:20px;display:block}
.sample-a .mock-hero span{font-size:12px;opacity:.7;display:block;margin-top:8px}
.sample-a .mock-body{padding:20px 26px;font-size:12px;color:var(--ink-soft)}
.sample-b .mock-hero{background:#fff6ea;color:#7a4a1e;padding:34px 26px}
.sample-b .mock-hero b{font-family:var(--font-display);font-size:20px;display:block}
.sample-b .mock-hero span{font-size:12px;opacity:.7;display:block;margin-top:8px}
.sample-b .mock-body{padding:20px 26px;font-size:12px;color:var(--ink-soft)}
.sample-caption{text-align:center;font-size:13px;color:var(--ink-soft);margin-top:12px}

/* ---------- local section ---------- */
.local-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:760px){.local-grid{grid-template-columns:1fr 1fr}}
.local-grid .photo-slot{aspect-ratio:16/10}

/* ---------- faq ---------- */
.faq{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px 22px}
.faq summary{cursor:pointer;padding:16px 0;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-size:20px;color:var(--shu);flex-shrink:0}
.faq details[open] summary::after{content:'–'}
.faq .a{padding:0 0 18px;color:var(--ink-soft);font-size:14.5px;line-height:1.8}

/* ---------- contact ---------- */
.contact-wrap{display:grid;grid-template-columns:1fr;gap:32px}
@media(min-width:860px){.contact-wrap{grid-template-columns:.9fr 1.1fr}}
.contact-buttons{display:flex;flex-direction:column;gap:12px}
.contact-btn{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;font-weight:600;font-size:15px;transition:border-color .18s}
.contact-btn:hover{border-color:var(--ai)}
.contact-btn .ico{width:36px;height:36px;border-radius:50%;background:var(--ai-soft);color:var(--ai);display:grid;place-items:center;flex-shrink:0;font-size:15px}
form.inquiry{display:flex;flex-direction:column;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
form.inquiry label{font-size:13.5px;font-weight:600;display:flex;flex-direction:column;gap:6px}
form.inquiry input,form.inquiry textarea{font-family:var(--font-body);font-size:14.5px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}
form.inquiry textarea{resize:vertical;min-height:100px}
form.inquiry button{margin-top:6px}

/* ---------- footer ---------- */
footer{background:var(--ink);color:#cfc8ba;padding:44px 0}
.foot-inner{display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center;font-size:13px}
.foot-inner .brand{color:#fff}
.foot-links{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:#a89f8f}
.foot-links a:hover{color:#fff}
.copyright{font-family:var(--font-latin);font-size:11.5px;color:#8a8172}
