/* ==========================================================
   訪問看護ステーション Orca — 共通スタイル
   デザイン言語：淡い青 / 白カード / オレンジCTA / 丸ゴシック / 線画イラスト
   ========================================================== */

:root {
  /* ロゴ実測色：青 #669eca ／ オレンジ #f1b04b（2026-07-06抽出） */
  --c-bg: #f5fafd;
  --c-bg-blue: #e8f2fa;
  --c-white: #ffffff;
  --c-navy: #24435f;
  --c-blue: #669eca;
  --c-blue-deep: #4a7ca8; /* v0.6: ワントーン明るく（白文字コントラストAA確保の範囲で） */
  --c-line: #cfe3f2;
  --c-orange: #f1b04b;
  --c-orange-d: #d99427;
  --c-orange-bg: #fdf3e0;
  --c-text: #33475a;
  --c-muted: #64798e;
  --radius: 14px;
  --shadow: 0 2px 12px rgba(69, 116, 157, 0.10);
  --font: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Hiragino Sans", "Yu Gothic", sans-serif;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 90px; }

html { font-size: 17px; }

body {
  font-family: var(--font);
  color: var(--c-text);
  background: var(--c-white);
  line-height: 1.9;
  font-size: 1rem;
  letter-spacing: 0.02em;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-blue); }
p a:not(.btn) { transition: color 0.25s ease; }
p a:not(.btn):hover { color: var(--c-blue-deep); }
ul { list-style: none; }
main { display: block; }

/* ---------- 日本語の改行制御（スマホの中途半端な折り返し対策） ---------- */
h1, h2, h3, .section-lead, .band-sub, .cta-note, .page-hero p { text-wrap: balance; }
.ib { display: inline-block; } /* 文節単位でのみ折り返させる */

/* ---------- 要確認マーカー（公開前にゼロにする） ---------- */
.todo {
  background: #fff3bf;
  border: 1px dashed #d9a400;
  color: #6b5900;
  padding: 0 0.45em;
  border-radius: 4px;
  font-size: 0.88em;
  font-weight: 500;
}

/* ---------- 汎用 ---------- */
.container { max-width: 1080px; margin: 0 auto; padding: 0 20px; }

.section { padding: 72px 0; }
.section-alt { background: var(--c-bg); }

.section-title {
  display: flex; align-items: center; gap: 12px;
  font-size: 1.5rem; color: var(--c-navy); margin-bottom: 28px;
}
.section-title::before {
  content: ""; width: 6px; height: 1.4em; border-radius: 3px;
  background: var(--c-blue); flex: none;
}

.section-title-center {
  text-align: center; font-size: 1.72rem; color: var(--c-navy); letter-spacing: 0.04em;
  margin-bottom: 18px; padding-bottom: 18px; position: relative;
}
@media (max-width: 720px) { .section-title-center { font-size: 1.45rem; } }
.section-title-center::after {
  content: ""; position: absolute; left: 50%; transform: translateX(-50%); bottom: 0;
  width: 92px; height: 10px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 10'%3E%3Cpath d='M2 6 Q12 1 22 6 T42 6 T62 6 T82 6' fill='none' stroke='%23f1b04b' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/contain;
}
.section-lead { text-align: center; color: var(--c-muted); margin-bottom: 40px; }

