/* ==========================================================
   空蝉 utsusemi | Energy Tuning — style.css
   このファイルは index.html から分離されたスタイルシートです。
   セクションごとにコメントで区切ってあります。
   レイアウト修正は基本的にこのファイルのみで完結します。
   ========================================================== */

/* ==========================
   基本設定・共通変数
   ========================== */
  :root{
    --c-white:#ffffff;
    --c-black:#17171a;
    --c-charcoal:#2c2c30;
    --c-silver:#b7bac1;
    --c-silver-deep:#8d9099;
    --c-gray-light:#f4f4f5;
    --c-gray-mid:#9a9da3;
    --c-line:#dcddDF;
    --calendar-event-bg:rgba(183,186,193,.72);
    --font-display:'Shippori Mincho', serif;
    --font-body:'Noto Sans JP', sans-serif;
    --maxw:880px;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--font-body);
    color:var(--c-black);
    background:var(--c-white);
    line-height:1.9;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible{
    outline:2px solid currentColor;
    outline-offset:4px;
  }

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }

  /* ==========================
   共鳴リング演出（シグネチャーアニメーション）
   ========================== */
  .rings{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
  .rings svg{ position:absolute; opacity:.5; }
  .ring-anim circle{
    animation: ripple 7s ease-out infinite;
    transform-origin:center;
  }
  .ring-anim circle:nth-child(1){ animation-duration:7.2s; animation-delay:0s; }
  .ring-anim circle:nth-child(2){ animation-duration:6.4s; animation-delay:1.8s; }
  .ring-anim circle:nth-child(3){ animation-duration:7.8s; animation-delay:3.3s; }
  @keyframes ripple{
    0%{ transform:scale(0.85); opacity:.9; }
    100%{ transform:scale(1.35); opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){
    .ring-anim circle{ animation:none; }
  }

  /* ==========================
   スクロールリビール（下部コンテンツのフェードイン）
   ========================== */
  .reveal{
    opacity:0; transform:translateY(26px);
    transition:opacity 1.1s ease, transform 1.1s ease;
    will-change:opacity, transform;
  }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }
  .guide-emphasis-seq.reveal{ transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
  }

  /* ==========================
   セクション共通スタイル（見出し・段落など）
   ========================== */
  section{ position:relative; padding:96px 0; }
  .divider{
    display:flex; align-items:center; justify-content:center; gap:14px;
    margin-bottom:40px; color:var(--c-silver-deep);
  }
  .divider::before, .divider::after{
    content:''; height:1px; width:44px; background:var(--c-line);
  }
  .divider span{ font-family:var(--font-display); font-size:13px; letter-spacing:.28em; }

  .eyebrow{
    font-size:12px; letter-spacing:.32em; color:var(--c-silver-deep);
    font-weight:500; margin-bottom:18px; text-transform:uppercase;
  }
  h1,h2,h3{ font-family:var(--font-display); font-weight:600; letter-spacing:.02em; }
  h2{ font-size:32px; line-height:1.62; margin-bottom:30px; color:var(--c-black); }
  .empathy h2, .method h2, .menu h2, .profile h2, .guide h2{
    text-align:center;
  }
  p{ font-size:16px; color:var(--c-charcoal); }
  .lead{ font-size:17.5px; line-height:2.05; color:var(--c-charcoal); }

  /* ==========================
   写真プレースホルダー
   ========================== */
  .photo-box{
    background:var(--c-gray-light);
    border:1px solid var(--c-line);
    display:flex; align-items:center; justify-content:center;
    color:var(--c-gray-mid); font-size:13px; letter-spacing:.08em;
    position:relative; width:100%;
  }
  .photo-box .num{
    position:absolute; top:14px; left:16px; font-family:var(--font-display);
    font-size:13px; color:var(--c-silver-deep); letter-spacing:.1em;
  }
  .ph-hero{ height:min(64vw,420px); }
  .ph-wide{ height:min(48vw,300px); margin:36px 0; }
  .ph-square{ aspect-ratio:1/1; width:180px; border-radius:50%; }

  /* ==========================
   実写真ブロック
   ========================== */
  .logo-mark{
    width:100%; margin:0;
  }
  .logo-mark img{ width:100%; max-width:100%; height:auto; display:block; }
  .hero-logo-stage{
    position:relative; width:clamp(200px, 15vw, 220px); margin:0 auto 24px;
  }
  .rings--hero{ display:none; }
  .rings--logo{
    display:block; inset:auto; overflow:visible;
    width:1px; height:1px; left:50%; top:50%;
    z-index:0; transform:translate(-50%,-50%);
  }
  .rings--logo svg{
    width:460px; height:460px; left:50%; top:50%;
    transform:translate(-50%,-50%); transform-origin:center;
  }
  .hero-logo-stage .logo-mark{ position:relative; z-index:1; }

  .photo-real{
    width:100%; overflow:hidden;
  }
  .photo-real img{ width:100%; height:100%; object-fit:cover; display:block; }

  .tools-photo{
    max-width:720px; height:440px; margin:36px auto;
    border:1px solid var(--c-line);
  }

  .tools-photo img{ object-position:50% 20%; }

  .therapist-photo{
    width:500px; max-width:100%;
    height:auto; overflow:visible; flex-shrink:0;
  }

  .therapist-photo img{ height:auto; object-fit:contain; object-position:center; }

  .entrance-photo{
    max-width:520px; margin:28px auto 0;
    border:1px solid rgba(255,255,255,.18); border-radius:2px;
  }
  .entrance-photo img{ height:auto; object-fit:contain; object-position:center; }

  @media (max-width:720px){
    .tools-photo{ height:clamp(250px, 69vw, 290px); }
    .tools-photo img{ object-position:80% 20%; }
    .therapist-photo{ width:78vw; max-width:290px; }
    .entrance-photo{ max-width:350px; }
  }

  .map-embed{
    width:100%; height:min(52vw,340px); margin:32px 0;
    border:1px solid rgba(255,255,255,.18); overflow:hidden;
  }
  .map-embed iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(1) invert(92%) contrast(1.15) brightness(.95); }

  /* ==========================
   同意モーダル（LINE予約前の確認）
   ========================== */
  .consent-overlay{
    position:fixed; inset:0; z-index:10000;
    background:rgba(23,23,26,.72);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .7s ease, visibility .7s ease;
  }
  .consent-overlay.is-open{ opacity:1; visibility:visible; }
  .consent-panel{
    background:var(--c-white); width:100%; max-width:600px; max-height:86vh;
    display:flex; flex-direction:column;
    padding:40px 36px 32px; position:relative;
    opacity:0; transform:translateY(16px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .consent-overlay.is-open .consent-panel{ opacity:1; transform:translateY(0); }
  .consent-panel h3{
    font-family:var(--font-display); font-size:19px; text-align:center;
    color:var(--c-black); margin-bottom:18px; letter-spacing:.03em; flex-shrink:0;
  }
  .consent-progress{ height:2px; background:var(--c-line); margin-bottom:20px; flex-shrink:0; }
  .consent-progress-fill{ height:100%; width:0%; background:var(--c-black); transition:width .1s linear; }
  .consent-scroll{
    flex:1 1 auto; min-height:0;
    overflow-y:auto; padding-right:10px; margin-bottom:18px;
    border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line);
    padding-top:22px; padding-bottom:22px;
  }
  .consent-scroll .guide-copy{ margin-top:0; max-width:none; }
  .consent-scroll p{ font-size:13.2px; line-height:1.9; }
  .consent-scroll .guide-treatment-copy{
    max-width:30em; margin-inline:auto; text-align:center;
  }
  .consent-scroll .guide-treatment-copy p{
    font-size:15px; line-height:2; margin-bottom:24px;
    text-wrap:pretty; word-break:auto-phrase;
  }
  .consent-scroll .guide-subhead{ font-size:15px; margin:34px 0 16px; }
  .consent-scroll .guide-copy .guide-subhead:first-child{ margin-top:0; }
  .consent-scroll .guide-emphasis{ font-size:14.5px; margin:26px 0; }
  .consent-scroll .guide-block + .guide-block{ margin-top:46px; }
  .consent-scroll table.price th, .consent-scroll table.price td{ font-size:12.5px; padding:14px 4px; }
  .consent-scroll .guide-note{ font-size:11.5px; margin-top:20px; }
  .consent-hint{
    font-size:12px; text-align:center; color:var(--c-gray-mid); margin-bottom:0; flex-shrink:0;
    transition:color .3s ease;
  }
  .consent-hint.is-ready{ color:var(--c-black); }
  .consent-link{ display:block; text-align:center; font-size:12.5px; margin:22px 0 6px; }
  .consent-link a{ color:var(--c-black); border-bottom:1px solid var(--c-line); padding-bottom:2px; }
  .consent-actions{ display:flex; gap:12px; margin-top:22px; flex-wrap:wrap; justify-content:center; flex-shrink:0; }
  .consent-actions button{
    font-size:13px; letter-spacing:.1em; padding:15px 28px; cursor:pointer;
    border:1px solid var(--c-black); background:var(--c-white); color:var(--c-black);
    font-family:var(--font-body); transition:.3s;
  }
  .consent-actions button.primary{ background:var(--c-black); color:var(--c-white); }
  .consent-actions button.primary:hover{ background:transparent; color:var(--c-black); }
  .consent-actions button.primary:disabled{
    background:var(--c-white); color:var(--c-gray-mid); border-color:var(--c-line);
    cursor:not-allowed;
  }
  .consent-actions button.secondary:hover{ background:var(--c-gray-light); }
  .consent-close{
    position:absolute; top:14px; right:16px; font-size:22px; line-height:1;
    color:var(--c-gray-mid); background:none; border:none; cursor:pointer; padding:6px;
  }
  .consent-close:hover{ color:var(--c-black); }
  .quick-consent-check{
    display:flex; align-items:center; justify-content:center; gap:10px;
    font-size:14.5px; color:var(--c-black); margin:6px 0 4px; cursor:pointer;
    user-select:none; flex-shrink:0;
  }
  .quick-consent-check input[type="checkbox"]{
    width:18px; height:18px; accent-color:var(--c-black); cursor:pointer; flex-shrink:0;
  }
  @media (prefers-reduced-motion: reduce){
    .consent-overlay, .consent-panel{ transition:none; }
  }
  @media (max-width:600px){
    .consent-overlay{ padding:14px; }
    .consent-panel{ padding:34px 18px 24px; }
    .consent-scroll{ padding-right:6px; }
    .consent-scroll .guide-treatment-copy p{
      font-size:clamp(14px, 3.72vw, 14.5px); line-height:2; margin-bottom:24px;
    }
  }

  /* ==========================
     予定ポップアップ（カレンダーの予定タップ時）
     ========================== */
  .cal-event-overlay{
    position:fixed; inset:0; z-index:10000;
    background:rgba(23,23,26,.82);
    display:flex; align-items:center; justify-content:center; padding:24px;
    opacity:0; visibility:hidden;
    transition:opacity .35s ease, visibility .35s ease;
  }
  .cal-event-overlay.is-open{ opacity:1; visibility:visible; }
  .cal-event-panel{
    background:var(--c-black); width:100%; max-width:300px;
    border:1px solid rgba(255,255,255,.22);
    padding:34px 28px; position:relative; text-align:center;
    opacity:0; transform:translateY(10px);
    transition:opacity .35s ease, transform .35s ease;
  }
  .cal-event-overlay.is-open .cal-event-panel{ opacity:1; transform:translateY(0); }
  .cal-event-mark{
    width:8px; height:8px; background:var(--c-silver); margin:0 auto 16px;
  }
  .cal-event-title{
    font-family:var(--font-display); font-size:18px; color:var(--c-white);
    letter-spacing:.08em; margin-bottom:10px;
  }
  .cal-event-date{ font-size:12.5px; color:var(--c-silver); letter-spacing:.04em; }
  .cal-event-close{
    position:absolute; top:10px; right:12px; font-size:20px; line-height:1;
    color:var(--c-silver); background:none; border:none; cursor:pointer; padding:6px;
  }
  .cal-event-close:hover{ color:var(--c-white); }
  @media (prefers-reduced-motion: reduce){
    .cal-event-overlay, .cal-event-panel{ transition:none; }
  }

  /* ==========================
   ヒーロー
   ========================== */
  .hero{
    background:var(--c-black); color:var(--c-white);
    min-height:100vh; min-height:100dvh; display:flex; align-items:center;
    padding:0; position:relative;
  }
  .hero .wrap{ position:relative; z-index:1; padding:44px 28px 36px; text-align:center; }
  .hero .eyebrow{ color:var(--c-silver); justify-content:center; display:flex; margin-bottom:6px; }
  .hero h1{
    font-size:clamp(38px,7vw,64px); color:var(--c-white); margin-bottom:10px;
    letter-spacing:.06em; line-height:1.4;
  }
  .hero h1 .tighten{ display:inline-block; margin-right:-0.5em; }
  .hero h1 .tighten-end{ display:inline-block; margin-right:-0.75em; }
  .hero-break{ display:block; }
  @media (min-width:640px){
    .hero-break{ display:none; }
    .hero h1 .tighten{ margin-right:0; }
  }
  .hero .salon-name{
    font-size:15px; letter-spacing:.4em; color:var(--c-silver); margin-bottom:14px;
    text-transform:uppercase;
  }
  .hero .desc{ color:var(--c-silver); font-size:15px; max-width:480px; margin:0 auto 34px; line-height:1.9; }
  .desc-balance{ display:inline-block; text-wrap:balance; }
  .hero .ph-hero{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.4); margin:0 auto 34px; max-width:520px; }
  .hero .ph-hero .num{ color:rgba(255,255,255,.45); }

  /* ==========================
   ヒーロー登場アニメーション
   ========================== */
  @keyframes heroFadeUp{
    from{ opacity:0; transform:translateY(18px); }
    to{ opacity:1; transform:translateY(0); }
  }
  @keyframes heroFadeIn{
    from{ opacity:0; }
    to{ opacity:1; }
  }
  .hero h1{ opacity:0; animation:heroFadeUp 1.9s ease forwards; animation-delay:.3s; }
  .hero .eyebrow{ opacity:0; animation:heroFadeUp 1.6s ease forwards; animation-delay:2.1s; }
  .hero .salon-name{ opacity:0; animation:heroFadeUp 1.6s ease forwards; animation-delay:2.1s; }
  .hero .desc{ opacity:0; animation:heroFadeUp 1.6s ease forwards; animation-delay:2.1s; }
  .hero .logo-mark{ opacity:0; animation:heroFadeIn 3.2s ease forwards; animation-delay:2.1s; }
  .hero .rings{ opacity:0; animation:heroFadeIn 2.6s ease forwards; animation-delay:3.3s; }
  .hero .cta-row{ opacity:0; animation:heroFadeUp 1.6s ease forwards; animation-delay:3.9s; }
  @media (prefers-reduced-motion: reduce){
    .hero .rings, .hero .eyebrow, .hero h1, .hero .salon-name,
    .hero .logo-mark, .hero .desc, .hero .cta-row{
      opacity:1; animation:none;
    }
  }

