
    body.hydra-page {
      --hy-blue-50:   #f0f8ff;
      --hy-blue-100:  #daeeff;
      --hy-blue-200:  #a8d8f8;
      --hy-blue-300:  #5bb8f5;
      --hy-blue-400:  #1a9adf;
      --hy-blue-500:  #0e7abf;
      --hy-blue-dark: #0a5080;
      --hy-accent-blue: #1a9adf;
      --hy-accent-blue-soft: #d8ecfb;
      --hy-cream:     #f5faff;
      --hy-text-dark: #0d2233;
      --hy-text-mid:  #3a6080;
      --hy-text-light:#7aaac8;
      background: var(--hy-cream);
    }

    /* ── HERO ── */
    .hy-hero {
      background: linear-gradient(135deg, #e8f6ff 0%, #c8e8fa 45%, #a0d4f5 100%);
      position: relative;
      overflow: hidden;
      padding: 100px 0 70px;
    }
    .hy-hero::before {
      content: '';
      position: absolute;
      width: 600px; height: 600px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(100,190,255,0.2) 0%, transparent 70%);
      top: -200px; right: -150px;
      pointer-events: none;
    }
    /* 水泡デコ */
    .hy-hero::after {
      content: '';
      position: absolute;
      width: 120px; height: 120px;
      border-radius: 50%;
      border: 3px solid rgba(255,255,255,0.45);
      bottom: 40px; left: 10%;
      pointer-events: none;
    }
    .hy-eyebrow {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: 0.85rem;
      letter-spacing: 0.28em;
      color: var(--hy-blue-500);
      text-transform: uppercase;
      margin-bottom: 8px;
      display: flex; align-items: center; gap: 8px;
    }
    .hy-eyebrow i { font-size: 1.1rem; color: var(--hy-accent-blue); }
    .hy-hero-title {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(2rem, 5vw, 3.2rem);
      font-weight: 700;
      color: var(--hy-text-dark);
      line-height: 1.35;
      margin-bottom: 20px;
    }
    .hy-hero-title span { color: var(--hy-accent-blue); }
    .hy-hero-desc {
      font-size: 0.92rem;
      line-height: 1.95;
      color: var(--hy-text-mid);
      max-width: 440px;
      margin-bottom: 26px;
    }
    .hy-badge {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: white;
      border: 1px solid var(--hy-blue-200);
      color: var(--hy-blue-500);
      border-radius: 50px;
      padding: 5px 16px;
      font-size: 0.78rem;
      margin: 3px 3px 3px 0;
      letter-spacing: 0.05em;
    }
    .hy-badge i { font-size: 0.7rem; }
    .hy-btn {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: var(--hy-blue-500);
      color: white;
      border-radius: 50px;
      padding: 13px 38px;
      font-size: 0.85rem;
      font-family: 'Noto Sans JP', sans-serif;
      letter-spacing: 0.1em;
      transition: all 0.3s ease;
      box-shadow: 0 4px 20px rgba(14,122,191,0.3);
      margin-top: 18px;
      text-decoration: none;
    }
    .hy-btn:hover {
      background: var(--hy-blue-dark);
      box-shadow: 0 6px 28px rgba(14,122,191,0.4);
      transform: translateY(-1px);
      color: white;
    }

    /* Hero photo */
    .hy-hero-img-wrap {
      position: relative;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    .hy-hero-frame {
      width: 300px; height: 375px;
      border-radius: 200px 200px 160px 160px;
      overflow: hidden;
      box-shadow: 0 20px 60px rgba(100,190,255,0.2);
      background: linear-gradient(160deg, #c8e8fa, #e8f6ff);
      flex-shrink: 0;
    }
    .hy-hero-frame img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }
    .hy-img-placeholder {
      width: 100%; height: 100%;
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      gap: 10px;
      color: var(--hy-blue-400);
    }
    .hy-img-placeholder i { font-size: 2.2rem; opacity: 0.55; }
    .hy-img-placeholder span { font-size: 0.7rem; color: var(--hy-text-light); letter-spacing: 0.1em; }

    .hy-float-tag {
      position: absolute;
      background: white;
      border-radius: 16px;
      padding: 10px 18px;
      box-shadow: 0 8px 30px rgba(0,0,0,0.08);
      font-size: 0.8rem;
      color: var(--hy-text-dark);
      display: flex; align-items: center; gap: 7px;
      z-index: 3;
    }
    .hy-float-tag.tr { top: 16px; right: -10px; }
    .hy-float-tag.bl { bottom: 36px; left: -18px; }
    .hy-float-tag i { color: var(--hy-accent-blue); font-size: 0.82rem; }

    /* ── SECTION COMMON ── */
    .hy-section { padding: 64px 0; }
    .hy-section.bg-white { background: #fff; }
    .hy-section.bg-blue  { background: var(--hy-blue-50); }
    .hy-section.bg-cream { background: var(--hy-cream); }

    .hy-section-label {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: 0.75rem;
      letter-spacing: 0.32em;
      color: var(--hy-accent-blue);
      text-transform: uppercase;
      margin-bottom: 6px;
    }
    .hy-section-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.45rem;
      font-weight: 400;
      color: var(--hy-text-dark);
      margin-bottom: 4px;
    }
    .hy-section-title::before {
      content: '';
      display: inline-block;
      width: 4px; height: 1.2em;
      background: var(--hy-accent-blue);
      vertical-align: middle;
      margin-right: 12px;
      border-radius: 2px;
    }
    .hy-divider {
      width: 40px; height: 1px;
      background: var(--hy-blue-200);
      margin: 14px 0 36px;
    }

    /* ── CONCERNS & EFFECTS ── */
    .hy-concern-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 20px;
      margin-bottom: 48px;
    }
    .hy-concern-card {
      background: #fff;
      border: 1px solid var(--hy-blue-100);
      border-radius: 20px;
      padding: 32px 24px 28px;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      position: relative;
      overflow: hidden;
      transition: transform 0.25s ease, box-shadow 0.25s ease;
    }
    .hy-concern-card::after {
      content: "";
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, var(--hy-blue-400), var(--hy-blue-200));
      transform: scaleX(0);
      transform-origin: left;
      transition: transform 0.3s ease;
      border-radius: 0 0 2px 2px;
    }
    .hy-concern-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 36px rgba(14,122,191,0.13);
    }
    .hy-concern-card:hover::after { transform: scaleX(1); }
    .hy-concern-icon-wrap {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: var(--hy-blue-50);
      border: 1px solid var(--hy-blue-100);
      display: flex;
      align-items: center;
      justify-content: center;
      margin-bottom: 20px;
      flex-shrink: 0;
    }
    .hy-concern-icon-wrap svg {
      width: 26px;
      height: 26px;
    }
    .hy-concern-card-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1rem;
      font-weight: 500;
      color: var(--hy-text-dark);
      line-height: 1.35;
      margin: 0 0 10px;
    }
    .hy-concern-card-desc {
      font-size: 0.82rem;
      line-height: 1.9;
      color: var(--hy-text-mid);
      margin: 0 0 20px;
      flex: 1;
    }
    .hy-tag-row {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .hy-tag {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      border: 1px solid var(--hy-blue-200);
      border-radius: 50px;
      padding: 4px 12px;
      font-size: 0.72rem;
      color: var(--hy-blue-500);
      background: var(--hy-blue-50);
      letter-spacing: 0.03em;
    }
    .hy-tag-dot {
      width: 4px;
      height: 4px;
      border-radius: 50%;
      background: var(--hy-blue-400);
      flex-shrink: 0;
    }
    .hy-effect-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      margin-top: 32px;
    }
    .hy-effect-row {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 15px 0;
      border-bottom: 1px solid var(--hy-blue-100);
    }
    .hy-effect-row:nth-child(odd) { padding-right: 28px; }
    .hy-effect-row:nth-child(even) {
      padding-left: 28px;
      border-left: 1px solid var(--hy-blue-100);
    }
    .hy-effect-row:nth-last-child(1),
    .hy-effect-row:nth-last-child(2) { border-bottom: none; }
    .hy-effect-num {
      min-width: 30px;
      height: 30px;
      border-radius: 50%;
      background: var(--hy-blue-100);
      color: var(--hy-blue-500);
      font-size: 0.95rem;
      font-weight: 500;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      font-family: 'Cormorant Garamond', serif;
    }
    .hy-effect-text {
      font-size: 0.82rem;
      color: var(--hy-text-mid);
      line-height: 1.6;
    }
    .hy-effect-text strong {
      color: var(--hy-text-dark);
      font-weight: 500;
    }
    .hy-note {
      font-size: 0.78rem;
      color: var(--hy-text-light);
      margin-top: 12px;
    }
    .hy-note i {
      color: var(--hy-accent-blue);
      margin-right: 4px;
      font-size: 0.75rem;
    }
    .hy-note-row {
      margin-top: 24px;
      display: flex;
      align-items: flex-start;
      gap: 8px;
    }

    /* ── CASE CARDS ── */
    .hy-case-card {
      background: white;
      border-radius: 20px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(14,122,191,0.07);
      height: 100%;
      transition: transform 0.3s, box-shadow 0.3s;
    }
    .hy-case-card:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 36px rgba(14,122,191,0.14);
    }
    .hy-case-img {
      height: 240px;
      overflow: hidden;
      background: linear-gradient(135deg, #c8e8fa, #daeeff);
      display: flex; align-items: center; justify-content: center;
    }
    .hy-case-img.v2 { background: linear-gradient(135deg, #a8d8f8, #c8e8fa); }
    .hy-case-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hy-case-body { padding: 22px 24px; }
    .hy-case-body p { font-size: 0.85rem; line-height: 1.85; color: var(--hy-text-mid); margin: 0; }

    /* ── Before/After グリッド ── */
    .hy-ba-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 4px;
    }
    .hy-ba-cell {
      position: relative;
      overflow: hidden;
      border-radius: 8px;
    }
    .hy-ba-cell img { width: 100%; height: 130px; object-fit: cover; display: block; }
    .hy-ba-label {
      position: absolute; bottom: 0; left: 0; right: 0;
      background: rgba(14,122,191,0.7);
      color: white;
      font-size: 0.65rem;
      text-align: center;
      padding: 3px 0;
      letter-spacing: 0.05em;
    }
    .hy-ba-label.after { background: rgba(26,154,223,0.75); }
    .hy-ba-arrow {
      display: flex; align-items: center; justify-content: center;
      padding: 6px 0;
      color: var(--hy-accent-blue);
      font-size: 1rem;
    }
    .hy-ba-cell .hy-img-placeholder { height: 130px; }

    /* ── STEPS ── */
    .hy-step-list { list-style: none; padding: 0; margin: 0; }
    .hy-step-list li {
      padding: 12px 0;
      font-size: 0.9rem;
      color: var(--hy-text-mid);
      border-bottom: 1px solid var(--hy-blue-100);
      display: flex; align-items: center; gap: 12px;
    }
    .hy-step-list li:last-child { border-bottom: none; }
    .hy-step-num {
      min-width: 28px; height: 28px;
      border-radius: 50%;
      background: var(--hy-blue-100);
      color: var(--hy-blue-500);
      font-size: 0.75rem; font-weight: 500;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
    }
    .hy-sico { color: var(--hy-accent-blue); font-size: 0.85rem; width: 16px; text-align: center; flex-shrink: 0; }

    .hy-step-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .hy-step-card { border-radius: 14px; overflow: hidden; }
    .hy-step-img {
      height: 110px;
      display: flex; align-items: center; justify-content: center;
      overflow: hidden;
    }
    .hy-step-img.c1 { background: linear-gradient(135deg, #dff4f2, #c8e8fa); }
    .hy-step-img.c2 { background: linear-gradient(135deg, #d3f0ee, #a8d8f8); }
    .hy-step-img.c3 { background: linear-gradient(135deg, #b8e0f8, #90c8f0); }
    .hy-step-img.c4 { background: linear-gradient(135deg, #a8d8f8, #70b8ec); }
    .hy-step-img.c5 { background: linear-gradient(135deg, #90c8f0, #50a8e0); }
    .hy-step-img.c6 { background: linear-gradient(135deg, #70b8ec, #0e7abf); }
    .hy-step-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hy-step-label {
      font-size: 0.7rem; color: var(--hy-text-light);
      text-align: center; padding: 6px 4px; background: white;
    }
    .hy-step-label span {
      display: block; font-size: 0.64rem;
      color: var(--hy-accent-blue);
      font-family: 'Cormorant Garamond', serif; font-style: italic;
    }

    /* ── FAQ ── */
    .hy-faq-item {
      background: white;
      border-radius: 16px;
      padding: 24px 28px;
      margin-bottom: 14px;
      box-shadow: 0 2px 16px rgba(14,122,191,0.07);
    }
    .hy-faq-q {
      font-size: 0.9rem; font-weight: 500;
      color: var(--hy-text-dark);
      margin-bottom: 10px;
      display: flex; align-items: flex-start; gap: 10px;
    }
    .hy-faq-q i { color: var(--hy-accent-blue); font-size: 1rem; margin-top: 1px; flex-shrink: 0; }
    .hy-faq-a { font-size: 0.85rem; color: var(--hy-text-mid); line-height: 1.85; margin: 0; padding-left: 26px; }

    /* ── PRICE CARD ── */
    .hy-price-card {
      background: #fff;
      border: 1.5px solid var(--hy-blue-200);
      border-radius: 20px;
      padding: 32px 20px 28px;
      text-align: center;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }

    .hy-price-card--featured {
      background: linear-gradient(135deg, #f0f8ff 0%, #daeeff 100%);
      border-color: var(--hy-blue-400);
      border-width: 2px;
    }

    .hy-price-badge {
      display: inline-block;
      background: var(--hy-blue-500);
      color: #fff;
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: 0.65rem;
      letter-spacing: 0.2em;
      text-transform: uppercase;
      padding: 4px 14px;
      border-radius: 999px;
      margin-bottom: 16px;
    }

    .hy-price-sublabel {
      font-family: 'Cormorant Garamond', serif;
      font-style: italic;
      font-size: 0.75rem;
      color: var(--hy-text-light);
      letter-spacing: 0.25em;
      text-transform: uppercase;
      margin-bottom: 6px;
    }

    .hy-price-main {
      font-family: 'Noto Serif JP', serif;
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      font-weight: 600;
      color: var(--hy-text-dark);
      line-height: 1.1;
      margin-bottom: 4px;
    }

    .hy-price-name {
      font-family: 'Noto Serif JP', serif;
      font-size: 0.82rem;
      color: var(--hy-text-mid);
      margin-bottom: 0;
    }

    .hy-price-hr {
      border: none;
      border-top: 1px solid var(--hy-blue-200);
      margin: 16px 0;
    }

    .hy-price-desc {
      font-size: 0.75rem;
      color: var(--hy-text-mid);
      margin: 0;
      line-height: 1.8;
      margin-top: auto;
    }

    /* スマホ：2カラム時の余白調整 */
    @media (max-width: 575.98px) {
      .hy-price-card {
        padding: 24px 14px 20px;
      }
      .hy-price-main {
        font-size: 1.7rem;
      }
    }

    .hy-cta {
      background: linear-gradient(90deg, var(--hy-blue-dark) 0%, var(--hy-blue-500) 100%);
      padding: 26px 36px;
      border-radius: 16px;
      color: white;
      font-size: 0.9rem; line-height: 1.7;
      text-align: center;
      margin-top: 28px;
      box-shadow: 0 8px 32px rgba(14,122,191,0.3);
      display: flex; align-items: center; justify-content: center; gap: 10px;
    }
    .hy-cta i { font-size: 1rem; flex-shrink: 0; }

    /* ── BOOKING ── */
    .hy-booking-section {
      background: var(--hy-blue-dark);
    }
    .hy-booking-banner {
      background: transparent;
      position: relative;
      overflow: hidden;
      padding: 56px 32px;
    }
    .hy-booking-banner-inner {
      position: relative;
      z-index: 1;
      max-width: 560px;
      margin: 0 auto;
    }
    .hy-booking-eyebrow {
      font-family: 'Cormorant Garamond', serif;
      font-size: 0.63rem;
      letter-spacing: 0.45em;
      color: var(--hy-blue-200);
      text-transform: uppercase;
      margin-bottom: 12px;
    }
    .hy-booking-title {
      font-family: 'Noto Serif JP', serif;
      font-size: 1.38rem;
      font-weight: 300;
      color: #fff;
      letter-spacing: 0.06em;
      line-height: 1.65;
      margin-bottom: 10px;
      overflow-wrap: break-word;
      word-break: keep-all;
      line-break: strict;
    }
    .hy-booking-sub {
      font-size: 0.75rem;
      color: var(--hy-blue-200);
      letter-spacing: 0.1em;
      line-height: 1.9;
      margin-bottom: 32px;
      overflow-wrap: break-word;
      word-break: keep-all;
      line-break: strict;
    }
    .hy-booking-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 16px 36px;
      border-radius: 0;
      text-decoration: none;
      color: var(--hy-blue-dark);
      background: #fff;
      font-size: 0.82rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      transition: background 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    }
    .hy-booking-btn:hover {
      color: var(--hy-blue-dark);
      background: var(--hy-blue-100);
      transform: translateY(-2px);
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
    }
    .hy-booking-btn svg {
      width: 16px;
      height: 16px;
      fill: none;
      stroke: var(--hy-blue-dark);
      stroke-width: 2;
      stroke-linecap: round;
      stroke-linejoin: round;
      transition: transform 0.3s ease;
    }
    .hy-booking-btn:hover svg {
      transform: translateX(4px);
    }
    .hy-booking-btn-note {
      margin: 12px 0 0;
      text-align: center;
      font-size: 0.63rem;
      color: var(--hy-blue-200);
      letter-spacing: 0.1em;
      opacity: 0.7;
    }
    .hy-accent-blue { color: var(--hy-accent-blue); }
    .hy-emphasis { color: var(--hy-text-dark); }
    .hy-case-lead {
      font-size: 0.9rem;
      color: var(--hy-text-mid);
      margin-bottom: 28px;
    }
    .hy-case-arrow {
      display:flex;
      align-items:center;
      justify-content:center;
      padding:6px 0;
      color:var(--hy-accent-blue);
    }

    @media (max-width: 991px) {
      .hy-concern-grid {
        grid-template-columns: 1fr;
      }
    }
    @media (max-width: 767px) {
      .hy-booking-banner {
        padding: 40px 24px;
      }
      .hy-booking-title {
        font-size: 1.18rem;
      }
      .hy-booking-btn {
        padding: 16px 22px;
        font-size: 0.8rem;
        letter-spacing: 0.08em;
      }
      .hy-effect-grid {
        grid-template-columns: 1fr;
      }
      .hy-effect-row:nth-child(odd),
      .hy-effect-row:nth-child(even) {
        padding-left: 0;
        padding-right: 0;
      }
      .hy-effect-row:nth-child(even) {
        border-left: none;
      }
      .hy-effect-row:nth-last-child(2) {
        border-bottom: 1px solid var(--hy-blue-100);
      }
    }

    /* ── ANIMATIONS ── */
    @keyframes hyFadeUp {
      from { opacity: 0; transform: translateY(22px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .hy-fu  { animation: hyFadeUp 0.7s ease both; }
    .hy-d1  { animation-delay: 0.1s; }
    .hy-d2  { animation-delay: 0.2s; }
    .hy-d3  { animation-delay: 0.3s; }
    .hy-d4  { animation-delay: 0.4s; }

    footer{
      margin-top: 0;
    }