/* 別版専用。通常版のスタイル・セクション順・料金・FAQには影響しません。 */
:root {
  --green: #075b38;
  --green-dark: #06472e;
  --red: #ee2439;
  --coral: #ff725a;
  --cream: #fff9f1;
  --peach: #ffede2;
  --mint: #edf8e6;
  --yellow: #fff39b;
  --gold: #dbb85d;
  --ink: #2c251f;
  --body-font: "BIZ UDPGothic", sans-serif;
  --display-font: "Yusei Magic", "BIZ UDPGothic", sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; color: var(--ink); background: #fffdf9; font: 700 16px/1.85 var(--body-font); overflow-wrap: anywhere; }
img { display: block; max-width: 100%; height: auto; }
svg { display: block; max-width: 100%; }
a { color: inherit; }
button, input { font: inherit; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #a96313; outline-offset: 5px; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { overflow-wrap: normal; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
.skip-link { position: fixed; top: 10px; left: 16px; z-index: 100; padding: 12px 22px; background: #fff; opacity: 0; pointer-events: none; }
.skip-link:focus { opacity: 1; pointer-events: auto; }
.wrap { width: min(1100px, calc(100% - 64px)); margin-inline: auto; position: relative; z-index: 1; }
.font-yusei { font-family: var(--display-font); font-weight: 400; }
.red { color: var(--red); }
.section, .price-comparison, .final-cta, .hero-problem { position: relative; isolation: isolate; padding-block: 84px; overflow: clip; }
.section-title, .problem-title, .final-title, .comparison-board-title { color: var(--green); font: 400 clamp(30px, 3.7vw, 48px)/1.45 var(--display-font); text-align: center; -webkit-text-stroke: .35px; text-wrap: balance; }
.section-title { width: fit-content; max-width: 100%; margin: 0 auto 24px; position: relative; }
.section-title::before, .gift-heading h2::before, .comparison-board-title::before { content: ""; position: absolute; inset: -5px -63px; background: url("../images/heading-rays.svg") center / 100% 100% no-repeat; pointer-events: none; z-index: -1; }
.section-title::after, .problem-title::after, .comparison-board-title::after { content: ""; display: block; width: 94%; height: 14px; border-radius: 50% 30% 40% 25%; background: var(--yellow); margin: -13px auto 0; position: relative; z-index: -1; transform: rotate(-1deg); }
.section-lead { max-width: 850px; margin: 0 auto 35px; text-align: center; line-height: 1.9; }
.section-kicker { text-align: center; color: var(--green); letter-spacing: .1em; font-size: 17px; margin-bottom: 8px; }
.section::before, .section::after, .price-comparison::before, .price-comparison::after, .final-cta::before, .final-cta::after { content: ""; position: absolute; pointer-events: none; z-index: 0; width: clamp(95px, 14vw, 190px); aspect-ratio: 1; background: url("../images/botanical-branch.webp") center / contain no-repeat; mix-blend-mode: multiply; opacity: .88; }
.section::before, .price-comparison::before, .final-cta::before { left: max(0px, calc((100vw - 1460px) / 2)); top: 20px; transform: rotate(90deg); }
.section::after, .price-comparison::after, .final-cta::after { right: max(0px, calc((100vw - 1460px) / 2)); bottom: 12px; transform: rotate(-15deg); }
.examples, .local-company, .flow, .faq-section { background: radial-gradient(ellipse 50% 260px at 15% 0, #ffede1b3, transparent 100%), radial-gradient(ellipse 50% 280px at 92% 100%, #edf8e8bb, transparent 100%), #fffdf9; }
.reassurance, .store { background: radial-gradient(ellipse at 50% 45%, #fffef9 0, #f0f9e9 72%, #fffdf9 100%); }
.cta-row { display: flex; justify-content: center; align-items: center; gap: 22px; }
.btn { display: inline-flex; justify-content: center; align-items: center; gap: 18px; min-height: 90px; padding: 16px 30px; border-radius: 100px; border: 2px solid #fff; box-shadow: 0 4px 2px #82632b13, inset 0 5px 12px #ffffff24; color: #fff; text-decoration: none; font-size: clamp(20px, 2.25vw, 29px); line-height: 1.4; font-weight: 700; transition: transform .18s, filter .18s; }
.btn:hover { filter: brightness(1.06); transform: translateY(-2px); }
.btn-line { background: linear-gradient(170deg, #1acd51 0, #00aa47 40%, #008338 100%); }
.btn-tel { background: linear-gradient(170deg, #ff917a, #ff6653 55%, #f75049); }
.btn .line-icon, .btn .tel-icon { width: 56px; height: 56px; flex: 0 0 56px; object-fit: contain; }
.btn .line-icon { filter: brightness(0) invert(1); }
.btn .tel-icon { filter: brightness(0) invert(1); }
.btn-arrow { flex: 0 0 16px; width: 16px; height: 16px; border: solid #fff; border-width: 4px 4px 0 0; transform: rotate(45deg); margin: 0 7px 0 2px; }
.hero { position: relative; background: var(--cream); isolation: isolate; overflow: hidden; }
.hero::before { content: ""; position: absolute; left: -15%; top: 0; width: 80%; height: 95%; border-radius: 40% 45% 55% 35%; background: radial-gradient(ellipse at center, #ffe7d6b0, transparent 70%); z-index: -1; }
.hero-logo { width: min(1100px, calc(100% - 64px)); margin: auto; padding-top: 30px; height: 100px; }
.hero-logo img { width: 285px; height: auto; mix-blend-mode: multiply; }
.hero-layout { max-width: 1100px; margin: auto; }
.hero-visual { position: relative; min-height: 625px; padding: 48px 0 40px; }
.hero-copy, .hero-intro, .hero-benefits { position: relative; z-index: 2; width: 61%; }
.hero-title { color: var(--green); font: 400 clamp(33px, 4.2vw, 57px)/1.6 var(--display-font); letter-spacing: -.055em; -webkit-text-stroke: .5px; }
.hero-title-line { display: block; }
.hero-title-line:last-child { font-size: 1.15em; }
.hero-title .hero-title-sub { font-size: clamp(20px, 2.4vw, 32px); line-height: 1.65; letter-spacing: 0; margin-top: 12px; }
.hero-title strong { color: var(--red); font-weight: inherit; font-size: 1.35em; }
.hero-title .hero-surprise { color: var(--red); font-size: .7em; display: block; line-height: 1.2; }
.hero-area { position: absolute; right: 0; top: -78px; color: var(--green); font-size: 21px; padding: 8px 0; }
.hero-intro { padding-top: 23px; font-size: 21px; }
.hero-intro .red { color: var(--green); font-size: 28px; margin-top: 12px; line-height: 1.7; }
.hero-intro .red > span { display: block; }
.hero-intro .red > span:first-child { color: var(--red); }
.hero-person { position: absolute; right: -30px; top: -55px; width: 525px; height: 710px; object-fit: cover; object-position: center 15%; mix-blend-mode: multiply; z-index: 0; mask-image: linear-gradient(to bottom, transparent, #000 9%, #000 85%, transparent 100%), linear-gradient(to right, transparent, #000 14%, #000 83%, transparent); mask-composite: intersect; }
.hero-benefits { display: flex; gap: 17px; padding-top: 32px; width: 620px; }
.hero-benefit { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 154px; aspect-ratio: 1; flex-shrink: 0; border-radius: 50%; background: #fffef8ec; border: 2px solid var(--gold); outline: 3px solid #fffdf8; box-shadow: inset 0 0 0 5px #fffdf8, inset 0 0 0 6px #e4ce94; color: var(--green); text-align: center; padding: 13px; line-height: 1.3; }
.hero-benefit svg { width: 39px; height: 37px; color: var(--gold); margin-bottom: 4px; }
.hero-benefit small { display: block; font-size: 11px; margin-bottom: 4px; }
.hero-benefit b { font-size: 20px; }
.hero-benefit b br { display: initial; }
.benefit-zero { font: 700 34px/1.1 var(--body-font); color: #c59a3b; margin-bottom: 4px; }
.hero-side { position: relative; padding: 5px 0 40px; text-align: center; }
.hero-cta-title, .cta-band > p { font: 400 30px/1.5 var(--display-font); color: var(--green); margin-bottom: 19px; }
.hero-cta-title::before, .cta-band > p::before { content: "＼"; display: inline-block; color: #e9b722; margin-right: 17px; }
.hero-cta-title::after, .cta-band > p::after { content: "／"; display: inline-block; color: #e9b722; margin-left: 17px; }
.hero-cta .btn-line { min-width: 430px; }
.hero-cta .btn-tel { min-width: 310px; }
.hero-problem { background: linear-gradient(#fff9f1, #fffdf9); padding-top: 35px; padding-bottom: 65px; }
.problem-panel { position: relative; }
.problem-eyebrow { color: var(--green); text-align: center; font-size: 22px; margin-bottom: 8px; }
.problem-title { width: fit-content; max-width: 100%; margin: 0 auto 34px; color: var(--red); }
.problem-list { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 0; margin: 0; }
.problem-list li { padding: 9px 9px 12px; background: var(--peach); border: 1px solid #fff; border-radius: 22px; text-align: center; line-height: 1.65; font-size: 15px; }
.problem-list img { width: 100%; aspect-ratio: 1.4; object-fit: cover; border-radius: 15px; margin-bottom: 12px; }
.problem-list span { display: block; }
.problem-note { text-align: center; color: #bd302d; margin-top: 26px; font-size: 21px; }
.example-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.example-card { min-width: 0; position: relative; background: #fffdf7; border-radius: 24px; border: 2px solid #fff; box-shadow: 0 5px 20px #86683912; padding: 22px 18px 18px; display: flex; flex-direction: column; align-items: center; }
.example-name { font: 400 23px/1.5 var(--display-font); color: var(--green); text-align: center; min-height: 68px; display: flex; align-items: center; justify-content: center; }
.example-image { width: 100%; height: 190px; object-fit: contain; border-radius: 15px; background: #fff; }
.price-tag { color: var(--red); font-size: 34px; line-height: 1.4; margin-top: 12px; position: relative; isolation: isolate; }
.price-tag::after { content: ""; position: absolute; height: 13px; width: 120%; left: -10%; bottom: 2px; background: var(--yellow); border-radius: 20px; z-index: -1; }
.example-clone, .marquee-controls { display: none; }
.examples-notes { font-size: 13px; margin-top: 24px; font-weight: 400; }
.reassurance .section-title { margin-bottom: 35px; }
.reassurance .section-title br { display: none; }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; }
.feature-card { display: grid; grid-template-columns: 43% 1fr; grid-template-rows: auto 1fr; column-gap: 22px; padding: 15px; background: #fffef8ed; border: 2px solid #fff; border-radius: 25px; box-shadow: 0 5px 18px #527d3412; }
.feature-card-title { grid-column: 2; grid-row: 1; align-self: end; color: var(--green); font: 400 23px/1.6 var(--display-font); margin: 8px 0; }
.feature-media { grid-column: 1; grid-row: 1 / 3; }
.feature-media img { width: 100%; height: 100%; min-height: 195px; object-fit: cover; border-radius: 16px; }
.feature-body { grid-column: 2; grid-row: 2; font-size: 14px; padding-right: 4px; }
.cta-band { padding: 42px 32px 60px; text-align: center; background: #f2f9eb; }
.cta-band .btn-line { min-width: 470px; }
.price-comparison { background: radial-gradient(ellipse at 80% 20%, #ffeadeb3, transparent 65%), var(--cream); }
.price-comparison-shell { display: flex; flex-direction: column; }
.comparison-lead { display: grid; grid-template-columns: 1fr 100px 1fr; align-items: center; margin: 0 0 30px; order: 1; }
.comparison-scenario { display: flex; flex-direction: column; align-items: center; border-radius: 28px; background: #f1efea; padding: 0 20px 20px; min-height: 210px; }
.comparison-scenario b { width: calc(100% + 40px); border-radius: 28px 28px 0 0; text-align: center; background: #a7a8a0; color: #fff; font-size: 33px; line-height: 1.5; font-weight: 400; padding: 8px; }
.comparison-scenario svg { width: 130px; height: 115px; margin-top: 15px; }
.comparison-sale { background: #ecf5e1; }
.comparison-sale b { background: var(--green); }
.comparison-vs { color: #ba963f; text-align: center; font-size: 39px; background: #fff9e2; border: 2px solid #e7d393; border-radius: 50%; width: 82px; height: 82px; line-height: 78px; margin: auto; }
.comparison-board { display: contents; }
.comparison-board-title { order: 0; margin: 0 auto 40px; color: var(--red); width: fit-content; position: relative; }
.comparison-table-wrap { order: 2; border-radius: 22px; overflow: hidden; border: 2px solid #ded6b6; }
.comparison-table { width: 100%; border-collapse: collapse; table-layout: fixed; text-align: center; background: #fffdf7; font-size: 18px; line-height: 1.5; }
.comparison-table th, .comparison-table td { padding: 20px 10px; border-right: 1px solid #dbd7bd; border-bottom: 1px solid #dbd7bd; }
.comparison-table th:last-child, .comparison-table td:last-child { border-right: 0; }
.comparison-table thead th { background: #fbe7d6; color: #594d32; font-size: 19px; }
.comparison-table thead th:first-child { width: 26%; background: #f7f2de; }
.comparison-table thead .comparison-company { background: var(--green); color: #fff; font-size: 24px; }
.comparison-table tbody th { font-size: 18px; }
.comparison-table .comparison-company { background: #eaf5d8; color: var(--green); }
.comparison-company strong { font-size: 30px; white-space: nowrap; }
.cmp-unit { display: block; font-size: 13px; }
.cmp-cell { display: flex; flex-direction: column; gap: 5px; }
.cmp-note { color: #61594e; font-size: 11px; font-weight: 400; }
.cmp-amount { color: #bf393c; font-size: 24px; white-space: nowrap; }
.cmp-amount.is-na { color: #72685b; font-size: 18px; }
.comparison-total { background: #fff0d4; }
.comparison-total .comparison-company { background: #d7edb8; }
.comparison-total .comparison-company strong { font-size: 34px; }
.comparison-table tr:last-child > * { border-bottom: 0; }
.comparison-note { order: 3; margin-top: 20px; font-size: 12px; line-height: 1.9; font-weight: 400; }
.company-panel { display: grid; grid-template-columns: 51% 1fr; gap: 40px; align-items: center; margin-top: 38px; }
.company-brand { border: 8px solid #fff; border-radius: 30px; box-shadow: 0 6px 30px #5b5e2417; transform: rotate(-2deg); overflow: hidden; }
.company-brand img { width: 100%; height: auto; aspect-ratio: 1.26; object-fit: cover; }
.company-message { border-radius: 48% 45% 46% 35% / 25% 27% 25% 28%; background: #fff5e6; padding: 45px 32px; position: relative; color: var(--green); }
.company-message::after { content: ""; position: absolute; left: -20px; top: 50%; width: 32px; height: 32px; background: #fff5e6; transform: rotate(35deg); z-index: -1; }
.company-message-shape { display: none; }
.company-message p { font: 400 26px/1.9 var(--display-font); }
.company-message p span { display: block; }
.company-message p span + span { margin-top: 16px; }
.company-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.company-values > div { background: var(--mint); border-radius: 22px; overflow: hidden; text-align: center; border: 2px solid #fff; }
.company-values > div:nth-child(2) { background: var(--peach); }
.company-values h3 { font: 400 23px/1.6 var(--display-font); background: var(--green); color: #fff; padding: 10px; }
.company-values > div:nth-child(2) h3 { background: var(--coral); }
.company-values svg { color: var(--green); width: 80px; height: 80px; margin: 25px auto; }
.gift-offer { background: radial-gradient(ellipse at 45% 30%, #ffe4d5 0, #fff9f1 68%, #fffdf9 100%); }
.gift-heading { text-align: center; }
.gift-kicker { color: var(--green); font-size: 42px; line-height: 1.5; }
.gift-heading h2 { position: relative; color: var(--red); font: 400 clamp(32px, 5vw, 62px)/1.5 var(--display-font); -webkit-text-stroke: .5px; margin: 8px auto 45px; width: fit-content; background: linear-gradient(transparent 78%, var(--yellow) 78%, var(--yellow) 96%, transparent 96%); }
.gift-options { display: grid; gap: 64px; }
.gift-option { position: relative; border: 2px solid #fff; border-radius: 40px; padding: 0 32px 26px; background: #fffdf7f5; }
.gift-option-under { background: #f3faeefa; }
.gift-option h3 { position: relative; background: linear-gradient(130deg, #ff9779, #ff6a56); color: #fff; border: 2px solid #fff; border-radius: 100px; width: min(620px, 92%); margin: -27px auto 8px; text-align: center; font-size: 26px; line-height: 1.5; padding: 9px 20px; }
.gift-option-under h3 { background: linear-gradient(130deg, #55ba66, #239b55); }
.gift-threshold { font-size: 39px; }
.gift-choice { display: grid; grid-template-columns: minmax(0, 1fr) 100px minmax(0, 1fr); align-items: center; gap: 22px; }
.gift-item { width: 100%; margin: 0; min-width: 0; text-align: center; }
.gift-item img { width: 100%; height: 215px; object-fit: contain; mix-blend-mode: multiply; }
.gift-item figcaption { font-size: 23px; line-height: 1.5; }
.gift-item strong { display: block; color: var(--red); font-size: 54px; width: fit-content; margin: 0 auto; line-height: 1.3; background: linear-gradient(transparent 73%, var(--yellow) 73%, var(--yellow) 95%, transparent 95%); padding-inline: 15px; }
.gift-item strong span { font-size: 30px; }
.gift-towel figcaption { font: 400 36px/1.4 var(--display-font); color: var(--green); }
.gift-or { display: flex; align-items: center; justify-content: center; width: 100px; height: 100px; border-radius: 50%; background: #ffead6; font: 400 26px/1.5 var(--display-font); }
.gift-pickup { position: relative; margin-top: 48px; background: #eef8e5; border: 2px solid #fff; border-radius: 42px; padding: 35px 38px; text-align: center; overflow: hidden; }
.gift-safe { color: var(--green); font-size: 27px; }
.gift-pickup h3 { color: var(--green); font: 400 35px/1.6 var(--display-font); max-width: 750px; margin: 0 auto; position: relative; z-index: 1; }
.gift-pickup h3 br { display: none; }
.gift-truck { width: 150px; height: 150px; object-fit: contain; position: absolute; right: 18px; top: 10px; opacity: .2; }
.gift-pickup-note { margin: 15px 0 23px; font-size: 21px; position: relative; }
.gift-pickup .btn { min-width: 360px; }
.flow-eyebrow { text-align: center; font-size: 33px; color: var(--green); }
.flow .section-title { color: var(--red); font-size: 64px; }
.flow .section-lead { max-width: 850px; }
.flow-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; counter-reset: flow; margin-bottom: 40px; }
.flow-step { display: flex; flex-direction: column; position: relative; border-radius: 28px; border: 2px solid #fff; background: #f4faee; box-shadow: 0 3px 20px #69a94e1a; padding: 23px 12px 12px; text-align: center; counter-increment: flow; }
.flow-step::before { content: "STEP\A" counter(flow); white-space: pre; display: block; font: 400 25px/1.35 var(--display-font); padding-top: 11px; width: 90px; height: 90px; border-radius: 50%; margin: 0 auto 14px; color: #fff; background: linear-gradient(135deg, #ff977b, #ff6656); }
.flow-step:not(:last-child)::after { content: ""; position: absolute; z-index: 2; width: 30px; height: 30px; background: #49b672; clip-path: polygon(0 30%, 52% 30%, 52% 0, 100% 50%, 52% 100%, 52% 70%, 0 70%); right: -31px; top: 47%; }
.flow-step h3 { order: 0; font: 400 32px/1.6 var(--display-font); color: var(--green); margin-bottom: 18px; background: linear-gradient(transparent 69%, var(--yellow) 69%, var(--yellow) 90%, transparent 90%); }
.flow-step-image { order: 1; width: 100%; height: 275px; object-fit: cover; border-radius: 20px; }
.flow .btn-line { min-width: 590px; }
.store-title { color: var(--red); font-size: 62px; margin-bottom: 10px; }
.store-sub { text-align: center; font-size: 34px; line-height: 1.6; color: var(--green); margin-bottom: 30px; }
.store-sub-text { display: flex; flex-wrap: wrap; gap: 0 .2em; justify-content: center; }
.store-parking { width: 100%; max-height: 580px; aspect-ratio: 1.9; object-fit: cover; border: 8px solid #fff; border-radius: 35px; }
.store-features { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: -32px 22px 32px; }
.store-features > div { border-radius: 25px; border: 2px solid #fff; padding: 22px 12px; text-align: center; background: #f9fff2; box-shadow: 0 4px 20px #92b7761c; }
.store-features svg { color: var(--green); width: 58px; height: 58px; margin: 0 auto 12px; }
.store-features p { color: var(--green); font: 400 22px/1.6 var(--display-font); }
.store-team-call { text-align: center; font-size: 30px; color: var(--green); }
.store-team-call::before { content: "＼ "; color: #d8b34c; }
.store-team-call::after { content: " ／"; color: #d8b34c; }
.store-members { width: 640px; height: 265px; object-fit: cover; object-position: top center; margin: 20px auto 0; mask-image: linear-gradient(#000 88%, transparent); }
.store-note { position: relative; text-align: center; font: 400 29px/1.8 var(--display-font); color: var(--red); padding: 22px 50px; background: var(--peach); border-radius: 70px; margin-top: 18px; }
.store-note span { display: inline; }
.access { background: #eef6e9; }
.access-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 35px; margin-top: 35px; align-items: stretch; }
.map-embed { border: 8px solid #fff; border-radius: 25px; overflow: hidden; min-height: 360px; }
.map-embed iframe { display: block; width: 100%; height: 100%; min-height: 360px; border: 0; }
.access-card { border-radius: 25px; background: #fffdf7; padding: 30px; }
.access-card h3 { font-size: 26px; color: var(--green); margin-bottom: 15px; }
.access-card p { font-size: 14px; }
.access-card .address { font-size: 17px; margin-bottom: 8px; }
.access-card .phone { display: block; color: var(--green); font-size: 32px; text-decoration: none; margin: 18px 0; }
.access-card .btn { min-height: 73px; width: 100%; font-size: 21px; padding: 12px 18px; gap: 13px; }
.access-card .line-icon { width: 43px; height: 43px; flex-basis: 43px; }
.faq-list { max-width: 920px; margin: 35px auto 0; display: grid; gap: 13px; }
.faq-item { background: #fffdf7; border: 1px solid #dddec9; border-radius: 17px; overflow: hidden; }
.faq-item summary { display: flex; align-items: center; gap: 17px; position: relative; list-style: none; cursor: pointer; padding: 21px 59px 21px 25px; font-size: 17px; line-height: 1.7; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; top: 50%; right: 25px; transform: translateY(-50%); color: var(--green); font-size: 30px; font-weight: 400; }
.faq-item[open] summary::after { content: "−"; }
.faq-q, .faq-a { color: var(--green); font-size: 27px; flex: 0 0 28px; font-family: var(--display-font); }
.faq-a { color: var(--red); }
.faq-answer { display: flex; gap: 17px; padding: 18px 30px 25px 25px; border-top: 1px dashed #dddcc6; font-size: 15px; font-weight: 400; }
.final-cta { text-align: center; background: radial-gradient(ellipse at 50% 50%, #fffdf8 40%, #edf7e4 100%); }
.final-label { color: var(--red); font-size: 30px; margin-bottom: 12px; }
.final-title { font-size: 47px; margin-bottom: 30px; }
.final-copy { max-width: 870px; margin: 0 auto 32px; font-size: 15px; }
.final-copy p + p { margin-top: 8px; }
.final-cta .btn-line { min-width: 430px; }
.final-cta .btn-tel { min-width: 320px; }
.staff-photo { background: #fffdf9; }
.staff-photo img { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.footer { background: #f7f4e9; padding: 46px 0 18px; }
.footer-inner { display: grid; grid-template-columns: 320px 1fr; gap: 60px; align-items: start; }
.footer-logo { width: 285px; margin-top: 8px; mix-blend-mode: multiply; }
.footer-info { font-style: normal; font-size: 14px; font-weight: 400; line-height: 1.9; }
.footer-info p + p { margin-top: 5px; }
.footer-line-link { color: var(--green); font-weight: 700; }
.todo { font-size: 11px; color: #77685a; }
.copyright { font-size: 12px; text-align: center; margin-top: 34px; font-weight: 400; }
.mobile-bar { display: none; }
.font-yusei, .hero-title, .section-title, .problem-title, .final-title, .comparison-board-title, .gift-heading h2, .gift-pickup h3, .feature-card-title, .flow-step h3, .store-note, .store-features p, .company-values h3 { font-weight: 700; }
.hero-title, .gift-heading h2, .flow .section-title, .store-title { -webkit-text-stroke: .8px; }
@media (min-width: 1600px) { .hero-person { right: -35px; } }
@media (max-width: 1150px) and (min-width: 761px) {
  .hero-layout { width: calc(100% - 64px); }
  .hero-visual { min-height: 590px; }
  .hero-person { right: -30px; width: 47%; top: -10px; height: 620px; }
  .hero-intro { font-size: 18px; }
  .hero-intro .red { font-size: 23px; }
  .hero-benefit { width: 135px; }
  .hero-benefit b { font-size: 17px; }
  .hero-benefits { gap: 12px; }
  .btn { gap: 13px; padding-inline: 23px; }
  .hero-cta .btn-line, .final-cta .btn-line { min-width: 360px; }
  .hero-cta .btn-tel, .final-cta .btn-tel { min-width: 280px; }
  .cta-band .btn-line { min-width: 0; }
  .feature-card { column-gap: 14px; }
  .feature-card-title { font-size: 19px; }
  .feature-body { font-size: 13px; }
  .company-panel { gap: 25px; }
  .company-message { padding: 30px 25px; }
  .company-message p { font-size: 23px; }
  .gift-pickup .btn { min-width: 0; }
  .gift-item figcaption { font-size: 20px; }
  .access-grid { gap: 22px; }
  .access-card { padding: 23px; }
  .access-card .btn { font-size: 18px; }
}
@media (max-width: 760px) {
  html { scroll-padding-bottom: 84px; }
  body { font-size: 14px; padding-bottom: 76px; }
  .wrap { width: calc(100% - 36px); }
  .section, .price-comparison, .final-cta { padding-block: 50px; }
  .section::before, .section::after, .price-comparison::before, .price-comparison::after, .final-cta::before, .final-cta::after { width: 90px; opacity: .6; }
  .section::before, .price-comparison::before, .final-cta::before { top: 5px; left: -15px; }
  .section::after, .price-comparison::after, .final-cta::after { right: -8px; bottom: 0; }
  .section-title, .problem-title, .comparison-board-title { font-size: 29px; line-height: 1.6; margin-bottom: 23px; }
  .section-title::after, .problem-title::after, .comparison-board-title::after { height: 11px; margin-top: -12px; }
  .section-lead { font-size: 13px; text-align: left; margin-bottom: 25px; }
  .cta-row { gap: 12px; flex-wrap: wrap; }
  .btn { font-size: 21px; min-height: 73px; padding: 13px 21px; gap: 15px; }
  .btn .line-icon, .btn .tel-icon { width: 44px; height: 44px; flex-basis: 44px; }
  .btn-arrow { width: 13px; height: 13px; flex-basis: 13px; border-width: 3px 3px 0 0; margin-right: 4px; }
  .hero-logo { height: 72px; padding-top: 19px; width: calc(100% - 36px); }
  .hero-logo img { width: 187px; }
  .hero-layout { width: 100%; }
  .hero-visual { min-height: 0; padding: 29px 18px 20px; }
  .hero-copy { width: 100%; }
  .hero-title { font-size: clamp(23px, 5.8vw, 37px); line-height: 1.75; letter-spacing: -.055em; }
  .hero-title-line:last-child { font-size: 1.3em; }
  .hero-title .hero-title-sub { font-size: clamp(16px, 4.7vw, 22px); margin-top: 9px; }
  .hero-area { top: -59px; right: 18px; font-size: 11px; }
  .hero-intro { width: 64%; padding-top: 22px; font-size: 12px; min-height: 190px; }
  .hero-intro .red { font-size: 16px; margin-top: 12px; line-height: 1.85; }
  .hero-intro .red > span + span { margin-top: 10px; }
  .hero-person { right: 0; top: 145px; width: 47%; height: 305px; object-position: 50% 8%; }
  .hero-benefits { width: 100%; padding-top: 20px; gap: 9px; justify-content: center; }
  .hero-benefit { width: min(29vw, 145px); padding: 8px; border-width: 1px; }
  .hero-benefit svg { width: 27px; height: 26px; margin-bottom: 3px; }
  .hero-benefit small { font-size: clamp(8px, 2.05vw, 11px); margin-bottom: 3px; }
  .hero-benefit b { font-size: clamp(13px, 3.4vw, 18px); }
  .hero-benefit b br { display: initial; }
  .benefit-zero { font-size: 27px; }
  .hero-side { padding: 20px 18px 29px; }
  .hero-cta-title, .cta-band > p { font-size: 22px; margin-bottom: 17px; }
  .hero-cta-title::before, .cta-band > p::before { margin-right: 5px; }
  .hero-cta-title::after, .cta-band > p::after { margin-left: 5px; }
  .hero-cta .btn-line, .hero-cta .btn-tel, .cta-band .btn-line, .cta-band .btn-tel { min-width: 0; width: 100%; max-width: 490px; }
  .hero-cta .btn-tel { min-height: 60px; font-size: 18px; }
  .hero-cta .btn-tel .tel-icon { width: 33px; height: 33px; flex-basis: 33px; }
  .hero-problem { padding: 25px 0 42px; }
  .problem-eyebrow { font-size: 18px; }
  .problem-title { font-size: 25px; margin-bottom: 24px; letter-spacing: -.03em; }
  .problem-list { grid-template-columns: repeat(2, 1fr); gap: 14px; }
  .problem-list li { font-size: 12px; border-radius: 17px; padding: 7px 7px 10px; }
  .problem-list img { aspect-ratio: 1.2; border-radius: 11px; margin-bottom: 9px; }
  .problem-note { font-size: 17px; margin-top: 22px; }
  .problem-note span { display: block; }
  .example-track { grid-template-columns: repeat(2, 1fr); gap: 13px; }
  .example-card { padding: 12px 9px 15px; border-radius: 18px; }
  .example-name { font-size: 16px; min-height: 53px; }
  .example-image { height: 125px; border-radius: 10px; }
  .price-tag { font-size: 26px; margin-top: 9px; }
  .examples-notes { font-size: 11px; }
  .reassurance .section-title br { display: initial; }
  .feature-grid { grid-template-columns: 1fr; gap: 18px; }
  .feature-card { column-gap: 15px; grid-template-columns: 41% 1fr; border-radius: 20px; padding: 10px; }
  .feature-card-title { font-size: 19px; margin: 3px 0 8px; }
  .feature-media img { min-height: 155px; border-radius: 12px; }
  .feature-body { font-size: 12px; }
  .cta-band { padding: 24px 18px 40px; }
  .cta-band > p { font-size: 20px; }
  .cta-band > p::before, .cta-band > p::after { display: none; }
  .comparison-lead { grid-template-columns: 1fr 45px 1fr; margin-bottom: 23px; }
  .comparison-scenario { min-height: 150px; padding: 0 10px 15px; border-radius: 20px; }
  .comparison-scenario b { font-size: 24px; width: calc(100% + 20px); border-radius: 20px 20px 0 0; }
  .comparison-scenario svg { width: 88px; height: 75px; margin-top: 10px; }
  .comparison-vs { font-size: 21px; width: 43px; height: 43px; line-height: 40px; }
  .comparison-table-wrap { border-radius: 14px; }
  .comparison-table { font-size: 11px; }
  .comparison-table th, .comparison-table td { padding: 13px 3px; }
  .comparison-table thead th { font-size: 11px; }
  .comparison-table thead th:first-child { width: 26%; }
  .comparison-table thead .comparison-company { font-size: 13px; }
  .comparison-table tbody th { font-size: 12px; }
  .cmp-unit { font-size: 9px; margin-top: 4px; }
  .cmp-note { font-size: 8px; line-height: 1.5; }
  .cmp-amount { font-size: 15px; }
  .cmp-amount.is-na { font-size: 12px; }
  .comparison-company strong, .comparison-total .comparison-company strong { font-size: clamp(14px, 4vw, 19px); }
  .comparison-note { font-size: 10px; line-height: 1.85; }
  .company-panel { grid-template-columns: 1fr; gap: 25px; margin-top: 25px; }
  .company-brand { max-width: 460px; width: 94%; margin: auto; border-width: 5px; border-radius: 25px; }
  .company-brand img { aspect-ratio: 1.35; }
  .company-message { padding: 28px 24px; text-align: center; }
  .company-message::after { left: 45%; top: -12px; }
  .company-message p { font-size: 21px; }
  .company-message p span + span { margin-top: 8px; }
  .company-values { gap: 9px; margin-top: 25px; }
  .company-values h3 { font-size: 14px; padding: 9px 5px; min-height: 65px; display: grid; place-items: center; }
  .company-values svg { width: 47px; height: 47px; margin: 18px auto; }
  .gift-kicker { font-size: 29px; }
  .gift-heading h2 { font-size: clamp(26px, 6.6vw, 39px); margin: 7px auto 40px; }
  .section-title::before, .gift-heading h2::before, .comparison-board-title::before { inset: 0 -32px; opacity: .8; }
  .gift-options { gap: 49px; }
  .gift-option { padding: 0 10px 18px; border-radius: 25px; }
  .gift-option h3 { width: 95%; padding: 10px 9px; font-size: 15px; margin: -22px auto 10px; white-space: nowrap; }
  .gift-threshold { font-size: 23px; }
  .gift-choice { grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr); gap: 2px; }
  .gift-or { width: 40px; height: 40px; font-size: 12px; }
  .gift-item img { height: 110px; }
  .gift-item figcaption { font-size: 11px; }
  .gift-item strong { font-size: 30px; padding-inline: 3px; }
  .gift-item strong span { font-size: 17px; }
  .gift-towel figcaption { font-size: 25px; }
  .gift-pickup { margin-top: 27px; padding: 22px 16px; border-radius: 28px; }
  .gift-safe { font-size: 24px; }
  .gift-pickup h3 { font-size: 25px; }
  .gift-pickup h3 br { display: initial; }
  .gift-pickup-note { font-size: 15px; }
  .gift-truck { width: 95px; height: 95px; right: 5px; }
  .gift-pickup .btn { min-width: 0; width: 100%; }
  .flow-eyebrow { font-size: 26px; }
  .flow .section-title { font-size: 44px; }
  .flow-steps { grid-template-columns: 1fr; max-width: 470px; margin: 0 auto 32px; gap: 29px; }
  .flow-step { padding: 19px 14px 14px; border-radius: 23px; display: grid; grid-template-columns: 68px 1fr; gap: 12px; align-items: center; }
  .flow-step::before { width: 65px; height: 65px; font-size: 19px; padding-top: 7px; margin: 0; grid-column: 1; grid-row: 1; }
  .flow-step h3 { font-size: 28px; margin: 0; grid-column: 2; grid-row: 1; }
  .flow-step-image { grid-column: 1 / 3; height: 230px; border-radius: 17px; }
  .flow-step:not(:last-child)::after { width: 27px; height: 27px; top: auto; bottom: -28px; left: calc(50% - 13px); right: auto; transform: rotate(90deg); }
  .flow .btn-line { min-width: 0; width: 100%; max-width: 490px; }
  .store-title { font-size: 43px; }
  .store-sub { font-size: 23px; margin-bottom: 22px; }
  .store-parking { border-width: 5px; border-radius: 23px; aspect-ratio: 1.45; }
  .store-features { margin: -16px 6px 25px; gap: 7px; }
  .store-features > div { border-radius: 16px; padding: 15px 5px; }
  .store-features svg { width: 36px; height: 36px; margin-bottom: 7px; }
  .store-features p { font-size: 13px; line-height: 1.7; }
  .store-team-call { font-size: 23px; }
  .store-members { height: 180px; width: 400px; max-width: 100%; margin-top: 10px; }
  .store-note { font-size: 21px; padding: 17px 20px; border-radius: 34px; margin-top: 8px; }
  .store-note span { display: block; }
  .access-grid { grid-template-columns: 1fr; gap: 23px; margin-top: 24px; }
  .map-embed, .map-embed iframe { min-height: 285px; }
  .map-embed { border-width: 5px; border-radius: 20px; }
  .access-card { padding: 25px 22px; border-radius: 20px; }
  .access-card h3 { font-size: 23px; }
  .access-card .address { font-size: 15px; }
  .access-card .phone { font-size: 30px; }
  .faq-list { margin-top: 25px; gap: 11px; }
  .faq-item summary { font-size: 14px; gap: 10px; padding: 17px 36px 17px 14px; }
  .faq-item summary::after { right: 13px; font-size: 25px; }
  .faq-q, .faq-a { font-size: 23px; flex-basis: 24px; }
  .faq-answer { gap: 10px; padding: 15px 16px; font-size: 13px; }
  .final-label { font-size: 25px; }
  .final-title { font-size: 31px; line-height: 1.65; margin-bottom: 23px; }
  .final-copy { text-align: left; font-size: 13px; margin-bottom: 25px; }
  .final-cta .btn-line, .final-cta .btn-tel { min-width: 0; width: 100%; max-width: 490px; }
  .footer { padding: 30px 0 18px; }
  .footer-inner { grid-template-columns: 1fr; gap: 24px; }
  .footer-logo { width: 240px; }
  .footer-info { font-size: 12px; }
  .copyright { font-size: 11px; margin-top: 27px; }
  .mobile-bar { display: flex; gap: 8px; position: fixed; bottom: 0; left: 0; right: 0; padding: 9px 12px calc(9px + env(safe-area-inset-bottom)); background: #fffdf8ef; backdrop-filter: blur(10px); z-index: 30; border-top: 1px solid #e3dcc4; }
  .mobile-bar .btn { min-height: 55px; padding: 8px 16px; font-size: 18px; border-width: 1px; }
  .mobile-bar .btn-line { flex: 1; }
  .mobile-bar .btn-tel { flex: 0 0 64px; }
  .mobile-bar .line-icon, .mobile-bar .tel-icon { width: 33px; height: 33px; flex-basis: 33px; }
}
@media (max-width: 370px) {
  .hero-logo img { width: 160px; }
  .hero-area { font-size: 10px; }
  .hero-title { font-size: 21px; }
  .hero-intro .red { font-size: 14px; }
  .hero-person { top: 133px; height: 320px; }
  .hero-cta-title { font-size: 20px; }
  .problem-title { font-size: 22px; }
  .feature-card-title { font-size: 17px; }
  .gift-threshold { font-size: 20px; }
  .gift-option h3 { font-size: 13px; }
  .btn { font-size: 18px; gap: 12px; }
  .company-values h3 { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
