/* ============================================
   Dr.PEDAL individual — v7 UI/UXリファイン
   デザイン原則:
   1. 視覚的な中央（重心）でレイアウト
   2. 色は微妙に違わない・トークン統一
   3. 数字ではなく重心でパディング調整
   ============================================ */

:root{
  /* Colors — palette厳格化 */
  --bg-dark:#0a0a0a;
  --bg-light:#faf7ef;
  --bg-lighter:#fdfaf3;
  --bg-white:#fff;
  --surface:#fff;
  --surface-hover:#fffbe6;

  --brand:#f5d800;        /* Yellow アクセント */
  --brand-strong:#e6c900;
  --brand-soft:#fff8dc;
  --brand-tint:#fffbe6;

  --ink:#0f0f0f;
  --ink-2:#4a4a4a;
  --ink-3:#8a8a8a;
  --ink-4:#c0c0c0;

  --line:#eeeae0;
  --line-strong:#d8d3c5;

  --success:#059669;
  --success-soft:#ecfdf5;
  --error:#dc2626;
  --error-soft:#fef2f2;
  --info:#0284c7;
  --info-soft:#f0f9ff;

  --line-green:#06c755;

  /* Type scale */
  --font-jp:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --font-jp-serif:"Noto Serif JP","Hiragino Mincho ProN","Yu Mincho",serif;
  --font-mono:"Montserrat","Helvetica Neue",sans-serif;

  /* Spacing scale — 4pxベース */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px;
  --s-6:24px; --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px;
  --s-20:80px; --s-24:96px; --s-32:128px;

  /* Radius */
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-xl:20px; --r-full:999px;

  /* Shadow — 弱く重ねる */
  --sh-1:0 1px 2px rgba(15,15,15,.04);
  --sh-2:0 2px 8px rgba(15,15,15,.06);
  --sh-3:0 8px 24px rgba(15,15,15,.08);
  --sh-4:0 16px 48px rgba(15,15,15,.12);
  --sh-yellow:0 8px 24px rgba(245,216,0,.28);

  /* Motion */
  --ease:cubic-bezier(.2,.8,.2,1);
  --dur-1:.15s; --dur-2:.25s; --dur-3:.4s;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  font-family:var(--font-jp);
  color:var(--ink);
  background:var(--bg-white);
  line-height:1.75;
  font-weight:400;
  font-feature-settings:"palt" 1;    /* JP 詰め */
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:opacity var(--dur-1) var(--ease)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
.serif{font-family:var(--font-jp-serif);font-weight:700;letter-spacing:.01em}

/* ==================== Header ==================== */
.hdr{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:var(--s-4) var(--s-8);display:flex;justify-content:space-between;align-items:center;
  background:transparent;transition:all var(--dur-2) var(--ease);
}
.hdr.scrolled{background:rgba(10,10,10,.92);backdrop-filter:saturate(140%) blur(12px)}
.hdr.light{background:rgba(255,255,255,.92);backdrop-filter:saturate(140%) blur(12px);box-shadow:var(--sh-1)}
.hdr .logo{display:flex;align-items:center;gap:var(--s-2);color:#fff;font-weight:700;font-size:15px;letter-spacing:.03em}
.hdr .logo::before{content:"";width:10px;height:10px;background:var(--brand);border-radius:50%}
.hdr.light .logo,.hdr.light nav a{color:var(--ink)}
.hdr nav{display:flex;align-items:center;gap:var(--s-6)}
.hdr nav a{color:#fff;font-size:13px;font-weight:500;letter-spacing:.05em}
.hdr .btn-cta{
  background:var(--brand);color:var(--ink);padding:12px 22px;border-radius:var(--r-full);
  font-weight:700;font-size:13px;letter-spacing:.05em;transition:all var(--dur-2) var(--ease);
}
.hdr .btn-cta:hover{background:var(--brand-strong);opacity:1;transform:translateY(-1px);box-shadow:var(--sh-yellow)}
@media(max-width:768px){
  .hdr{padding:var(--s-3) var(--s-4)}
  .hdr nav a:not(.btn-cta){display:none}
  .hdr .btn-cta{padding:9px 16px;font-size:12px}
}

/* ==================== Hero ==================== */
.hero{position:relative;min-height:100vh;background:var(--bg-dark);color:#fff;display:flex;align-items:center;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(135deg,rgba(10,10,10,.82) 0%,rgba(0,0,0,.68) 60%,rgba(10,10,10,.82) 100%);
}
.hero::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(circle at 20% 30%,rgba(245,216,0,.10) 0%,transparent 40%),
             radial-gradient(circle at 80% 70%,rgba(245,216,0,.06) 0%,transparent 50%);
}
.hero-inner{position:relative;z-index:2;padding:120px var(--s-8) 60px;max-width:1200px;margin:0 auto;width:100%}
.hero .en{font-family:var(--font-mono);letter-spacing:.3em;font-size:11px;color:var(--brand);margin-bottom:var(--s-6);font-weight:600}
.hero .en::before{content:"";display:inline-block;width:40px;height:1px;background:var(--brand);vertical-align:middle;margin-right:var(--s-4)}
.hero .en::after{content:"";display:inline-block;width:40px;height:1px;background:var(--brand);vertical-align:middle;margin-left:var(--s-4)}
.hero .jp-label{font-size:13px;color:var(--brand);margin-bottom:var(--s-4);letter-spacing:.15em;font-weight:500}
.hero .jp-label::before,.hero .jp-label::after{content:"—";margin:0 var(--s-3);color:var(--brand)}
.hero h1{font-family:var(--font-jp-serif);font-weight:700;font-size:clamp(30px,5.5vw,64px);line-height:1.4;letter-spacing:.02em;margin-bottom:var(--s-8)}
.hero h1 em{color:var(--brand);font-style:normal}
.hero .sub{font-size:16px;color:#ccc;margin-bottom:var(--s-10);max-width:640px;line-height:1.9}
.hero .ctas{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.scroll-indicator{position:absolute;bottom:var(--s-8);left:50%;transform:translateX(-50%);z-index:3;color:#fff;font-size:10px;letter-spacing:.4em;font-family:var(--font-mono);writing-mode:vertical-rl}
.scroll-indicator::after{content:"";display:block;width:1px;height:40px;background:var(--brand);margin:var(--s-3) auto 0;animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%,100%{transform:scaleY(1);transform-origin:top}50%{transform:scaleY(.3);transform-origin:top}}

/* ==================== Buttons ==================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  padding:14px 28px;border-radius:var(--r-full);font-weight:700;font-size:14px;letter-spacing:.05em;
  transition:all var(--dur-2) var(--ease);cursor:pointer;border:none;font-family:inherit;line-height:1.2;
}
.btn:hover{opacity:1;transform:translateY(-2px)}
.btn-line{background:var(--line-green);color:#fff;box-shadow:0 4px 16px rgba(6,199,85,.28)}
.btn-line:hover{box-shadow:0 6px 20px rgba(6,199,85,.36)}
.btn-primary{background:var(--brand);color:var(--ink);box-shadow:var(--sh-yellow)}
.btn-primary:hover{background:var(--brand-strong)}
.btn-outline-white{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.btn-outline-white:hover{background:rgba(255,255,255,.08);border-color:#fff}
.btn-outline-dark{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.btn-tel{background:var(--ink);color:#fff}

/* ==================== Sections ==================== */
section{padding:var(--s-24) var(--s-8)}
.wrap{max-width:1160px;margin:0 auto}
.wrap-narrow{max-width:880px;margin:0 auto}
.section-label{font-family:var(--font-mono);letter-spacing:.28em;font-size:11px;color:var(--brand);font-weight:600;margin-bottom:var(--s-5);display:flex;align-items:center;gap:var(--s-4)}
.section-label::before{content:"";width:32px;height:1px;background:var(--brand)}
h2.serif{font-family:var(--font-jp-serif);font-weight:700;font-size:clamp(26px,3.6vw,42px);line-height:1.5;letter-spacing:.02em;margin-bottom:var(--s-5)}
h2.serif em{color:var(--brand-strong);font-style:normal;background:linear-gradient(180deg,transparent 62%,var(--brand) 62%,var(--brand) 88%,transparent 88%);padding:0 4px}
.lead{font-size:15px;color:var(--ink-2);margin-bottom:var(--s-10);line-height:1.9;max-width:720px}
.section-dark{background:var(--bg-dark);color:#fff}
.section-dark h2.serif{color:#fff}
.section-dark h2.serif em{color:var(--ink);background:var(--brand)}
.section-dark .lead{color:#bbb}
.section-cream{background:var(--bg-light)}

/* ==================== Feature cards ==================== */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--s-4);margin-top:var(--s-10)}
.feat{
  background:var(--bg-white);border:1px solid var(--line);border-radius:var(--r-lg);
  /* 視覚的重心：下より上を少し詰める */
  padding:32px 26px 36px;transition:all var(--dur-2) var(--ease);
}
.feat:hover{border-color:var(--brand);transform:translateY(-4px);box-shadow:var(--sh-3)}
.feat .num{font-family:var(--font-mono);font-size:28px;color:var(--brand-strong);font-weight:700;letter-spacing:.05em;margin-bottom:var(--s-3);display:block;line-height:1}
.feat h3{font-family:var(--font-jp-serif);font-size:18px;margin-bottom:var(--s-3);font-weight:700;color:var(--ink);letter-spacing:.02em}
.feat p{color:var(--ink-2);font-size:14px;line-height:1.9}
.section-dark .feat{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.1)}
.section-dark .feat h3{color:#fff}
.section-dark .feat p{color:#aaa}
.section-dark .feat:hover{border-color:var(--brand);background:rgba(245,216,0,.05)}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-6);margin-top:var(--s-10)}
.step{position:relative;padding-top:var(--s-8)}
.step .n{position:absolute;top:-6px;left:0;font-family:var(--font-mono);font-size:52px;font-weight:700;color:var(--brand);opacity:.4;line-height:1}
.step h3{font-family:var(--font-jp-serif);font-size:17px;margin-top:var(--s-4);margin-bottom:var(--s-3);font-weight:700}
.step p{color:var(--ink-2);font-size:13.5px}

/* ==================== Areas ==================== */
.areas-group{margin-top:var(--s-12)}
.areas-group h3{font-family:var(--font-jp-serif);font-size:19px;margin-bottom:var(--s-5);padding-bottom:var(--s-3);border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:var(--s-4)}
.areas-group h3 small{font-family:var(--font-mono);font-size:11px;color:var(--brand);letter-spacing:.2em}
.areas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-3)}
.area-link{display:block;padding:18px 16px;background:var(--bg-white);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);transition:all var(--dur-2) var(--ease);font-weight:600;font-size:14.5px}
.area-link:hover{background:var(--brand);border-color:var(--brand);opacity:1;transform:translateY(-2px);box-shadow:var(--sh-yellow)}
.area-link small{display:block;font-weight:400;color:var(--ink-3);font-size:11px;margin-top:2px}
.area-link:hover small{color:var(--ink-2)}

/* ==================== FAQ ==================== */
.faq details{border-bottom:1px solid rgba(255,255,255,.12);padding:var(--s-5) 0}
.section-cream .faq details{border-bottom-color:var(--line)}
.faq summary{font-family:var(--font-jp-serif);font-weight:700;font-size:15.5px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}
.faq summary::after{content:"+";font-family:var(--font-mono);font-size:22px;color:var(--brand);font-weight:400;transition:transform var(--dur-2) var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:var(--s-4);color:#bbb;font-size:14px;line-height:1.9}
.section-cream .faq details p{color:var(--ink-2)}
.faq summary::-webkit-details-marker{display:none}

/* ==================== CTA Bottom ==================== */
.cta-bottom{background:var(--bg-dark);color:#fff;text-align:center;padding:var(--s-24) var(--s-8)}
.cta-bottom h2{color:#fff}
.cta-bottom .lead{color:#bbb;margin:0 auto var(--s-10)}
.cta-bottom .ctas{display:flex;flex-wrap:wrap;gap:var(--s-3);justify-content:center}

/* Sticky mobile */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:99;display:none;background:#fff;border-top:1px solid var(--line);padding:var(--s-2) var(--s-2);gap:var(--s-2);box-shadow:0 -4px 16px rgba(0,0,0,.08)}
.sticky-cta .btn{flex:1;padding:12px 8px;font-size:12px;gap:var(--s-1);border-radius:var(--r-md)}
@media(max-width:768px){.sticky-cta{display:flex}body{padding-bottom:80px}}

/* Footer */
footer{background:#000;color:#888;padding:var(--s-10) var(--s-8) var(--s-8);text-align:center;font-size:13px}
footer .logo{display:inline-flex;align-items:center;gap:var(--s-2);color:#fff;font-weight:700;margin-bottom:var(--s-4)}
footer .logo::before{content:"";width:10px;height:10px;background:var(--brand);border-radius:50%}
footer a{color:#aaa}
footer nav{margin:var(--s-6) 0;display:flex;flex-wrap:wrap;gap:var(--s-6);justify-content:center;font-size:12px}

/* ==================== Area page hero ==================== */
.area-hero{background:var(--bg-dark);color:#fff;padding:160px var(--s-8) var(--s-20);text-align:center;border-bottom:3px solid var(--brand)}
.area-hero .region{font-family:var(--font-mono);font-size:11px;color:var(--brand);letter-spacing:.3em;margin-bottom:var(--s-4);font-weight:600}
.area-hero h1{font-family:var(--font-jp-serif);font-size:clamp(28px,4vw,42px);margin-bottom:var(--s-5);font-weight:700;line-height:1.4}
.area-hero .sub{font-size:15px;color:#ccc;margin-bottom:var(--s-8);max-width:640px;margin-left:auto;margin-right:auto;line-height:1.9}
.area-hero .ctas{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--s-3)}
.breadcrumb{padding:120px var(--s-8) 0;max-width:1200px;margin:0 auto;font-size:12px;color:var(--ink-3);background:#fff}
.breadcrumb a{color:var(--ink-3)}

/* ==================== Pricing (公用) ==================== */
.zone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-3);margin-top:var(--s-8)}
.zone{background:var(--bg-white);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 16px 26px;text-align:center;transition:all var(--dur-2) var(--ease)}
.zone:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--sh-2)}
.zone .z-label{background:var(--brand);color:var(--ink);display:inline-block;padding:3px 14px;border-radius:var(--r-full);font-size:11px;font-weight:700;letter-spacing:.1em;margin-bottom:var(--s-3);font-family:var(--font-mono)}
.zone .z-dist{font-size:12px;color:var(--ink-3);margin-bottom:var(--s-2)}
.zone .z-fee{font-family:var(--font-jp-serif);font-size:22px;font-weight:700;color:var(--ink)}
.zone .z-fee em{color:var(--brand-strong);font-style:normal}
.price-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r-lg);overflow:hidden;margin-top:var(--s-8);box-shadow:var(--sh-1)}
.price-table th,.price-table td{padding:14px 20px;text-align:left;border-bottom:1px solid var(--line)}
.price-table th{background:var(--bg-lighter);font-weight:700;font-size:13px;color:var(--ink-2);letter-spacing:.05em}
.price-table td.price{text-align:right;font-family:var(--font-jp-serif);font-weight:700;color:var(--brand-strong);white-space:nowrap;font-size:15px}
.price-table tr:last-child td{border-bottom:0}
.price-table tr:hover{background:var(--brand-tint)}
.note{background:var(--brand-tint);border-left:3px solid var(--brand);padding:var(--s-4) var(--s-5);margin:var(--s-6) 0;border-radius:var(--r-sm);font-size:13px;color:var(--ink-2);line-height:1.8}

/* ============================================
   BOOKING FORM — v7 完全リファイン
   ============================================ */
.booking-hero{background:linear-gradient(180deg,var(--bg-lighter) 0%,var(--bg-white) 100%);padding:130px var(--s-8) var(--s-16);text-align:center}
.booking-hero h1{font-family:var(--font-jp-serif);font-size:clamp(28px,4vw,44px);line-height:1.4;margin-bottom:var(--s-5);letter-spacing:.02em}
.booking-hero h1 em{color:var(--brand-strong);font-style:normal;background:linear-gradient(180deg,transparent 60%,var(--brand) 60%,var(--brand) 92%,transparent 92%);padding:0 6px}
.booking-hero .sub{font-size:15px;color:var(--ink-2);line-height:1.9;max-width:640px;margin:0 auto}

/* Progress bar sticky */
.progress-bar{
  position:sticky;top:70px;z-index:50;background:var(--bg-white);
  border-bottom:1px solid var(--line);padding:var(--s-4) var(--s-6);
  backdrop-filter:blur(10px);
}
.progress-inner{max-width:880px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);position:relative}
.progress-inner::before{content:"";position:absolute;top:50%;left:6%;right:6%;height:2px;background:var(--line);z-index:0}
.progress-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;text-align:center}
.progress-step .p-dot{
  width:28px;height:28px;border-radius:50%;background:var(--bg-white);border:2px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--ink-3);
  transition:all var(--dur-2) var(--ease);font-family:var(--font-mono);
}
.progress-step .p-label{font-size:11px;color:var(--ink-3);font-weight:600;line-height:1.2;letter-spacing:.02em}
.progress-step.active .p-dot{background:var(--brand);border-color:var(--brand);color:var(--ink);transform:scale(1.15);box-shadow:var(--sh-yellow)}
.progress-step.active .p-label{color:var(--ink)}
.progress-step.done .p-dot{background:var(--success);border-color:var(--success);color:#fff}
.progress-step.done .p-dot::before{content:"✓";font-size:14px}
.progress-step.done .p-dot span{display:none}
.progress-step.done .p-label{color:var(--ink-2)}
@media(max-width:640px){
  .progress-step .p-label{display:none}
  .progress-bar{padding:var(--s-3) var(--s-3)}
}

/* Booking form container */
.booking-form{padding:var(--s-12) var(--s-4) var(--s-16);background:var(--bg-lighter)}
.booking-form .wrap-narrow{max-width:820px}

/* Step card */
.step-card{
  background:var(--bg-white);border-radius:var(--r-xl);
  padding:var(--s-10) var(--s-8) var(--s-12);
  margin-bottom:var(--s-6);
  box-shadow:var(--sh-2);
  border:1px solid transparent;
  transition:all var(--dur-3) var(--ease);
  position:relative;
}
.step-card.done{border-color:var(--success);background:linear-gradient(180deg,#fff 0%,var(--success-soft) 100%)}
.step-card.done::after{
  content:"✓";position:absolute;top:24px;right:24px;
  width:32px;height:32px;background:var(--success);color:#fff;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;
  animation:pop var(--dur-3) var(--ease);
}
@keyframes pop{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}

.step-head{display:flex;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-2);flex-wrap:wrap}
.step-num{
  font-family:var(--font-mono);font-weight:700;font-size:36px;color:var(--brand-strong);
  line-height:1;letter-spacing:.02em;
}
.step-title{font-family:var(--font-jp-serif);font-size:20px;font-weight:700;letter-spacing:.02em;line-height:1.5;color:var(--ink)}
.step-req{
  display:inline-flex;align-items:center;padding:2px 10px;background:var(--brand);color:var(--ink);
  border-radius:var(--r-full);font-size:10px;font-weight:700;letter-spacing:.08em;line-height:1.4;
}
.step-desc{font-size:13px;color:var(--ink-3);margin-bottom:var(--s-8);margin-top:var(--s-2)}

/* Choice cards (radio-like buttons) */
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s-3)}
.choice-card{
  display:flex;align-items:center;gap:var(--s-3);
  padding:18px 18px 20px; /* 視覚的重心：下少し多め */
  background:var(--bg-white);border:2px solid var(--line);border-radius:var(--r-lg);
  cursor:pointer;transition:all var(--dur-2) var(--ease);text-align:left;font-family:inherit;
  width:100%;
}
.choice-card:hover{border-color:var(--brand-strong);transform:translateY(-2px);box-shadow:var(--sh-2)}
.choice-card.active{background:var(--brand-tint);border-color:var(--brand);box-shadow:var(--sh-yellow)}
.choice-card .c-emoji{
  font-size:26px;line-height:1;flex-shrink:0;width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-lighter);border-radius:var(--r-md);
  transition:background var(--dur-2) var(--ease);
}
.choice-card.active .c-emoji{background:var(--brand)}
.choice-card .c-body{flex:1;min-width:0}
.choice-card .c-title{font-size:14px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:2px}
.choice-card .c-desc{font-size:11px;color:var(--ink-3);line-height:1.5}
.choice-card.active .c-desc{color:var(--ink-2)}

/* Address input */
.addr-row{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-3)}
.addr-input{
  flex:1;min-width:240px;padding:14px 16px;border:2px solid var(--line);border-radius:var(--r-md);
  font-family:inherit;font-size:14px;background:#fff;transition:all var(--dur-2) var(--ease);
}
.addr-input:focus{outline:none;border-color:var(--brand);background:var(--brand-tint)}
.btn-mini{
  padding:12px 20px;border-radius:var(--r-md);font-weight:700;font-size:13px;
  cursor:pointer;border:none;font-family:inherit;transition:all var(--dur-2) var(--ease);white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;
}
.btn-mini.btn-primary{background:var(--brand);color:var(--ink)}
.btn-mini.btn-primary:hover{background:var(--brand-strong)}
.btn-mini.btn-outline-dark{background:#fff;color:var(--ink);border:2px solid var(--ink)}
.btn-mini.btn-outline-dark:hover{background:var(--ink);color:#fff}
.addr-status{margin-top:var(--s-3);padding:12px 16px;border-radius:var(--r-md);font-size:13px;line-height:1.7;min-height:20px;display:none}
.addr-status:not(:empty){display:block}
.addr-status.loading{background:#f0f0f0;color:var(--ink-2);border-left:3px solid var(--ink-3)}
.addr-status.success{background:var(--success-soft);color:var(--success);border-left:3px solid var(--success);font-weight:600}
.addr-status.error{background:var(--error-soft);color:var(--error);border-left:3px solid var(--error);font-weight:600}
@media(max-width:640px){.addr-row{flex-direction:column} .btn-mini{width:100%;justify-content:center}}

/* Date/time */
.datetime-row{display:grid;grid-template-columns:220px 1fr;gap:var(--s-4);align-items:start}
.date-input{padding:14px 16px;border:2px solid var(--line);border-radius:var(--r-md);font-family:inherit;font-size:14px;background:#fff;transition:all var(--dur-2) var(--ease)}
.date-input:focus{outline:none;border-color:var(--brand)}
.time-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--s-2)}
.time-slot-btn{
  padding:14px 8px;border:2px solid var(--line);background:#fff;border-radius:var(--r-md);
  font-family:inherit;font-size:13.5px;font-weight:700;color:var(--ink-2);
  cursor:pointer;transition:all var(--dur-2) var(--ease);
}
.time-slot-btn:hover{border-color:var(--brand-strong);color:var(--ink)}
.time-slot-btn.active{background:var(--brand);border-color:var(--brand);color:var(--ink);box-shadow:var(--sh-yellow)}
@media(max-width:640px){.datetime-row{grid-template-columns:1fr}}

/* Form fields */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-4)}
.form-field{display:flex;flex-direction:column;gap:6px}
.form-field.full{grid-column:1/-1}
.form-field > label{font-size:13px;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:8px}
.form-field input,.form-field select,.form-field textarea{
  padding:13px 14px;border:2px solid var(--line);border-radius:var(--r-md);
  font-family:inherit;font-size:14px;background:#fff;transition:all var(--dur-2) var(--ease);
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--brand);background:var(--brand-tint)}
.form-field textarea{resize:vertical;font-family:inherit;min-height:80px}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

