:root {
  --ink: #21201d;
  --sub: #6f6a63;
  --paper: #f7f4ee;
  --white: #fffefa;
  --accent: #c5634e;
  --accent-dark: #a74e3c;
  --line: #ded8cf;
  --soft: #ece5da;
  --serifish: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
  --sans: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Meiryo", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--sans); color: var(--ink); background: var(--white); line-height: 1.85; letter-spacing: .02em; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.narrow { width: min(840px, calc(100% - 48px)); margin: 0 auto; }
.section-pad { padding: 110px 0; }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,254,250,.9); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(222,216,207,.7); }
.header-inner { height: 78px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:flex; align-items:center; gap:10px; font-family: var(--serifish); font-weight:700; letter-spacing:.02em; }
.brand-mark { width:34px; height:34px; border:1px solid var(--ink); display:grid; place-items:center; border-radius:50%; font-size:15px; }
.desktop-nav { display:flex; align-items:center; gap:30px; font-size:13px; font-weight:500; }
.desktop-nav a:not(.nav-cta):hover { color:var(--accent); }
.nav-cta { padding:11px 18px; background:var(--ink); color:var(--white); border-radius:999px; }
.menu-button,.mobile-nav { display:none; }
.hero { background:linear-gradient(180deg,#fffefa 0%,#f8f4ed 100%); overflow:hidden; padding-top:96px; }
.hero-grid { min-height:650px; display:grid; grid-template-columns:1.06fr .94fr; align-items:center; gap:60px; }
.eyebrow,.section-kicker { margin:0 0 18px; font-size:11px; font-weight:700; letter-spacing:.2em; color:var(--accent); }
h1 { margin:0; font-family:var(--serifish); font-size:clamp(46px,5.4vw,76px); line-height:1.32; letter-spacing:-.045em; }
h1 em,.contact-inner h2 em { color:var(--accent); font-style:normal; position:relative; }
h1 em::after { content:""; position:absolute; height:8px; left:2%; right:2%; bottom:2px; background:rgba(197,99,78,.13); border-radius:999px; }
.hero-lead { margin:30px 0 0; font-size:16px; color:#4f4b46; }
.hero-actions { margin-top:34px; display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:54px; padding:0 27px; border-radius:999px; font-weight:700; font-size:14px; transition:.25s ease; }
.button.primary { background:var(--accent); color:white; box-shadow:0 10px 26px rgba(197,99,78,.2); }
.button.primary:hover,.contact-button:hover { transform:translateY(-2px); }
.text-link { font-size:13px; font-weight:600; border-bottom:1px solid var(--ink); padding:7px 0; }
.text-link span { margin-left:7px; color:var(--accent); }
.microcopy { color:#8a837b; font-size:11px; margin:14px 0 0 4px; }
.hero-visual { position:relative; height:540px; }
.browser-card { position:absolute; width:83%; height:430px; left:8%; top:36px; border:1px solid #d8d1c8; background:#fff; border-radius:12px; box-shadow:0 28px 80px rgba(81,65,47,.14); transform:rotate(2deg); overflow:hidden; }
.browser-top { height:38px; display:flex; align-items:center; gap:6px; padding-left:15px; border-bottom:1px solid #ece8e2; background:#fbfaf7; }
.browser-top i { width:7px; height:7px; border-radius:50%; background:#d4cfc8; }
.browser-body { padding:62px 52px; }
.browser-kicker { font-size:9px; letter-spacing:.2em; color:var(--accent); font-weight:700; }
.browser-title { width:76%; height:21px; background:#2a2926; margin-top:18px; border-radius:2px; }
.browser-title.small { width:54%; margin-top:10px; }
.browser-copy { width:63%; height:7px; background:#d9d4cc; margin-top:30px; }
.browser-copy.short { width:48%; margin-top:8px; }
.browser-button { width:108px; height:34px; display:grid; place-items:center; color:white; background:var(--accent); margin-top:33px; border-radius:999px; font-size:8px; letter-spacing:.15em; }
.paper { position:absolute; background:#f3eadc; border:1px solid #d8cbb8; box-shadow:0 13px 35px rgba(81,65,47,.12); font-size:9px; letter-spacing:.18em; }
.paper-back { width:178px; height:105px; right:-7px; top:13px; padding:20px; transform:rotate(7deg); }
.mini-line { height:3px; background:#afa393; width:65%; margin-top:8px; }.mini-line.short { width:38%; margin-top:14px; }
.paper-front { width:180px; height:235px; left:-22px; bottom:15px; padding:25px 20px; transform:rotate(-7deg); background:#efe3d5; }
.paper-front strong { display:block; margin-top:30px; font-size:16px; line-height:1.55; letter-spacing:0; font-family:var(--serifish); }
.paper-circle { width:70px; height:70px; border-radius:50%; background:var(--accent); opacity:.9; margin:36px auto 0; }
.hand-note { position:absolute; right:9px; bottom:34px; font-family:cursive; font-size:21px; color:#766a5b; transform:rotate(-7deg); }
.trust-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.trust-inner { min-height:82px; display:flex; align-items:center; gap:18px; flex-wrap:wrap; font-size:12px; color:#68625c; }
.trust-inner>span { color:var(--accent); font-weight:700; margin-right:8px; }.trust-inner p{margin:0}.trust-inner i{width:3px;height:3px;background:#aaa198;border-radius:50%;}
.problems { background:#22211e; color:#fff; }
.problems .section-kicker { color:#df8b79; }
.section-title { margin:0; font-family:var(--serifish); font-size:clamp(35px,4vw,54px); line-height:1.4; letter-spacing:-.035em; }
.problem-list { margin-top:55px; border-top:1px solid rgba(255,255,255,.2); }
.problem { display:grid; grid-template-columns:60px 1fr; gap:20px; align-items:start; padding:27px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.problem span { color:#df8b79; font-size:12px; font-weight:700; }.problem p{margin:0;font-size:16px;}
.solution-copy { margin:54px 0 0; color:#c9c5be; font-size:17px; }.solution-copy strong{color:white;font-size:20px;}
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:60px; margin-bottom:55px; }
.section-heading>p { width:min(390px,100%); margin:0; color:var(--sub); font-size:14px; }
.service-section { background:#f7f4ee; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-card { position:relative; background:#fffefa; min-height:430px; padding:44px 34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-no { position:absolute; right:22px; top:22px; color:#aaa39b; font-size:10px; }
.service-icon { width:68px; height:68px; margin-bottom:34px; position:relative; }
.browser-icon { border:1.5px solid var(--ink); border-radius:3px; }.browser-icon:before{content:"";position:absolute;left:0;right:0;top:13px;border-top:1.5px solid var(--ink)}.browser-icon b{position:absolute;top:5px;width:4px;height:4px;background:var(--accent);border-radius:50%;}.browser-icon b:first-child{left:7px}.browser-icon b:last-child{left:14px}
.flyer-icon { border:1.5px solid var(--ink); transform:rotate(-4deg); }.flyer-icon b{position:absolute;left:13px;right:13px;bottom:12px;height:22px;background:var(--accent);opacity:.8}
.banner-icon { border:1.5px solid var(--ink); border-radius:50%; }.banner-icon b{position:absolute;width:30px;height:20px;background:var(--accent);left:17px;top:20px;transform:rotate(15deg)}.banner-icon i{position:absolute;width:20px;height:1.5px;background:var(--ink);left:23px;top:32px;transform:rotate(-25deg)}
.service-card h3 { font-family:var(--serifish); font-size:23px; margin:0 0 18px; }.service-card p{font-size:13px;color:var(--sub);margin:0 0 24px}.service-card ul,.price-card ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line);}.service-card li,.price-card li{font-size:12px;padding:8px 0;border-bottom:1px solid var(--line);}.service-card li:before,.price-card li:before{content:"—";color:var(--accent);margin-right:9px}
.combo-section { background:#fff; }
.combo-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:90px; align-items:center; }
.combo-visual { display:flex; align-items:center; gap:10px; background:#f7f4ee; padding:55px 35px; min-height:330px; }
.route-card { width:145px; height:185px; background:#fff; border:1px solid var(--line); padding:18px; display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 12px 30px rgba(60,50,40,.06); }.route-card small{color:var(--accent);font-weight:700}.route-card strong{font-family:var(--serifish);font-size:23px}.route-card span{font-size:9px;color:var(--sub)}
.flyer-route{transform:rotate(-3deg)}.web-route{transform:rotate(3deg)}.route-arrow{color:#968d84}.fake-qr{width:65px;height:65px;margin:4px auto;background:repeating-conic-gradient(#222 0 25%, transparent 0 50%) 0/12px 12px;}
.combo-copy>p:not(.section-kicker):not(.callout){color:var(--sub);font-size:14px;margin-top:30px}.callout{border-left:2px solid var(--accent);padding-left:18px;margin-top:28px;font-weight:600;}
.works-section { background:#f0e9df; }.case-card{display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border:1px solid #d8d0c5;}.case-image{min-height:480px;background:#d8c2ae;display:grid;place-items:center;padding:50px}.case-paper{width:min(320px,90%);aspect-ratio:1/1.4;background:#f7efe3;padding:35px;box-shadow:0 20px 50px rgba(61,47,36,.18);transform:rotate(-4deg);position:relative;}.case-paper span{font-size:9px;letter-spacing:.18em;color:var(--accent)}.case-paper strong{display:block;margin-top:55px;font-family:var(--serifish);font-size:26px;line-height:1.5}.case-paper i{position:absolute;left:35px;right:35px;bottom:45px;height:70px;background:var(--accent);opacity:.78}.case-copy{padding:65px 55px;align-self:center}.tag{display:inline-block;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:9px;letter-spacing:.15em;color:var(--accent)}.case-copy h3{font-family:var(--serifish);font-size:26px;margin:18px 0}.case-copy>p{font-size:13px;color:var(--sub)}.case-copy dl{margin:35px 0 0;border-top:1px solid var(--line)}.case-copy dl div{display:grid;grid-template-columns:70px 1fr;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.case-copy dt{color:var(--sub)}.case-note{font-size:10px!important;margin-top:20px}
.price-section { background:#fff; }.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.price-card{border:1px solid var(--line);padding:36px 30px;position:relative}.price-card.featured{border-color:var(--accent);background:#fffaf6}.recommend{position:absolute;right:15px;top:15px;background:var(--accent);color:white;padding:5px 9px;font-size:9px}.price-label{font-size:9px!important;color:var(--accent)!important;font-weight:700;letter-spacing:.15em}.price-card h3{font-family:var(--serifish);font-size:22px;margin:8px 0 20px}.price{display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;margin:0 0 18px!important}.price small{width:100%;font-size:9px;color:var(--sub)}.price strong{font-size:34px;letter-spacing:-.04em}.price span{font-size:11px}.price-card>p{font-size:12px;color:var(--sub)}.price-card ul{margin-top:24px}.price-note{text-align:center;color:#877f77;font-size:10px;margin-top:22px}
.process-section { background:#f7f4ee; }.flow-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.flow-list li{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:30px 0;border-bottom:1px solid var(--line)}.flow-list>li>span{font-size:12px;color:var(--accent);font-weight:700}.flow-list h3{font-family:var(--serifish);font-size:20px;margin:0 0 7px}.flow-list p{margin:0;color:var(--sub);font-size:13px;max-width:680px}
.about-section { background:#24231f;color:#fff; }.about-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px;align-items:center}.about-card{position:relative}.portrait-placeholder{height:430px;background:#d8c2ae;display:grid;place-items:center;color:#fff;font-family:var(--serifish);font-size:55px;letter-spacing:-.05em}.signature{position:absolute;right:-10px;bottom:-33px;font-family:cursive;font-size:26px;color:#e2b0a3;transform:rotate(-7deg)}.about-section .section-kicker{color:#df8b79}.about-copy>p:not(.section-kicker){color:#c8c4bd;font-size:14px}.about-name{margin-top:30px;padding-top:24px;border-top:1px solid rgba(255,255,255,.2);display:flex;flex-direction:column;gap:4px}.about-name strong{font-family:var(--serifish)}.about-name span{font-size:11px;color:#aaa69f}
.faq-section { background:#fff; }.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:23px 0}summary{cursor:pointer;list-style:none;font-weight:600;font-size:14px;position:relative;padding-right:40px}summary::-webkit-details-marker{display:none}summary:after{content:"＋";position:absolute;right:5px;color:var(--accent);font-size:20px;top:-4px}details[open] summary:after{content:"−"}details p{color:var(--sub);font-size:13px;margin:18px 0 3px;max-width:720px}
.contact-section { padding:120px 0;background:var(--accent);color:white;text-align:center}.contact-inner .section-kicker{color:#f7d6ce}.contact-inner h2{font-family:var(--serifish);font-size:clamp(34px,4.5vw,58px);line-height:1.45;margin:0}.contact-inner h2 em{color:white}.contact-inner h2 em:after{background:rgba(255,255,255,.2)}.contact-inner>p:not(.section-kicker){font-size:13px;color:#f7e1dc;margin:26px auto}.contact-button{background:white;color:var(--accent);min-width:280px}.contact-inner small{display:block;margin-top:14px;color:#f3cdc4;font-size:9px}
footer{padding:42px 0;background:#1d1c1a;color:#fff}.footer-inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.footer-inner>p{margin:0;color:#9f9a93;font-size:10px}.footer-links{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:#c8c4bd}.footer-links a{text-decoration:underline;text-underline-offset:3px}.copyright{margin-left:auto!important}
.legal-page{background:#f7f4ee;min-height:70vh}.legal-hero{padding:90px 0 28px}.legal-hero h1{font-size:clamp(34px,5vw,54px)}.legal-wrap{width:min(880px,calc(100% - 48px));margin:0 auto;padding:10px 0 100px}.legal-card{background:#fffefa;border:1px solid var(--line);padding:34px 36px;margin-top:18px}.legal-card h2{font-family:var(--serifish);font-size:22px;margin:0 0 16px}.legal-card h3{font-size:15px;margin:28px 0 8px}.legal-card p,.legal-card li,.legal-table{font-size:13px;color:#4f4b46}.legal-card ul{padding-left:1.4em}.legal-table{width:100%;border-collapse:collapse}.legal-table th,.legal-table td{padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.legal-table th{width:180px;color:var(--sub);font-weight:600}.legal-note{font-size:11px!important;color:#7d766f!important}.legal-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.legal-links a{font-size:12px;text-decoration:underline;text-underline-offset:3px}.contact-notice{background:#fffefa;border:1px solid var(--line);padding:28px;margin:24px 0}.contact-notice strong{display:block;margin-bottom:8px}.contact-email{font-size:14px;margin-top:20px}.contact-email a{text-decoration:underline;text-underline-offset:3px}.external-note{font-size:11px;color:var(--sub);margin-top:14px}.contact-inner small a{text-decoration:underline;text-underline-offset:3px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
@media (max-width: 900px){.desktop-nav{display:none}.menu-button{display:flex;width:44px;height:44px;border:0;background:transparent;flex-direction:column;justify-content:center;gap:7px;padding:10px}.menu-button span{height:1px;background:var(--ink);width:100%;transition:.2s}.mobile-nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--white);border-bottom:1px solid var(--line);padding:14px 24px 22px;flex-direction:column}.mobile-nav.open{display:flex}.mobile-nav a{padding:12px;border-bottom:1px solid var(--line);font-size:13px}.hero-grid,.combo-grid,.about-grid{grid-template-columns:1fr}.hero-grid{min-height:0}.hero-visual{height:480px;margin-top:10px}.section-heading{align-items:flex-start;flex-direction:column;gap:18px}.service-grid,.price-grid{grid-template-columns:1fr}.service-card{min-height:auto}.combo-grid{gap:50px}.combo-visual{overflow:hidden;justify-content:center}.route-card{min-width:120px}.case-card{grid-template-columns:1fr}.case-image{min-height:420px}.about-grid{gap:55px}.about-card{width:min(500px,100%);margin:auto}.trust-inner{padding:18px 0}.trust-inner i{display:none}.trust-inner p{width:calc(50% - 10px)}}
@media (max-width: 600px){.container,.narrow{width:min(100% - 34px,1120px)}.legal-wrap{width:min(100% - 34px,880px)}.legal-card{padding:26px 22px}.legal-table,.legal-table tbody,.legal-table tr,.legal-table th,.legal-table td{display:block;width:100%}.legal-table th{padding-bottom:2px;border-bottom:0}.legal-table td{padding-top:2px}.section-pad{padding:82px 0}.header-inner{height:68px}.mobile-nav{top:68px}.hero{padding-top:60px}.hero-grid{gap:15px}h1{font-size:43px}.hero-lead br{display:none}.hero-actions{align-items:flex-start;flex-direction:column;gap:13px}.button.primary{width:100%}.hero-visual{height:390px}.browser-card{height:330px;width:88%;left:8%}.browser-body{padding:43px 34px}.paper-back{width:130px;height:83px}.paper-front{width:140px;height:185px;left:-7px}.paper-front strong{font-size:13px;margin-top:22px}.paper-circle{width:52px;height:52px;margin-top:24px}.hand-note{font-size:17px}.trust-inner p{width:100%}.section-title{font-size:36px}.problem{grid-template-columns:42px 1fr}.problem p{font-size:14px}.section-heading{margin-bottom:40px}.combo-visual{padding:36px 12px;min-height:260px;gap:4px}.route-card{min-width:93px;width:93px;height:150px;padding:12px}.route-card strong{font-size:17px}.fake-qr{width:50px;height:50px}.route-arrow{font-size:12px}.case-image{padding:35px 20px;min-height:380px}.case-copy{padding:38px 28px}.price-card{padding:30px 24px}.flow-list li{grid-template-columns:45px 1fr}.portrait-placeholder{height:340px}.contact-section{padding:90px 0}.footer-inner{flex-direction:column;align-items:flex-start;gap:14px}.copyright{margin-left:0!important}}
