/* 完成見学会LP — page styles on top of classical.css */
:root{--color-sat:#3a669c;--color-sun:#b4463d;--color-benefit-bg:#d6c7b6;--color-notice-ink:#9a4b45;--color-notice-bg:#fbf3f1;--color-notice-line:#e3cbc6;--font-heading:"Cormorant Garamond","Shippori Mincho",serif;--font-body:"Lora","Noto Serif JP",serif;}
html{scroll-behavior:smooth}
body{margin:0;background:var(--color-neutral-200);-webkit-font-smoothing:antialiased}
a{color:var(--color-accent-700)}a:hover{color:var(--color-accent-600)}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}
details[open] .faq-chev{transform:rotate(180deg)}
[hidden]{display:none !important}

.page{max-width:480px;margin:0 auto;background:var(--color-bg);min-height:100vh;border-left:1px solid var(--color-divider);border-right:1px solid var(--color-divider)}
.page.has-sticky{padding-bottom:84px}
.sec{padding:56px 24px;border-top:1px solid var(--color-divider);display:flex;flex-direction:column}
.num{font-family:var(--font-heading);font-feature-settings:'tnum'}
.body-text{margin:0;font-size:14px;line-height:1.95;text-align:justify}
.muted{color:var(--color-neutral-700)}
.err-text{font-size:12px;color:var(--color-accent-800)}

/* header / footer brand */
.site-header{padding:14px 24px}
.logo{display:block;width:auto;height:30px}

/* image slots: show a placeholder until images/*.jpg exists */
.img-slot{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(135deg,var(--color-neutral-200) 0 10px,var(--color-neutral-300) 10px 11px);
  color:var(--color-neutral-600);font-size:12px;text-align:center;padding:12px}
.img-slot::before{content:attr(data-label)}
.img-slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.frame{position:relative}

/* section heading */
.sec-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.sec-head .en{font-family:var(--font-heading);font-style:italic;font-size:22px;color:var(--color-accent-700)}
.sec-head h2{font-size:24px;font-weight:400;letter-spacing:.14em;margin:0}
.sec-head .rule{width:40px;height:1px;background:var(--color-accent);margin-top:10px}

/* CTA */
.cta{display:flex;flex-direction:column;align-items:center;gap:8px}
.scarcity{font-size:13px;letter-spacing:.1em;color:var(--color-accent-700)}
.btn-cta{width:100%;padding:19px;font-size:18px;letter-spacing:.14em;font-weight:600;color:var(--color-neutral-100);
  background:linear-gradient(135deg,var(--color-accent-500) 0%,var(--color-accent-600) 45%,var(--color-accent-700) 100%);
  border:0;border-radius:999px;box-shadow:0 6px 16px color-mix(in srgb,var(--color-accent-700) 35%,transparent)}
.btn-cta:hover,.btn-tel:hover{filter:brightness(1.08)}
.btn-cta:active,.btn-tel:active{transform:translateY(1px);filter:brightness(.95)}

/* hero */
.hero{padding:40px 24px 48px}
.hero-visual{position:relative;aspect-ratio:4/5;margin:-40px -24px 0;overflow:hidden}
.hero-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--color-neutral-900) 42%,transparent) 0%,transparent 38%,transparent 72%,var(--color-bg) 100%)}
.hero-copy{position:absolute;top:36px;left:28px;right:28px;pointer-events:none;display:flex;flex-direction:column;gap:16px;color:var(--color-neutral-100);text-shadow:0 1px 12px color-mix(in srgb,var(--color-neutral-900) 45%,transparent)}
.hero-kicker{display:flex;align-items:center;gap:12px}
.hero-kicker span:first-child{font-family:var(--font-heading);font-size:13px;letter-spacing:.32em}
.hero-kicker span:last-child{width:48px;height:1px;background:var(--color-accent-300)}
.hero h1{font-size:31px;font-weight:400;line-height:1.6;letter-spacing:.08em;margin:0;color:var(--color-neutral-100);text-wrap:pretty}
.hero-info{margin-top:32px;display:flex;flex-direction:column;gap:18px}
.hero-dates{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px}
.hero-dates .d{font-size:42px;line-height:1}.hero-dates .w{font-size:13px}.hero-dates .dash{font-size:24px;color:var(--color-accent)}
.hero-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.hero-slots span{border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:8px 4px;text-align:center;font-size:15px}
.hero-venue{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);padding:12px 0}
.hero-venue>span:first-child{font-size:14px;letter-spacing:.06em}
.hero .cta{margin-top:28px}