/* ==========================
   CTAボタン（共通）
   ========================== */
  .cta-btn{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--c-white); color:var(--c-black);
    padding:17px 40px; font-size:14px; letter-spacing:.16em;
    border:1px solid var(--c-white); transition:.35s;
    font-weight:500; cursor:pointer;
    -webkit-touch-callout:none;
  }
  .cta-btn:hover{ background:transparent; color:var(--c-white); }
  .cta-btn.dark{ background:var(--c-black); color:var(--c-white); border-color:var(--c-black); }
  .cta-btn.dark:hover{ background:transparent; color:var(--c-black); }
  .cta-row{ display:flex; justify-content:center; gap:14px; }

  @media (max-width:600px){
    .cta-row{ flex-direction:column; align-items:center; }
    .cta-row .cta-btn{ width:min(100%, 280px); justify-content:center; }
  }

/* ==========================
   施術前の注意リンク
   ========================== */
  .pretreat-note{
    text-align:center; font-size:12.5px; color:var(--c-gray-mid); margin-bottom:16px;
  }
  .pretreat-note a{ color:var(--c-black); border-bottom:1px solid var(--c-line); padding-bottom:2px; }
  .pretreat-note a:hover{ color:var(--c-silver-deep); }
  .pretreat-note.on-dark{ color:var(--c-silver); }
  .pretreat-note.on-dark a{ color:var(--c-white); border-color:rgba(255,255,255,.3); }
  .pretreat-note.on-dark a:hover{ color:var(--c-silver); }

  /* ==========================
   施術前ガイド
   ========================== */
  .guide{ background:var(--c-gray-light); }
  .guide-next-actions{ max-width:620px; margin:50px auto 0; text-align:center; }
  .guide-shortcuts{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 28px; margin-bottom:24px; }
  .guide-shortcuts a{
    display:inline-flex; align-items:center; justify-content:center; min-height:44px;
    padding:8px 2px; font-size:14px; letter-spacing:.06em;
    text-decoration:underline; text-decoration-color:var(--c-line); text-underline-offset:6px;
  }
  .guide-shortcuts a:hover{ text-decoration-color:currentColor; }
  .guide-next-actions .cta-row{ flex-direction:column; align-items:center; }
  .guide-next-actions .cta-btn{ width:min(100%, 280px); justify-content:center; padding-inline:16px; }
  .guide-next-actions a[href^="mailto:"]{ background:transparent; color:var(--c-black); border-color:var(--c-line); }
  .guide-next-actions a[href^="mailto:"]:hover{ border-color:var(--c-black); }
  @media (max-width:720px){
    .guide-next-actions{ max-width:32em; margin-top:44px; }
    .guide-shortcuts{ column-gap:20px; }
  }
  .guide-list{ margin-top:8px; }
  .guide-list li{
    list-style:none; border-top:1px solid var(--c-line); padding:20px 0 20px 24px;
    font-size:14.5px; color:var(--c-charcoal); position:relative; line-height:1.85;
  }
  .guide-list li:last-child{ border-bottom:1px solid var(--c-line); }
  .guide-list li::before{ content:'○'; position:absolute; left:0; top:20px; font-size:10px; color:var(--c-silver-deep); }
  .guide-note{ margin-top:24px; font-size:12.5px; color:var(--c-gray-mid); line-height:1.9; }

  .guide-copy{ margin-top:48px; max-width:660px; margin-left:auto; margin-right:auto; }
  .guide-copy p{ font-size:16px; line-height:2.12; color:var(--c-charcoal); margin-bottom:29px; }
  .guide .guide-treatment-copy{
    max-width:620px; margin-inline:auto; text-align:center;
  }
  .guide .guide-treatment-copy p{
    text-wrap:pretty; word-break:auto-phrase;
  }
  .guide-copy .guide-note{ color:var(--c-gray-mid); }
  .guide-subhead{
    font-family:var(--font-display); font-size:19px; text-align:center;
    color:var(--c-black); margin:56px 0 28px; letter-spacing:.04em;
  }
  .guide-copy > .guide-treatment-copy:first-child > .guide-subhead:first-child{ margin-top:0; }
  .guide .guide-block + .guide-block{ margin-top:72px; }
  .guide .guide-block-philosophy > p:first-child,
  .guide .guide-block-first-visit > p:first-child{ margin-bottom:32px; }
  .guide .guide-copy + .cta-row{ margin-top:50px !important; }
  .guide-emphasis{
    font-family:var(--font-display); font-size:20px; text-align:center;
    color:var(--c-black); line-height:1.95; margin:38px 0;
  }

  .guide-accordion{ max-width:700px; }
  .guide-accordion-item{ border-top:1px solid var(--c-line); }
  .guide-accordion-item:last-child{ border-bottom:1px solid var(--c-line); }
  .guide-accordion-heading{ margin:0; }
  .guide-accordion-trigger{
    width:100%; min-height:68px; padding:20px 4px;
    border:0; background:transparent; color:var(--c-black);
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    font-family:var(--font-display); font-size:18px; font-weight:400;
    letter-spacing:.05em; line-height:1.5; text-align:left; cursor:pointer;
  }
  .guide-accordion-trigger > span:first-child{ white-space:nowrap; }
  .guide-accordion-trigger:focus-visible{
    outline:1px solid var(--c-silver-deep); outline-offset:5px;
  }
  .guide-accordion-icon{
    position:relative; flex:0 0 15px; width:15px; height:15px;
  }
  .guide-accordion-icon::before,
  .guide-accordion-icon::after{
    content:''; position:absolute; left:0; top:7px; width:15px; height:1px;
    background:currentColor; transition:transform .25s ease;
  }
  .guide-accordion-icon::after{ transform:rotate(90deg); }
  .guide-accordion-trigger[aria-expanded="true"] .guide-accordion-icon::after{
    transform:rotate(90deg) scaleX(0);
  }
  .guide-accordion-panel[hidden]{ display:none; }
  .guide-accordion-content{ padding:42px 0 28px; }
  .guide-accordion-panel.is-opening .guide-accordion-content{
    animation:guideAccordionOpen .28s ease both;
  }
  .guide-accordion .guide-treatment-copy:first-child{ margin-top:0; }
  .guide-accordion .guide-service-info{ margin:0 auto; }
  .guide-accordion .guide-service-block + .guide-service-block{ margin-top:0; }
  @keyframes guideAccordionOpen{
    from{ opacity:0; transform:translateY(-3px); }
    to{ opacity:1; transform:translateY(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .guide-accordion-icon::before, .guide-accordion-icon::after{ transition:none; }
    .guide-accordion-panel.is-opening .guide-accordion-content{ animation:none; }
  }

  /* ==========================
   タップ波紋演出（ページ全体）
   ========================== */
  .wave-overlay{
    position:fixed; inset:0; pointer-events:none; z-index:9999;
  }
  .wave-ring{
    position:absolute;
    width:16px; height:16px;
    margin-left:-8px; margin-top:-8px;
    border:1px solid rgba(23,23,26,.55);
    border-radius:50%;
    opacity:.6;
  }
  .wave-ring.on-dark{ border-color: rgba(255,255,255,.65); }

  /* ==========================
   悩み共感セクション
   ========================== */
  .empathy{ background:var(--c-white); }
  .about-you-credit{ margin:0 auto 36px; text-align:center; }
  .about-you-credit img{ width:104px; max-width:100%; height:auto; margin:0 auto 12px; }
  .about-you-credit p{ font-size:12px; line-height:1.8; color:var(--c-silver-deep); }
  .empathy h2, .about-you-body{ max-width:680px; margin-inline:auto; }
  .empathy h2, .about-you-subtitle{ text-wrap:balance; }
  .about-you-body{ text-align:center; }
  .about-you-paragraph{ font-size:16px; line-height:2.08; margin-bottom:26px; }
  .about-you-paragraph:last-child{ margin-bottom:0; }
  .about-you-subtitle{
    font-family:var(--font-display); font-size:20px; font-weight:600;
    line-height:1.9; letter-spacing:.02em; color:var(--c-black); margin:34px 0 20px;
    text-align:center;
  }
  .about-you-subtitle:first-child{ margin-top:0; }
  .about-you-sp-text{ display:none; }
  .about-you-sp-paragraph{ display:none; }
  .empathy .about-you-equal-heading{
    font-size:20px; line-height:1.9; letter-spacing:.02em;
    margin:0 auto 20px; max-width:680px;
  }
  .about-you-body .about-you-equal-heading{ margin-top:34px; }

  /* ==========================
   施術説明セクション
   ========================== */
  .method{ background:var(--c-gray-light); }
  .method .wrap{ text-align:center; }
  .method h2{ max-width:680px; margin-inline:auto; text-wrap:balance; }
  .method .story{
    font-family:var(--font-display); font-size:19px; line-height:2.2;
    color:var(--c-black); max-width:760px; margin:12px auto 0;
    letter-spacing:.02em; text-align:center;
    text-wrap:balance; word-break:auto-phrase;
  }
  .method .story p{ font:inherit; color:inherit; margin:0; }
  .method .story p + p{ margin-top:30px; }
  .method .story .method-change-sequence{ margin-top:46px; }
  .method-line{ display:block; }
  .method .story .method-closing-intro{ margin-top:48px; }
  .method .story .method-final{
    margin-top:26px; font-size:1.12em; line-height:2; letter-spacing:.04em;
  }

  /* ==========================
   メニュー・料金セクション
   ========================== */
  .menu{ background:var(--c-white); }
  table.price{ width:100%; border-collapse:collapse; margin-top:10px; }
  table.price th, table.price td{
    padding:20px 8px; text-align:left; border-bottom:1px solid var(--c-line);
    font-size:15.5px;
  }
  table.price th{ color:var(--c-silver-deep); font-weight:500; font-size:12.5px; letter-spacing:.1em; }
  table.price td.fee{ text-align:right; font-family:var(--font-display); font-size:19px; }
  .price-note{ margin-top:26px; font-size:13px; color:var(--c-gray-mid); line-height:1.9; }
  .menu-info-block{
    max-width:620px; margin:56px auto 0; text-align:center;
  }
  .menu-info-title{
    font-family:var(--font-display); font-size:19px; color:var(--c-black);
    margin-bottom:28px; letter-spacing:.04em;
  }
  .menu-info-block p{
    font-size:15.5px; line-height:2.05; color:var(--c-charcoal); margin-bottom:24px;
    text-wrap:pretty; word-break:auto-phrase;
  }
  .menu-info-block p:last-child{ margin-bottom:0; }

  .guide-service-info{
    max-width:620px; margin:72px auto 0; text-align:center;
  }
  .guide-service-block + .guide-service-block{ margin-top:72px; }
  .guide-service-block .guide-subhead{ margin-top:0; }
  .guide-service-block p{
    font-size:16px; line-height:2.12; color:var(--c-charcoal); margin-bottom:29px;
    text-wrap:pretty; word-break:auto-phrase;
  }
  .guide-service-list{
    display:inline-block; margin:0 auto 29px; padding:0; text-align:left; list-style:none;
  }
  .guide-service-list li{
    position:relative; padding-left:1.35em; font-size:16px; line-height:2.12;
    color:var(--c-charcoal); text-wrap:pretty; word-break:auto-phrase;
  }
  .guide-service-list li::before{ content:'・'; position:absolute; left:0; }

  /* ==========================
   プロフィールセクション
   ========================== */
  .profile{ background:var(--c-white); }
  .profile > .wrap{ max-width:1020px; }
  .profile-flex{ display:flex; flex-direction:column; gap:32px; align-items:center; margin-top:16px; }
  .profile-flex .photo-box{ flex-shrink:0; }
  .profile-text{ width:100%; text-align:center; }
  .profile-text .name{ font-family:var(--font-display); font-size:24px; margin-bottom:6px; }
  .profile-text .role{ font-size:13px; line-height:1.8; color:var(--c-silver-deep); letter-spacing:.06em; margin-bottom:22px; }
  .profile-text .role > span{ display:block; }
  .profile-br-sp{ display:none; }
  .profile-bio{ max-width:640px; margin-inline:auto; text-align:left; }
  @media (min-width:721px){
    .profile-text .role{ margin-bottom:40px; }
  }
  .profile-bio p{
    font-size:15.5px; line-height:1.9;
    text-wrap:pretty; word-break:auto-phrase;
  }
  .profile-bio p + p{ margin-top:1.2em; }
  .profile-text ul{ list-style:none; }
  .profile-text li{
    font-size:15.5px; padding:12px 0 12px 20px; border-top:1px solid var(--c-line);
    position:relative; line-height:1.9;
  }
  .profile-text li::before{
    content:'—'; position:absolute; left:0; color:var(--c-silver-deep);
  }

  /* ==========================
   アクセス・予約セクション
   ========================== */
  .access{ background:var(--c-black); color:var(--c-white); text-align:center; }
  .access .divider{ color:var(--c-silver); }
  .access .divider::before, .access .divider::after{ background:rgba(255,255,255,.18); }
  .access-block{ scroll-margin-top:32px; }
  .map-block{ margin-top:96px; }
  /* PC限定。SCHEDULE終盤へ背景だけを延ばし、既存Observerの表示結果を参照する。 */
  #map{ position:relative; isolation:isolate; }
  #map::before{
    content:'';
    position:absolute; top:-180px; bottom:0; left:50%;
    width:calc(100vw - 32px); transform:translateX(-50%);
    z-index:-1; pointer-events:none;
    background-image:url("images/LINE_ALBUM_20260705 空蝉_260907_70.jpg");
    background-repeat:no-repeat;
    --map-photo-width:max(1100px, 82vw);
    background-size:var(--map-photo-width) auto;
    /* 片目を本文の右外側へ置き、地図に隠れすぎない構図にする。 */
    background-position:calc(50vw + min(412px, 50vw - 28px) + 28px - var(--map-photo-width) * .51) top;
    filter:grayscale(1);
    -webkit-mask-image:linear-gradient(to right, transparent 40%, #000 72%, #000 92%, transparent), linear-gradient(to bottom, transparent, #000 180px, #000 320px, transparent min(100%, calc(var(--map-photo-width) * .6654)));
    mask-image:linear-gradient(to right, transparent 40%, #000 72%, #000 92%, transparent), linear-gradient(to bottom, transparent, #000 180px, #000 320px, transparent min(100%, calc(var(--map-photo-width) * .6654)));
    -webkit-mask-composite:source-in;
    mask-composite:intersect;
    opacity:.04;
    transition:opacity 2.5s ease;
  }
  #map:has(> .divider.is-visible)::before{ opacity:.12; }
  @media (max-width:720px){
    #map::before{ content:none; display:none; }
  }
  @media (prefers-reduced-motion:reduce){
    #map::before{ transition:none; }
    #map:has(> .divider.is-visible)::before{ opacity:.04; }
  }
  .schedule-block .calendar-panel{ margin-top:0; }
  .map-block .map-embed{ margin-top:0; }
  .access .addr{ font-size:16px; color:var(--c-silver); margin-bottom:8px; }
  .access .access-info{ font-size:14.5px; color:rgba(255,255,255,.55); line-height:1.95; margin-bottom:0; }
  .access .map-block + .cta-row{ margin-top:48px; }
  @media (min-width:320px) and (max-width:720px){
    .access-hours-note{ white-space:nowrap; }
  }
  @media (max-width:720px){
    .map-block{ margin-top:72px; }
    .access .map-block + .cta-row{ margin-top:42px; }
  }
  .access .ph-wide{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.4); max-width:520px; margin:32px auto; }
  .access .ph-wide .num{ color:rgba(255,255,255,.45); }

  /* 日本語の意味のまとまりを優先した字面調整 */
  h1, h2, h3, p, li, th, td, .badge, .role, .access-info, .qr-copy{
    line-break:strict;
    overflow-wrap:break-word;
  }
  h2, h3, .badge, .method .story, .guide .lead, .guide-emphasis,
  .access .addr, .access-info, footer .legal{
    text-wrap:balance;
  }
  .guide-copy p, .profile-text li, .price-note{
    text-wrap:pretty;
    word-break:auto-phrase;
  }
  .br-sp{ display:none; }
  .br-pc, .br-responsive{ display:block; }

  /* ==========================
   予約カレンダー（Googleカレンダー連携／1ヶ月表示）
   ========================== */
  .calendar-panel{
    max-width:400px; margin:32px auto 0;
    background:rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.18);
    padding:22px 18px;
    --fc-event-text-color:#17171a;
    --fc-event-bg-color:#ffffff;
    --fc-event-border-color:#ffffff;
  }
  @media (min-width:900px){
    .calendar-panel{ max-width:560px; padding:28px 26px; }
    .fc .fc-toolbar-title{ font-size:18px; }
    .fc .fc-daygrid-day-number{ font-size:13px; }
    .fc-daygrid-event{ font-size:11.5px; }
  }
  .fc{ font-family:var(--font-body); }
  .fc .fc-toolbar.fc-header-toolbar{ margin-bottom:16px; }
  .fc .fc-toolbar-title{
    font-family:var(--font-display); font-size:16px; font-weight:600;
    color:var(--c-white); letter-spacing:.06em;
  }
  .fc .fc-button{
    background:transparent; border:1px solid rgba(255,255,255,.35);
    color:var(--c-white); box-shadow:none; padding:4px 10px;
  }
  .fc .fc-button:hover{ background:rgba(255,255,255,.1); color:var(--c-white); }
  .fc .fc-button:focus, .fc .fc-button:active{ box-shadow:none !important; }
  .fc .fc-button:disabled{ background:transparent; border-color:rgba(255,255,255,.15); color:rgba(255,255,255,.3); }
  .fc-theme-standard td, .fc-theme-standard th{ border-color:rgba(255,255,255,.12); background:transparent !important; }
  .fc .fc-scrollgrid{ border-color:rgba(255,255,255,.12); }
  .fc .fc-col-header, .fc .fc-col-header-cell, .fc .fc-scrollgrid-sync-inner{ background:transparent !important; }
  .fc .fc-scrollgrid-sync-table, .fc thead, .fc tbody{ background:transparent !important; }
  .fc .fc-col-header-cell-cushion{
    color:rgba(255,255,255,.65) !important; font-size:11px; letter-spacing:.05em;
    text-decoration:none; padding:8px 0;
  }
  .fc .fc-daygrid-day-number{
    color:rgba(255,255,255,.7); font-size:12px; text-decoration:none; padding:6px !important;
  }
  .fc .fc-day-today{ background:rgba(255,255,255,.06) !important; }
  .fc .fc-day-today .fc-daygrid-day-number{ color:var(--c-white); font-weight:600; }
  .fc-daygrid-event{
    background:var(--calendar-event-bg); color:var(--c-black) !important;
    border:none; font-size:10.5px; padding:1px 4px; border-radius:2px;
    cursor:pointer; -webkit-touch-callout:none;
  }
  .fc-daygrid-event .fc-event-main,
  .fc-daygrid-event .fc-event-title{
    color:var(--c-black) !important;
  }
  .fc .fc-daygrid-day-frame{ min-height:38px !important; }
  .fc-direction-ltr .fc-daygrid-more-link{ color:rgba(255,255,255,.55); font-size:10px; }

  @media (max-width:600px){
    .calendar-panel{ padding:12px 8px; }
    .fc .fc-toolbar.fc-header-toolbar{ margin-bottom:8px !important; }
    .fc .fc-toolbar-title{ font-size:13px !important; }
    .fc .fc-button{ padding:2px 6px !important; font-size:10.5px !important; }
    .fc .fc-col-header-cell-cushion{ font-size:9.5px; padding:3px 0 !important; }
    .fc .fc-daygrid-day-frame{ min-height:24px !important; }
    .fc .fc-daygrid-day-top{ flex-direction:row; margin:0 !important; padding:0 !important; }
    .fc .fc-daygrid-day-number{ font-size:10.5px; padding:2px 3px !important; line-height:1.3 !important; }
    .fc-daygrid-event{ font-size:9px; padding:0 2px !important; line-height:1.2 !important; margin-top:0 !important; }
    .fc .fc-daygrid-day-events{ min-height:0 !important; margin-bottom:0 !important; margin-top:0 !important; }
  }
  .contact-links{ display:flex; gap:22px; justify-content:center; align-items:center; margin:36px 0; }

  /* ==========================
   デスクトップ用QRパネル
   ========================== */
  .qr-panel{ display:none; }
  @media (min-width:900px){
    .qr-panel{
      display:inline-flex; align-items:center; gap:16px;
      background:var(--c-black); color:var(--c-white);
      padding:14px 22px; margin-top:22px; text-align:left;
      border:1px solid rgba(255,255,255,.25);
    }
    .qr-panel img{ width:76px; height:76px; flex-shrink:0; }
    .qr-panel .qr-copy{ font-size:12.5px; line-height:1.8; color:var(--c-silver); max-width:220px; }
    .qr-panel .qr-copy strong{ display:block; font-family:var(--font-display); font-size:13.5px; color:var(--c-white); margin-bottom:4px; }
  }
  .contact-links a{
    display:inline-flex; align-items:center; justify-content:center;
    width:28px; height:28px; opacity:.7; transition:opacity .3s ease;
    cursor:pointer; -webkit-touch-callout:none;
  }
  .contact-links a:hover{ opacity:1; }
  .contact-links img{ width:100%; height:100%; display:block; }

/* ==========================
   フッター
   ========================== */
  footer{
    background:var(--c-white); padding:44px 28px 60px; text-align:center;
  }
  footer .legal{ font-size:11.5px; color:var(--c-gray-mid); line-height:2; max-width:560px; margin:0 auto 18px; }
  footer .brand{ font-family:var(--font-display); font-size:13px; letter-spacing:.3em; color:var(--c-silver-deep); }
  footer .copyright{ font-size:10.5px; line-height:1.8; letter-spacing:.08em; color:var(--c-gray-mid); margin:22px auto 0; }

  /* ==========================
   モバイル用スティッキーCTA
   ========================== */
  .sticky-cta{
    position:fixed; bottom:0; left:0; right:0; z-index:50;
    background:var(--c-black); display:none;
    padding:0; justify-content:center;
    opacity:0; visibility:hidden; transform:translateY(100%);
    pointer-events:none;
    transition:opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
  }
  .sticky-cta.is-visible{
    opacity:1; visibility:visible; transform:translateY(0);
    pointer-events:auto;
    transition:opacity .25s ease, transform .25s ease, visibility 0s linear 0s;
  }
  .sticky-cta a{
    color:var(--c-white); font-size:12px; letter-spacing:.08em;
    display:flex; align-items:center; justify-content:center;
    width:50%; min-height:56px; padding:10px 8px; text-align:center;
    cursor:pointer; -webkit-touch-callout:none;
  }
  .sticky-cta a + a{ border-left:1px solid rgba(255,255,255,.25); }
  @media (prefers-reduced-motion: reduce){
    .sticky-cta, .sticky-cta.is-visible{ transition:none; }
  }

  /* ==========================
   ハンバーガーメニュー・サイトナビゲーション
   ========================== */
  .menu-toggle{
    position:fixed; top:22px; right:22px; z-index:1100;
    width:44px; height:44px; display:flex; align-items:center; justify-content:center;
    background:none; border:none; padding:0; cursor:pointer;
  }
  .site-logo-toggle{
    position:fixed; top:18px; left:18px; z-index:1100;
    width:52px; height:52px; display:flex; align-items:center; justify-content:center;
    background:none; border:none; padding:0; cursor:pointer;
  }
  .site-logo-toggle img{
    width:100%; height:100%; object-fit:contain; display:block;
    filter:drop-shadow(0 0 1px rgba(0,0,0,.55)) drop-shadow(0 0 2px rgba(0,0,0,.3));
    transition:filter .25s ease, opacity .25s ease;
  }
  .site-logo-toggle.on-dark img{
    filter:drop-shadow(0 0 1px rgba(255,255,255,.6)) drop-shadow(0 0 2px rgba(255,255,255,.35));
  }
  .site-logo-toggle:active img{ opacity:.7; }
  .menu-toggle .bar{
    position:absolute; left:11px; width:22px; height:1px;
    background:var(--c-black); transition:transform .35s ease, opacity .35s ease, background-color .35s ease;
  }
  .menu-toggle .bar:nth-child(1){ top:16px; }
  .menu-toggle .bar:nth-child(2){ top:22px; }
  .menu-toggle .bar:nth-child(3){ top:28px; }
  .menu-toggle.on-dark .bar{ background:var(--c-white); }
  .menu-toggle.is-open .bar{ background:var(--c-white); }
  .menu-toggle.is-open .bar:nth-child(1){ transform:translateY(6px) rotate(45deg); }
  .menu-toggle.is-open .bar:nth-child(2){ opacity:0; }
  .menu-toggle.is-open .bar:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

  .site-nav-overlay{
    position:fixed; inset:0; z-index:1050;
    background:var(--c-black);
    display:flex; align-items:center; justify-content:center;
    padding:64px 0;
    overflow-y:auto;
    opacity:0; visibility:hidden;
    transition:opacity .9s ease, visibility 0s linear .9s;
  }
  .site-nav-overlay.is-open{
    opacity:1; visibility:visible;
    transition:opacity .35s ease-in, visibility 0s linear 0s;
  }
  /* Keep the normal layout and menu ARIA state while an initial fragment is masked. */
  html.initial-anchor.initial-anchor-releasing #siteNavOverlay{
    opacity:0; visibility:hidden !important;
    transition:opacity .9s ease, visibility 0s linear .9s;
  }
  html.initial-anchor.initial-anchor-releasing .site-logo-toggle,
  html.initial-anchor.initial-anchor-releasing .menu-toggle{ visibility:hidden !important; }
  @media (prefers-reduced-motion: reduce){
    html.initial-anchor.initial-anchor-releasing #siteNavOverlay{ transition:none; }
  }
  .site-nav-list{
    list-style:none; text-align:center; padding:0 30px; margin:auto; width:100%; max-width:420px;
    opacity:0; transform:translateY(22px);
    transition:opacity 1.1s ease, transform 1.1s ease;
  }
  .site-nav-list.is-visible{ opacity:1; transform:translateY(0); }
  .site-nav-list li{ border-bottom:1px solid rgba(255,255,255,.14); }
  .site-nav-list li:first-child{ border-top:1px solid rgba(255,255,255,.14); }
  .site-nav-list a{
    display:block; padding:17px 4px; font-family:var(--font-display); font-size:17px;
    letter-spacing:.1em; color:var(--c-white); opacity:.85;
    transition:opacity .25s ease;
  }
  .site-nav-list a:active{ opacity:1; }
  @media (max-width:600px){
    .site-nav-list .site-nav-external-start{ margin-top:12px; }
  }
  @media (prefers-reduced-motion: reduce){
    .site-nav-overlay{ transition:none; }
    .site-nav-list{ transition:none; opacity:1; transform:none; }
    .menu-toggle .bar{ transition:none; }
  }

