@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Shippori+Mincho:wght@600;700&display=swap');

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Noto Sans JP',sans-serif;color:#333;line-height:1.8}

/* ===== HEADER ===== */
header{background:#fff;border-bottom:1px solid #e5e5e5;position:sticky;top:0;z-index:100}
.hd{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 24px}
.hd-logo{display:flex;align-items:center;gap:16px;text-decoration:none;color:#1a2050}
.hd-logo img{height:38px;width:auto}
.hd-logo-name{font-size:18px;font-weight:700;letter-spacing:.05em;text-decoration:none;white-space:nowrap}
nav{display:flex;align-items:center;gap:32px}
nav a{color:#333;text-decoration:none;font-size:15px;font-weight:500;transition:color .3s}
nav a:hover{color:#2a5db0}
.hd-tel{background:#2a5db0;color:#fff;padding:10px 24px;border-radius:6px;
  font-size:14px;font-weight:700;text-decoration:none;letter-spacing:.03em;transition:.3s}
.hd-tel:hover{background:#1e4a8f}

/* ===== HERO ===== */
.hero{position:relative;height:80vh;min-height:500px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;text-align:center}
.hero-img{position:absolute;inset:0;background:url('img/hero.jpg') center/cover no-repeat}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 10%}
.hero-overlay{position:absolute;inset:0;background:rgba(0,0,0,.4)}
.hero-content{position:relative;z-index:2;color:#fff;padding:0 24px}

/* ===== HERO TYPO: v7案Q（社名格上げレイアウト） =====
   縦順：アイブロー → 大見出し → 社名 → ルビ → サブ3行 → ボタン
   大見出し32px／社名26px。サンプル hero_samples_v7.html の .v6 / .v6-Q を移植。 */
.hero.v6 .hero-overlay{background:rgba(0,0,0,.48)}
.hero.v6 .hero-content{max-width:660px}

.v6-eyebrow{font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:500;
  color:rgba(255,255,255,.85);letter-spacing:.22em;margin-bottom:22px;text-transform:none}
.v6-eyebrow::before{content:'';display:inline-block;width:28px;height:1px;
  background:#7eb8f0;vertical-align:middle;margin-right:14px}

.v6-headline{font-family:'Shippori Mincho',serif;color:#fff;letter-spacing:.04em;
  margin:0 0 14px;text-shadow:0 2px 12px rgba(0,0,0,.45);line-height:1.3}
.v6-company{font-family:'Shippori Mincho',serif;color:#fff;letter-spacing:.06em;
  margin:0 0 4px;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.v6-company-ruby{font-family:'Noto Sans JP',sans-serif;color:rgba(255,255,255,.6);
  font-size:13px;letter-spacing:.06em;margin:0 0 26px}
.v6-sub{font-family:'Shippori Mincho',serif;font-size:19px;line-height:1.9;
  color:rgba(255,255,255,.95);letter-spacing:.08em;margin:0 0 30px;max-width:560px;
  text-shadow:0 1px 8px rgba(0,0,0,.4)}

/* 案Q：大見出し32px／社名26px */
.v6-Q .v6-headline{font-size:32px;letter-spacing:.075em;margin-bottom:10px;line-height:1.34}
.v6-Q .v6-company{font-size:26px;font-weight:600;letter-spacing:.08em;margin-bottom:5px}
.v6-Q .v6-company-ruby{margin-bottom:23px}

.hero-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn-primary{background:#2a5db0;color:#fff;padding:14px 36px;border-radius:6px;
  font-size:15px;font-weight:700;text-decoration:none;transition:.3s;letter-spacing:.04em}
.btn-primary:hover{background:#1e4a8f;transform:translateY(-1px)}
.btn-ghost{border:2px solid rgba(255,255,255,.6);color:#fff;padding:12px 34px;border-radius:6px;
  font-size:15px;font-weight:500;text-decoration:none;transition:.3s}
.btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}

/* ===== SECTION ===== */
.sec{padding:80px 24px}
.sec-inner{max-width:1100px;margin:0 auto}
.sec-title{font-family:'Shippori Mincho',serif;font-size:32px;text-align:center;
  margin-bottom:16px;color:#1a2050}
.sec-desc{text-align:center;color:#666;font-size:15px;margin-bottom:48px}

/* ===== TOP: SERVICE SUMMARY ===== */
.svc-summary{background:#f7f8fa}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.svc-card{background:#fff;border-radius:8px;overflow:hidden;
  border:1px solid #eee;transition:.3s;text-decoration:none;color:#333}
.svc-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-3px)}
.svc-card-img{height:160px;background:center/cover no-repeat;position:relative}
.svc-card-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:40%;
  background:linear-gradient(transparent,rgba(0,0,0,.4))}
.svc-card-name{position:absolute;bottom:12px;left:16px;z-index:2;
  color:#fff;font-size:16px;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.svc-card-body{padding:16px}
.svc-card-body p{font-size:13px;color:#666;line-height:1.7}

/* ===== PAGE HEADER ===== */
.page-header{position:relative;height:200px;display:flex;align-items:center;
  padding:0 24px;overflow:hidden}
.page-header-bg{position:absolute;inset:0;background:center/cover no-repeat}
.page-header-overlay{position:absolute;inset:0;background:rgba(40,50,70,.6)}
.page-header h1{position:relative;z-index:2;max-width:1100px;margin:0 auto;width:100%;
  font-family:'Shippori Mincho',serif;font-size:40px;color:#fff;letter-spacing:.08em}

/* ===== SERVICES PAGE ===== */
.svc-section{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.svc-item{text-align:center}
.svc-item h3{font-size:18px;font-weight:700;color:#1a2050;margin-bottom:16px;
  padding-bottom:12px;border-bottom:3px solid #2a5db0;display:inline-block}
.svc-item-img{width:100%;height:200px;object-fit:cover;border-radius:6px;margin-bottom:16px}
.svc-item ul{list-style:none;text-align:left;font-size:14px;color:#555}
.svc-item li{padding:4px 0;padding-left:16px;position:relative}
.svc-item li::before{content:'・';position:absolute;left:0;color:#2a5db0}

/* ===== COMPANY PAGE ===== */
.company-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.co-table{width:100%;border-collapse:collapse}
.co-table tr{border-bottom:1px solid #eee}
.co-table th{padding:14px 16px;text-align:left;font-size:14px;font-weight:600;
  color:#1a2050;width:140px;background:#f7f8fa;vertical-align:top}
.co-table td{padding:14px 16px;font-size:14px;color:#555}
.co-map{border-radius:8px;overflow:hidden;height:360px;border:1px solid #e5e5e5}
.co-map iframe{width:100%;height:100%;border:0}

/* ===== CONTACT PAGE ===== */
.contact-tel-banner{background:#f7f8fa;border:1px solid #e5e5e5;border-radius:10px;
  text-align:center;padding:28px 20px;margin-bottom:36px}
.contact-tel-banner h2{font-size:18px;font-weight:700;color:#1a2050;margin-bottom:10px}
.contact-tel-num{display:inline-block;font-size:38px;font-weight:800;color:#2a5db0;
  text-decoration:none;letter-spacing:1px;line-height:1.1}
.contact-tel-num:hover{color:#1e4a8f}
.contact-tel-hours{font-size:14px;color:#555;margin-top:8px}
@media(max-width:600px){.contact-tel-num{font-size:30px}}

/* ===== THANKS PAGE (contact.php) ===== */
.thanks{max-width:680px;margin:0 auto;text-align:center;padding:20px}
.thanks h2{font-size:24px;font-weight:700;color:#1a2050;margin-bottom:16px}
.thanks p{font-size:15px;color:#555;line-height:1.9;margin-bottom:28px}
.thanks .btn-primary{display:inline-block;text-decoration:none}

.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
.contact-form label{display:block;font-size:14px;font-weight:500;color:#333;margin-bottom:6px}
.contact-form input,.contact-form textarea{width:100%;padding:12px 14px;
  border:1px solid #ccc;border-radius:6px;font-size:14px;font-family:inherit;
  transition:border-color .3s;margin-bottom:20px}
.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:#2a5db0}
.contact-form textarea{height:160px;resize:vertical}
.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.btn-submit{width:100%;padding:14px;background:#2a5db0;color:#fff;border:none;
  border-radius:6px;font-size:16px;font-weight:700;cursor:pointer;transition:.3s}
.btn-submit:hover{background:#1e4a8f}
.form-note{font-size:13px;color:#777;line-height:1.6;margin-bottom:16px}
.form-note a{color:#2a5db0;text-decoration:underline}
.contact-info h3{font-size:20px;font-weight:700;color:#1a2050;margin-bottom:20px}
.contact-info dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:14px}
.contact-info dt{font-weight:600;color:#555}
.contact-info dd{color:#555}
.contact-info a{color:#2a5db0;text-decoration:none}
.contact-info-sub{margin-top:28px;padding-top:20px;border-top:1px solid #eee}
.contact-info-sub h4{font-size:16px;font-weight:600;color:#1a2050;margin-bottom:8px}

/* ===== FOOTER ===== */
footer{background:#1a2050;color:rgba(255,255,255,.6);padding:48px 24px 20px}
.ft-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:32px}
.ft-logo{margin-bottom:12px}
.ft-logo img{height:28px;filter:brightness(0) invert(1)}
.ft-desc{font-size:12px;line-height:1.9;margin-bottom:12px}
.ft-addr{font-size:12px;line-height:1.7}
.ft h4{color:rgba(255,255,255,.8);font-size:13px;margin-bottom:12px;letter-spacing:.05em}
.ft-links{list-style:none}
.ft-links li{margin-bottom:8px}
.ft-links a{color:rgba(255,255,255,.5);text-decoration:none;font-size:13px;transition:.3s}
.ft-links a:hover{color:rgba(255,255,255,.8)}
.ft-bottom{max-width:1100px;margin:0 auto;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex;justify-content:space-between;font-size:11px;color:rgba(255,255,255,.3)}
.ft-bottom a{color:rgba(255,255,255,.3);text-decoration:none}

/* ===== NAV ACTIVE ===== */
nav a.active{color:#2a5db0;font-weight:700}

/* ===== COMPANY HISTORY ===== */
.company-history{margin:32px 0;padding:0 24px}
.history-list{display:grid;grid-template-columns:160px 1fr;gap:12px 24px;max-width:800px;margin:0 auto}
.history-list dt{font-weight:700;color:#2a5db0}
.history-list dd{margin:0;color:#555}

/* ===== PRIVACY POLICY ===== */
.privacy-policy{max-width:800px;margin:48px auto;padding:0 24px}
.privacy-policy h1{font-family:'Shippori Mincho',serif;font-size:32px;margin-bottom:24px;text-align:center}
.privacy-policy h2{font-size:20px;margin-top:32px;margin-bottom:8px;color:#2a5db0}
.privacy-policy section p{line-height:1.8;color:#555}
.pp-intro{margin-bottom:32px;line-height:1.8;color:#555}
.pp-note{margin-top:48px;font-size:14px;color:#666;text-align:center}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .svc-grid,.svc-section{grid-template-columns:1fr}
  .company-grid,.contact-grid{grid-template-columns:1fr}
  .ft-inner{grid-template-columns:1fr}
  /* HERO 案Q モバイル */
  .v6-headline{font-size:26px !important;line-height:1.36}
  .v6-company{font-size:21px !important}
  .v6-sub{font-size:14.5px;line-height:1.9}
  .contact-form .row{grid-template-columns:1fr}
  .history-list{grid-template-columns:110px 1fr;gap:8px 16px}
}

/* ===== HAMBURGER MENU (mobile only) ===== */
.hamburger{display:none;background:none;border:0;padding:8px;cursor:pointer;width:44px;height:44px;position:relative}
.hamburger span{display:block;width:24px;height:3px;background:#1a2050;margin:4px auto;border-radius:2px;transition:.3s}
.hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger[aria-expanded="true"] span:nth-child(2){opacity:0}
.hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:768px){
  .hamburger{display:block}
  header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:16px 24px;gap:0;border-top:1px solid #e5e5e5;box-shadow:0 4px 12px rgba(0,0,0,.08)}
  header nav.open{display:flex}
  header nav a{padding:12px 0;border-bottom:1px solid #f0f0f0;font-size:16px}
  header nav a:last-child{border-bottom:0}
  header nav a.hd-tel{margin-top:8px;border-radius:6px;text-align:center;padding:14px}
  header{position:sticky;top:0;z-index:100}
  .hd{position:relative}
}

/* ===== FLOATING TEL BUTTON (mobile only) ===== */
.floating-tel{display:none;position:fixed;bottom:20px;right:20px;width:56px;height:56px;border-radius:50%;background:#2a5db0;color:#fff;align-items:center;justify-content:center;text-decoration:none;box-shadow:0 4px 12px rgba(0,0,0,.25);z-index:200;transition:.3s}
.floating-tel:hover{background:#1e4a8f;transform:scale(1.05)}
@media(max-width:768px){
  .floating-tel{display:flex}
}

/* ===== HERO C案: テキスト右寄せ + CTA濃紺 ===== */
.hero{justify-content:flex-end;text-align:right}
.hero-content{padding-right:80px;max-width:600px}
.hero-btns{justify-content:flex-end}
.btn-primary{background:#1a2050}
.btn-primary:hover{background:#0f1538}

/* モバイル時は中央寄せに戻す */
@media(max-width:768px){
  .hero{justify-content:center;text-align:center}
  .hero-content{padding:0 24px}
  .hero-btns{justify-content:center}
}

/* ===== MAP LINK ===== */
.maplink{color:inherit;text-decoration:none;display:inline-block;transition:.3s}
.maplink:hover{color:#2a5db0;text-decoration:underline}
.maplink svg{vertical-align:middle;margin:0 4px;transition:.3s}
.maplink:hover svg{transform:scale(1.15)}
