:root {
  --bg: #f7f7f4;
  --surface: #ffffff;
  --surface-soft: #f2f5f2;
  --text: #17201b;
  --muted: #69736d;
  --line: #dfe5df;
  --accent: #1f6f5d;
  --accent-strong: #163f31;
  --accent-2: #12392d;
  --accent-soft: #e8f3ee;
  --accent-pale: #f2f8f5;
  --gold: #9b7c35;
  --shadow: 0 24px 70px rgba(25, 55, 40, .12);
  --shadow-soft: 0 12px 34px rgba(27, 52, 39, .08);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
.container { width: min(1120px, calc(100% - 44px)); margin: 0 auto; }
.anchor-target { scroll-margin-top:102px; }
#purchase { scroll-margin-top:92px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  border-bottom: 1px solid rgba(214, 223, 216, .85);
  background: rgba(250, 251, 249, .91);
  backdrop-filter: blur(18px);
}
.header-inner { height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.brand { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; font-weight: 850; letter-spacing: -.02em; }
.brand-icon { width: 42px; height: 42px; border-radius: 11px; box-shadow: 0 4px 14px rgba(23,63,49,.1); }
.header-nav { display: flex; align-items: center; gap: 24px; }
.header-nav a { text-decoration: none; color: #47524b; font-size: 13px; font-weight: 700; }
.header-nav a:hover { color: var(--accent-strong); }
.header-nav .header-cta { color: #fff; background: var(--accent-strong); padding: 10px 16px; border-radius: 999px; }

.hero { padding: 74px 0 68px; overflow: hidden; position: relative; }
.hero:before { content:""; position:absolute; width:680px; height:680px; border-radius:50%; background: radial-gradient(circle, rgba(59,125,100,.14), rgba(59,125,100,0) 68%); right:-260px; top:-210px; pointer-events:none; }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: 64px; align-items: center; }
.hero-copy { position: relative; z-index: 2; }
.hero-brandline { display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.hero-brandline img { width:62px; height:62px; border-radius:16px; box-shadow:0 10px 24px rgba(23,63,49,.1); }
.hero-product, .hero-sub { display:block; }
.hero-product { font-size:16px; font-weight:850; letter-spacing:-.02em; }
.hero-sub { margin-top:2px; color:var(--muted); font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.hero h1 { margin:0; font-size:clamp(46px, 5.8vw, 72px); line-height:1.08; letter-spacing:-.055em; font-weight:900; max-width:760px; }
.hero h1 em { color:var(--accent); font-style:normal; }
.hero-lead { margin:26px 0 0; max-width:690px; color:#4f5b54; font-size:18px; line-height:1.9; }
.hero-points { display:flex; flex-wrap:wrap; gap:9px; list-style:none; padding:0; margin:27px 0 0; }
.hero-points li { background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 13px; font-size:12px; font-weight:780; color:#3c4941; box-shadow:0 5px 16px rgba(37,60,46,.035); }
.hero-points li:before { content:"✓"; color:var(--accent); margin-right:7px; font-weight:900; }
.hero-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:28px; }
.btn { display:inline-flex; min-height:48px; align-items:center; justify-content:center; padding:11px 20px; border-radius:13px; border:1px solid var(--line); text-decoration:none; font-size:14px; font-weight:850; transition:transform .18s ease, box-shadow .18s ease, background .18s ease; }
.btn:hover { transform:translateY(-1px); }
.btn-primary { background:var(--accent-strong); color:#fff; border-color:var(--accent-strong); box-shadow:0 12px 24px rgba(22,63,49,.18); }
.btn-primary:hover { box-shadow:0 15px 30px rgba(22,63,49,.24); }
.btn-secondary { background:#fff; color:var(--text); }
.price-inline { margin:14px 0 0; color:var(--muted); font-size:12px; }
.price-inline strong { color:var(--text); font-size:19px; letter-spacing:-.03em; }

.product-visual { position:relative; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; min-width:0; }
.product-visual:before { content:""; position:absolute; width:min(520px, 120%); aspect-ratio:1; border-radius:50%; background:radial-gradient(circle, rgba(43,112,88,.18), rgba(43,112,88,0) 68%); pointer-events:none; }
.hero-screenshot-frame { position:relative; width:min(100%, 386px); padding:10px; border:1px solid rgba(189,205,196,.92); border-radius:28px; background:rgba(255,255,255,.82); box-shadow:0 30px 74px rgba(20,43,31,.17); }
.hero-screenshot-frame img { width:100%; height:auto; max-height:none; object-fit:contain; border:1px solid rgba(219,225,221,.9); border-radius:20px; background:#f4f5f5; }
.product-visual figcaption { position:relative; color:var(--muted); font-size:11px; font-weight:750; letter-spacing:.02em; }

.section { padding:88px 0; }
.section-white { background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.section-head { max-width:790px; margin-bottom:40px; }
.eyebrow { margin:0 0 8px; color:var(--accent); font-size:12px; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.eyebrow-light { color:#bddfd0; }
.section-head h2 { margin:0; font-size:clamp(32px,4.1vw,48px); line-height:1.23; letter-spacing:-.045em; }
.section-head p { margin:16px 0 0; color:var(--muted); font-size:16px; }

.problem-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:20px; padding:25px; box-shadow:0 10px 30px rgba(32,62,43,.04); }
.card-number { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; background:var(--accent-soft); color:var(--accent); font-size:12px; font-weight:900; margin-bottom:16px; }
.card h3 { margin:0; font-size:19px; letter-spacing:-.025em; }
.card p { margin:10px 0 0; color:var(--muted); font-size:14px; }

.feature-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.feature { display:grid; grid-template-columns:54px 1fr; gap:16px; align-items:start; }
.feature-icon { width:54px; height:54px; border-radius:16px; display:grid; place-items:center; background:var(--accent-soft); color:var(--accent-strong); font-weight:900; font-size:17px; letter-spacing:-.04em; }
.feature-icon:has(+ div) { }
.feature h3 { margin:2px 0 0; font-size:20px; }
.feature p { margin:7px 0 0; color:var(--muted); font-size:14px; }
.feature:nth-child(6) .feature-icon { font-size:11px; letter-spacing:-.05em; }

.screen-gallery { display:grid; grid-template-columns:1fr; gap:32px; }
.screen-card { display:grid; grid-template-rows:128px auto; min-width:0; padding:30px; border:1px solid var(--line); border-radius:28px; background:var(--surface); box-shadow:var(--shadow-soft); }
.screen-card-copy { padding:0 4px 24px; }
.screen-card-copy h3 { margin:0; font-size:23px; line-height:1.4; letter-spacing:-.03em; }
.screen-card-copy p { margin:9px 0 0; max-width:820px; color:var(--muted); font-size:14px; line-height:1.8; }
.screen-pair { display:grid; grid-template-columns:repeat(2,minmax(0,420px)); justify-content:center; align-items:start; gap:24px; padding:28px; border:1px solid #e0ebe5; border-radius:22px; background:linear-gradient(145deg, #f3f8f5, #eaf2ee); }
.screen-image { min-width:0; display:flex; justify-content:center; align-items:flex-start; }
.screen-image img { width:100%; height:auto; max-width:420px; object-fit:contain; border:1px solid rgba(205,214,209,.9); border-radius:18px; background:#f4f5f5; box-shadow:0 14px 32px rgba(24,52,38,.1); }

.local-section { padding-top:82px; padding-bottom:82px; }
.local-box { display:grid; grid-template-columns:.94fr 1.06fr; gap:44px; align-items:center; padding:46px; border-radius:30px; color:#fff; background:linear-gradient(145deg, #0f3328, #184b3b); box-shadow:var(--shadow); overflow:hidden; position:relative; }
.local-box:after { content:""; position:absolute; width:360px; height:360px; right:-170px; top:-190px; border:1px solid rgba(255,255,255,.1); border-radius:50%; box-shadow:0 0 0 42px rgba(255,255,255,.025), 0 0 0 84px rgba(255,255,255,.018); }
.local-copy { position:relative; z-index:2; }
.local-box h2 { margin:0; font-size:clamp(34px,4vw,48px); line-height:1.22; letter-spacing:-.045em; }
.local-lead { margin:18px 0 0; color:rgba(255,255,255,.78); font-size:16px; line-height:1.9; }
.local-note { margin:13px 0 0; color:#cce7db; font-size:12px; font-weight:760; }
.local-list { margin:0; padding:0; list-style:none; display:grid; gap:11px; position:relative; z-index:2; }
.local-list li { display:flex; gap:11px; align-items:flex-start; background:rgba(255,255,255,.075); border:1px solid rgba(255,255,255,.11); border-radius:14px; padding:14px 15px; font-size:13px; color:rgba(255,255,255,.82); }
.local-list b { color:#e4f5ed; }
.local-check { flex:0 0 23px; width:23px; height:23px; border-radius:50%; display:grid; place-items:center; background:rgba(211,243,228,.13); color:#bfe8d4; font-weight:900; margin-top:1px; }

.steps-grid { display:grid; gap:14px; counter-reset:step; }
.steps-four { grid-template-columns:repeat(4,1fr); }
.step { position:relative; padding-top:57px; }
.step:before { counter-increment:step; content:"0" counter(step); position:absolute; top:21px; left:24px; color:var(--accent); font-size:12px; font-weight:900; letter-spacing:.06em; }
.step-number { display:none; }

.requirements { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.requirement { background:#fff; border:1px solid var(--line); border-radius:18px; padding:23px; }
.requirement h3 { margin:0 0 8px; font-size:17px; letter-spacing:-.02em; }
.requirement p { margin:0; color:var(--muted); font-size:14px; }

.faq { display:grid; gap:10px; }
details { background:#fff; border:1px solid var(--line); border-radius:16px; padding:0 20px; }
summary { cursor:pointer; list-style:none; position:relative; padding:18px 32px 18px 0; font-weight:800; }
summary::-webkit-details-marker { display:none; }
summary:after { content:"+"; position:absolute; right:0; top:12px; color:var(--accent); font-size:23px; font-weight:400; }
details[open] summary:after { content:"−"; }
details p { margin:0 0 20px; color:var(--muted); font-size:14px; }

.purchase-wrap { padding:96px 0; }
.purchase-card { display:grid; grid-template-columns:1fr 340px; gap:44px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:30px; padding:48px; box-shadow:var(--shadow); }
.purchase-brand { display:flex; align-items:center; gap:12px; margin-bottom:18px; font-size:14px; font-weight:850; color:var(--accent-strong); }
.purchase-brand img { width:56px; height:56px; border-radius:15px; }
.purchase-card h2 { margin:0; font-size:clamp(32px,4vw,46px); letter-spacing:-.045em; line-height:1.22; }
.purchase-card p { color:var(--muted); }
.purchase-checks { margin:22px 0 0; padding:0; list-style:none; display:grid; gap:9px; font-size:14px; }
.purchase-checks li:before { content:"✓"; color:var(--accent); font-weight:900; margin-right:9px; }
.price-box { border-radius:23px; padding:27px; background:var(--accent-pale); border:1px solid #d9e9e1; }
.price-box .label { color:var(--muted); font-size:12px; font-weight:750; }
.price-box .price { margin-top:2px; color:var(--accent-strong); font-size:43px; line-height:1.15; font-weight:900; letter-spacing:-.055em; }
.price-box .tax { font-size:11px; color:var(--muted); }
.price-box .btn { width:100%; margin-top:19px; }
.purchase-note { margin-top:10px; color:var(--muted); font-size:10.5px; line-height:1.7; }

.site-footer { background:#12271e; color:rgba(255,255,255,.66); }
.footer-inner { padding:39px 0 42px; display:flex; justify-content:space-between; align-items:flex-start; gap:30px; font-size:12px; }
.footer-brand { display:flex; align-items:center; gap:9px; color:#fff; font-size:14px; font-weight:850; margin-bottom:7px; }
.footer-brand img { width:36px; height:36px; border-radius:9px; }
.footer-links { display:flex; flex-wrap:wrap; gap:13px 20px; justify-content:flex-end; }
.footer-links a { color:rgba(255,255,255,.7); text-decoration:none; }
.footer-links a:hover { color:#fff; }

[data-purchase-button][aria-disabled="true"] { cursor:not-allowed; opacity:.72; }

@media (max-width: 1040px) {
  .header-nav { gap:17px; }
  .header-nav a { font-size:12px; }
  .hero-grid { grid-template-columns:1fr 360px; gap:44px; }
  .screen-card { padding:24px; }
  .screen-card-copy { padding:0 3px 20px; }
  .screen-pair { grid-template-columns:repeat(2,minmax(0,400px)); gap:18px; padding:20px; }
  .steps-four { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 840px) {
  .header-nav a:not(.header-cta) { display:none; }
  .hero { padding-top:54px; }
  .hero-grid { grid-template-columns:1fr; gap:30px; }
  .hero-copy { max-width:700px; }
  .product-visual { padding-top:10px; }
  .problem-grid { grid-template-columns:1fr; }
  .feature-grid { grid-template-columns:1fr; }
  .feature--dashboard { order:1; }
  .feature--search { order:2; }
  .feature--inventory { order:3; }
  .feature--photos { order:4; }
  .feature--profit { order:5; }
  .feature--simulator { order:6; }
  .feature--allocation { order:7; }
  .feature--grading { order:8; }
  .feature--csv { order:9; }
  .feature--backup { order:10; }
  .screen-card { grid-template-rows:auto auto; }
  .screen-card-copy { min-height:0; }
  .screen-pair { grid-template-columns:minmax(0,420px); gap:22px; }
  .local-box { grid-template-columns:1fr; }
  .purchase-card { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
  .anchor-target { scroll-margin-top:88px; }
  .container { width:min(100% - 28px,1120px); }
  .header-inner { height:62px; }
  .brand { font-size:14px; gap:8px; }
  .brand-icon { width:36px; height:36px; border-radius:9px; }
  .header-cta { padding:8px 12px !important; font-size:12px !important; }
  .hero { padding:42px 0 42px; }
  .hero-brandline img { width:52px; height:52px; border-radius:13px; }
  .hero-product { font-size:14px; }
  .hero-sub { font-size:9px; }
  .hero h1 { font-size:43px; }
  .hero-lead { font-size:16px; margin-top:20px; }
  .hero-points { gap:7px; }
  .hero-points li { font-size:11px; padding:7px 10px; }
  .hero-actions .btn { width:100%; }
  .product-visual { margin-top:4px; }
  .hero-screenshot-frame { width:min(100%, 350px); padding:8px; border-radius:24px; }
  .hero-screenshot-frame img { border-radius:17px; }
  .section { padding:62px 0; }
  .section-head { margin-bottom:28px; }
  .section-head h2 { font-size:34px; }
  .section-head p { font-size:15px; }
  .card { padding:21px; }
  .feature { grid-template-columns:48px 1fr; gap:13px; }
  .feature-icon { width:48px; height:48px; border-radius:14px; }
  .screen-gallery { gap:24px; }
  .screen-card { padding:17px; border-radius:23px; }
  .screen-card-copy { padding:0 3px 18px; }
  .screen-card-copy h3 { font-size:20px; }
  .screen-card-copy p { font-size:13px; }
  .screen-pair { gap:17px; padding:14px; border-radius:19px; }
  .screen-image img { max-width:340px; border-radius:15px; }
  .local-section { padding:58px 0; }
  .local-box { padding:29px 22px; border-radius:24px; gap:28px; }
  .local-box h2 { font-size:35px; }
  .local-lead { font-size:14px; }
  .local-list li { padding:13px; }
  .steps-four { grid-template-columns:1fr; }
  .step { padding:21px; }
  .step:before { content:none; }
  .step-heading { display:flex; align-items:baseline; gap:12px; }
  .step-number { display:inline-block; flex:0 0 auto; color:var(--accent); font-size:12px; font-weight:900; letter-spacing:.06em; }
  .requirements { grid-template-columns:1fr; }
  .purchase-wrap { padding:72px 0; }
  .purchase-card { padding:27px 21px; border-radius:24px; gap:26px; }
  .price-box .price { font-size:39px; }
  .footer-inner { flex-direction:column; }
  .footer-links { justify-content:flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; transition:none !important; }
}
