:root {
  --ink:#142033;
  --muted:#5b677a;
  --line:#dde3ec;
  --paper:#ffffff;
  --surface:#ffffff;
  --brand:#142b4d;
  --brand-2:#b08a46;
  --accent:#d4b06a;
  --shadow:0 28px 72px rgba(20,32,51,.12);
  --shadow-soft:0 14px 32px rgba(20,32,51,.08);
  --radius:24px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  font-family:"Segoe UI", "Hiragino Sans", "Yu Gothic", sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#faf8f2 0%, #f6f2ea 38%, #ffffff 82%);
  line-height:1.8;
}
a { color:var(--brand); }
.site-header { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94); backdrop-filter:blur(18px); border-bottom:1px solid rgba(176,138,70,.18); padding:16px 20px; }
.wrap { max-width:1180px; margin:0 auto; }
.site-header .wrap { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.brand { margin:0; font-size:20px; font-weight:900; }
.nav { display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:flex-end; }
.nav a { text-decoration:none; color:#364152; font-weight:700; font-size:14px; }
.nav a:hover { color:var(--brand); }
.header-cta { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 18px; border-radius:999px; background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff !important; box-shadow:0 16px 32px rgba(20,43,77,.18); }
main { background:transparent; }
section { padding:78px 20px; }
section:nth-of-type(even) { background:rgba(255,255,255,.56); }
.hero { padding:108px 20px 92px; background:radial-gradient(circle at 12% 8%, rgba(212,176,106,.18), transparent 28%), radial-gradient(circle at 88% 12%, rgba(20,43,77,.10), transparent 34%), linear-gradient(135deg,#fffdfa 0%, #f7f2e7 48%, #ffffff 100%); }
.hero-inner { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr); gap:52px; align-items:center; }
.hero h1 { margin:0; font-size:clamp(42px,6vw,78px); line-height:1.04; font-weight:950; }
.hero p { max-width:720px; font-size:18px; color:#405066; }
.hero-meta { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.hero-meta li { padding:8px 14px; border-radius:999px; border:1px solid var(--line); background:rgba(255,255,255,.8); font-size:13px; font-weight:700; color:#46556a; }
.header-image, .hero-placeholder { border-radius:32px; overflow:hidden; background:#efe8db; border:1px solid rgba(255,255,255,.95); box-shadow:var(--shadow); }
.header-image img { width:100%; height:clamp(340px,42vw,580px); object-fit:cover; display:block; }
.hero-placeholder { min-height:420px; background:linear-gradient(135deg,#efe7db,#f9f6ef); }
.logo-block img { max-width:184px; max-height:112px; object-fit:contain; display:block; margin:0 0 18px; }
h1 { line-height:1.22; }
h2 { margin:0 0 24px; font-size:clamp(30px,3vw,44px); line-height:1.14; font-weight:900; }
h3 { margin:0 0 10px; font-size:22px; }
.grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:20px; }
.card, .action-panel, .gallery-item, .check-list li, .used-list li, .feature-list li, .flow-list li { background:rgba(255,255,255,.82); border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.card, .action-panel { border-radius:var(--radius); padding:30px; }
.info-list { display:grid; grid-template-columns:170px 1fr; gap:10px 16px; }
.info-list dt { font-weight:800; color:#334155; }
.info-list dd { margin:0; }
.feature-list, .flow-list { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; margin:0; padding:0; list-style:none; }
.feature-list li, .flow-list li { border-radius:22px; padding:24px; }
.eyebrow { display:inline-flex; margin-bottom:14px; padding:6px 12px; border-radius:999px; background:rgba(20,43,77,.08); color:var(--brand); font-size:13px; font-weight:800; letter-spacing:.04em; }
.check-list, .used-list { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin:0; padding:0; list-style:none; }
.check-list li, .used-list li { border-radius:18px; padding:14px 16px; }
.cta-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:12px 22px; border-radius:999px; border:1px solid var(--brand); text-decoration:none; font-weight:800; box-shadow:0 12px 28px rgba(20,43,77,.12); }
.btn.primary, .cta-reserve, .cta-list { background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff; border-color:transparent; }
.cta-phone { background:#173f82; color:#fff; border-color:#173f82; }
.cta-map { background:#fff; color:var(--brand); }
.action-panel h2 { font-size:24px; margin-bottom:8px; }
.note { color:var(--muted); font-size:14px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; }
.gallery-item { margin:0; border-radius:24px; overflow:hidden; }
.gallery-item img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
table { width:100%; border-collapse:collapse; }
th, td { padding:12px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; word-break:break-word; }
.footer { padding:32px 20px 48px; background:#f7f8fb; color:var(--muted); border-top:1px solid var(--line); }
.fixed-cta { display:none; }

body.design-standard { --brand:#1f4e8c; --brand-2:#3d74b8; --accent:#7da4da; background:linear-gradient(180deg,#f7fbff 0%, #ffffff 72%); }
body.design-standard .hero { background:radial-gradient(circle at 12% 8%, rgba(61,116,184,.12), transparent 28%), linear-gradient(135deg,#ffffff,#eef5ff 58%,#ffffff 100%); }
body.design-standard .card, body.design-standard .action-panel { background:#ffffff; }

body.design-simple { --brand:#202938; --brand-2:#4b5563; --accent:#94a3b8; --shadow:0 12px 30px rgba(15,23,42,.06); --shadow-soft:0 8px 18px rgba(15,23,42,.04); --radius:18px; background:#ffffff; }
body.design-simple .hero { background:linear-gradient(180deg,#ffffff 0%, #f8fafc 100%); padding:88px 20px 72px; }
body.design-simple .hero-inner { grid-template-columns:minmax(0,1fr); }
body.design-simple .header-image, body.design-simple .hero-placeholder { border-radius:22px; box-shadow:var(--shadow-soft); }
body.design-simple .card, body.design-simple .action-panel { background:#ffffff; border-radius:18px; box-shadow:var(--shadow-soft); }
body.design-simple .feature-list, body.design-simple .flow-list, body.design-simple .gallery-grid, body.design-simple .check-list, body.design-simple .used-list { grid-template-columns:1fr; }
body.design-simple .btn { box-shadow:none; }

body.design-warm, body.design-modern { background:inherit; }
body.design-warm .hero, body.design-modern .hero { background:inherit; }
body.design-warm .card, body.design-modern .card, body.design-warm .action-panel, body.design-modern .action-panel { background:rgba(255,255,255,.82); }

@media (max-width: 840px) {
  .site-header .wrap { flex-direction:column; align-items:flex-start; }
  .nav { justify-content:flex-start; }
  .hero-inner, .grid, .info-list, .check-list, .used-list, .gallery-grid, .feature-list, .flow-list { grid-template-columns:1fr; }
  .hero { padding:64px 18px 54px; }
  .hero p { font-size:16px; }
  .header-image img, .hero-placeholder { height:300px; min-height:300px; }
  .btn { width:100%; }
  body { padding-bottom:88px; }
  .fixed-cta { position:fixed; left:0; right:0; bottom:0; z-index:20; display:flex; gap:8px; padding:10px; background:rgba(255,255,255,.96); border-top:1px solid var(--line); box-shadow:0 -8px 20px rgba(15,23,42,.10); }
  .fixed-cta .btn { min-height:46px; font-size:14px; padding:8px 10px; }
}