/* points */
.points{gap:56px}
.point-row{display:grid;grid-template-columns:60px minmax(0,1fr);gap:16px;align-items:start}
.point-row.rev{grid-template-columns:minmax(0,1fr) 60px}
.point-label{display:flex;flex-direction:column;align-items:center;gap:10px}
.point-label .k{font-family:var(--font-heading);font-size:11px;letter-spacing:.24em;color:var(--color-accent-700)}
.point-label .n{font-size:40px;line-height:1}
.point-label .bar{width:1px;height:22px;background:var(--color-accent)}
.point-label h3{writing-mode:vertical-rl;font-size:21px;font-weight:400;letter-spacing:.16em;line-height:1.4;margin:0}
.point .plate{aspect-ratio:9/10}
.point .body-text{margin-top:20px}

/* house data */
.data{padding:48px 24px;gap:24px}
.data-title{text-align:center;font-family:var(--font-heading);font-size:17px;letter-spacing:.34em;color:var(--color-accent-700)}
.data-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--color-accent-300);background:var(--color-neutral-100)}
.data-grid>div{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 8px}
.data-grid>div+div{border-left:1px solid var(--color-accent-300)}
.data-grid .v{font-size:46px;line-height:1;font-weight:400}
.data-grid .l{font-size:13px;letter-spacing:.06em;color:var(--color-neutral-700)}
.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.badges span{padding:9px 16px;font-size:14px;letter-spacing:.06em;color:var(--color-neutral-100);background:var(--color-accent-600)}

/* comment */
.comment{gap:28px}
.comment-grid{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:18px;align-items:start}
.comment figure{display:flex;flex-direction:column;gap:8px}
.comment .plate{aspect-ratio:3/4}
.comment figcaption{margin:0;text-align:center;font-size:11px;line-height:1.6;color:var(--color-neutral-700)}
.comment figcaption span{font-size:14px;color:var(--color-text)}

/* benefit */
.benefit{position:relative;padding:56px 20px;background:var(--color-benefit-bg);border-top:1px solid var(--color-divider);display:flex;flex-direction:column;gap:32px;overflow:hidden}
.benefit-head{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:22px}
.script{font-family:"Great Vibes",cursive;font-weight:400;line-height:1}
.benefit-head .script{position:absolute;top:-14px;left:6px;font-size:44px;color:#fff;opacity:.9;transform:rotate(-8deg)}
.benefit-head .label-box{position:relative;background:#fff;padding:10px 26px;font-size:16px;letter-spacing:.16em;color:var(--color-text)}
.benefit-head h2{margin:0;font-size:32px;font-weight:400;letter-spacing:.14em;color:#fff;text-shadow:0 1px 10px color-mix(in srgb,var(--color-neutral-900) 18%,transparent)}
.benefit-head h2 .num{font-size:52px;margin-right:2px}
.benefit-circles{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px 10px}
.bc{aspect-ratio:1;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:12px}
.bc .n{font-family:var(--font-heading);font-size:clamp(36px,11vw,50px);font-weight:400;line-height:1;color:transparent;-webkit-text-stroke:1px var(--color-neutral-600);letter-spacing:.04em}
.bc p{margin:0;font-size:clamp(11.5px,3.4vw,14px);line-height:1.75;letter-spacing:.04em;color:var(--color-neutral-800)}
.bc strong{font-weight:600;color:var(--color-text)}
.benefit-family{position:absolute;left:50%;top:50%;width:46%;height:auto;transform:translate(-50%,-40%);pointer-events:none;filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--color-neutral-900) 18%,transparent))}

/* faq */
.faq{border-top:0;gap:28px}
.faq-list{border-top:1px solid var(--color-divider)}
.faq-list details{border-bottom:1px solid var(--color-divider)}
.faq-list summary{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;gap:10px;align-items:start;padding:18px 2px}
.faq-list .qa{font-family:var(--font-heading);font-size:20px;line-height:1.2;color:var(--color-accent-700)}
.faq-list .q{font-size:14px;line-height:1.7;font-weight:600}
.faq-chev{margin-top:3px;transition:transform .2s}
.faq-a{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:0 2px 20px}
.faq-a .qa{color:var(--color-neutral-600)}
.faq-a p{margin:0;font-size:14px;line-height:1.9;text-align:justify}

