/* 緊急用静的ページ：PHP・JavaScript・外部フォント・外部画像は使用しません。 */
:root { --navy:#12345c; --blue:#0879c8; --ink:#1b3047; --muted:#526579; --pale:#edf7fd; --line:#dbe8f1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif; line-height:1.8; background:#fff; }
a { color:inherit; }
.container { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.site-header { background:#fff; box-shadow:0 1px 7px rgba(20,52,80,.08); position:relative; z-index:2; }
.header-inner { min-height:94px; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.brand { display:flex; align-items:center; gap:14px; }
.brand-mark { flex:none; width:54px; height:54px; border-radius:50%; background:linear-gradient(138deg,#56c5f2 0%,#0877c3 52%,#15518b 100%); position:relative; overflow:hidden; }
.brand-mark::after { content:""; position:absolute; width:70px; height:24px; border-radius:50%; background:white; left:-7px; top:18px; transform:rotate(-32deg); opacity:.92; }
.brand-text { display:flex; flex-direction:column; line-height:1.35; }
.brand-text strong { color:var(--navy); font-size:24px; letter-spacing:.025em; }
.brand-text small { color:#536a83; letter-spacing:.06em; font-size:12px; }
.header-nav { display:flex; align-items:center; gap:0; white-space:nowrap; }
.header-nav a { padding:0 18px; border-right:1px solid #d4dde6; text-decoration:none; font-size:14px; font-weight:700; }
.header-nav a:last-child { border-right:0; padding-right:0; }
.header-nav a:hover { color:var(--blue); }
.hero { position:relative; overflow:hidden; min-height:545px; background:linear-gradient(105deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.96) 39%,rgba(243,250,255,.69) 62%,rgba(225,244,255,.3) 100%),linear-gradient(165deg,#c7ecff,#edf8fd 58%,#fff); }
.hero-art { position:absolute; pointer-events:none; width:43%; right:0; top:0; bottom:0; opacity:.75; background:linear-gradient(90deg,transparent,#d3edfa 70%); }
.window-frame { position:absolute; inset:0 11% 14% 13%; border-left:12px solid rgba(165,208,226,.25); border-right:12px solid rgba(165,208,226,.22); background:repeating-linear-gradient(90deg,transparent 0 50px,rgba(60,130,172,.06) 50px 77px),linear-gradient(0deg,#edf7fd 4%,transparent 40%); }
.desk { position:absolute; right:-5%; bottom:1%; width:110%; height:19%; border-radius:45% 0 0 0; background:linear-gradient(#e1eff6,#f6fafc); transform:skewY(-4deg); }
.plant { position:absolute; width:145px; height:200px; right:3%; bottom:14%; opacity:.27; border-radius:60% 0 70% 10%; transform:rotate(-19deg); background:radial-gradient(ellipse at 45% 40%,#7eae8c 0 26%,transparent 29%),radial-gradient(ellipse at 70% 58%,#7eae8c 0 26%,transparent 29%),radial-gradient(ellipse at 24% 68%,#7eae8c 0 22%,transparent 26%); }
.hero-inner { position:relative; padding-top:61px; padding-bottom:55px; }
.hero-copy { max-width:820px; }
.eyebrow { margin:0 0 4px; font-size:12px; letter-spacing:.19em; font-weight:700; color:var(--blue); }
h1 { font-size:clamp(25px,3.3vw,42px); letter-spacing:.015em; color:var(--navy); margin:0; line-height:1.45; }
.mobile-break { display:none; }
.short-line { width:65px; height:4px; background:var(--blue); margin:22px 0 26px; }
.lead { font-size:clamp(16px,1.65vw,20px); line-height:1.9; font-weight:600; margin:0 0 12px; }
.notice { max-width:630px; font-size:15px; margin:0 0 28px; }
.contact-box { display:flex; align-items:center; gap:22px; padding:20px 28px; width:min(680px,100%); background:rgba(229,245,254,.94); border:1px solid #dfedf6; border-radius:16px; }
.phone-icon { width:68px; height:68px; border-radius:50%; flex:none; color:#fff; background:#057cc9; display:grid; place-items:center; font-size:39px; line-height:1; }
.contact-label { margin:0; font-weight:700; font-size:15px; }
.phone-number { display:inline-block; text-decoration:none; color:#086fb7; font-size:clamp(26px,3vw,39px); font-weight:800; line-height:1.4; letter-spacing:.015em; }
.contact-hours { margin:0; font-size:13px; }
.info-section { padding:37px 0; }
.business-section { background:var(--pale); }
.company-section { background:#fff; }
.info-inner { display:grid; grid-template-columns:245px minmax(0,1fr); gap:42px; align-items:start; }
h2 { margin:0; font-size:25px; color:var(--navy); padding-left:16px; border-left:4px solid var(--blue); line-height:1.4; }
.info-body p { margin:0 0 6px; }
.info-body p:last-child { margin-bottom:0; }
.company-name { color:var(--navy); font-weight:800; font-size:19px; }
.info-body a { text-decoration:none; color:#0a66a8; }
.site-footer { background:var(--navy); color:#fff; }
.footer-inner { min-height:76px; display:flex; justify-content:space-between; align-items:center; gap:18px; }
.footer-company { font-weight:700; }
.site-footer small { font-size:12px; opacity:.9; }
@media (max-width:760px) {
  .container { width:min(100% - 32px,1160px); }
  .header-inner { min-height:75px; }
  .brand-mark { width:40px; height:40px; }
  .brand-mark::after { width:55px; top:12px; }
  .brand-text strong { font-size:18px; }
  .brand-text small { font-size:10px; }
  .header-nav { display:none; }
  .hero { min-height:auto; }
  .hero-art { width:63%; opacity:.27; }
  .hero-inner { padding-top:46px; padding-bottom:48px; }
  .desktop-break { display:none; }
  .mobile-break { display:block; }
  .short-line { margin:19px 0 23px; }
  .notice { font-size:14px; }
  .contact-box { gap:14px; padding:17px; }
  .phone-icon { width:49px; height:49px; font-size:30px; }
  .contact-label { font-size:13px; }
  .contact-hours { font-size:12px; }
  .info-section { padding:31px 0; }
  .info-inner { display:block; }
  h2 { font-size:21px; margin-bottom:19px; }
  .info-body { font-size:14px; }
  .footer-inner { flex-direction:column; align-items:flex-start; justify-content:center; gap:0; padding-block:16px; }
}
@media (max-width:380px) { .phone-number { font-size:23px; } .contact-box { gap:10px; } }