/* Radio pills */
.radio-group{display:flex;gap:var(--s-2);flex-wrap:wrap}
.radio-pill{
  cursor:pointer;padding:12px 22px 14px;background:#fff;border:2px solid var(--line);border-radius:var(--r-full);
  transition:all var(--dur-2) var(--ease);font-size:14px;font-weight:600;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:6px;
}
.radio-pill:hover{border-color:var(--brand-strong);color:var(--ink)}
.radio-pill input{display:none}
.radio-pill:has(input:checked){background:var(--brand-tint);border-color:var(--brand);color:var(--ink);box-shadow:var(--sh-yellow)}

/* ==================== Estimate widget (sticky) ==================== */
.estimate-wrap{position:sticky;bottom:var(--s-4);z-index:40;margin-top:var(--s-8)}
.estimate{
  background:linear-gradient(135deg,#111 0%,#0a0a0a 100%);color:#fff;
  padding:var(--s-6) var(--s-8);border-radius:var(--r-xl);box-shadow:var(--sh-4);
  display:flex;justify-content:space-between;align-items:center;gap:var(--s-6);flex-wrap:wrap;
  border:1px solid rgba(245,216,0,.2);
}
.estimate-body{flex:1;min-width:220px}
.estimate-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.25em;color:var(--ink-4);margin-bottom:6px}
.estimate-amount{font-family:var(--font-jp-serif);font-size:clamp(32px,5vw,44px);font-weight:700;color:var(--brand);line-height:1;letter-spacing:.02em}
.estimate-amount small{font-size:.4em;color:#fff;font-weight:400;margin-left:6px}
.estimate-break{font-size:11.5px;color:var(--ink-4);margin-top:8px;line-height:1.6}
.estimate-cta{
  display:inline-flex;align-items:center;gap:8px;padding:16px 28px 18px;
  background:var(--line-green);color:#fff;border-radius:var(--r-full);
  font-weight:700;font-size:14px;cursor:pointer;border:none;font-family:inherit;
  transition:all var(--dur-2) var(--ease);box-shadow:0 4px 20px rgba(6,199,85,.35);
  letter-spacing:.03em;
}
.estimate-cta:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(6,199,85,.5);opacity:1}
.estimate-cta:disabled{background:#333;color:#666;box-shadow:none;cursor:not-allowed}
.estimate-cta:disabled:hover{transform:none}
@media(max-width:640px){
  .estimate{padding:var(--s-4) var(--s-5)}
  .estimate-cta{width:100%;justify-content:center}
}

/* Fine print */
.fine{font-size:11.5px;color:var(--ink-3);line-height:1.8;text-align:center;margin-top:var(--s-6)}
.fine a{color:var(--ink-2);text-decoration:underline}
