/* =========================================================
   ダイビング総合トップ専用
   南国・海・ダイビングの専門性を両立
   ========================================================= */

.diving-hub {
  --d-deep:#064b68;
  --d-ocean:#087f9e;
  --d-turquoise:#35b8c7;
  --d-aqua:#edfafa;
  --d-sand:#fff8e8;
  --d-orange:#f28a31;
  color:#17384d;
  background:#f6fbfc;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",
              "Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
}
.diving-hub * { box-sizing:border-box; }
.diving-hub img { display:block; max-width:100%; height:auto; }
.diving-hub a { transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease; }

.diving-top-photo {
  overflow:hidden;
  background:#073f59;
}
.diving-top-photo img {
  display:block;
  width:100%;
  height:auto;
}

/* Trust strip */
.diving-trust-strip {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:#cce2e7;
  border-bottom:1px solid #cce2e7;
}
.diving-trust-strip div {
  min-height:78px;
  padding:16px 10px;
  background:#fff;
  text-align:center;
}
.diving-trust-strip strong {
  display:block;
  margin-bottom:4px;
  color:#12455e;
  font-size:.92rem;
}
.diving-trust-strip span {
  color:#6a7f8d;
  font-size:.78rem;
}

/* Intro hero */
.diving-intro {
  position:relative;
  overflow:hidden;
  padding:55px 38px 50px;
  color:#fff;
  background:
    radial-gradient(circle at 87% 15%,rgba(255,210,100,.35) 0%,rgba(255,210,100,0) 24%),
    linear-gradient(135deg,#064b68 0%,#087f9e 58%,#35b8c7 100%);
}
.diving-intro::after {
  content:"";
  position:absolute;
  left:-5%; right:-5%; bottom:-11px;
  height:32px;
  opacity:.42;
  background:
    radial-gradient(28px 12px at 28px 0,
      transparent 25px,
      rgba(255,255,255,.52) 26px,
      rgba(255,255,255,.52) 28px,
      transparent 29px)
    0 0 / 56px 26px repeat-x;
}
.diving-intro-inner {
  position:relative;
  z-index:1;
  max-width:820px;
}
.diving-eyebrow {
  margin:0 0 8px;
  color:#0788a4;
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.15em;
}
.diving-intro .diving-eyebrow { color:#c8f4f5; }
.diving-intro h1 {
  margin:0 0 14px;
  color:#fff;
  font-size:2.25rem;
  line-height:1.35;
}
.diving-lead {
  max-width:770px;
  margin:0;
  color:rgba(255,255,255,.95);
  line-height:1.9;
}
.diving-intro-symbols {
  margin-top:18px;
  color:#ffe09a;
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:.17em;
}

/* Jump nav */
.diving-jump-nav {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:#c8e0e5;
}
.diving-jump-nav a {
  display:flex;
  min-height:58px;
  align-items:center;
  justify-content:center;
  padding:12px;
  color:#145069;
  background:#fff;
  font-weight:800;
  text-align:center;
  text-decoration:none;
}
.diving-jump-nav a:hover { background:#eefbfc; }

/* Sections */
.diving-section { padding:48px 32px; }
.diving-section-inner { max-width:920px; margin:0 auto; }
.diving-section-white { background:#fff; }
.diving-section-aqua {
  background:linear-gradient(180deg,#ecfafa 0%,#f7fcfc 70%,#fff9ed 100%);
}
.diving-section-sand {
  background:linear-gradient(180deg,#fff8e9 0%,#fffdf8 100%);
}
.diving-title {
  margin:0 0 24px;
  color:#12435d;
  font-size:1.78rem;
  line-height:1.4;
}

/* Main feature cards */
.diving-feature-card {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  overflow:hidden;
  border:1px solid #cfe4e8;
  border-radius:15px;
  background:#fff;
  box-shadow:0 12px 29px rgba(18,80,104,.08);
}
.diving-feature-card-reverse .diving-feature-image { order:2; }
.diving-feature-image { min-height:300px; }
.diving-feature-image img {
  width:100%;
  height:100%;
  min-height:300px;
  object-fit:cover;
}
.diving-feature-body { padding:29px 27px; }
.diving-feature-body h3 {
  margin:0 0 10px;
  color:#12435d;
  font-size:1.35rem;
}
.diving-feature-body p {
  color:#587181;
  line-height:1.8;
}
.diving-badge {
  display:inline-block;
  margin-bottom:12px;
  padding:6px 11px;
  border-radius:999px;
  color:#fff;
  background:#f28a31;
  font-size:.76rem;
  font-weight:900;
}
.diving-badge-blue { background:#0a8ca5; }

/* Standard cards */
.diving-card-grid {
  display:grid;
  gap:18px;
}
.diving-card-grid-2 {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.diving-card,
.diving-info-card {
  overflow:hidden;
  border:1px solid #d3e5ea;
  border-radius:13px;
  background:#fff;
  box-shadow:0 9px 24px rgba(22,82,105,.06);
}
.diving-card img {
  width:100%;
  height:215px;
  object-fit:cover;
}
.diving-card-body {
  padding:23px 21px;
}
.diving-card-body h3,
.diving-info-card h3 {
  margin:0 0 9px;
  color:#12435d;
  font-size:1.22rem;
}
.diving-card-body p,
.diving-info-card p {
  color:#5a7282;
  line-height:1.75;
}
.diving-text-link,
.diving-link-list a,
.diving-info-links a {
  color:#087d9b;
  font-weight:800;
  text-decoration:none;
}
.diving-link-list,
.diving-info-links {
  display:grid;
  gap:8px;
  margin-top:14px;
}
.diving-link-list a,
.diving-info-links a {
  padding:9px 11px;
  border-radius:7px;
  background:#eef9fb;
}

/* Info card */
.diving-info-card {
  padding:28px 24px;
  background:
    radial-gradient(circle at 88% 12%,rgba(255,205,97,.18),rgba(255,205,97,0) 27%),
    linear-gradient(180deg,#f0fbfc 0%,#fff9ec 100%);
}
.diving-info-symbol {
  margin-bottom:9px;
  color:#2eb0c0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.1rem;
}

/* Buttons */
.diving-btn {
  display:inline-flex;
  min-height:46px;
  align-items:center;
  justify-content:center;
  padding:11px 20px;
  border-radius:8px;
  color:#fff !important;
  background:linear-gradient(90deg,#087e9d,#08a1b4);
  font-weight:800;
  text-decoration:none;
  box-shadow:0 7px 18px rgba(5,103,130,.18);
}
.diving-btn-orange {
  background:linear-gradient(90deg,#ef7d25,#f49c35);
}
.diving-btn:hover { opacity:.92; transform:translateY(-1px); }

/* Brand */
.diving-brand-section {
  position:relative;
  overflow:hidden;
  padding:50px 32px;
  background:
    linear-gradient(180deg,#edfafa 0%,#f8fdfd 65%,#fff8e9 100%);
}
.diving-brand-copy {
  max-width:800px;
  margin:0 0 25px;
  color:#526f80;
  line-height:1.9;
}
.diving-network-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.diving-network-item {
  display:block;
  padding:20px 13px;
  border:1px solid #cfe6e9;
  border-radius:10px;
  color:#315b6d;
  background:#fff;
  text-align:center;
  text-decoration:none;
}
.diving-network-item strong {
  display:block;
  margin-bottom:5px;
  color:#08748e;
}
.diving-network-item span {
  display:block;
  color:#697f8c;
  font-size:.8rem;
  line-height:1.5;
}

/* CTA */
.diving-cta {
  position:relative;
  overflow:hidden;
  padding:46px 30px;
  color:#fff;
  background:
    radial-gradient(circle at 87% 15%,rgba(255,190,75,.28) 0%,rgba(255,190,75,0) 25%),
    linear-gradient(135deg,#075772,#087d95);
  text-align:center;
}
.diving-cta::after {
  content:"";
  position:absolute;
  left:-5%; right:-5%; bottom:-11px;
  height:29px;
  opacity:.35;
  background:
    radial-gradient(24px 11px at 24px 0,
      transparent 21px,
      rgba(255,255,255,.48) 22px,
      rgba(255,255,255,.48) 24px,
      transparent 25px)
    0 0 / 48px 25px repeat-x;
}
.diving-cta > * { position:relative; z-index:1; }
.diving-cta-symbols {
  margin-bottom:8px;
  color:#ffd17b;
  font-family:Georgia,"Times New Roman",serif;
  letter-spacing:.16em;
}
.diving-cta h2 {
  margin:0 0 10px;
  color:#fff;
  font-size:1.55rem;
}
.diving-cta p {
  max-width:720px;
  margin:0 auto 20px;
  color:rgba(255,255,255,.9);
  line-height:1.8;
}
.diving-btn-light {
  color:#07647d !important;
  background:#fff;
}

/* Mobile */
@media only screen and (max-width:760px) {
  .diving-trust-strip { grid-template-columns:repeat(2,1fr); }
  .diving-intro { padding:42px 20px 40px; }
  .diving-intro h1 { font-size:1.82rem; }
  .diving-jump-nav { grid-template-columns:repeat(2,1fr); }
  .diving-section,
  .diving-brand-section { padding:38px 18px; }
  .diving-title { font-size:1.48rem; }
  .diving-feature-card,
  .diving-card-grid-2 { grid-template-columns:1fr; }
  .diving-feature-card-reverse .diving-feature-image { order:0; }
  .diving-feature-image,
  .diving-feature-image img { min-height:220px; }
  .diving-feature-body { padding:23px 19px; }
  .diving-card img { height:190px; }
  .diving-network-grid { grid-template-columns:repeat(2,1fr); }
  .diving-cta { padding:38px 20px; }
  .diving-cta h2 { font-size:1.35rem; }
}