/* ==========================
   レスポンシブ調整（スマホ幅）
   ========================== */
  @media (max-width:720px){
    .jp-keep{ display:inline-block; white-space:nowrap; }
    section{ padding:70px 0; }
    .hero{ overflow:hidden; }
    .hero.has-stable-viewport{ min-height:var(--hero-viewport-height); }
    h2{ font-size:24px; }
    .empathy .wrap, .method .wrap{ padding-inline:24px; }
    .empathy h2, .about-you-body{ max-width:30em; }
    .empathy h2{ font-size:clamp(17px, 5vw, 22px); }
    .about-you-credit{ margin-bottom:30px; }
    .about-you-credit img{ width:88px; }
    .about-you-credit p{ font-size:11px; }
    .about-you-paragraph{
      font-size:clamp(13.5px, 3.75vw, 14.5px); line-height:2.05; letter-spacing:0;
      text-wrap:balance; line-break:strict; word-break:auto-phrase;
    }
    .about-you-pc-paragraph{ display:none; }
    .about-you-sp-paragraph{ display:block; }
    .about-you-subtitle{ font-size:clamp(15.5px, 4.4vw, 17px); line-height:1.9; }
    .about-you-pc-text{ display:none; }
    .about-you-sp-text{ display:inline; }
    .about-you-sp-line{ display:block; text-wrap:nowrap; }
    .method .story{ font-size:16px; line-height:2.08; letter-spacing:0; }
    .method-keep{ display:inline-block; white-space:nowrap; }
    .method .story p + p{ margin-top:27px; }
    .method .story .method-change-sequence{ margin-top:42px; }
    .method .story .method-closing-intro{ margin-top:44px; }
    .method .story .method-final{ margin-top:23px; font-size:1.1em; }
    .hero h1{
      font-size:clamp(27px, 8.4vw, 36px); letter-spacing:.02em;
      white-space:nowrap;
    }
    .hero-break{ display:none; }
    .hero h1 .tighten{ margin-right:0; }
    .hero-logo-stage{
      width:clamp(150px, 42vw, 172px); margin:0 auto 22px;
    }
    .hero-logo-stage .logo-mark{ width:100%; margin:0; position:relative; z-index:1; }
    .rings--logo{
      display:block; inset:auto; overflow:visible;
      width:1px; height:1px;
      left:50%; top:50%;
      z-index:0; transform:translate(-50%,-50%);
    }
    .rings--logo svg{
      width:400px; height:400px;
      left:50%; top:50%; transform:translate(-50%,-50%);
      transform-origin:center;
    }
    .profile-text .role{
      font-size:clamp(10.5px, 3.05vw, 12.5px); line-height:1.9;
      letter-spacing:.01em;
    }
    .profile-flex{ flex-direction:column; gap:26px; align-items:center; text-align:center; }
    .profile-bio{ max-width:none; margin-inline:-8px; }
    /* 本文のみ、意味単位の保護を優先。PCと肩書き表示には適用しない。 */
    .profile-bio p{ font-size:15px; word-break:normal; text-wrap:balance; }
    .profile-bio .profile-credential-sp{ display:inline-block; max-width:100%; letter-spacing:-.02em; }
    .profile-br-sp{ display:initial; }
    .profile-keep-sp{ white-space:nowrap; }
    .profile-text li::before{ display:none; }
    .profile-text li{ padding-left:0; }
    .br-sp{ display:block; }
    .br-pc{ display:none; }
    .guide-copy{ max-width:32em; margin-top:42px; }
    .guide-copy p{ font-size:15px; line-height:2.12; margin-bottom:28px; }
    .guide-accordion{ max-width:32em; }
    .guide-accordion-trigger{
      min-height:62px; padding:18px 2px; gap:16px;
      font-size:clamp(16px, 4.25vw, 17px); letter-spacing:.035em;
    }
    .guide-accordion-content{ padding:36px 0 24px; }
    .guide .guide-treatment-copy{ max-width:30em; }
    .guide .guide-treatment-copy p{
      font-size:clamp(14.5px, 3.78vw, 15px); line-height:2.12; margin-bottom:28px;
      text-wrap:pretty;
    }
    .guide-subhead{ font-size:18px; margin-top:48px; margin-bottom:25px; }
    .guide-emphasis{ font-size:18px; line-height:1.95; margin:34px 0; }
    .guide .guide-block + .guide-block{ margin-top:60px; }
    .guide .guide-block-philosophy > p:first-child,
    .guide .guide-block-first-visit > p:first-child{ margin-bottom:30px; }
    .guide .guide-copy + .cta-row{ margin-top:44px !important; }
    .menu-info-block{ margin-top:48px; }
    .menu-info-title{ font-size:18px; margin-bottom:25px; }
    .menu-info-block p{ font-size:15px; line-height:2.05; margin-bottom:23px; }
    .guide-service-info{ max-width:30em; margin-top:60px; }
    .guide-service-block + .guide-service-block{ margin-top:60px; }
    .guide-service-block p,
    .guide-service-list li{
      font-size:clamp(14.5px, 3.78vw, 15px); line-height:2.12;
    }
    .guide-service-block p,
    .guide-service-list{ margin-bottom:28px; }
    .guide-copy p, .profile-text li, .price-note, footer .legal{
      word-break:auto-phrase;
    }
    table.price th, table.price td{ font-size:13.5px; padding:16px 4px; }
    .sticky-cta{ display:flex; }
    .site-logo-toggle,
    .menu-toggle{
      isolation:isolate;
    }
    .site-logo-toggle::before,
    .menu-toggle::before{
      content:''; position:absolute; z-index:-1; pointer-events:none;
      inset:5px 2px;
      background:radial-gradient(ellipse at center, rgba(255,255,255,.18) 0%, rgba(255,255,255,.09) 42%, rgba(255,255,255,0) 76%);
      backdrop-filter:blur(1.5px);
      -webkit-backdrop-filter:blur(1.5px);
    }
    .site-logo-toggle.on-dark::before,
    .menu-toggle.on-dark::before,
    .menu-toggle.is-open::before{
      background:radial-gradient(ellipse at center, rgba(23,23,26,.16) 0%, rgba(23,23,26,.08) 42%, rgba(23,23,26,0) 76%);
    }
  }

  @media (max-width:340px){
    .empathy .wrap{ padding-inline:12px; }
    .about-you-paragraph{ font-size:13.5px; }
    .method .wrap{ padding-inline:16px; }
    .method h2{ font-size:22px; }
  }

  /* ==========================
   レスポンシブ調整（縦幅が狭い画面向けヒーロー圧縮）
   ========================== */
  @media (max-height:700px){
    .hero:not(.has-stable-viewport) .wrap{ padding:30px 28px 24px; }
    .hero:not(.has-stable-viewport) .eyebrow{ margin-bottom:4px; }
    .hero:not(.has-stable-viewport) h1{ margin-bottom:8px; }
    .hero:not(.has-stable-viewport) .salon-name{ margin-bottom:10px; }
    .hero:not(.has-stable-viewport) .hero-logo-stage{ width:min(28vw,160px); margin-bottom:14px; }
    .hero:not(.has-stable-viewport) .desc{ margin:0 auto 18px; line-height:1.7; }
  }

  @media (max-width:720px) and (max-height:700px){
    .hero:not(.has-stable-viewport) .hero-logo-stage{ width:clamp(140px, 40vw, 150px); margin-bottom:14px; }
  }

  /* Preserve the initial compact design through height-only toolbar resizes. */
  @media (max-width:720px){
    .hero.has-stable-viewport.is-compact-viewport .wrap{ padding:30px 28px 24px; }
    .hero.has-stable-viewport.is-compact-viewport .eyebrow{ margin-bottom:4px; }
    .hero.has-stable-viewport.is-compact-viewport h1{ margin-bottom:8px; }
    .hero.has-stable-viewport.is-compact-viewport .salon-name{ margin-bottom:10px; }
    .hero.has-stable-viewport.is-compact-viewport .hero-logo-stage{ width:clamp(140px, 40vw, 150px); margin-bottom:14px; }
    .hero.has-stable-viewport.is-compact-viewport .desc{ margin:0 auto 18px; line-height:1.7; }
  }
