:root{
  --ink:#071525; --ink2:#10243d; --muted:#64748b; --soft:#f6f8fc; --panel:#fff; --line:#d8e2ee;
  --navy:#071525; --navy2:#123052; --gold:#b78b45; --mint:#0f8f83; --green:#047857; --red:#b91c1c; --amber:#b45309;
  --shadow:0 24px 70px rgba(7,21,37,.14); --shadow2:0 12px 34px rgba(7,21,37,.10); --radius:28px;
}
*{box-sizing:border-box} html{font-size:16px} body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Noto Sans JP",Meiryo,sans-serif;background:radial-gradient(circle at top left,#eef6ff 0,#f8fafc 38%,#eef2f7 100%);line-height:1.7} a{color:inherit}.hidden{display:none!important}.hp-field{position:absolute;left:-9999px;opacity:0}.muted,.help-text{color:var(--muted);font-size:.92rem}.eyebrow{margin:0 0 8px;color:#b7c6d8;text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;font-weight:800}.eyebrow.dark{color:var(--gold)}
.lux-hero{position:relative;overflow:hidden;min-height:430px;background:linear-gradient(135deg,#071525 0%,#0f2b4a 55%,#0c3b50 100%);color:#fff}.lux-hero__bg{position:absolute;inset:0;background:radial-gradient(circle at 18% 28%,rgba(255,255,255,.13),transparent 25%),radial-gradient(circle at 82% 16%,rgba(15,143,131,.28),transparent 28%),linear-gradient(120deg,transparent 0,transparent 48%,rgba(255,255,255,.06) 48%,rgba(255,255,255,.06) 49%,transparent 49%);opacity:.95}.lux-nav,.lux-hero-inner{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding-left:22px;padding-right:22px}.lux-nav{display:flex;align-items:center;justify-content:space-between;padding-top:24px}.lux-logo{display:flex;align-items:center;gap:13px;text-decoration:none}.lux-logo-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:linear-gradient(145deg,#fff,#dce8f7);color:#0b1f37;font-weight:900;box-shadow:0 14px 30px rgba(0,0,0,.24)}.lux-logo strong{display:block;line-height:1.2}.lux-logo small{display:block;color:#b7c6d8;letter-spacing:.08em;font-size:.72rem}.lux-nav-link{padding:10px 16px;border:1px solid rgba(255,255,255,.24);border-radius:999px;text-decoration:none;color:#e8f1fb;background:rgba(255,255,255,.08);backdrop-filter:blur(10px)}.lux-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:42px;align-items:end;padding-top:72px;padding-bottom:74px}.hero-copy h1{font-size:clamp(2.1rem,5vw,4.3rem);line-height:1.06;margin:0 0 20px;letter-spacing:-.04em}.lead{font-size:1.05rem;color:#d7e3f1;max-width:760px;margin:0}.trust-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.trust-row span{padding:9px 13px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.09);color:#edf6ff;font-size:.86rem}.hero-panel{border:1px solid rgba(255,255,255,.18);border-radius:30px;background:rgba(255,255,255,.11);backdrop-filter:blur(16px);box-shadow:0 22px 60px rgba(0,0,0,.23);padding:28px}.hero-panel p{margin:0;color:#bfd0e3}.hero-panel strong{display:block;font-size:2.1rem;margin:7px 0;color:#fff;letter-spacing:-.04em}.hero-panel span{color:#dbeafe;font-size:.9rem}
.booking-shell{max-width:1120px;margin:-54px auto 70px;padding:0 22px;position:relative;z-index:2}.reservation-note{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow2);border-radius:22px;padding:16px 18px;margin-bottom:18px}.reservation-note div{display:flex;gap:14px;align-items:center}.reservation-note strong{color:var(--navy2);white-space:nowrap}.reservation-note span{color:var(--muted)}.booking-card,.section-card{background:rgba(255,255,255,.96);border:1px solid rgba(216,226,238,.95);box-shadow:var(--shadow);border-radius:var(--radius);padding:28px}.booking-head,.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.booking-head h2,.section-card h2{margin:0;font-size:1.8rem;letter-spacing:-.03em}.text-link{color:var(--navy2);font-weight:800;text-decoration:none;border-bottom:1px solid rgba(18,48,82,.25)}
.stepper{list-style:none;display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding:0;margin:0 0 26px}.stepper li{position:relative;display:flex;align-items:center;gap:8px;padding:10px 8px;border-radius:15px;background:#f3f6fb;color:#738197;font-size:.8rem}.stepper li span{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#dfe8f3;color:#526173;font-weight:900}.stepper li.active{background:linear-gradient(135deg,#071525,#17385c);color:#fff}.stepper li.active span{background:#fff;color:#071525}.stepper li.done{background:#e7f6f3;color:#0f766e}.stepper li.done span{background:#0f8f83;color:#fff}.wizard-step{display:none}.wizard-step.active{display:block;animation:fadeUp .22s ease-out}.step-title{margin-bottom:22px}.step-title p{margin:0 0 5px;color:var(--gold);font-weight:900;letter-spacing:.14em;font-size:.78rem}.step-title h3{font-size:1.55rem;line-height:1.2;margin:0;letter-spacing:-.03em}.wizard-actions{display:flex;justify-content:space-between;gap:12px;margin-top:26px}.wizard-actions .btn.primary:last-child{margin-left:auto}@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-card{appearance:none;text-align:left;border:1px solid #dbe5f0;border-radius:24px;background:linear-gradient(180deg,#fff,#f8fbff);padding:22px;min-height:190px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:20px;box-shadow:0 8px 24px rgba(15,35,61,.06);transition:.18s}.service-card:hover{transform:translateY(-2px);box-shadow:0 18px 38px rgba(15,35,61,.12);border-color:#adc2d8}.service-card.active{border-color:#123052;box-shadow:0 18px 45px rgba(18,48,82,.18);background:linear-gradient(180deg,#fff,#eef6ff)}.service-number{color:var(--gold);font-weight:900;letter-spacing:.12em}.service-card h3{font-size:1.16rem;margin:0 0 8px;letter-spacing:-.02em}.service-card p{margin:0;color:var(--muted);font-size:.94rem}.price-pill{display:inline-flex;align-self:flex-start;border-radius:999px;padding:8px 13px;background:#071525;color:#fff;font-weight:900;font-size:.86rem}.base-callout{margin-top:18px;border-radius:22px;border:1px solid #cfe7e4;background:#eefbf8;padding:20px}.base-callout h3{margin:0 0 7px}.base-callout p{margin:0 0 16px;color:#426058}
.terms-feature{border:1px solid #dde7f1;border-radius:24px;background:linear-gradient(180deg,#fff,#f9fbff);padding:22px}.terms-feature ul,.terms-box ul{margin:12px 0 0;padding-left:1.25em}.terms-feature li,.terms-box li{margin:.45em 0}.terms-lead{display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #e5edf6;padding-bottom:14px}.terms-lead span{font-weight:900}.terms-lead strong{color:var(--navy2)}.privacy-box,.terms-box,.info-box{border-radius:20px;border:1px solid #dfe9f4;background:#f8fbff;padding:18px;margin-top:16px}.privacy-box h4,.terms-box h4{margin:0 0 8px}.privacy-box p{margin:.55em 0;color:#40566e}.privacy-box.refined{background:#fffaf1;border-color:#ead8b9}.terms-box.compact{background:#fff}.check-row{display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:#23364c}.check-row input{width:20px;height:20px;accent-color:#0f8f83;flex:0 0 auto;margin-top:.2em}.check-row.premium{padding:16px 18px;border-radius:18px;background:#eefbf8;border:1px solid #c9ebe5;font-weight:900}
.slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.slot-btn{appearance:none;border:1px solid #dbe5f0;background:#fff;border-radius:18px;padding:16px;text-align:left;cursor:pointer;box-shadow:0 7px 18px rgba(15,35,61,.05);transition:.18s}.slot-btn strong{display:block;font-size:.98rem}.slot-btn span{display:block;color:var(--muted);margin-top:3px}.slot-btn em{display:inline-block;margin-top:10px;font-style:normal;font-size:.78rem;color:#92400e;background:#fff7ed;border-radius:999px;padding:4px 8px}.slot-btn.active{border-color:#123052;background:#f0f7ff;box-shadow:0 14px 32px rgba(18,48,82,.16)}.section-action{text-align:right;margin-top:-6px}.mini-heading{font-size:1.05rem;margin:22px 0 12px;border-left:4px solid var(--gold);padding-left:10px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field span{font-size:.88rem;font-weight:800;color:#34455d}.field b{font-size:.7rem;color:#fff;background:#b91c1c;border-radius:999px;padding:2px 7px;margin-left:4px}input,select,textarea{width:100%;border:1px solid #cfdae7;background:#fff;border-radius:15px;padding:13px 14px;font:inherit;color:var(--ink);outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#123052;box-shadow:0 0 0 4px rgba(18,48,82,.11)}textarea{resize:vertical}.price-summary.premium{border:1px solid #d7e8df;background:linear-gradient(135deg,#effcf8,#fff);border-radius:24px;padding:22px;margin-bottom:18px}.price-summary strong{display:block;font-size:1.7rem;letter-spacing:-.03em;color:#0d352d}.price-summary span{color:var(--muted);font-size:.9rem}.price-summary p{margin:8px 0 0;color:#40566e}.review-box{margin:16px 0}.review-list,.kv{display:grid;grid-template-columns:150px 1fr;gap:0;border:1px solid #e1e9f3;border-radius:18px;overflow:hidden;background:#fff}.review-list dt,.review-list dd,.kv dt,.kv dd{margin:0;padding:12px 14px;border-bottom:1px solid #e1e9f3}.review-list dt,.kv dt{background:#f6f8fc;color:#526173;font-weight:900}.review-list dd,.kv dd{background:#fff}.review-list dt:last-of-type,.review-list dd:last-of-type,.kv dt:last-of-type,.kv dd:last-of-type{border-bottom:0}.btn{appearance:none;border:0;border-radius:999px;padding:12px 20px;font:inherit;font-weight:900;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.16s}.btn.primary{background:linear-gradient(135deg,#071525,#123052);color:#fff;box-shadow:0 14px 28px rgba(7,21,37,.18)}.btn.primary:hover{transform:translateY(-1px);box-shadow:0 18px 34px rgba(7,21,37,.23)}.btn.ghost{background:#eef3f9;color:#10243d}.btn.danger{background:#fee2e2;color:#991b1b}.btn.small{padding:8px 12px;font-size:.86rem}.btn.wide{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.result-card{text-align:center}.result-card.success{border-color:#bfebdd;background:linear-gradient(180deg,#fff,#f0fdf9)}.success-mark{display:grid;place-items:center;width:70px;height:70px;border-radius:50%;background:#0f8f83;color:#fff;font-size:2rem;margin:0 auto 14px}.receipt{font-size:1.45rem;font-weight:900;letter-spacing:.04em;background:#071525;color:#fff;border-radius:18px;padding:14px;margin:18px 0}
.site-header,.admin-top{background:linear-gradient(135deg,#071525,#123052);color:#fff;padding:28px 18px}.site-header.compact{min-height:auto}.header-inner,.admin-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:#fff;color:#071525;font-weight:900}.page-shell{max-width:960px;margin:28px auto 60px;padding:0 18px}.page-shell.narrow{max-width:680px}.check-form{display:grid;gap:14px;margin-top:18px}.status-badge{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:900;background:#e2e8f0;color:#334155}.status-new,.status-reviewing{background:#fff7ed;color:#9a3412}.status-confirmed{background:#dcfce7;color:#166534}.status-done{background:#e0f2fe;color:#075985}.status-unavailable,.status-cancelled,.status-no_show{background:#fee2e2;color:#991b1b}
.admin-page{max-width:1280px;margin:24px auto 70px;padding:0 18px}.metric-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;box-shadow:0 8px 22px rgba(15,35,61,.05)}.metric span{color:var(--muted);font-size:.82rem}.metric strong{display:block;font-size:1.7rem}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}table{width:100%;border-collapse:collapse;min-width:860px;background:#fff}th,td{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left;font-size:.92rem;vertical-align:top}th{background:#f8fafc;color:#475569;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase}tr:hover td{background:#fbfdff}.detail-panel{position:sticky;top:14px}.action-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.slot-admin-list{display:grid;gap:8px;max-height:360px;overflow:auto}.slot-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}
@media(max-width:960px){.lux-hero-inner{grid-template-columns:1fr;padding-top:46px}.hero-panel{max-width:420px}.stepper{grid-template-columns:repeat(3,1fr)}.service-grid,.form-grid.two,.slot-grid{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.review-list,.kv{grid-template-columns:1fr}.review-list dt,.kv dt{border-bottom:0}.reservation-note div{display:block}.reservation-note strong{display:block;margin-bottom:4px}}
@media(max-width:640px){.lux-nav{padding-top:18px}.lux-logo small{display:none}.lux-nav-link{font-size:.86rem;padding:8px 10px}.lux-hero-inner{padding-bottom:78px}.booking-shell{padding:0 12px}.booking-card,.section-card{padding:20px;border-radius:22px}.booking-head,.section-title-row,.header-inner,.admin-inner{display:block}.stepper{display:flex;overflow:auto;padding-bottom:4px}.stepper li{min-width:115px}.wizard-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,255,255,.78),#fff 35%);padding-top:14px}.hero-copy h1{font-size:2.15rem}.lead{font-size:.98rem}.trust-row span{font-size:.8rem}.hero-panel{padding:20px}.slot-grid{grid-template-columns:1fr}}

/* v1.3: richer terms layout */
.terms-section-list {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}
.terms-section-block {
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 18px;
  padding: 16px 18px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}
.terms-section-block h4 {
  margin: 0 0 10px;
  color: #0f2747;
  font-size: 15px;
  letter-spacing: .02em;
}
.terms-section-block ul {
  margin: 0;
  padding-left: 1.2em;
  color: #334155;
  line-height: 1.85;
  font-size: 14px;
}
.terms-section-block li + li { margin-top: 4px; }

/* v1.4 public booking-site refresh */
:root{
  --brand-blue:#0787c9;
  --brand-blue-2:#35aee2;
  --light-blue:#eaf7ff;
  --pale:#f7fbff;
  --warm:#fffaf0;
}
body{background:linear-gradient(180deg,#eef9ff 0,#f7fbff 42%,#ffffff 100%);}
.lux-hero{min-height:320px;background:linear-gradient(135deg,#e9f8ff 0%,#f8fcff 48%,#ffffff 100%);color:#0f2747;border-bottom:1px solid #dcecf7;}
.lux-hero__bg{background:radial-gradient(circle at 10% 10%,rgba(53,174,226,.22),transparent 30%),radial-gradient(circle at 90% 0%,rgba(15,143,131,.13),transparent 25%),linear-gradient(120deg,transparent 0,transparent 55%,rgba(7,135,201,.08) 55%,rgba(7,135,201,.08) 68%,transparent 68%);}
.lux-nav{padding-top:22px;}
.lux-logo-mark{background:linear-gradient(145deg,#0ea5e9,#0369a1);color:#fff;box-shadow:0 12px 28px rgba(3,105,161,.22)}
.lux-logo small{color:#5b7690}.lux-nav-link{color:#075985;background:#fff;border-color:#bfe4f7;box-shadow:0 8px 18px rgba(14,165,233,.10)}
.eyebrow{color:#0787c9}.hero-copy h1{font-size:clamp(2rem,4.2vw,3.6rem);color:#0f2747;max-width:820px}.lead{color:#425f7b;max-width:820px}.lux-hero-inner{display:block;padding-top:54px;padding-bottom:80px}.trust-row span{background:#fff;border-color:#cae9f8;color:#075985;box-shadow:0 8px 18px rgba(7,135,201,.08)}.hero-panel{display:none!important}
.booking-shell{margin:-38px auto 70px}.reservation-note{background:#fff;border-color:#d8edf8}.reservation-note strong{color:#0369a1}.booking-card,.section-card{box-shadow:0 18px 55px rgba(3,105,161,.10);border-color:#d9ebf7;background:#fff}.booking-head h2,.section-card h2{color:#0f2747}.eyebrow.dark{color:#0787c9}.stepper li{background:#eef7fd;color:#58718b}.stepper li span{background:#d8edf8;color:#075985}.stepper li.active{background:linear-gradient(135deg,#0787c9,#0ea5e9);color:#fff}.stepper li.active span{color:#0787c9}.stepper li.done{background:#e7f8f3;color:#047857}.stepper li.done span{background:#10b981;color:#fff}
.service-card{border-color:#d6e8f5;background:linear-gradient(180deg,#fff,#f7fcff);box-shadow:0 10px 26px rgba(3,105,161,.07)}.service-card:hover{border-color:#8dd5f5;box-shadow:0 20px 40px rgba(3,105,161,.14)}.service-card.active{border-color:#0ea5e9;background:linear-gradient(180deg,#ffffff,#ecf9ff);box-shadow:0 18px 45px rgba(14,165,233,.18)}.price-pill{background:#e0f4ff;color:#075985;border:1px solid #bde7fb}.btn.primary{background:linear-gradient(135deg,#0787c9,#0ea5e9);box-shadow:0 14px 28px rgba(14,165,233,.22)}.btn.primary:hover{box-shadow:0 18px 34px rgba(14,165,233,.28)}.btn.ghost{background:#edf7fd;color:#075985}.btn.primary:disabled{background:#a8cfe2;color:#fff;box-shadow:none}.base-callout{background:#effaff;border-color:#bde7fb}.text-link{color:#0369a1;border-bottom-color:#bde7fb}

.agreement-layout{display:grid;gap:18px}.scroll-agreement-card{border:1px solid #d7e9f5;border-radius:24px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 12px 28px rgba(3,105,161,.06);padding:18px}.scroll-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px}.scroll-card-head h4{margin:0;font-size:1.25rem;color:#0f2747}.read-badge{border:1px solid #f0d7a5;background:#fff8e8;color:#92400e;border-radius:999px;padding:6px 10px;font-weight:900;font-size:.78rem;white-space:nowrap}.read-badge.done{border-color:#a7f3d0;background:#ecfdf5;color:#047857}.scroll-terms-body{max-height:310px;overflow:auto;border:1px solid #d9e7f2;border-radius:18px;background:#fff;padding:16px;scrollbar-width:thin}.scroll-terms-body:focus{outline:3px solid rgba(14,165,233,.22)}.privacy-scroll h5{margin:1em 0 .3em;color:#0f2747}.privacy-scroll h5:first-child{margin-top:0}.privacy-scroll p{margin:.4em 0;color:#40566e}.check-row.disabled{opacity:.55}.check-row.disabled input{cursor:not-allowed}.check-row.premium{background:#eefaff;border-color:#bfe8f8;color:#0f2747}
.terms-feature{box-shadow:none}.terms-section-list{gap:12px}.terms-section-block{background:#fbfdff;border-color:#dcecf7;box-shadow:none}.terms-section-block h4{color:#075985}.terms-section-block ul{font-size:.92rem;line-height:1.8}

.calendar-booking{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px;margin-top:18px}.calendar-panel,.time-panel{background:#fff;border:1px solid #d7e9f5;border-radius:24px;padding:18px;box-shadow:0 12px 28px rgba(3,105,161,.06)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.calendar-toolbar strong{font-size:1.2rem;color:#0f2747}.calendar-nav-btn{width:42px;height:42px;border-radius:50%;border:1px solid #c9e8f7;background:#f0faff;color:#075985;font-size:1.7rem;line-height:1;cursor:pointer}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays span{text-align:center;color:#68839c;font-size:.82rem;font-weight:900}.calendar-day{min-height:76px;border:1px solid #e0edf6;background:#f8fbfe;border-radius:16px;padding:8px 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#93a4b5}.calendar-day.empty{border:0;background:transparent}.calendar-day.available{background:#fff;border-color:#bfe8f8;color:#0f2747;cursor:pointer;box-shadow:0 6px 16px rgba(3,105,161,.06)}.calendar-day.available:hover{transform:translateY(-1px);border-color:#0ea5e9}.calendar-day.selected{background:linear-gradient(180deg,#e7f8ff,#fff);border-color:#0787c9;box-shadow:0 12px 24px rgba(14,165,233,.16)}.calendar-day.weekend .day-num{color:#b45309}.calendar-day.disabled{cursor:not-allowed}.day-num{font-weight:900;font-size:1rem}.day-dot{width:8px;height:8px;border-radius:50%;background:#0ea5e9}.calendar-day small{font-size:.72rem}.time-panel-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.time-panel-head h4{margin:0;color:#0f2747}.time-slot-list{display:grid;gap:10px}.time-slot-btn{appearance:none;width:100%;border:1px solid #d6e8f5;background:#fff;border-radius:18px;padding:14px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;cursor:pointer;box-shadow:0 8px 20px rgba(3,105,161,.05)}.time-slot-btn:hover{border-color:#0ea5e9}.time-slot-btn.active{border-color:#0787c9;background:#eaf8ff;box-shadow:0 12px 26px rgba(14,165,233,.14)}.time-slot-btn strong{font-size:1.18rem;color:#0f2747}.time-slot-btn span{color:#68839c}.time-slot-btn em,.time-slot-btn small{justify-self:end;font-style:normal;font-size:.78rem;border-radius:999px;padding:5px 9px}.time-slot-btn em{background:#fff7ed;color:#92400e}.time-slot-btn small{background:#ecfdf5;color:#047857}
.price-summary.premium{background:linear-gradient(135deg,#effaff,#fff);border-color:#bfe8f8}.price-summary strong{color:#075985}.info-box.refined{background:#f4fbff;border-color:#d7e9f5}

@media(max-width:960px){.lux-hero-inner{display:block}.calendar-booking{grid-template-columns:1fr}.scroll-terms-body{max-height:260px}}
@media(max-width:640px){.lux-hero{min-height:280px}.lux-hero-inner{padding-top:40px;padding-bottom:62px}.calendar-day{min-height:58px;border-radius:12px;padding:6px 4px}.calendar-weekdays,.calendar-grid{gap:4px}.calendar-panel,.time-panel{padding:14px;border-radius:20px}.time-slot-btn{grid-template-columns:1fr;gap:4px}.time-slot-btn em,.time-slot-btn small{justify-self:start}.service-card{min-height:168px}.scroll-terms-body{max-height:240px}}


/* v1.5 customer-facing refinements */
.lux-hero{min-height:300px;background:linear-gradient(135deg,#e0f6ff 0%,#f7fcff 52%,#eefaf7 100%);color:#0f2747;border-bottom:1px solid #cfe8f5}.lux-hero__bg{background:linear-gradient(120deg,transparent 0,transparent 58%,rgba(14,165,233,.10) 58%,rgba(14,165,233,.10) 73%,transparent 73%);opacity:1}.lux-logo strong{color:#0f2747}.lux-logo small{color:#5b7892}.lux-logo-mark{background:linear-gradient(145deg,#0ea5e9,#0787c9);color:#fff;box-shadow:0 10px 25px rgba(14,165,233,.22)}.lux-nav-link{background:#fff;color:#075985;border-color:#bde7fb;box-shadow:0 8px 22px rgba(14,165,233,.10)}.lux-hero-inner{display:block;padding-top:58px;padding-bottom:74px}.hero-copy h1{font-size:clamp(2.15rem,4.5vw,3.8rem);max-width:760px;margin-bottom:16px;color:#0f2747}.lead{color:#3f607c;max-width:780px}.booking-shell{margin:-42px auto 70px}.reservation-note{padding:13px 16px}.reservation-note div{align-items:flex-start}.reservation-note strong{font-size:.95rem}.reservation-note span{font-size:.92rem}.service-card{min-height:176px;justify-content:flex-start;gap:12px;padding:24px}.service-card h3{font-size:1.28rem;line-height:1.35;margin:0;letter-spacing:-.025em;color:#0f2747}.service-card p{font-size:.94rem;line-height:1.75;margin:0 0 auto}.price-pill{margin-top:6px}.service-number{display:none!important}.scroll-terms-body{background:#fff}.terms-lead{margin-bottom:4px}.terms-flat-list{display:block}.terms-flat-block{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:16px 0!important;margin:0!important;border-bottom:1px solid #e6eef6!important}.terms-flat-block:first-child{padding-top:8px!important}.terms-flat-block:last-child{border-bottom:0!important}.terms-flat-block h4{margin:0 0 8px!important;color:#075985!important;font-size:1rem!important}.terms-flat-block ul{margin:0!important;padding-left:1.25em!important;font-size:.94rem!important;line-height:1.82!important}.terms-flat-block li + li{margin-top:5px!important}
@media(max-width:640px){.lux-hero{min-height:240px}.lux-hero-inner{padding-top:34px;padding-bottom:56px}.hero-copy h1{font-size:2.05rem}.reservation-note div{display:block}.reservation-note strong{display:block;margin-bottom:4px}.service-card{min-height:auto;padding:20px}.service-card h3{font-size:1.12rem}}


/* v1.6 refinements */
.lux-hero{min-height:255px;}
.lux-hero-inner{padding-top:40px!important;padding-bottom:58px!important;}
.hero-copy h1{font-size:clamp(2rem,4vw,3.35rem)!important;margin-bottom:10px!important;}
.lead{font-size:1rem!important;line-height:1.85!important;max-width:700px!important;}
.booking-shell{margin-top:-28px!important;}
.reservation-note{padding:10px 14px!important;border-radius:18px!important;}
.reservation-note span{font-size:.88rem!important;}
.service-card{position:relative;text-align:left;cursor:pointer;}
.service-card::after{content:'選択する';position:absolute;right:20px;bottom:22px;font-size:.78rem;font-weight:900;color:#0787c9;opacity:.78;}
.service-card .price-pill{align-self:flex-start;}
.service-card:hover::after{opacity:1;transform:translateX(2px);}
.wizard-step[data-step="1"] .wizard-actions{display:none!important;}
.scroll-terms-body{max-height:240px!important;}
.terms-lead{position:sticky;top:0;z-index:1;background:#fff;padding:0 0 10px;margin-bottom:8px;border-bottom:1px solid #e6eef6;}
.check-row.premium input:disabled + span{color:#64748b;}
.check-row.premium.disabled{background:#f4f8fb!important;border-style:dashed!important;}
.check-row.premium.disabled::after{content:'最後までスクロールすると同意できます';margin-left:auto;font-size:.78rem;color:#64748b;font-weight:800;}
@media(max-width:640px){
  .lux-hero{min-height:230px;}
  .lux-hero-inner{padding-top:32px!important;padding-bottom:50px!important;}
  .booking-shell{margin-top:-24px!important;}
  .service-card::after{position:static;display:inline-flex;margin-top:8px;}
}


/* v1.7 refinements */
.lux-logo--text{gap:0!important;text-decoration:none!important;}
.lux-logo--text span{display:flex;flex-direction:column;line-height:1.15;}
.lux-logo--text strong{font-size:1rem;letter-spacing:.02em;}
.lux-logo--text small{font-size:.76rem;margin-top:3px;}
.lux-nav{min-height:auto!important;}
.status-check-strip{display:flex;align-items:center;gap:10px;margin-top:22px;padding:14px 18px;border:1px solid #c8e9f8;border-radius:18px;background:linear-gradient(135deg,#ffffff,#f2fbff);color:#0f2747;text-decoration:none;box-shadow:0 10px 24px rgba(3,105,161,.06);transition:.18s ease;}
.status-check-strip:hover{border-color:#0ea5e9;transform:translateY(-1px);box-shadow:0 16px 32px rgba(14,165,233,.14);}
.status-check-strip span{color:#64748b;font-size:.9rem;}
.status-check-strip strong{margin-right:auto;color:#0369a1;font-size:.95rem;}
.status-check-strip em{font-style:normal;font-size:1.4rem;color:#0787c9;line-height:1;}
.calendar-day .availability-mark{font-weight:900;font-size:.9rem;line-height:1;color:#94a3b8;}
.calendar-day.availability-few .availability-mark{color:#d97706;}
.calendar-day.availability-many .availability-mark{color:#059669;}
.calendar-day.availability-few{border-color:#f7d391;background:#fffbeb;}
.calendar-day.availability-many{border-color:#a7f3d0;background:#f0fdf4;}
.calendar-day.availability-few.selected,.calendar-day.availability-many.selected{border-color:#0787c9;background:linear-gradient(180deg,#e7f8ff,#fff);}
@media(max-width:640px){.status-check-strip{display:grid;grid-template-columns:1fr auto;padding:13px 15px}.status-check-strip span{grid-column:1/-1}.status-check-strip strong{font-size:.9rem}}


/* v1.8 refinements */
.lux-hero{min-height:215px!important;}
.lux-nav{padding-top:18px!important;}
.lux-hero-inner{padding-top:22px!important;padding-bottom:46px!important;}
.hero-copy h1{font-size:clamp(1.95rem,3.6vw,3.1rem)!important;}
.lead{font-size:.98rem!important;}
.scroll-card-head{align-items:center;}
.line-guide{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:18px;align-items:center;border:1px solid #bde7fb;background:linear-gradient(135deg,#f0fbff,#fff);border-radius:20px;padding:18px;margin-top:4px;}
.line-guide p{margin:.35em 0;color:#40566e}.line-id{font-weight:900;color:#075985}.line-btn{background:#06c755;color:#fff;box-shadow:0 10px 24px rgba(6,199,85,.18);margin-top:8px}.line-check{margin-top:10px}.line-qr-wrap{text-align:center}.line-qr-wrap img{width:106px;height:106px;border:1px solid #d7e9f5;border-radius:12px;background:#fff;padding:6px}.line-qr-wrap small{display:block;color:#64748b;font-size:.72rem;margin-top:5px}.final-confirm{padding:16px 18px;border:1px solid #bfe8f8;border-radius:18px;background:#effaff;font-weight:900}.submit-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.price-link{margin-top:24px}.status-check-strip + .status-check-strip{margin-top:10px}.price-page{background:linear-gradient(135deg,#effaff,#f8fbff 45%,#eefaf7)}.price-shell{max-width:980px;margin:0 auto;padding:44px 22px 70px}.price-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;background:#fff;border:1px solid #d7e9f5;border-radius:28px;padding:28px;box-shadow:0 18px 44px rgba(3,105,161,.08);margin-bottom:22px}.price-hero h1{margin:0 0 8px;font-size:2.4rem;letter-spacing:-.04em;color:#0f2747}.price-hero p{margin:0;color:#526b83}.price-section{background:#fff;border:1px solid #d7e9f5;border-radius:28px;padding:26px;margin-top:18px;box-shadow:0 12px 30px rgba(3,105,161,.06)}.price-section h2,.price-note-card h2{margin:0 0 16px;color:#0f2747}.price-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.price-card{border:1px solid #cde8f7;background:linear-gradient(180deg,#fff,#f4fbff);border-radius:22px;padding:18px}.price-card span{display:inline-flex;color:#0787c9;font-size:.78rem;font-weight:900;background:#e0f5ff;border-radius:999px;padding:5px 9px}.price-card h3{font-size:1rem;line-height:1.45;min-height:48px;margin:14px 0 10px;color:#0f2747}.price-card strong{font-size:1.22rem;color:#075985}.fee-list{border:1px solid #e0edf6;border-radius:22px;overflow:hidden}.fee-list div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;padding:15px 18px;background:#fff}.fee-list div:nth-child(odd){background:#f7fbff}.fee-list div+div{border-top:1px solid #e0edf6}.fee-list span{color:#334155}.fee-list strong{color:#0f2747}.price-note-card{background:#fff8e8;border:1px solid #f0d7a5;border-radius:28px;padding:24px;margin-top:18px}.price-note-card ul{margin:0;padding-left:1.2em;color:#455a70}.price-note-card li+li{margin-top:8px}
@media(min-width:820px){.lux-hero-inner{display:grid!important;grid-template-columns:240px minmax(0,1fr)!important;gap:28px!important;align-items:start!important}.lux-nav{display:none!important}.lux-hero-inner::before{content:'株式会社カエル寫眞機\A Smart Key Service';white-space:pre-line;font-weight:900;line-height:1.2;color:#0f2747;font-size:1rem;letter-spacing:.02em}.lux-hero-inner::before{font-weight:900}.hero-copy{padding-top:0}.hero-copy h1{margin-top:0!important}.lead{max-width:680px!important}}
@media(max-width:820px){.price-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-hero{display:block}.price-hero .btn{margin-top:16px}.line-guide{grid-template-columns:1fr}.line-qr-wrap{display:none}}
@media(max-width:640px){.price-card-grid{grid-template-columns:1fr}.fee-list div{grid-template-columns:1fr}.lux-hero{min-height:205px!important}}

/* v1.9 adjustments */
.service-grid.elegant{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.service-card.main-service-card{
  grid-column:1 / -1;
  min-height:150px;
  padding:28px 30px;
  background:linear-gradient(135deg,#ffffff 0%,#eef9ff 100%);
  border-color:#abe3f7;
}
.service-card.sub-service-card{
  min-height:150px;
}
.service-card-body{padding-right:90px;}
.service-card.main-service-card h3{font-size:1.55rem!important;}
.service-card.main-service-card p{max-width:760px;}
.service-card::after{content:'選択する';right:22px;bottom:24px;}
.base-shop-strip{margin-top:22px;background:linear-gradient(135deg,#f0fff7,#ffffff);border-color:#b8efd0;}
.base-shop-strip strong{color:#047857;}
.price-pill{font-weight:900;}
.terms-lead{position:static!important;background:#fff!important;padding:0 0 12px!important;margin-bottom:8px!important;border-bottom:1px solid #e6eef6!important;}
.terms-lead strong{white-space:nowrap;}
.price-card strong{white-space:nowrap;}
@media(max-width:720px){
  .service-grid.elegant{grid-template-columns:1fr;}
  .service-card.main-service-card{grid-column:auto;padding:22px;}
  .service-card.main-service-card h3{font-size:1.2rem!important;}
  .service-card-body{padding-right:0;}
}

.slot-region{display:block;margin-top:6px;font-size:.82rem;color:#486079;font-weight:800}.check-inline-group{display:flex;gap:10px;flex-wrap:wrap}.check-row.compact{padding:10px 12px;border-radius:14px;background:#f8fbff}

/* v1.11 confirmation card unification */
.agreement-layout-single{display:block}
.unified-agreement-card{padding:20px}
.combined-agreement-scroll{max-height:430px!important;padding:0!important;background:#fff!important}
.agreement-section{padding:18px;border-bottom:1px solid #e6eef6}
.agreement-section:last-child{border-bottom:0}
.agreement-section>h4{margin:4px 0 14px;color:#0f2747;font-size:1.16rem}
.compact-eyebrow{margin:0 0 2px!important;font-size:.72rem!important;letter-spacing:.18em!important}
.hidden-agreement-input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;pointer-events:none!important}
.combined-agreement-scroll .terms-lead{position:static!important;background:#fff!important;padding:0 0 12px!important;margin-bottom:8px!important;border-bottom:1px solid #e6eef6!important}
@media(max-width:640px){.combined-agreement-scroll{max-height:360px!important}.agreement-section{padding:14px}.unified-agreement-card{padding:16px}}

/* v1.15 form tweaks */
.hidden{display:none!important}


.line-required-help.hidden { display: none; }
.line-after-submit {
  margin: 22px auto;
  padding: 18px;
  border: 1px solid #b7f0d0;
  border-radius: 20px;
  background: #f0fff7;
  text-align: left;
  max-width: 760px;
}
.line-after-submit h3 { margin: 0 0 8px; color: #064e3b; }
.line-after-submit p { margin: 0 0 14px; color: #244057; }
.line-after-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.line-after-actions .btn { flex: 1 1 220px; }