/* gift */
.gift{padding:8px 20px 56px}
.gift-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:20px;padding:30px 20px 24px;border:1px solid var(--color-accent-300);outline:1px solid var(--color-divider);outline-offset:4px;
  background:linear-gradient(160deg,#fff 0%,var(--color-neutral-100) 55%,#efebe6 100%);box-shadow:var(--shadow-sm)}
.gift-ribbon{position:absolute;top:20px;right:-46px;width:170px;height:20px;transform:rotate(45deg);
  background:linear-gradient(90deg,var(--color-accent-600),var(--color-accent-300) 45%,var(--color-accent-500) 70%,var(--color-accent-700));box-shadow:0 2px 6px color-mix(in srgb,var(--color-accent-800) 30%,transparent)}
.gift-kicker{display:flex;align-items:center;gap:12px;width:78%}
.gift-kicker .line{flex:1;height:1px;background:var(--color-accent-600)}
.gift-kicker .t{font-size:15px;letter-spacing:.2em;color:var(--color-accent-700);font-weight:600}
.gift-hero{display:grid;grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:8px}
.gift-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.gift-main .brand-name{font-size:18px;letter-spacing:.08em;font-weight:600}
.gift-amount{display:flex;align-items:baseline;line-height:1.1}
.gift-amount .v{font-size:clamp(50px,15vw,64px);font-weight:600;letter-spacing:-.01em;
  background:linear-gradient(180deg,var(--color-accent-400) 0%,var(--color-accent-700) 55%,var(--color-accent-500) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.gift-amount .u{font-size:20px;margin-left:4px;font-weight:600;color:var(--color-text)}
.gift-main .p{font-size:24px;letter-spacing:.14em;font-weight:600}
.gift-visual{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px}
.gift-visual .script{font-size:30px;color:var(--color-accent-400);transform:rotate(-8deg);margin-right:-6px}
.gift-cardimg{position:relative;overflow:hidden;width:100px;aspect-ratio:1.6;border-radius:6px;background:#fff;transform:rotate(-6deg);box-shadow:0 6px 14px color-mix(in srgb,var(--color-neutral-900) 22%,transparent)}
.gift-cardimg .band{position:absolute;left:-10%;right:-10%;top:48%;height:9px;background:linear-gradient(90deg,var(--color-accent-500),var(--color-accent-300),var(--color-accent-600));transform:rotate(-6deg)}
.gift-cardimg .label{position:absolute;top:8px;right:9px;font-family:var(--font-heading);font-size:9px;letter-spacing:.12em;font-weight:600;color:var(--color-neutral-700)}
.gift-cond{display:flex;flex-direction:column;gap:12px}
.gift-cond-head{display:flex;align-items:center;gap:8px}
.gift-cond-head .line{flex:1;height:1px;background:var(--color-accent-600)}
.gift-cond-head .line.short{flex:0 0 28px}
.gift-cond-head .h{font-size:15px;letter-spacing:.12em;font-weight:600}
.gift-cond ul{list-style:none;margin:0;padding:0 2px;display:flex;flex-direction:column;gap:8px}
.gift-cond li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;font-size:13px;line-height:1.7;letter-spacing:.03em}
.gift-cond .chk{margin-top:3px;color:var(--color-neutral-600)}
.gift .btn-primary{width:100%;padding:15px;font-size:16px;letter-spacing:.14em;font-weight:400}

/* access */
.access{gap:24px}
.spec{display:flex;flex-direction:column;border-top:1px solid var(--color-divider)}
.spec>div{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;padding:14px 2px;border-bottom:1px solid var(--color-divider);font-size:14px;line-height:1.8}
.spec>div>span:first-child{color:var(--color-neutral-700)}
.spec small{font-size:12px;color:var(--color-neutral-700)}
.map{height:260px;border:1px solid var(--color-divider)}
.map iframe{display:block;width:100%;height:100%;border:0}

/* form */
.form-sec{gap:28px}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--color-divider);border-radius:var(--radius-md);overflow:hidden;font-size:12px;letter-spacing:.1em;text-align:center}
.steps span{padding:9px 4px;color:var(--color-neutral-600)}
.steps span.on{color:var(--color-accent-700);box-shadow:inset 0 -2px 0 var(--color-accent)}
.form-step{display:flex;flex-direction:column;gap:28px}
.notice{padding:24px 18px 22px;background:var(--color-notice-bg);border:1px solid var(--color-notice-line)}
.notice-title{margin:0 0 16px;text-align:center;font-family:var(--font-body);font-size:16px;font-weight:600;letter-spacing:.08em;line-height:1.5;color:var(--color-notice-ink)}
.notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.notice-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:13.5px;line-height:1.85;color:var(--color-neutral-800)}
.notice-list .no{display:flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:2px;border:1px solid var(--color-notice-ink);border-radius:50%;font-family:var(--font-body);font-size:12px;line-height:1;color:var(--color-notice-ink)}
.notice-list a{color:var(--color-notice-ink);font-weight:600}
.field{display:flex;flex-direction:column;gap:10px}
.field-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--color-divider);padding-bottom:8px}
.field-head>span:first-child{font-size:15px;font-weight:600;letter-spacing:.06em}
.field .input{min-height:46px;font-size:15px}
.note{font-size:13px;color:var(--color-neutral-700)}
.cal{border:1px solid var(--color-divider);background:var(--color-neutral-100);padding:16px 10px 10px;display:flex;flex-direction:column;gap:12px}
.cal-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px}
.cal-head .m{font-size:24px;font-weight:400}
.cal-head .legend{font-size:11px;color:var(--color-neutral-700)}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;text-align:center}
.cal-grid .wd{font-size:12px;padding:4px 0;color:var(--color-neutral-700)}
.cal-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;padding:4px 0;border:0;background:var(--color-bg);color:var(--color-text);cursor:pointer;font:inherit;font-family:var(--font-heading);font-size:17px;line-height:1.1;font-feature-settings:'tnum'}
.cal-day .mk{font-size:14px}
.cal-day:disabled{background:var(--color-neutral-200);color:var(--color-neutral-500);cursor:default}
.cal-day.blank{color:transparent}
.cal-grid .wd.sat,.cal-day.sat>span:first-child{color:var(--color-sat)}
.cal-grid .wd.sun,.cal-day.sun>span:first-child{color:var(--color-sun)}
.cal-day.sat:disabled>span:first-child{color:color-mix(in srgb,var(--color-sat) 45%,var(--color-neutral-500))}
.cal-day.sun:disabled>span:first-child{color:color-mix(in srgb,var(--color-sun) 45%,var(--color-neutral-500))}
.cal-day[aria-pressed="true"],.slot[aria-pressed="true"]{background:var(--color-accent-100);color:var(--color-accent-800);border:2px solid var(--color-accent-600)}
.slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.slot{min-height:56px;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;border:1px solid var(--color-divider);background:var(--color-neutral-100);color:var(--color-text);cursor:pointer;font:inherit;font-family:var(--font-heading);font-size:18px;font-weight:600;font-feature-settings:'tnum'}
.slot .st{font-size:11px;font-weight:400;letter-spacing:.06em}
.slot .st:empty{display:none}
.slot:disabled{background:var(--color-neutral-200);color:var(--color-neutral-500);cursor:default}
.slot:disabled>span:first-child{text-decoration:line-through}
.counter{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}
.counter>div{display:flex;align-items:center;gap:6px}
.counter .btn-icon{width:44px;height:44px;font-size:18px}
.counter output{min-width:44px;text-align:center;font-family:var(--font-heading);font-size:22px;font-feature-settings:'tnum'}
.zip-row{display:flex;align-items:center;gap:8px;font-size:14px}
.zip-row .input{max-width:160px}
.form-err{margin:0;font-size:13px;color:var(--color-accent-800);text-align:center}
.btn-submit{width:100%;padding:17px;font-size:17px;letter-spacing:.14em;font-weight:400}
.confirm-rows{border-top:1px solid var(--color-divider)}
.confirm-rows>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:13px 2px;border-bottom:1px solid var(--color-divider);font-size:14px;line-height:1.7}
.confirm-rows>div>span:first-child{color:var(--color-neutral-700)}
.confirm-rows>div>span:last-child{overflow-wrap:anywhere}
.confirm-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px}
.confirm-actions .btn{padding:16px;font-size:15px;font-weight:400}
.confirm-actions .btn-primary{font-size:16px;letter-spacing:.12em}
.done{padding:36px 22px;gap:14px;align-items:center;text-align:center;border-color:var(--color-accent)}
.done .card-title{font-size:20px;letter-spacing:.1em}
.done p{margin:0;font-size:14px;line-height:1.9}

/* footer */
.site-footer{padding:40px 24px 32px;border-top:1px solid var(--color-divider);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.site-footer .logo{height:36px;margin-bottom:4px}
.site-footer .name{font-size:13px;letter-spacing:.08em}
.site-footer .tel{font-family:var(--font-heading);font-size:18px;letter-spacing:.08em;text-decoration:none;font-feature-settings:'tnum'}
.site-footer small{font-size:11px;color:var(--color-neutral-700)}

/* sticky bar */
.sticky{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:100%;max-width:480px;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--color-bg);border-top:1px solid var(--color-divider);box-shadow:var(--shadow-md);z-index:10}
.sticky .btn-cta{min-height:52px;padding:0;font-size:16px;letter-spacing:.12em}
.btn-tel{min-height:52px;font-size:15px;font-weight:600;letter-spacing:.1em;gap:8px;color:#fff;text-decoration:none;background:linear-gradient(135deg,#1fb85c 0%,#06a24a 45%,#07813c 100%);border:0;border-radius:999px;box-shadow:0 6px 16px rgba(7,129,60,.3)}
.btn-tel:hover{color:#fff}