.btn {
  display: inline-block; padding: 14px 32px; border-radius: 999px;
  text-decoration: none; font-weight: 700; text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
  border: none; cursor: pointer; font-family: var(--font); font-size: 1rem;
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(30,60,90,0.18); }
.btn-primary { background: var(--c-orange); color: #fff; }
.btn-primary:hover { background: var(--c-orange-d); }
.btn-outline { background: #fff; color: var(--c-blue-deep); border: 2px solid var(--c-blue); }
.btn-outline:hover { background: var(--c-bg-blue); border-color: var(--c-blue-deep); }
.btn-ghost-white { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.85); }
.btn-ghost-white:hover { background: #fff; color: var(--c-blue-deep); border-color: #fff; }

.note-box {
  background: var(--c-bg-blue); border-radius: var(--radius);
  padding: 18px 24px; font-size: 0.95rem;
}
.partner-contact-box { margin-top: 22px; padding: 20px 22px; }
.partner-contact-box h3 { color: var(--c-navy); font-size: 1.02rem; margin-bottom: 10px; }
.partner-contact-details { display: flex; flex-wrap: wrap; gap: 4px 22px; }
.partner-contact-line { display: flex; align-items: center; white-space: nowrap; }
.partner-contact-line .contact-icon { color: var(--c-blue-deep); margin-right: 6px; }
.partner-contact-line strong { color: var(--c-navy); }
.partner-contact-guide { margin-top: 10px; line-height: 1.75; }
.partner-contact-caution { margin-top: 5px; color: var(--c-muted); font-size: 0.8rem; line-height: 1.65; }

/* ---------- ヘッダー ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,0.96);
  border-bottom: 1px solid var(--c-line);
  backdrop-filter: blur(6px);
}
.header-inner {
  max-width: 1360px; margin: 0 auto; padding: 14px 20px;
  display: flex; align-items: center; gap: 18px;
}
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; flex: none; }
.brand-mark-img { height: 70px; width: auto; display: block; flex: none; }
.brand-text { color: var(--c-navy); font-weight: 700; line-height: 1.15; white-space: nowrap; }
.brand-text .brand-text-small { display: block; font-size: 0.78rem; letter-spacing: 0.1em; color: var(--c-muted); }
.brand-text strong { font-size: 1.55rem; color: var(--c-blue-deep); letter-spacing: 0.05em; }
.brand-logo-h { height: 140px; width: auto; display: block; } /* v0.6.50: 白抜きロゴに合わせ120〜150px範囲に拡大（指摘6） */
.brand-logo-full { height: 96px; width: auto; display: block; } /* v0.6.41: 全ページ公式ロゴ単体表示（HTML文字なし） */
@media (max-width: 960px) {
  .brand-mark-img { height: 54px; }
  .brand-text strong { font-size: 1.3rem; }
  .brand-text .brand-text-small { font-size: 0.68rem; }
  .brand-logo-h { height: 104px; }
  .brand-logo-full { height: 72px; }
}

.global-nav { margin-left: auto; }
.global-nav ul { display: flex; gap: 2px; }
.global-nav a {
  display: block; position: relative; padding: 8px 8px; text-decoration: none;
  color: var(--c-navy); font-size: 0.98rem; font-weight: 500;
  border-radius: 8px; white-space: nowrap;
  transition: background-color 0.25s ease, color 0.25s ease;
}
.global-nav a:hover { background: var(--c-bg-blue); }
.global-nav a.is-current { color: var(--c-blue-deep); font-weight: 700; }
.global-nav a.is-current::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 1px; height: 5px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M1 4 C10 0 18 0 27 4 S44 8 53 4 S70 0 79 4 S91 8 99 4' fill='none' stroke='%23f1b04b' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}

.header-contact { text-align: right; flex: none; line-height: 1.4; }
.header-contact .tel {
  color: var(--c-navy); font-weight: 700; text-decoration: none; font-size: 1.15rem; white-space: nowrap;
}
.header-contact .tel-hours { display: block; font-size: 0.85rem; color: var(--c-muted); }
.header-cta { padding: 13px 20px; font-size: 0.95rem; flex: none; }

.nav-toggle {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; background: none; border: none; cursor: pointer; flex: none;
}
.nav-toggle span { display: block; height: 3px; border-radius: 2px; background: var(--c-blue-deep); transition: 0.25s; }

/* ---------- ページヒーロー（下層：トップと同じ質感に。指摘6対応） ---------- */
.page-hero {
  background: linear-gradient(180deg, #d8e9f7 0%, var(--c-bg-blue) 100%);
  text-align: center; padding: 62px 20px 96px;
  position: relative; overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 40px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 44' preserveAspectRatio='none'%3E%3Cpath d='M0 24 Q150 4 300 22 T600 18 T900 24 T1200 16 V44 H0 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.page-hero h1 { color: var(--c-navy); font-size: 2rem; letter-spacing: 0.04em; }
.page-hero p { color: var(--c-muted); margin-top: 8px; }
@media (max-width: 720px) {
  .page-hero { padding: 46px 20px 72px; }
  .page-hero h1 { font-size: 1.55rem; }
  .page-hero::after { height: 26px; }
}

/* ---------- トップヒーロー ---------- */
.top-hero {
  background: linear-gradient(180deg, var(--c-bg-blue) 0%, #f7fbfe 100%);
  overflow: hidden; position: relative;
}
.top-hero-inner {
  max-width: 1080px; margin: 0 auto; padding: 88px 20px 40px;
  position: relative; z-index: 1; text-align: center;
}
.top-hero h1 {
  color: var(--c-navy); font-size: clamp(1.7rem, 4.2vw, 2.6rem); line-height: 1.6; margin-bottom: 20px;
}
.top-hero .hero-lead { max-width: 640px; margin: 0 auto 32px; }
.hero-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.hero-wave { display: block; width: 100%; margin-top: 24px; }

/* ---------- カード ----------
   列数はブレークポイントで明示制御する（auto-fitの中途半端な折り返し=F-004対策） */
.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 960px) { .card-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .card-grid { grid-template-columns: 1fr; } }
.card {
  background: var(--c-white); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 28px 24px; border: 1px solid var(--c-line);
}
.card h3 { color: var(--c-blue-deep); font-size: 1.08rem; margin-bottom: 10px; }
.card .card-icon { width: 64px; height: 64px; margin-bottom: 14px; } /* v0.6.12: 情景イラスト化に合わせ拡大 */
.card .card-icon-svg { width: 52px; height: 52px; margin-bottom: 12px; }
.card p { font-size: 0.97rem; }
.card-link { text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.card-link:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(30,60,90,0.14); }
.card-more { color: var(--c-orange-d); font-weight: 700; font-size: 0.9rem; display: inline-block; }
.card-link .card-more { margin-top: auto; padding-top: 14px; } /* リンクを下端に揃える */

/* ---------- 表 ---------- */
.info-table { width: 100%; border-collapse: collapse; background: #fff; }
.info-table th, .info-table td { padding: 16px 12px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.info-table th { width: 200px; color: var(--c-navy); font-weight: 700; }

/* ---------- ステップ ---------- */
.steps { counter-reset: step; display: grid; gap: 18px; }
.step {
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 24px 24px 24px 84px; position: relative;
}
.step::before {
  counter-increment: step; content: counter(step, decimal-leading-zero);
  position: absolute; left: 22px; top: 22px;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--c-blue); color: #fff; font-weight: 700;
  display: flex; align-items: center; justify-content: center; font-size: 1.05rem;
}
.step h3 { color: var(--c-navy); margin-bottom: 6px; font-size: 1.05rem; }
.step p { font-size: 0.97rem; }

/* ---------- FAQ ---------- */
.faq-group h3 { color: var(--c-blue-deep); margin: 36px 0 14px; font-size: 1.15rem; }
.faq-item {
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius);
  margin-bottom: 12px; overflow: hidden;
}
.faq-item summary {
  padding: 18px 48px 18px 52px; cursor: pointer; font-weight: 700; color: var(--c-navy);
  position: relative; list-style: none; transition: background-color 0.25s ease;
}
.faq-item summary:hover { background: #f3f9fd; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::before {
  content: "Q"; position: absolute; left: 18px; color: var(--c-orange); font-size: 1.1rem;
}
.faq-item summary::after {
  content: "＋"; position: absolute; right: 18px; color: var(--c-blue); transition: transform 0.38s ease;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-a { padding: 0 20px 18px 52px; position: relative; font-size: 0.98rem; }
.faq-a::before { content: "A"; position: absolute; left: 18px; color: var(--c-blue); font-weight: 700; }

/* ---------- 対象者別導線 ---------- */
.audience-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
@media (max-width: 960px) { .audience-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .audience-grid { grid-template-columns: 1fr; } }

/* ---------- CTAバンド ---------- */
.cta-band { background: var(--c-blue-deep); color: #fff; text-align: center; padding: 64px 20px; }
.cta-band h2 { font-size: 1.5rem; margin-bottom: 10px; }
.cta-band .cta-note { opacity: 0.92; margin-bottom: 22px; font-size: 0.98rem; }
.cta-band .cta-address { font-size: 0.92rem; opacity: 0.92; margin-bottom: 2px; }
.cta-band .cta-tel {
  font-size: clamp(1.8rem, 5vw, 2.4rem); font-weight: 700; color: #fff;
  text-decoration: none; display: inline-block; letter-spacing: 0.04em;
}
.cta-band .cta-fax { font-size: 0.95rem; opacity: 0.92; margin-top: 4px; }
.contact-icon {
  display: inline-block; width: 20px; height: 20px; flex: none;
  margin-right: 8px; vertical-align: -4px; background-color: currentColor;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}
.contact-icon-pin {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
}
.contact-icon-phone {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.93.35 1.85.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.96.35 1.88.58 2.81.7A2 2 0 0 1 22 16.92Z' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.93.35 1.85.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.96.35 1.88.58 2.81.7A2 2 0 0 1 22 16.92Z' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.contact-icon-fax {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 8V2h10v6M6 18H3V9h18v9h-3'/%3E%3Cpath d='M7 14h10v8H7zM17 12h.01'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 8V2h10v6M6 18H3V9h18v9h-3'/%3E%3Cpath d='M7 14h10v8H7zM17 12h.01'/%3E%3C/g%3E%3C/svg%3E");
}
.contact-icon-instagram {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17.5 6.5h.01'/%3E%3C/g%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M17.5 6.5h.01'/%3E%3C/g%3E%3C/svg%3E");
}
.cta-band .cta-hours { font-size: 0.9rem; opacity: 0.9; margin: 6px 0 26px; }

/* ---------- フッター ---------- */
.footer-illust-img { width: 100%; display: block; }
.site-footer { background: var(--c-bg); padding: 24px 0 40px; border-top: 1px solid var(--c-line); }
.footer-inner {
  max-width: 1080px; margin: 0 auto; padding: 0 20px;
  display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 32px;
}
.footer-info { font-size: 0.88rem; color: var(--c-muted); }
.footer-info .brand { margin-bottom: 12px; }
.footer-contact-lines span { display: block; margin-bottom: 4px; }
.footer-contact-lines .contact-icon { display: inline-block; margin-bottom: 0; }
.footer-insta { display: inline-flex; align-items: center; gap: 8px; color: var(--c-blue); transition: color 0.25s ease; }
.footer-insta .contact-icon { margin-right: 0; }
.footer-insta:hover { color: var(--c-blue-deep); }
.insta-icon { width: 15px; height: 15px; flex: none; }
.footer-nav a { display: block; width: fit-content; padding: 5px 0; text-decoration: none; color: var(--c-navy); font-size: 0.92rem; transition: color 0.25s ease; }
.footer-nav a:hover { color: var(--c-blue); }
.copyright { text-align: center; font-size: 0.8rem; color: var(--c-muted); padding-top: 28px; }

/* ---------- フォーム ---------- */
.form-grid { display: grid; gap: 22px; max-width: 720px; }
.form-field label { display: block; font-weight: 700; color: var(--c-navy); margin-bottom: 6px; font-size: 0.95rem; }
.form-field .req {
  background: var(--c-orange); color: #fff; font-size: 0.72rem; border-radius: 4px;
  padding: 1px 8px; margin-left: 8px; vertical-align: middle;
}
.form-field input[type="text"], .form-field input[type="tel"], .form-field input[type="email"],
.form-field select, .form-field textarea {
  width: 100%; padding: 13px 14px; border: 1.5px solid var(--c-line); border-radius: 10px;
  font-family: var(--font); font-size: 1rem; background: #fff; color: var(--c-text);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: var(--c-blue); }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus {
  outline: none; border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(102, 158, 202, 0.22);
}
.form-consent { font-size: 0.92rem; }
.form-notice { display: none; margin-top: 16px; }
.form-notice.show { display: block; }
.form-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* ---------- スクロール表示（初期非表示はJS有効時のみ＝html.js。JS無効なら常時表示 — F-010） ---------- */
html.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.6s ease, transform 0.6s ease; }
html.js .reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ---------- アンカー付き見出し ---------- */
.anchor-section { scroll-margin-top: 96px; } /* v0.6.11: padding潰し(8px)をやめ、固定ヘッダー分はscroll-marginで補正 */

/* ---------- レスポンシブ ---------- */
@media (max-width: 1340px) {
  .header-contact { display: none; } /* ロゴ幅が広いため中間幅では電話表示を畳む（F-004。ヘッダー拡大に伴い1250→1340） */
  .global-nav a { font-size: 0.95rem; padding: 8px 7px; } /* 中間幅はナビを少し詰めてはみ出し防止 */
}
@media (max-width: 1150px) {
  .header-cta { display: none; }
  .nav-toggle { display: flex; margin-left: auto; }
  .global-nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    background: #fff; border-bottom: 1px solid var(--c-line); margin: 0; padding: 12px 20px 20px;
  }
  .global-nav.open { display: block; }
  .global-nav ul { flex-direction: column; gap: 4px; }
  .global-nav a { padding: 14px 8px; border-bottom: 1px solid var(--c-bg-blue); font-size: 1rem; }
  .global-nav a.is-current { background: var(--c-bg-blue); border-radius: 8px; }
  .global-nav a.is-current::after { left: 8px; right: auto; bottom: 6px; width: 52px; }
  .global-nav .nav-cta-mobile { margin-top: 14px; text-align: center; }
  .nav-toggle.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2) { opacity: 0; }
  .nav-toggle.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
}
@media (max-width: 960px) {
  .footer-inner { grid-template-columns: 1fr; gap: 18px; }
  .info-table th { width: 130px; font-size: 0.92rem; }
  .section { padding: 52px 0; }
  .btn { min-height: 48px; }
}
@media (min-width: 1151px) { .nav-cta-mobile { display: none; } }

/* ==========================================================
   トップページ再設計（2026-07-06 C案：写真ヒーロー＋自作SVG統一）
   ========================================================== */

/* ---------- 写真ヒーロー ---------- */
.hero-photo {
  position: relative; min-height: 520px; display: flex; align-items: center;
  background-size: cover; background-position: center 40%;
  background-color: var(--c-bg-blue);
}
.hero-photo::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(36,67,95,0.16) 0%, rgba(36,67,95,0.30) 100%);
}
.hero-photo-inner {
  position: relative; z-index: 1; max-width: 1080px; margin: 0 auto;
  padding: 90px 24px; width: 100%;
}
.hero-photo h1 {
  color: #fff; font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.55;
  text-shadow: 0 2px 16px rgba(20, 40, 60, 0.5); margin-bottom: 20px;
}
.hero-photo .hero-lead {
  color: #fff; max-width: 640px;
  text-shadow: 0 1px 14px rgba(20,40,60,0.75), 0 0 4px rgba(20,40,60,0.5);
  margin-bottom: 32px; font-size: 1.1rem;
}
.hero-photo .hero-btns { justify-content: flex-start; }
@media (max-width: 720px) {
  .hero-photo { min-height: 440px; }
  .hero-photo-inner { padding: 64px 20px; }
}

/* ---------- 色ベタ帯（青） ---------- */
.band-blue { background: var(--c-blue); color: #fff; padding: 72px 0; }
.band-blue .section-title-center { color: #fff; }
.band-blue .section-lead { color: rgba(255,255,255,0.92); }

/* ---------- 色ベタ帯（あたたかい） ---------- */
.band-warm { background: var(--c-orange-bg); padding: 72px 0; }

/* ---------- 事実チップ（特徴・v0.6.13: アイコン群→言葉主役のカードへ） ---------- */
.fact-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 16px; max-width: 960px; margin: 0 auto; text-align: center;
}
@media (max-width: 720px) { .fact-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
.fact-card {
  background: #fff; border-radius: 14px; padding: 22px 12px 20px;
  box-shadow: 0 3px 10px rgba(30, 60, 90, 0.15);
  display: flex; flex-direction: column; justify-content: center;
}
.fact-lead { font-size: 0.85rem; color: #4a6076; line-height: 1.5; }
.fact-lead::after {
  content: ""; display: block; width: 22px; height: 3px; border-radius: 2px;
  background: #f1b04b; margin: 8px auto;
}
.fact-word { font-weight: 700; font-size: 1.18rem; color: #24435f; line-height: 1.45; letter-spacing: 0.02em; }
@media (max-width: 720px) { .fact-word { font-size: 1.02rem; } .fact-lead { font-size: 0.8rem; } }

/* ---------- 丸アイコン（特徴） ---------- */
.feature-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 28px 16px; max-width: 900px; margin: 0 auto; text-align: center;
}
@media (max-width: 720px) { .feature-grid { grid-template-columns: repeat(2, 1fr); } }
.feature-item .icon-circle {
  width: 96px; height: 96px; border-radius: 50%; background: #fff;
  margin: 0 auto 12px; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 3px 10px rgba(30, 60, 90, 0.15);
}
.feature-item .icon-circle svg { width: 52px; height: 52px; }
.feature-item p { font-size: 0.95rem; font-weight: 700; color: #fff; line-height: 1.6; }

/* ---------- 悩みグリッド（枠なし：丸アイコン＋ラベルのみ。F-003対応） ---------- */
.concern-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 16px;
  max-width: 980px; margin: 0 auto;
}
@media (max-width: 860px) { .concern-grid { grid-template-columns: repeat(2, 1fr); } }
.concern {
  text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding: 6px 4px;
  border-radius: 14px; transition: background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}
.concern svg { width: 74px; height: 74px; filter: drop-shadow(0 2px 6px rgba(69,116,157,0.14)); transition: transform 0.25s ease; }
.concern p { font-size: 0.96rem; font-weight: 700; color: var(--c-navy); line-height: 1.6; }
.concern:hover { background: #fff; transform: translateY(-3px); box-shadow: 0 8px 18px rgba(30,60,90,0.12); }
.concern:hover svg { transform: scale(1.06); }

/* ---------- 対象となる方（✓リスト1枠＋対象疾患の一文。service。v0.6.8で枠カード方式から変更） ---------- */
.target-box { border: 1px solid var(--c-line); background: #f7fbfe; border-radius: var(--radius); padding: 22px 26px; margin-top: 16px; }
.target-box .check-list li { margin-bottom: 2px; }
.target-note { font-size: 0.85rem; color: var(--c-muted); margin-top: 12px; }

/* ---------- 「対象となる方」帯（前後がsection-alt=淡青のため、同化を避けクリーム系に。2026-07-10） ---------- */
.band-target { background: #fdf7ec; }
.band-target .target-box { background: #fff; box-shadow: 0 3px 10px rgba(30,60,90,0.08); }

/* ---------- 点線でつなぐフロー（カード廃止。F-003対応） ---------- */
.flow-line {
  position: relative; display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px; max-width: 1020px; margin: 0 auto;
}
.flow-line::before {
  content: ""; position: absolute; top: 25px; left: 12%; right: 12%;
  border-top: 3px dashed var(--c-blue); opacity: 0.55;
}
.flow-item { text-align: center; padding: 0 8px; position: relative; }
.flow-item .num {
  width: 50px; height: 50px; border-radius: 50%; background: var(--c-blue-deep);
  color: #fff; font-weight: 700; font-size: 1.15rem;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 14px; position: relative; z-index: 1;
  border: 5px solid var(--c-orange-bg);
}
.flow-item h3 { color: var(--c-navy); font-size: 1.02rem; margin-bottom: 8px; }
.flow-item p { font-size: 0.9rem; text-align: left; }
@media (max-width: 860px) {
  .flow-line { grid-template-columns: 1fr; gap: 28px; max-width: 560px; }
  .flow-line::before {
    top: 25px; bottom: 25px; left: 24px; right: auto;
    border-top: none; border-left: 3px dashed var(--c-blue);
  }
  .flow-item {
    display: grid; grid-template-columns: 50px 1fr; column-gap: 16px;
    text-align: left; padding: 0;
  }
  .flow-item .num { grid-row: 1 / span 2; margin: 0; }
  .flow-item h3, .flow-item p { grid-column: 2; }
}

/* ---------- 波形の区切り（直線の連続を断つ。F-003対応） ---------- */
.wave-divider { display: block; width: 100%; height: 44px; }
.hero-bottom-wave { position: absolute; bottom: -1px; left: 0; width: 100%; height: 44px; }
@media (max-width: 720px) {
  .wave-divider { height: 26px; }  /* 指摘7：スマホでは波を低く */
  .hero-bottom-wave { height: 26px; }
}

/* ---------- 写真カード ---------- */
.photo-split {
  display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center;
}
.photo-split img { border-radius: var(--radius); box-shadow: var(--shadow); width: 100%; object-fit: cover; }
@media (max-width: 780px) { .photo-split { grid-template-columns: 1fr; } }
.img-note { font-size: 0.78rem; color: var(--c-muted); text-align: right; margin-top: 6px; }

/* CTAバンドをロゴ色に */
.cta-band { background: var(--c-blue-deep); }

/* ==========================================================
   v0.5：画像スロット・ジグザグ・全幅写真バンド
   ========================================================== */

/* ---------- 画像スロット（実画像を置くと自動で差し替わる。無ければプレースホルダー表示） ---------- */
.img-slot {
  position: relative; border-radius: var(--radius); overflow: hidden;
  background: linear-gradient(160deg, #d6e9f8 0%, #eef6fc 100%);
}
.img-slot.ratio-43 { aspect-ratio: 4 / 3; }
.img-slot.ratio-169 { aspect-ratio: 16 / 9; }
.img-slot img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.slot-ph {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 10px; color: #7fabd3;
}
.slot-ph svg { width: 88px; height: auto; }
.slot-ph span { font-size: 0.78rem; letter-spacing: 0.14em; }

/* ---------- 色面ズラしフレーム ---------- */
.photo-frame { position: relative; margin-bottom: 24px; } /* v0.6: ズラし影とキャプションの重なり解消 */
.photo-frame::before {
  content: ""; position: absolute; top: 16px; left: 16px; right: -16px; bottom: -16px;
  background: var(--c-bg-blue); border-radius: var(--radius);
}
.photo-frame.frame-orange::before { background: var(--c-orange-bg); }
.photo-frame.frame-flip::before { left: -16px; right: 16px; }
.photo-frame > .img-slot { position: relative; }

/* ---------- 波フチの額装写真（全ページ共通。写真のあるページで.photo-frameから置換） ---------- */
.photo-frame-wave {
  display: block; position: relative; width: 100%; padding: 14px;
  background: var(--c-bg-blue);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 260'%3E%3Cpath fill='%23fff' d='M20,6 Q45,0 70,6 Q95,12 120,6 Q145,0 170,6 Q195,12 220,6 Q245,0 270,6 Q295,12 320,6 Q340,6 334,20 Q340,47 334,75 Q328,102 334,130 Q340,157 334,185 Q328,212 334,240 Q340,254 320,254 Q295,260 270,254 Q245,248 220,254 Q195,260 170,254 Q145,248 120,254 Q95,260 70,254 Q45,248 20,254 Q0,254 6,240 Q0,212 6,185 Q12,157 6,130 Q0,102 6,75 Q12,47 6,20 Q0,6 20,6 Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 340 260'%3E%3Cpath fill='%23fff' d='M20,6 Q45,0 70,6 Q95,12 120,6 Q145,0 170,6 Q195,12 220,6 Q245,0 270,6 Q295,12 320,6 Q340,6 334,20 Q340,47 334,75 Q328,102 334,130 Q340,157 334,185 Q328,212 334,240 Q340,254 320,254 Q295,260 270,254 Q245,248 220,254 Q195,260 170,254 Q145,248 120,254 Q95,260 70,254 Q45,248 20,254 Q0,254 6,240 Q0,212 6,185 Q12,157 6,130 Q0,102 6,75 Q12,47 6,20 Q0,6 20,6 Z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
}
.photo-frame-wave.frame-orange { background: var(--c-orange-bg); }
.photo-frame-wave-wrap { position: relative; width: 100%; }
.photo-frame-wave-deco { position: absolute; z-index: 2; pointer-events: none; }

/* 横長写真：写真そのものは歪めず、背面の淡色フレームだけを波形にする */
.photo-frame-wave.photo-frame-wave-wide {
  -webkit-mask-image: none; mask-image: none;
  background: transparent; isolation: isolate;
}
.photo-frame-wave.photo-frame-wave-wide::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: var(--c-bg-blue);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 690'%3E%3Cpath fill='%23fff' d='M22 10 Q97 0 172 10 T322 10 T472 10 T622 10 T772 10 T922 10 T1072 10 Q1147 0 1178 10 Q1200 18 1190 40 Q1200 115 1190 190 T1190 340 T1190 490 T1190 650 Q1200 680 1178 680 Q1103 690 1028 680 T878 680 T728 680 T578 680 T428 680 T278 680 T128 680 Q53 690 22 680 Q0 672 10 650 Q0 575 10 500 T10 350 T10 200 T10 40 Q0 18 22 10Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 690'%3E%3Cpath fill='%23fff' d='M22 10 Q97 0 172 10 T322 10 T472 10 T622 10 T772 10 T922 10 T1072 10 Q1147 0 1178 10 Q1200 18 1190 40 Q1200 115 1190 190 T1190 340 T1190 490 T1190 650 Q1200 680 1178 680 Q1103 690 1028 680 T878 680 T728 680 T578 680 T428 680 T278 680 T128 680 Q53 690 22 680 Q0 672 10 650 Q0 575 10 500 T10 350 T10 200 T10 40 Q0 18 22 10Z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.photo-frame-wave.photo-frame-wave-wide > .img-slot {
  border-radius: var(--radius); overflow: hidden;
}
@media (max-width: 720px) {
  .photo-frame-wave { padding: 9px; }
  .photo-frame-wave-deco { width: 20px !important; } /* インライン指定サイズより優先してスマホで縮小 */
}
/* ---------- ジグザグ（写真＋テキスト交互） ---------- */
.zig { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; align-items: start; } /* v0.6.11: center→start（写真が見出しより上に浮く問題の解消） */
.zig-media .photo-frame { margin-top: 4px; } /* 見出し行との光学合わせ */
.zig.zig-rev .zig-media { order: 2; }
.zig.zig-rev .zig-body { order: 1; }
@media (max-width: 820px) {
  .zig { grid-template-columns: 1fr; gap: 34px; }
  .zig.zig-rev .zig-media { order: 0; }
  .zig.zig-rev .zig-body { order: 1; }
  .photo-frame::before { top: 10px; left: 10px; right: -10px; bottom: -10px; }
  .photo-frame.frame-flip::before { left: -10px; right: 10px; }
}

/* ---------- 全幅写真バンド ---------- */
.photo-band {
  position: relative; background-size: cover; background-position: center;
  background-color: #5b91bd; /* v0.6: 写真なし時のフォールバックを「夜」から「昼の海」へ */
  padding: 92px 20px; color: #fff;
}
.photo-band::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(31,58,86,0.20) 0%, rgba(31,58,86,0.46) 100%);
}
.photo-band-inner { position: relative; max-width: 840px; margin: 0 auto; text-align: center; }
.photo-band h2 { font-size: 1.75rem; margin-bottom: 16px; letter-spacing: 0.05em; }
.photo-band p { text-shadow: 0 1px 8px rgba(20, 40, 60, 0.45); line-height: 2.1; }
.band-credit { position: absolute; right: 12px; bottom: 8px; font-size: 0.72rem; color: rgba(255,255,255,0.85); text-shadow: 0 1px 4px rgba(20,40,60,0.6); }
@media (max-width: 720px) { .photo-band { padding: 64px 20px; } .photo-band h2 { font-size: 1.4rem; } }

/* タイトル統合ヒーロー（about・recruit：page-heroとバンドを1つに。波の隙間問題の解消） */
.band-hero { padding: 96px 20px 104px; }
.band-hero h1 { font-size: 2.15rem; letter-spacing: 0.05em; margin-bottom: 8px; text-shadow: 0 2px 12px rgba(20,40,60,0.4); }
.band-hero .band-sub { opacity: 0.95; margin-bottom: 28px; }
.band-hero .band-copy { line-height: 2.15; text-align: left; max-width: 720px; margin: 0 auto; }
@media (max-width: 720px) { .band-hero { padding: 64px 20px 72px; } .band-hero h1 { font-size: 1.6rem; } }
.band-hero::after {
  content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 38px; z-index: 1;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 44' preserveAspectRatio='none'%3E%3Cpath d='M0 24 Q150 4 300 22 T600 18 T900 24 T1200 16 V44 H0 Z' fill='%23ffffff'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
}
.band-hero-min { padding: 72px 20px 92px; }
.band-hero-min .band-sub { margin-bottom: 0; }
@media (max-width: 720px) { .band-hero-min { padding: 50px 20px 68px; } .band-hero::after { height: 24px; } }

/* ヒーロー直後を白ベタ波(::after)でなくロープ入りwave-seamに差し替えるページ用: 既定の::afterを無効化 */
.band-hero-seamless::after { content: none; }

/* 浅い波（微差の境界用。境界は基本すべて波で統一し、色差に応じて振幅を変える） */
.wave-shallow { height: 26px; }
@media (max-width: 720px) { .wave-shallow { height: 16px; } }

/* ---------- チェックリスト表示 ---------- */
.check-list { display: grid; grid-template-columns: 1fr; gap: 10px; }
.check-list li { position: relative; padding-left: 1.7em; font-size: 0.96rem; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--c-orange-d); font-weight: 700; }

/* ---------- v0.6：外観2カラム・想い横並び・クリーム帯 ---------- */
.facility-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 40px; align-items: start; }
@media (max-width: 860px) { .facility-grid { grid-template-columns: 1fr; gap: 24px; } }
.omoi-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 48px; align-items: center; max-width: 980px; margin: 0 auto; }
.omoi-grid .omoi-mark { margin: 0 auto; }
@media (max-width: 820px) {
  .omoi-grid { grid-template-columns: 1fr; gap: 18px; }
  .omoi-grid > div { text-align: center !important; }
}
.section-warm { background: var(--c-orange-bg); }

/* ---------- 想いセクションのロゴマーク ---------- */
.omoi-mark { width: 200px; height: auto; margin: 26px auto 0; display: block; }
@media (max-width: 720px) { .omoi-mark { width: 150px; } }

/* ---------- CTAバンド2カラム（トップ：地図つき） ---------- */
.cta-cols {
  max-width: 1080px; margin: 0 auto; padding: 0 20px;
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 44px;
  align-items: center; text-align: left;
}
.cta-map { border-radius: var(--radius); overflow: hidden; border: 3px solid rgba(255,255,255,0.55); box-shadow: 0 6px 20px rgba(0,0,0,0.18); }
.cta-map iframe { display: block; width: 100%; height: 280px; border: 0; }
@media (max-width: 860px) {
  .cta-cols { grid-template-columns: 1fr; gap: 30px; text-align: center; }
}

/* ==========================================================
   海の世界観（トップ） v0.6.49
   素材: assets/hero-sea.png（上端#fdf6e6=下記--sea-sky／下端#67a3d5=--sea-band）
        assets/footer-sea.png（下端#62a2d4=--sea-band-footer。site-footerと同色）
        assets/sea-deco.png（雲・カモメ・泡の透過装飾）
   ========================================================== */
:root {
  --sea-sky: #fdf6e6;      /* hero-sea.png 上端の実測クリーム */
  --sea-band: #67a3d5;     /* hero-sea.png 下端の実測青（=私たちの想い帯） */
  --sea-band-footer: #62a2d4; /* footer-sea.png 下端の実測青（=site-footer） */
  --sea-sky-footer: #fbf4e6; /* footer-sea.png 上端の実測クリーム（v0.6.50実測。CTA帯との波区切りに使用） */
}

/* ---------- ヒーロー：生成りの空 ---------- */
.hero-sky {
  position: relative; background: var(--sea-sky);
  text-align: center; padding: 56px 20px 12px; overflow: hidden; /* v0.6.50: 画像トリミングに合わせ下余白を圧縮（指摘1） */
}
.hero-sky-inner { position: relative; z-index: 1; max-width: 900px; margin: 0 auto; }
.hero-sky h1 {
  color: var(--c-navy); font-size: clamp(1.7rem, 4.2vw, 2.6rem); line-height: 1.6; margin-bottom: 20px;
}
.hero-sky .hero-lead { color: #5a6f84; max-width: 640px; margin: 0 auto 32px; }
.hero-sky-sun { position: absolute; top: 20px; right: 7%; z-index: 0; }
.hero-sky-birds { position: absolute; top: 84px; left: 8%; z-index: 0; }
@media (max-width: 720px) {
  .hero-sky-sun { right: 3%; transform: scale(.7); }
  .hero-sky-birds { display: none; } /* v0.6.51: スマホ幅で見出し「住み慣れた場所で、」と重なるため非表示（768px/1440pxは現状維持） */
}
.hero-sea-img { display: block; width: 100%; height: auto; }

/* ---------- 私たちの想い＝海の帯 ---------- */
.sea-band {
  position: relative; background: var(--sea-band); color: #fff;
  text-align: center; padding: 44px 20px 76px; overflow: hidden; /* v0.6.50: 上パディング圧縮、海青ベタ区間を合計150px程度に（指摘2） */
}
.sea-band-deco {
  position: absolute; top: 0; left: 0; width: 100%; height: auto;
  opacity: 0.22; pointer-events: none; z-index: 0; user-select: none;
}
@media (max-width: 720px) { .sea-band-deco { display: none; } }
.sea-band .container { position: relative; z-index: 1; }
.sea-band .section-title-center { color: #fff; }
.sea-band .section-title-center::after { filter: brightness(0) invert(1); opacity: 0.9; }
.sea-band-body { max-width: 720px; margin: 0 auto; }
.sea-band-body p { color: rgba(255,255,255,0.96); }
.sea-band-body strong { color: #fff; }

/* ---------- ご家族の方へ：写真廃止・中央そろえ ---------- */
.family-centered { max-width: 680px; margin: 0 auto; text-align: center; }
.family-centered p { text-align: left; }
.family-centered .section-title-center { margin-bottom: 22px; }

/* ---------- フッター：画像を全幅・高さautoに変更（下端の色合わせが効くように。指摘：object-fit:coverだと下端が見えない） ---------- */
.footer-illust-img { height: auto; object-fit: initial; object-position: initial; }
/* v0.7: 帯画像化（footer-sea.png=1536x213）に伴い、モバイルでは薄くなりすぎるため高さを固定してcover表示（上下端はフラット色のため継ぎ目は保たれる） */
@media (max-width: 720px) { .footer-illust-img { height: 96px; object-fit: cover; } }

/* ---------- フッター：海の帯（全ページ共通・footer-sea.png下端と同色） ---------- */
.site-footer {
  background: var(--sea-band-footer);
  border-top: none;
}
.site-footer .footer-info,
.site-footer .footer-contact-lines span,
.site-footer .copyright { color: rgba(255,255,255,0.92); }
.site-footer .footer-contact-lines a,
.site-footer .footer-insta { color: #fff; }
.site-footer .footer-contact-lines a:hover,
.site-footer .footer-insta:hover,
.site-footer .footer-nav a:hover { color: #cfe4f5; }
.site-footer .footer-nav a { color: #fff; }
.site-footer .copyright { color: rgba(255,255,255,0.85); }

/* ---------- ロープ波の区切り（中盤のベタ背景境界・CTA帯→フッター帯。指摘3・5） ---------- */
.wave-seam { display: block; width: 100%; height: 48px; line-height: 0; }
.wave-seam svg { display: block; width: 100%; height: 100%; }
.wave-seam-rope { fill: none; stroke-width: 2; stroke-linecap: round; opacity: 0.8; }
@media (max-width: 720px) { .wave-seam { height: 26px; } }

/* ---------- 中盤セクションのワンポイント装飾（泡・小魚・波。指摘4） ---------- */
.deco-host { position: relative; }
.deco-host > .container { position: relative; z-index: 1; }
.deco-layer { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.deco-layer svg { position: absolute; opacity: 0.32; }
.deco-layer img { position: absolute; display: block; height: auto; }
@media (max-width: 720px) { .deco-layer { display: none; } } /* 指摘4：スマホでは非表示 */
