:root{
  --max: 1224px;
  --gap: 24px;
  --fg: #0e0e0e;
  --muted: #5a5a5a;
  --accent: #2b6cb0;
  --line: #e6e6e6;
  --card-bg: #fff;
  --alt: #f7f9fc;
}
html { box-sizing: border-box; scroll-behavior:smooth; }
*, *::before, *::after { box-sizing: inherit; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--fg);
  line-height: 1.55;
  background: #fff;
}
a { color: var(--accent); text-decoration: none; }
a:hover, a:focus { text-decoration: underline; }
img { max-width:100%; display:block; }
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link:focus{left:16px;top:16px;width:auto;height:auto;background:#fff;border:1px solid var(--line);padding:8px 12px;z-index:1000}
.container { max-width: var(--max); margin:0 auto; padding:0 16px; }
.site-header{border-bottom:1px solid var(--line); background:#fff; position:sticky; top:0; z-index:20;}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:78px;}
.brand{display:flex; align-items:center; gap:12px; color:inherit;}
.brand:hover{text-decoration:none;}
.brand-logo{width:56px; height:56px; object-fit:contain;}
.brand-text{display:flex; flex-direction:column; line-height:1.2;}
.brand-text strong{font-size:1rem;}
.brand-text span{font-size:.92rem; color:var(--muted);}
.site-nav ul{display:flex; align-items:center; gap:18px; list-style:none; padding:0; margin:0;}
.site-nav a{color:#222;}
.site-nav a[aria-current="page"]{font-weight:700;}
.cta-phone,.btn{display:inline-block; padding:11px 15px; border-radius:10px; border:1px solid var(--accent); color:#fff; background:var(--accent); text-decoration:none; font-weight:600;}
.btn.secondary{background:#fff; color:var(--accent);}
.cta-phone:hover,.btn:hover{text-decoration:none; opacity:.96;}
.hero { padding: 32px 0 20px; border-bottom: 1px solid var(--line); background: #fff; }
.hero-grid{display:grid; grid-template-columns:1.12fr .88fr; gap:var(--gap); align-items:start;}
.hero-copy h1 {font-size: clamp(2rem, 3.2vw, 3rem); margin:.3rem 0 .8rem; line-height:1.12;}
.kicker{display:inline-block; margin-bottom:12px; color:var(--accent); font-weight:700; letter-spacing:.02em;}
.lead {font-size:1.05rem; color:#333; max-width:62ch;}
.button-row{display:flex; gap:12px; flex-wrap:wrap; margin:20px 0 14px;}
.anchor-links{display:flex; flex-wrap:wrap; gap:14px; font-size:.96rem;}
.video-frame,.image-frame{width:100%; aspect-ratio:16/7.2; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#000; box-shadow: 0 8px 20px rgba(0,0,0,.06);}
.video-frame video,.image-frame img{width:100%; height:100%; object-fit:cover; display:block;}
.breadcrumb{list-style:none; display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0 0 16px; font-size:.95rem; color:var(--muted);}
.breadcrumb .sep{color:#98a2ad;}
.section{padding:32px 0;}
.section.alt{background:var(--alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:start;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap); align-items:stretch;}
.card,.contact-box,.detail-box,.faq-item, .fee-card, .post-card{border:1px solid var(--line); border-radius:14px; background:var(--card-bg); padding:20px;}
.card h2,.contact-box h2,.detail-box h2,.section h2{margin-top:0; line-height:1.2;}
.check-list,.plain-list{padding-left:20px; margin:0;}
.check-list li,.plain-list li{margin:0 0 10px;}
.faq-wrap{display:grid; gap:12px;}
details.faq-item summary{cursor:pointer; font-weight:700;}
details.faq-item div{padding-top:12px;}
.site-footer{padding:28px 0 40px;}
.footer-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:var(--gap); border-top:1px solid var(--line); padding-top:20px;}
.small{font-size:.95rem; color:var(--muted);}
.locations-map{border:1px solid var(--line); border-radius:14px; overflow:hidden; min-height:360px;}
.locations-map iframe{display:block; width:100%; height:360px; border:0;}
.fee-grid,.post-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:var(--gap);}
.post-card h3,.fee-card h3{margin-top:0;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-grid .full{grid-column:1/-1;}
.form-grid input,.form-grid textarea{width:100%; padding:12px 14px; border:1px solid #cfd6df; border-radius:10px; font:inherit;}
.notice{font-size:.95rem; color:var(--muted);}
@media (max-width: 980px){
  .hero-grid,.grid-2,.grid-3,.footer-grid,.fee-grid,.post-grid,.form-grid{grid-template-columns:1fr;}
  .site-nav{display:none;}
}
