@charset "UTF-8";
:root {
  --bg: #f6f4f2;           
  --paper: #fbfaf8;        
  --white: #fff;
  --beige: #f0eae3;        
  --ink: #45403a;          
  --sub: #6b645c;          
  --accent: #7a6446;       
  --accent-hover: #5f4d35;
  --cta: #cc4317;          
  --cta-hover: #a8360f;
  --blush: #f9ece7;        
  --blush-deep: #f3d9cf;   
  --deal: #9a3415;         
  --mocha: #9f8a6c;        
  --greige: #8e8c88;       
  --deep: #2f2b27;         
  --gold: #d9c7a8;         
  --line: #e3ddd4;         
  --border: #9f8a6c;       
  --star: #b07d18;
  --focus-yellow: #ffd43d; 
  --header-h: 80px;
  --sans: "Noto Sans JP", sans-serif;
  --serif: "Noto Serif JP", serif;
  --en: "Cormorant Garamond", "Noto Serif JP", serif;  
  --num: "Noto Serif JP", serif;
}
@media (max-width: 767px) { :root { --header-h: 64px; } }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-h) + 8px); background: var(--white); color-scheme: light; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--sans); font-size: 16px; line-height: 1.85; letter-spacing: .04em; line-break: strict; color: var(--ink); background: var(--white); }
img { display: block; max-width: 100%; height: auto; }
img[src*=".webp"] { background-color: var(--beige); }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, ul, ol, dl, dd { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; }
h1, h2, h3, .contact-lead, .price-note, .worries-desc, .dark-list li { word-break: auto-phrase; }
.inner { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.sp-only { display: none; }
@media (max-width: 767px) { .sp-only { display: revert; } .pc-only { display: none; } .inner { padding: 0 20px; } }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link { position: absolute; left: 12px; top: -100px; z-index: 200; padding: 12px 20px; background: var(--accent); color: var(--white); font-weight: 700; border-radius: 8px; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 4px solid #000; outline-offset: 2px; box-shadow: 0 0 0 2px var(--focus-yellow); border-radius: 4px; }
.fixed-sp a:focus-visible, .fixed-pc:focus-visible { outline-offset: -4px; box-shadow: inset 0 0 0 6px var(--focus-yellow); border-radius: 0; }
.en { display: block; text-align: center; font-family: var(--en); font-style: italic; font-weight: 500; font-size: 30px; line-height: 1.2; letter-spacing: .04em; color: var(--accent); }
.ttl { font-size: 30px; line-height: 1.55; letter-spacing: .08em; text-align: center; margin: 8px 0 52px; }
.ttl small { display: block; font-family: var(--sans); font-size: 16px; font-weight: 700; letter-spacing: .14em; color: var(--accent); margin-bottom: 4px; }
@media (max-width: 767px) { .en { font-size: 26px; } .ttl { font-size: 23px; margin-bottom: 36px; letter-spacing: .04em; } }
.btn a { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-width: 280px; min-height: 58px; padding: 14px 32px; border-radius: 999px; background: var(--white); color: var(--accent); border: 1px solid var(--border); font-weight: 700; letter-spacing: .08em; transition: background .3s, color .3s; }
.btn a::after { content: ""; flex: none; width: 22px; height: 1px; background: currentColor; transition: width .3s; }
.btn a:hover { background: var(--bg); }
.btn a:hover::after { width: 30px; }
.btn a[target="_blank"]::after { width: 11px; height: 11px; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; }
.btn-accent a { background: var(--blush-deep); color: var(--deal); border-color: var(--blush-deep); box-shadow: 0 10px 24px -14px rgba(154, 52, 21, .45); }
.btn-accent a:hover { background: #edcbbd; border-color: #edcbbd; }
.fadein { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; }
.fadein.is-show { opacity: 1; transform: none; }
.header { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(--header-h); display: flex; align-items: center; gap: 16px; padding: 0 24px 0 28px; background: rgba(251, 250, 248, .92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.header-logo { display: flex; align-items: center; min-height: 48px; }
.header-logo img { width: 70px; }
.gnav { margin-left: auto; }
.gnav ul { display: flex; gap: 2px; }
.gnav a { display: flex; align-items: center; min-height: 44px; padding: 0 10px; font-size: 16px; letter-spacing: .04em; border-radius: 999px; transition: background .3s; }
.gnav a:hover { background: var(--bg); }
.hamburger { display: none; }
@media (max-width: 1280px) { .gnav a { padding: 0 7px; } .header { padding-left: 20px; gap: 8px; } }
@media (max-width: 960px) {
  .header { padding: 0 8px 0 16px; -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--paper); }
  .header-logo img { width: 58px; }
  .hamburger { display: block; position: relative; width: 48px; height: 48px; margin-left: auto; padding: 0; border: 0; background: none; cursor: pointer; z-index: 2; border-radius: 8px; }
  .hamburger span { position: absolute; left: 10px; width: 28px; height: 2px; background: var(--ink); transition: .3s; }
  .hamburger span:nth-child(1) { top: 16px; } .hamburger span:nth-child(2) { top: 23px; width: 18px; } .hamburger span:nth-child(3) { top: 30px; }
  .menu-open .hamburger span:nth-child(1) { top: 23px; transform: rotate(35deg); }
  .menu-open .hamburger span:nth-child(2) { opacity: 0; }
  .menu-open .hamburger span:nth-child(3) { top: 23px; transform: rotate(-35deg); }
  .gnav { position: fixed; inset: 0; margin: 0; background: var(--paper); padding: calc(var(--header-h) + 20px) 0 0; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity .4s, visibility 0s .4s; }
  .menu-open .gnav { opacity: 1; visibility: visible; transition: opacity .4s, visibility 0s; }
  .gnav ul { flex-direction: column; align-items: center; gap: 0; }
  .gnav li { width: 260px; text-align: center; border-bottom: 1px solid var(--line); }
  .gnav a { justify-content: center; min-height: 54px; font-family: var(--serif); font-size: 17px; letter-spacing: .1em; border-radius: 0; }
  .menu-open { overflow: hidden; }
}
@media (max-width: 767px) { .header-logo img { width: 50px; } }
.mv { position: relative; height: 100vh; min-height: 640px; max-height: 960px; overflow: hidden; background: var(--paper); }
.mv-photo { position: absolute; inset: var(--header-h) 0 0; overflow: hidden; }
.mv-photo img { width: auto; max-width: none; height: 100%; margin-left: -4vw; -webkit-mask-image: linear-gradient(90deg, #000 72%, transparent 100%); mask-image: linear-gradient(90deg, #000 72%, transparent 100%); }
.mv::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(270deg, rgba(251, 250, 248, .95) 0%, rgba(251, 250, 248, .9) 32%, rgba(251, 250, 248, .35) 39%, rgba(251, 250, 248, 0) 45%); pointer-events: none; }
.mv-copy { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; width: 32vw; margin-left: auto; padding: var(--header-h) max(5vw, 96px) 0 0; box-sizing: content-box; }
.mv-ttl { font-size: clamp(18px, 1.5vw, 23px); font-weight: 600; line-height: 1.5; letter-spacing: .1em; color: var(--accent); }
.mv-store { margin-bottom: 20px; font-family: var(--en); font-size: 19px; font-style: italic; letter-spacing: .08em; color: var(--sub); }
.mv-offer { margin-bottom: 28px; padding: 0 0 18px; border-bottom: 1px solid var(--line); }
.mv-offer-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; column-gap: 12px; padding: 8px 18px; border-radius: 4px; background: var(--blush-deep); color: var(--deal); font-size: 17px; font-weight: 700; letter-spacing: .08em; }
.mv-offer-lead { white-space: nowrap; }
.mv-copy { align-items: center; text-align: center; }
.mv-offer { align-self: stretch; }
.mv-offer-head, .mv-offer-price, .mv-offer-sub { justify-content: center; }
.mv-offer-main { margin-top: 14px; font-family: var(--serif); font-size: 23px; font-weight: 600; line-height: 1.4; }
.mv-offer-main em { font-style: normal; color: var(--deal); }
.mv-offer-price { display: flex; align-items: baseline; gap: 4px; margin-top: 2px; font-size: 30px; font-weight: 700; line-height: 1; color: var(--deal); white-space: nowrap; }
.mv-offer-price strong { display: inline-block; font-family: var(--num); font-size: clamp(80px, 8vw, 128px); font-weight: 700; line-height: 1; letter-spacing: -.01em; }
.mv-offer-sub { display: flex; flex-wrap: wrap; margin-top: 14px; font-size: 16px; font-weight: 500; line-height: 1.8; }
.mv-offer-sub li + li::before { content: ""; display: inline-block; width: 1px; height: 14px; margin: 0 14px; background: var(--border); vertical-align: -1px; }
.mv-offer-sub b { margin-left: 6px; font-family: var(--num); font-size: 20px; font-weight: 700; color: var(--deal); }
.mv-cta a { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-height: 76px; padding: 12px 36px 14px; border-radius: 999px; background: var(--blush-deep); color: var(--deal); font-weight: 700; letter-spacing: .06em; box-shadow: 0 12px 28px -12px rgba(154, 52, 21, .4); transition: background .3s, transform .3s; }
.mv-cta a:hover { background: #edcbbd; transform: translateY(-2px); }
.mv-cta-sub { font-size: 14px; font-weight: 500; letter-spacing: .12em; }
.mv-cta-main { display: flex; align-items: baseline; gap: 2px; font-size: 19px; white-space: nowrap; }
.mv-cta-main::after { content: ""; align-self: center; width: 12px; height: 12px; margin-left: 12px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; }
.mv-cta strong { display: inline-block; font-family: var(--num); font-size: 32px; font-weight: 600; line-height: 1.1; letter-spacing: 0; margin: 0 2px; }
@media (max-width: 1200px) {
  .mv-copy { width: 36vw; padding-right: 96px; }
  .mv-photo img { margin-left: -14vw; }
  .mv-cta a { padding: 12px 22px 14px; }
}
@media (max-width: 900px) {
  .mv { height: auto; min-height: 0; max-height: none; padding-top: calc(var(--header-h) + 66.7vw); }
  .mv-photo { top: var(--header-h); bottom: auto; height: 66.7vw; }
  .mv-photo img { width: 100%; height: 100%; margin-left: 0; object-fit: cover; -webkit-mask-image: none; mask-image: none; }
  .mv::after { top: var(--header-h); bottom: auto; height: 66.7vw; background: linear-gradient(180deg, rgba(251, 250, 248, 0) 93%, var(--paper) 100%); }
  .mv-copy { height: auto; width: auto; margin-left: 0; padding: 28px 72px 48px 6vw; box-sizing: border-box; }
  .mv-ttl { font-size: 20px; }
  .mv-store { margin-bottom: 16px; }
  .mv-offer { width: 100%; max-width: 480px; align-self: center; box-sizing: border-box; }
  .mv-cta { display: flex; justify-content: center; align-self: stretch; }
  .mv-cta a { display: flex; width: 100%; max-width: 480px; padding: 10px 20px 12px; }
}
@media (max-width: 767px) {
  .mv { padding-top: calc(var(--header-h) + 68vw); }
  .mv-photo { height: 68vw; }
  .mv-photo img { width: 100%; max-width: none; height: 100%; margin-left: 0; object-fit: cover; object-position: 50% 30%; }
  .mv::after { height: 68vw; background: linear-gradient(180deg, rgba(251, 250, 248, 0) 95%, var(--paper) 100%); }
  .mv-copy { padding: 14px 20px 40px; }
  .mv-offer { order: 1; }
  .mv-ttl { order: 2; margin-top: 18px; }
  .mv-store { order: 3; }
  .mv-cta { display: none; }
  .mv-ttl { font-size: 17px; letter-spacing: .06em; }
  .mv-store { font-size: 17px; margin-bottom: 14px; }
  .mv-offer-main { font-size: 20px; }
  .mv-offer-price strong { font-size: min(23vw, 100px); }
  .mv-offer-head { padding: 7px 12px; font-size: 16px; }
  .mv-offer-price { font-size: 26px; }
  .mv-offer-sub { flex-direction: column; align-items: center; }
  .mv-offer-sub li + li::before { display: none; }
  .mv-cta a { max-width: none; min-height: 80px; box-shadow: 0 14px 28px -12px rgba(154, 52, 21, .4); }
  .mv-cta-main { font-size: 19px; }
  .mv-cta strong { font-size: 30px; }
}
@media (max-width: 360px) {
  .btn a { padding: 14px 18px; gap: 8px; letter-spacing: .02em; }
  .fixed-sp a { padding: 6px 36px; }
  .mv-cta a { padding: 10px 14px 12px; }
  .mv-cta-main { font-size: 17px; letter-spacing: .02em; }
  .mv-cta-main::after { margin-left: 8px; }
  .mv-cta strong { font-size: 25px; }
}
.campaign { position: relative; padding: 100px 0 120px; background: linear-gradient(180deg, #fcf5f2 0%, var(--blush) 100%); overflow: hidden; }
.campaign-ttl { margin-bottom: 48px; font-family: var(--serif); font-size: 40px; font-weight: 700; line-height: 1.4; letter-spacing: .06em; text-align: center; }
.campaign-ttl small { display: block; }
.benefit-list { display: grid; gap: 24px; max-width: 860px; margin: 0 auto; }
.benefit { display: grid; grid-template-columns: 120px minmax(0, 1fr); background: var(--white); border: 1px solid #f0d8cd; border-radius: 12px; overflow: hidden; }
.benefit-no { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: var(--blush-deep); color: var(--deal); font-family: var(--num); font-size: 56px; font-weight: 700; line-height: 1; }
.benefit-no span { font-family: var(--sans); font-size: 16px; font-weight: 700; letter-spacing: .2em; }
.benefit-main { padding: 26px 36px 28px; }
.benefit-ttl { padding-bottom: 14px; border-bottom: 1px solid var(--line); font-family: var(--sans); font-size: 22px; font-weight: 700; line-height: 1.5; }
.benefit-ttl em { font-style: normal; color: var(--deal); white-space: nowrap; }
.benefit-body { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 24px; padding-top: 18px; }
.benefit-from { color: var(--sub); line-height: 1.7; text-align: left; }
.benefit-from b { display: inline-block; margin-top: 2px; font-weight: 700; color: var(--ink); }
.benefit-from s { text-decoration-color: var(--cta); text-decoration-thickness: 2px; }
.benefit-from-tag { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 18px; font-weight: 700; color: var(--ink); }
.benefit-tag { padding: 2px 16px; border-radius: 4px; background: var(--blush-deep); color: var(--deal); font-size: 20px; font-weight: 900; letter-spacing: .06em; }
.benefit-arrow { flex: none; position: relative; width: 28px; height: 28px; }
.benefit-arrow::before { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 12px; border-top: 2px solid var(--mocha); border-right: 2px solid var(--mocha); transform: translate(-70%, -50%) rotate(45deg); }
.benefit-now { display: flex; align-items: baseline; gap: 4px; font-family: var(--serif); font-size: 30px; font-weight: 700; color: var(--deal); }
.benefit-now strong { display: inline-block; font-family: var(--num); font-size: 88px; font-weight: 700; line-height: 1; letter-spacing: .01em; }
.benefit-txt { margin-top: 12px; color: var(--sub); text-align: center; }
@media (max-width: 767px) {
  .campaign-ttl { margin-bottom: 32px; font-size: 30px; }
  .benefit { grid-template-columns: 72px minmax(0, 1fr); }
  .benefit-no { font-size: 36px; }
  .benefit-no span { font-size: 14px; letter-spacing: .1em; }
  .benefit-main { padding: 18px 16px 20px; }
  .benefit-ttl { padding-bottom: 10px; font-size: 18px; }
  .benefit-body { flex-direction: column; gap: 6px; padding-top: 14px; }
  .benefit-from { text-align: center; }
  .benefit-arrow::before { transform: translate(-50%, -70%) rotate(135deg); }
  .benefit-now { font-size: 22px; }
  .benefit-now strong { font-size: 60px; }
}
@media (max-width: 400px) {
  .benefit { grid-template-columns: 58px minmax(0, 1fr); }
  .benefit-no { font-size: 30px; }
  .benefit-no span { font-size: 13px; letter-spacing: 0; }
}
.bring { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 28px; max-width: 900px; margin: 28px auto 0; padding: 20px 24px; background: var(--white); border-radius: 16px; }
.bring-ttl { font-family: var(--serif); font-weight: 600; color: var(--accent); }
.bring-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; }
.bring-list li { display: flex; align-items: center; gap: 8px; }
.bring-list svg { width: 36px; height: 36px; padding: 7px; border-radius: 50%; background: var(--mocha); fill: none; stroke: var(--white); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.campaign-note { margin-top: 28px; font-size: 14px; color: var(--sub); text-align: center; }
@media (max-width: 767px) {
  .campaign { padding: 64px 0 80px; }
  .bring { gap: 10px; padding: 16px; }
  .bring-list { gap: 10px 16px; }
}
.strength { padding: 100px 0 90px; background: var(--white); text-align: center; }
.strength-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.strength-list li { display: flex; flex-direction: column; align-items: center; padding: 30px 18px 28px; background: var(--paper); border: 1px solid var(--line); border-radius: 20px; }
.strength-label { font-weight: 700; letter-spacing: .1em; color: var(--accent); word-break: auto-phrase; }
.strength-num { display: flex; align-items: baseline; justify-content: center; gap: 2px; min-height: 76px; margin: 4px 0 8px; font-family: var(--serif); font-size: 18px; font-weight: 600; white-space: nowrap; }
.strength-num strong { font-family: var(--num); font-size: 52px; font-weight: 600; line-height: 1.1; color: var(--accent); }
.strength-num strong.is-word { font-family: var(--serif); font-size: 30px; font-weight: 600; letter-spacing: .08em; line-height: 2.3; }
.strength-txt { font-size: 16px; line-height: 1.75; text-align: left; color: var(--sub); }
@media (max-width: 1000px) { .strength-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .strength-list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .strength-list li { display: grid; grid-template-columns: 116px minmax(0, 1fr); grid-template-areas: "num label" "num txt"; align-items: center; column-gap: 14px; row-gap: 4px; padding: 18px 16px; text-align: left; border-radius: 16px; }
  .strength-label { grid-area: label; align-self: end; }
  .strength-num { grid-area: num; flex-wrap: wrap; justify-content: center; min-height: 0; margin: 0; font-size: 14px; white-space: normal; text-align: center; }
  .strength-num strong { font-size: 28px; }
  .strength-num strong.is-word { font-size: 22px; line-height: 1.4; word-break: keep-all; }
  .strength-txt { grid-area: txt; align-self: start; line-height: 1.7; }
}
@media (max-width: 360px) {
  .strength-list li { grid-template-columns: 88px minmax(0, 1fr); column-gap: 12px; padding: 16px 14px; }
  .strength-num strong { font-size: 28px; }
  .strength-num strong.is-word { font-size: 19px; }
}
@media (max-width: 767px) { .strength { padding: 64px 0 60px; } }
.gallery { padding: 100px 0; background: var(--white); }
.gallery-slider { position: relative; padding: 0 72px; }
.gallery-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track:focus-visible { outline-offset: 4px; }
.gallery-track li { scroll-snap-align: start; }
.gallery-track img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; }
.gallery-btn { position: absolute; top: 50%; width: 52px; height: 52px; margin-top: -26px; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: var(--white); cursor: pointer; transition: opacity .3s; }
.gallery-btn::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 10px; border-top: 2px solid var(--accent); border-right: 2px solid var(--accent); }
.gallery-prev { left: 10px; }
.gallery-prev::after { transform: translate(-30%, -50%) rotate(-135deg); }
.gallery-next { right: 10px; }
.gallery-next::after { transform: translate(-70%, -50%) rotate(45deg); }
.gallery-btn:disabled { opacity: .35; cursor: default; }
@media (max-width: 1023px) { .gallery-track { grid-auto-columns: calc((100% - 20px) / 2); } }
@media (max-width: 599px) { .gallery-track { grid-auto-columns: 100%; } }
@media (max-width: 767px) { .gallery { padding: 64px 0; } .gallery-slider { padding: 0 60px; } .gallery-prev { left: 4px; } .gallery-next { right: 4px; } }
.worries { padding: 100px 0 110px; background: var(--bg); }
.worries-box { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: 48px; max-width: 1000px; margin: 0 auto; }
.worries-photo img { border-radius: 20px; }
.check-list { display: grid; gap: 12px; }
.check-list li { position: relative; padding: 14px 20px 14px 60px; background: var(--white); border: 1px solid var(--line); border-radius: 999px; line-height: 1.6; }
.check-list li::before { content: ""; position: absolute; left: 14px; top: 50%; width: 32px; height: 32px; margin-top: -16px; border-radius: 50%; background: var(--mocha); }
.check-list li::after { content: ""; position: absolute; left: 26px; top: 50%; width: 8px; height: 13px; margin-top: -9px; border-right: 2px solid var(--white); border-bottom: 2px solid var(--white); transform: rotate(40deg); }
.worries-desc { max-width: 1000px; margin: 44px auto 0; text-align: center; font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.9; }
.worries-desc em { display: inline-block; margin: 0 4px; padding: 0 16px; font-style: normal; background: var(--white); border: 1px solid var(--border); border-radius: 999px; color: var(--accent); }
@media (max-width: 767px) {
  .worries { padding: 64px 0 72px; }
  .worries-box { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .check-list li { padding: 12px 16px 12px 56px; border-radius: 20px; }
  .worries-desc { margin-top: 32px; font-size: 18px; text-align: left; }
}
.dark { position: relative; padding: 120px 24px; background-color: var(--deep); background-image: linear-gradient(rgba(47, 43, 39, .72), rgba(47, 43, 39, .86)), url(../img/dark.webp?v=1); background-size: cover; background-position: center; color: var(--white); text-align: center; }
.dark .en { color: var(--gold); }
.dark-ttl { margin: 10px 0 44px; font-size: 32px; letter-spacing: .1em; line-height: 1.6; }
.dark-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 960px; margin: 0 auto; }
.dark-list li { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 28px 18px; border: 1px solid rgba(217, 199, 168, .5); border-radius: 20px; background: rgba(47, 43, 39, .5); }
.dark-sub { display: block; margin-bottom: 4px; font-weight: 700; color: var(--gold); }
.dark-list li { text-align: left; align-items: stretch; }
.dark-list .dark-word { text-align: center; }
.dark-word { font-family: var(--serif); font-size: 26px; font-weight: 600; letter-spacing: .14em; color: var(--gold); }
@media (max-width: 767px) { .dark { padding: 80px 20px; } .dark-ttl { font-size: 24px; margin-bottom: 32px; } .dark-list { grid-template-columns: minmax(0, 1fr); gap: 12px; } .dark-list li { padding: 18px 16px; } }
.about-wrap { padding: 110px 0; background: var(--white); }
.reason { padding: 110px 0 120px; background: var(--white); }
.row { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); align-items: center; gap: 56px; margin-bottom: 72px; }
.row:last-child { margin-bottom: 0; }
.about-wrap .ttl, .reason .ttl { margin-bottom: 120px; }
.about-plain .ttl { margin-bottom: 52px; }
.row-rev { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
.row-rev .row-photo { order: 2; }
.row-photo img { width: 100%; border-radius: 0; }
.row-body { position: relative; }
.row-num { position: absolute; top: -88px; left: -4px; font-family: var(--num); font-size: 80px; font-weight: 600; line-height: 1; color: var(--line); pointer-events: none; }
.row-ttl { position: relative; margin-bottom: 18px; font-size: 24px; line-height: 1.6; letter-spacing: .06em; color: var(--accent); }
.row-body > p:not(.row-num) { position: relative; color: var(--ink); }
.row-body > p + p { margin-top: 1em; }
.row-lead { padding: 16px 20px; background: var(--bg); border-left: 2px solid var(--mocha); font-weight: 700; }
.row-note { font-size: 14px; color: var(--sub) !important; }
@media (max-width: 767px) {
  .about-wrap { padding: 64px 0; }
  .reason { padding: 64px 0 80px; }
  .row, .row-rev { grid-template-columns: minmax(0, 1fr); gap: 0; margin-bottom: 56px; }
  .row-rev .row-photo { order: 0; }
  .row-body { padding-top: 56px; }
  .about-wrap .ttl, .reason .ttl { margin-bottom: 36px; }
  .row-num { top: 0; font-size: 48px; }
  .row-ttl { font-size: 20px; }
}
.program { padding: 110px 0; background: var(--bg); }
.program-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); max-width: 980px; margin: 0 auto; background: var(--white); border-radius: 24px; overflow: hidden; box-shadow: 0 12px 30px -24px rgba(69, 64, 58, .5); }
.program-head { display: flex; flex-direction: column; justify-content: center; padding: 40px 36px; background: var(--deep); background-image: linear-gradient(rgba(47, 43, 39, .78), rgba(47, 43, 39, .88)), url(../img/dark-1000.webp?v=1); background-size: cover; background-position: center; color: var(--white); }
.program-label { font-family: var(--en); font-size: 20px; font-style: italic; color: var(--gold); }
.program-name { margin: 4px 0 14px; font-family: var(--en); font-size: 44px; font-weight: 500; line-height: 1.15; }
.program-set { padding: 32px 36px; }
.program-set-ttl { font-family: var(--en); font-size: 20px; font-style: italic; color: var(--accent); margin-bottom: 8px; }
.setlist { counter-reset: song; }
.setlist li { display: flex; align-items: baseline; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.setlist li::before { counter-increment: song; content: counter(song, decimal-leading-zero); flex: none; width: 1.8em; font-family: var(--num); font-weight: 600; color: var(--mocha); }
@media (max-width: 767px) {
  .program { padding: 72px 0; }
  .program-card { grid-template-columns: minmax(0, 1fr); border-radius: 20px; }
  .program-head { padding: 28px 20px; }
  .program-name { font-size: 36px; }
  .program-set { padding: 22px 20px 26px; }
}
.voice { padding: 110px 0; background: var(--white); }
.voice-score { display: flex; flex-direction: column; align-items: center; margin: -20px 0 44px; }
.voice-score-label { font-weight: 700; color: var(--sub); margin-bottom: 4px; }
.voice-score-num { font-family: var(--num); line-height: 1; }
.voice-score-num strong { display: inline-block; font-size: 60px; font-weight: 600; line-height: 1.1; color: var(--accent); }
.voice-score-num span { font-size: 22px; color: var(--sub); margin-left: 4px; }
.voice-score .stars { margin: 8px 0 4px; font-size: 24px; }
.voice-score-txt { font-size: 14px; color: var(--sub); }
.voice-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.voice-item { margin: 0; background: var(--bg); border-radius: 20px 20px 20px 4px; padding: 30px 26px 28px; }
.voice-item blockquote { margin: 0; }
.stars { display: flex; flex-wrap: wrap; align-items: center; column-gap: 10px; row-gap: 0; color: var(--star); font-size: 18px; letter-spacing: .06em; margin-bottom: 10px; }
.stars-num { white-space: nowrap; font-size: 14px; color: var(--sub); letter-spacing: .04em; }
.voice-sub { margin: 64px 0 24px; font-size: 22px; text-align: center; }
.voice-item figcaption { margin-top: 14px; font-size: 14px; color: var(--sub); }
.voice-note { margin-top: 20px; font-size: 14px; color: var(--sub); text-align: center; }
@media (max-width: 900px) { .voice { padding: 72px 0; } .voice-list { grid-template-columns: minmax(0, 1fr); gap: 16px; } .voice-note { text-align: left; } }
.results { padding: 40px 0 120px; background: var(--bg); }
.results-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 900px; margin: 0 auto; }
.results-item { display: flex; flex-direction: column; background: var(--white); border-radius: 20px; padding: 30px 28px; }
.results-ttl { font-size: 20px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--line); }
.results-ttl small { display: block; font-family: var(--sans); font-size: 14px; font-weight: 400; color: var(--sub); }
.results-nums { display: flex; flex-wrap: wrap; gap: 12px 36px; }
.results-nums dt { font-weight: 700; color: var(--sub); }
.results-nums dd { font-family: var(--num); font-size: 44px; font-weight: 600; line-height: 1.2; color: var(--accent); }
.results-nums dd span { font-size: 22px; margin-left: 2px; }
.results-item .note { margin-top: auto; padding-top: 18px; font-size: 14px; color: var(--sub); }
@media (max-width: 767px) { .results { padding: 24px 0 80px; } .results-list { grid-template-columns: minmax(0, 1fr); } .results-item { padding: 24px 20px; } }
.price { padding: 110px 0 120px; background: var(--white); }
.price-lead { margin: -36px 0 32px; text-align: center; font-size: 14px; color: var(--sub); }
.plan-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 0; }
.plan { display: grid; grid-row: span 5; grid-template-rows: subgrid; background: var(--white); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: 0 12px 30px -24px rgba(69, 64, 58, .5); }
.plan-ttl { display: flex; flex-direction: column; justify-content: center; padding: 16px 20px; background: var(--beige); font-size: 20px; line-height: 1.4; }
.plan-ttl small { display: block; font-family: var(--sans); font-size: 14px; font-weight: 400; color: var(--sub); }
.plan-full .plan-ttl { background: #e6dccf; color: var(--ink); }
.plan-full .plan-ttl small { color: var(--ink); }
.plan-best { padding: 16px 20px 14px; background: #fcf3ef; }
.plan-badge { display: inline-block; margin-bottom: 4px; padding: 0 14px; border-radius: 999px; background: var(--blush-deep); color: var(--deal); font-size: 14px; font-weight: 700; line-height: 1.8; }
.plan-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--line); }
.plan-best .plan-row { padding: 0; border-top: 0; }
.plan-name { font-weight: 700; line-height: 1.4; }
.plan-name small { display: block; font-size: 14px; font-weight: 400; color: var(--sub); }
.plan-price { flex: none; font-size: 14px; color: var(--sub); white-space: nowrap; }
.plan-price strong { margin: 0 2px 0 4px; font-family: var(--num); font-size: 24px; font-weight: 600; color: var(--ink); }
.plan-best .plan-price strong { font-size: 34px; color: var(--deal); }
@media (min-width: 1001px) {
  .plan-list > .plan:nth-child(n + 3) { margin-top: 24px; }
}
@media (max-width: 1000px) { .plan-list { grid-template-columns: minmax(0, 1fr); row-gap: 20px; max-width: 560px; margin: 0 auto; } .plan { grid-row: auto; grid-template-rows: auto; } }
.price-note { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 28px; margin-top: 22px; font-size: 14px; color: var(--sub); }
.cta-wrap { padding: 0 0 20px; background: var(--white); }
.step .bring { margin-top: 48px; background: var(--bg); }
.cta-wrap .cta-band { margin-top: 0; }
.cta-band { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 48px; margin-top: 80px; padding: 40px; background: var(--bg); border-radius: 28px; }
.cta-band-photo img { border-radius: 16px; }
.cta-band-body { text-align: center; }
.cta-band-sub { font-family: var(--serif); font-weight: 600; color: var(--accent); }
.cta-band-ttl { font-size: 30px; letter-spacing: .08em; margin: 6px 0 10px; }
.cta-band-txt { margin-bottom: 28px; font-size: 20px; font-weight: 700; }
.cta-band-txt strong { display: inline-block; font-family: var(--num); font-size: 48px; font-weight: 700; line-height: 1.1; color: var(--deal); margin: 0 2px; }
.cta-band-txt span { display: block; margin-top: 4px; font-size: 16px; font-weight: 400; color: var(--sub); }
@media (max-width: 767px) {
  .price { padding: 72px 0 80px; }
  .price-note { flex-direction: column; align-items: flex-start; }
  .cta-band { grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 48px; padding: 16px 16px 28px; border-radius: 20px; }
  .cta-band-ttl { font-size: 23px; }
  .cta-band-txt span { display: block; margin-top: 4px; }
  .cta-band .btn a { width: 100%; min-width: 0; }
}
.step { padding: 100px 0 120px; background: var(--white); }
.step-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.step-list li { position: relative; }
.step-list li:not(:last-child)::after { content: ""; position: absolute; top: 28%; right: -20px; width: 0; height: 0; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-left: 12px solid var(--mocha); }
.step-photo { position: relative; margin-bottom: 18px; }
.step-photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 16px; }
.step-num { position: absolute; left: 14px; bottom: 8px; font-family: var(--en); font-size: 20px; font-style: italic; color: var(--white); text-shadow: 0 1px 8px rgba(0, 0, 0, .55); }
.step-num b { font-family: var(--num); font-size: 32px; font-weight: 600; font-style: normal; margin-left: 6px; }
.step-list h3 { font-size: 21px; margin-bottom: 8px; color: var(--accent); }
@media (max-width: 900px) { .step-list { grid-template-columns: minmax(0, 1fr); gap: 36px; max-width: 560px; margin: 0 auto; } .step-list li:not(:last-child)::after { top: auto; bottom: -26px; right: 50%; margin-right: -9px; border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 12px solid var(--mocha); border-bottom: 0; } }
@media (max-width: 767px) { .step { padding: 72px 0 80px; } }
.media-inline { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 28px; max-width: 900px; margin: 72px auto 0; padding: 22px 28px; background: var(--bg); border-radius: 20px; }
.media-inline-ttl { font-family: var(--serif); font-weight: 600; color: var(--accent); }
.media-inline ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px; }
.media-inline li { display: flex; align-items: baseline; gap: 8px; }
.media-name { font-family: var(--serif); font-size: 20px; font-weight: 600; }
.media-meta { font-size: 14px; color: var(--sub); }
@media (max-width: 767px) { .media-inline { margin-top: 40px; padding: 18px 16px; flex-direction: column; } }
.store { padding: 110px 0; background: var(--bg); }
.store-box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.store-photo img { border-radius: 20px; }
.store-dl { display: grid; grid-template-columns: 6em minmax(0, 1fr); }
.store-dl dt, .store-dl dd { padding: 15px 0; border-bottom: 1px solid var(--line); line-height: 1.7; }
.store-dl dt { font-family: var(--serif); font-weight: 600; color: var(--accent); }
.store-links { display: flex; justify-content: center; gap: 14px; margin-top: 44px; flex-wrap: wrap; }
.store-links a { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 26px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); color: var(--accent); font-weight: 700; transition: .3s; }
.store-links a::after { content: ""; width: 10px; height: 10px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; }
.store-links a:hover { background: var(--paper); }
@media (max-width: 767px) { .store { padding: 72px 0; } .store-box { grid-template-columns: minmax(0, 1fr); gap: 24px; } .store-dl { grid-template-columns: 5.5em minmax(0, 1fr); } .store-links { flex-direction: column; } .store-links a { justify-content: center; width: 100%; } }
.faq { padding: 110px 0; background: var(--white); }
.faq-list { max-width: 840px; margin: 0 auto; }
.faq-list details { background: var(--bg); border-radius: 14px; margin-bottom: 10px; }
.faq-list summary { list-style: none; cursor: pointer; position: relative; min-height: 58px; padding: 16px 24px 16px 88px; font-weight: 700; line-height: 1.6; border-radius: 14px; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::before { content: "Q"; position: absolute; left: 54px; top: 10px; font-family: var(--en); font-size: 28px; font-style: italic; color: var(--accent); }
.faq-list summary::after { content: ""; position: absolute; left: 24px; top: 29px; width: 9px; height: 9px; margin-top: -7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .3s; }
.faq-list details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.faq-list details p { position: relative; padding: 0 30px 22px 88px; color: var(--sub); }
.faq-list details p::before { content: "A"; position: absolute; left: 55px; top: -8px; font-family: var(--en); font-size: 28px; font-style: italic; color: var(--mocha); }
.faq-more { max-width: 840px; margin: 16px auto 0; }
.faq-more > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; border: 1px solid var(--border); border-radius: 999px; background: var(--white); color: var(--accent); font-weight: 700; }
.faq-more > summary::-webkit-details-marker { display: none; }
.faq-more > summary::before { content: ""; width: 8px; height: 8px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .3s; }
.faq-more[open] > summary { margin-bottom: 16px; }
.faq-more[open] > summary::before { transform: rotate(-135deg); margin-top: 4px; }
@media (max-width: 767px) { .faq { padding: 72px 0; } .faq-list summary { padding: 14px 18px 14px 70px; } .faq-list summary::before { left: 40px; top: 8px; } .faq-list summary::after { left: 16px; top: 27px; } .faq-list details p { padding: 0 18px 18px 70px; } .faq-list details p::before { left: 41px; } }
.contact { padding: 110px 0; text-align: center; background: var(--beige); }
.contact-lead { margin: -24px 0 36px; color: var(--ink); }
.contact-btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; }
@media (max-width: 767px) { .contact { padding: 72px 0; } .contact-lead { margin-top: -10px; } .contact-btns .btn { width: 100%; } .contact-btns .btn a { width: 100%; min-width: 0; } }
.footer { background: var(--paper); border-top: 1px solid var(--line); }
.footer-nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 0 18px; padding: 28px 20px; border-bottom: 1px solid var(--line); }
.footer-nav a { display: flex; align-items: center; min-height: 48px; padding: 0 8px; font-size: 16px; }
.footer-nav a:hover { color: var(--accent); }
.footer-bottom { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 40px 20px 44px; }
.footer-logo img { width: 100px; }
.copyright { font-family: var(--en); font-size: 16px; letter-spacing: .14em; color: var(--sub); }
@media (max-width: 767px) { .footer-nav { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; padding: 16px 20px; } .footer-nav li { border-bottom: 1px solid var(--line); } .footer-bottom { padding-bottom: 108px; } }
.fixed-pc { position: fixed; right: 0; top: min(75%, calc(100% - 160px)); z-index: 90; display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 16px 10px 20px; border-radius: 14px 0 0 14px; background: var(--cta); color: var(--white); box-shadow: 0 8px 22px -8px rgba(204, 67, 23, .6); transform: translateY(-50%); transition: background .3s; }
.fixed-pc:hover { background: var(--cta-hover); }
.fixed-pc-en { font-family: var(--en); font-size: 14px; font-weight: 500; letter-spacing: .04em; line-height: 1; }
.fixed-pc-main { writing-mode: vertical-rl; font-size: 17px; font-weight: 700; letter-spacing: .14em; }
.fixed-pc-main .tcy { -webkit-text-combine: horizontal; text-combine-upright: all; letter-spacing: 0; }
@media (max-width: 960px) { .fixed-pc { display: none; } }
.fixed-sp { display: none; }
@media (min-width: 768px) and (max-width: 960px) { .fixed-sp { max-width: 560px; margin: 0 auto; } .footer-bottom { padding-bottom: 108px; } }
@media (max-width: 960px) {
  .fixed-sp { position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 90; display: flex; border-radius: 999px; overflow: hidden; box-shadow: 0 8px 22px -6px rgba(204, 67, 23, .55); transform: translateY(140%); transition: transform .4s; }
  .is-scrolled .fixed-sp { transform: none; }
  .fixed-sp a { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; min-height: 56px; padding: 6px 48px; background: var(--cta); color: var(--white); font-weight: 700; font-size: 18px; line-height: 1.35; position: relative; }
  .fixed-sp a::after { content: ""; position: absolute; right: 24px; top: 50%; width: 12px; height: 12px; margin-top: -6px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3'%3E%3Cpath d='M9 4h11v11M20 4L5 19'/%3E%3C/svg%3E") center / contain no-repeat; }
  .fixed-sp a:hover { background: var(--cta-hover); }
  .fixed-sp span:not(.visually-hidden) { font-size: 14px; font-weight: 400; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  .fadein { opacity: 1; transform: none; }
}
@media (max-width: 767px) { .dark { background-image: linear-gradient(rgba(47, 43, 39, .72), rgba(47, 43, 39, .86)), url(../img/dark-1000.webp?v=1); } }
