@charset "UTF-8";
/*
  Template: swell
  Theme Name: SWELL CHILD
  Description: SWELL の子テーマ
*/

/* =========================================================
   0) 共通レイアウト変数
   ========================================================= */
:root{
  --site-container: 1240px; /* OUR PROJECTS と NEWS を揃える基準幅 */
  --site-pad: 44px;         /* 両サイドの余白調整 */
}

/* =========================================================
   1) Brand Fonts
   ========================================================= */
@font-face{
  font-family:'Geomanist';
  src:url('Geomanist-Medium.otf') format('opentype');
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Geomanist';
  src:url('Geomanist-Black.otf') format('opentype');
  font-weight:900; font-style:normal; font-display:swap;
}

/* =========================================================
   2) Base Typography
   ========================================================= */
html{ scroll-behavior:smooth; }
html, body{ overflow-x:hidden; }

body{
  font-family:"Hiragino Sans","ヒラギノ角ゴシック","Noto Sans JP",sans-serif;
  font-weight:400; line-height:1.8;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5,h6{
  font-family:"Geomanist","Helvetica Neue",Arial,sans-serif;
  font-weight:500; line-height:1.4;
}
h1 strong,h2 strong,.heading-bold{ font-weight:900; }

/* 固定ページのタイトル帯を非表示（SWELL） */
.page .c-pageTitle,.page .p-pageTitle,.page .l-pageTitle{ display:none !important; }

/* =========================================================
   3) TOP：ヒーロー / LOGO
   ========================================================= */
.lp-hero-top{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:88vh; padding:12vh var(--site-pad) 8vh; background:#fff; text-align:center;
}
.lp-hero-top h1{
  font-weight:900; letter-spacing:.07em; line-height:1.14;
  font-size:clamp(24px,4.2vw,44px); margin:0 0 12px;
}
.lp-hero-top p{
  font-size:clamp(13px,1.4vw,18px); letter-spacing:.12em; color:#222; margin:0 0 30px;
}
/* SCROLL cue */
@keyframes cueBlink{ 0%,100%{opacity:.25;} 50%{opacity:1;} }
@keyframes cueUp{ from{opacity:0; transform:translate(-50%,12px);} to{opacity:1; transform:translate(-50%,0);} }
.lp-scroll-cue{
  position:absolute; left:50%; bottom:6vh; transform:translate(-50%,8px);
  display:inline-flex; flex-direction:column; align-items:center; gap:12px;
  width:max-content; text-align:center; line-height:1; z-index:2;
  font-family:"Geomanist","Helvetica Neue",Arial,sans-serif;
  font-size:12px; letter-spacing:.18em;
  animation: cueUp .9s cubic-bezier(.2,.6,.2,1) .7s both, cueBlink 1.8s ease-in-out 1.9s infinite;
}
.lp-scroll-cue::before{
  content:""; display:block; width:1px; height:40px; margin:0 auto; background:#222; opacity:.6;
  animation: cueUp .9s cubic-bezier(.2,.6,.2,1) .7s both, cueBlink 1.8s ease-in-out 2.25s infinite;
}
.lp-scroll-cue .wp-block-group__inner-container{ padding:0 !important; margin:0 !important; }
.lp-scroll-cue p{ margin:0; }
@media (prefers-reduced-motion:reduce){
  .lp-scroll-cue,.lp-scroll-cue::before{ animation:none !important; transform:none !important; opacity:1 !important; }
}
@media (max-width:767px){
  .lp-hero-top{ min-height:90vh; padding:12vh 16px 10vh; }
  .lp-scroll-cue{ bottom:6vh; }
}


/* =========================================================
   4) セクション共通レイアウト
   ========================================================= */
:root{ --lp-container: 1120px; --lp-pad-x: 24px; }
.lp-section{ padding: min(11vw, 120px) var(--lp-pad-x); }
.lp-section .section-inner{ max-width: var(--lp-container); margin: 0 auto; }

/* =========================================================
   5) Head（英字/日本語）
   ========================================================= */
.post_content :is(h1,h2,h3,h4,h5,h6).ttl-en{
  font-family:"Geomanist","Helvetica Neue",Arial,sans-serif !important;
  font-weight:800 !important; text-transform:uppercase !important; line-height:1.08 !important;
  margin:0 auto !important; padding:0 !important; width:fit-content !important; text-align:center !important;
}
@supports not (width: fit-content){ .post_content :is(h1,h2,h3,h4,h5,h6).ttl-en{ display:inline-block !important; } }
.post_content h2.ttl-en{ font-size: clamp(30px, 3.3vw, 40px) !important; }
.post_content h1.ttl-en{ font-size: clamp(34px, 4vw, 56px) !important; }
.post_content h3.ttl-en{ font-size: clamp(24px, 2.6vw, 36px) !important; }

/* SPだけ：英字H2見出しを少し小さく */
@media (max-width: 767px){
  .post_content h2.ttl-en{
    /* だいたい 22–26px のレンジ。もっと小さくしたければ下限を下げてOK */
    font-size: clamp(22px, 6vw, 26px) !important;
  }
}

.ttl-ja{
  margin-top: clamp(8px, 1vw, 14px);
  font-family:"Hiragino Sans","ヒラギノ角ゴシック","Noto Sans JP",sans-serif;
  font-size: clamp(12px, 1.25vw, 16px);
  letter-spacing: .12em; line-height: 1.5; font-weight: 600; text-align: center;
}

/* =========================================================
   6) Footer layout
   ========================================================= */
.l-footer__foot > .l-container{
  display:flex; align-items:center; justify-content:flex-start; gap:24px;
}
.l-footer__foot .l-footer__nav, .l-footer__foot .l-footer__nav ul{ margin:0; padding:0; }
.l-footer__foot .l-footer__nav ul{ display:flex; flex-wrap:wrap; gap:16px; }
@media (max-width:767px){
  .l-footer__foot > .l-container{ flex-direction:column; align-items:center; gap:12px; }
  .l-footer__foot .l-footer__nav ul{ justify-content:center; gap:12px; }
}
footer#footer{ --footer-pad: clamp(9px, 1.6vw, 18px); }
footer#footer.l-footer .l-footer__inner > .l-container,
footer#footer.l-footer .l-footer__widgetArea > .l-container.w-footer--col1,
footer#footer.l-footer .l-footer__foot > .l-container{
  box-sizing:border-box; max-width:none !important; width:100vw !important;
  margin-left:calc(50% - 50vw) !important; margin-right:calc(50% - 50vw) !important;
  padding-left:var(--footer-pad) !important; padding-right:var(--footer-pad) !important;
}
footer#footer .w-footer__box{ padding:0 !important; }
footer#footer .l-footer__foot p.copyright,
footer#footer .l-footer__foot .p-copyright{
  flex:1 1 auto; min-width:0; margin:0; padding-right:clamp(12px,2vw,28px);
  font-size:12px; line-height:1; white-space:nowrap; text-align:right;
}
.footer-logo-wrap{ margin-left:auto; display:flex; align-items:center; }
.footer-logo-wrap .footer-logo-img{ height:24px; width:auto; display:block; }

/* =========================================================
   7) Gutenberg columns & buttons
   ========================================================= */
.wp-block-columns{ --wp-column-gap: 1em !important; }
.wp-block-button .wp-block-button__link{ transition: background-color .25s, color .25s !important; }
.wp-block-button .wp-block-button__link:hover{ background-color:#000 !important; color:#fff !important; box-shadow:none !important; opacity:1 !important; }

/* =========================================================
   8) NEWS & INFO（lp-news）
   ========================================================= */
/* ★ 外側の alignfull グループ直下の内側コンテナ＝基準器 */
.post_content .wp-block-group.alignfull.lp-news > .wp-block-group__inner-container{
  max-width: var(--site-container) !important;
  padding-left: var(--site-pad) !important;
  padding-right: var(--site-pad) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ★ さらに内部の .section-inner 直下の内側コンテナも同じ器に */
.post_content .wp-block-group.alignfull.lp-news
  > .wp-block-group__inner-container
  > .wp-block-group.section-inner
  > .wp-block-group__inner-container{
  max-width: var(--site-container) !important;
  padding-left: var(--site-pad) !important;
  padding-right: var(--site-pad) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
/* ★ .l-container が器を縮めるので解除 */
.post_content .lp-news .l-container{
  max-width:none !important; width:100% !important;
  padding-left:0 !important; padding-right:0 !important;
  margin-left:0 !important; margin-right:0 !important;
}
/* Grid */
.post_content .lp-news .news-grid{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr));
  gap: clamp(14px, 2vw, 24px);
  max-width:none !important; width:100% !important;
}
@media (max-width:1024px){ .post_content .lp-news .news-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width:600px){ .post_content .lp-news .news-grid{ grid-template-columns:1fr; } }
/* Card */
.post_content .lp-news .news-item{ display:block; }
.post_content .lp-news .news-item a{
  display:block; color:inherit; text-decoration:none !important; border:0 !important; box-shadow:none !important; background-image:none !important;
}
/* Thumb */
.post_content .lp-news .news-thumb{ position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:0 !important; }
.post_content .lp-news .news-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition: transform .5s ease, opacity .3s ease; border-radius:0 !important;
}
.post_content .lp-news .news-item:hover .news-thumb img{ transform:scale(1.02); opacity:.98; }
/* Meta */
.post_content .lp-news .news-meta{
  display:inline-flex; align-items:center; gap:.6em; margin-top:.45em; font-size:12px; line-height:1; opacity:.9;
}
.post_content .lp-news .news-date{
  font-family:"Hiragino Sans","ヒラギノ角ゴシック","Noto Sans JP",sans-serif !important;
  font-variant-numeric:tabular-nums; font-size:12px; font-weight:700; letter-spacing:.03em; line-height:1; white-space:nowrap; opacity:.9;
}
/* pill 無効 */
.post_content .lp-news .news-cat,
.post_content .lp-news .news-cat span,
.post_content .lp-news .news-cat a{
  border:none !important; border-radius:0 !important; padding:0 !important;
  background:none !important; box-shadow:none !important; display:inline !important;
}
/* Title */
.post_content .lp-news .news-item-title{
  margin:.2em 0 0 !important;
  font-family:"Hiragino Sans","ヒラギノ角ゴシック","Noto Sans JP",sans-serif !important;
  font-weight:700; font-size: clamp(8px, 1vw, 12px); line-height:1.5;
}
/* SWELL h3 装飾線の無効化 */
.post_content .lp-news h3,
.post_content .lp-news h3.news-item-title{
  position:static !important; padding:0 !important; background:none !important; border:0 !important;
}
.post_content .lp-news h3::before, .post_content .lp-news h3::after,
.post_content .lp-news h3.news-item-title::before, .post_content .lp-news h3.news-item-title::after{
  content:none !important; display:none !important; width:0 !important; height:0 !important; background:none !important; box-shadow:none !important;
}

/* =========================================================
   9) OUR PROJECTS（facility_grid ショートコード）
   ========================================================= */
/* 見出しブロック直下の内側コンテナ＝器 */
.post_content .lp-project .wp-block-group__inner-container{
  max-width: var(--site-container) !important;
  padding-left: var(--site-pad) !important;
  padding-right: var(--site-pad) !important;
  margin-left:auto !important; margin-right:auto !important;
}
/* Grid: PC3 / TB2 / SP1 */
.post_content .facility-grid{
  display:grid; grid-template-columns:repeat(3,1fr);
  column-gap:24px; row-gap:24px; width:100%;
  max-width:none; margin:24px 0 0; /* 器にフィットさせる */
}
@media (max-width:1024px){
  .post_content .facility-grid{ grid-template-columns:repeat(2,1fr); column-gap:20px; row-gap:20px; }
}
@media (max-width:599px){
  .post_content .facility-grid{ grid-template-columns:1fr; row-gap:16px; }
}
.facility-card{ text-align:center; margin:0 !important; }
.facility-card__a{ display:block; text-decoration:none; color:inherit; }
/* Thumb */
.facility-thumb{
  position:relative; aspect-ratio:3/2; width:100%; overflow:hidden; border-radius:0; margin-bottom:8px;
}
.facility-thumb__img{ width:100%; height:100%; object-fit:cover; display:block; transform:translateZ(0); }
/* Title */
.facility-title{
  margin:0 !important; padding:0 !important; border:none !important;
  font-weight:700; line-height:1.3; letter-spacing:.02em;
  font-size: clamp(12px, 1.15vw, 14px) !important;
}
.post_content .facility-grid h3.facility-title::before,
.post_content .facility-grid h3.facility-title::after{ content:none !important; display:none !important; }
.facility-card__a:hover .facility-title{ text-decoration:underline; }
/* Hover Overlay（角度なし／濃さそのまま／動きは従来と同じ感覚） */
.facility-thumb{ position: relative; overflow: hidden; }

.facility-thumb::after{
  content:""; position:absolute; z-index:1; pointer-events:none;
  /* サイズ・配置は従来のまま */
  top:-40%; left:-40%; width:180%; height:180%;
  background: rgba(0,0,0,0.40);           /* 濃さそのまま */
  /* 角度だけ除去：rotate/transform-origin を削除 */
  transform: translate(100%, 100%);        /* 右下の外から */
  transition: transform 1.05s cubic-bezier(.19,1,.22,1);
  will-change: transform;
}

.facility-card__a:hover .facility-thumb::after{
  transform: translate(0, 0);              /* 斜めに滑り込む（回転なし） */
}

/* 画像ズームは従来どおり */
.facility-card__a:hover .facility-thumb__img{
  transform: scale(1.03);
  transition: transform 1.05s cubic-bezier(.19,1,.22,1);
}
/* ===== NEWS：角度なし・右下→中央へ滑り込み（従来の見え方のまま） ===== */
@media (min-width: 960px) and (hover:hover) and (pointer:fine){
  /* 当たり判定（要素構造の差を吸収） */
  .news-grid :where(.news-card__a, a, figure, .news-thumb){
    position: relative;
    overflow: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);
  }

  /* オーバーレイ本体（斜め時と同じサイズ感・濃さ、角度だけ無し） */
  .news-grid :where(.news-thumb, figure)::after{
    content:""; position:absolute; z-index:1; pointer-events:none;
    top:-40%; left:-40%; width:180%; height:180%;
    background: rgba(0,0,0,0.40);          /* 既存と同じ色・濃さ */
    transform: translate(100%, 100%);      /* 右下の外から開始（回転なし） */
    transition: transform 1.05s cubic-bezier(.19,1,.22,1);
    will-change: transform;
  }

  /* hoverで中央へ滑り込む（角度なし） */
  .news-grid :where(.news-card__a, a, figure):hover :where(.news-thumb, figure)::after{
    transform: translate(0, 0);
  }

  /* 画像のズームは従来どおり（任意） */
  .news-grid :where(img, .news-thumb__img){
    transition: transform 1.05s cubic-bezier(.19,1,.22,1);
    will-change: transform;
  }
  .news-grid :where(.news-card__a, a, figure):hover :where(img, .news-thumb__img){
    transform: scale(1.03);
  }
}

/* OUR PROJECTS：コア Button 用の体裁統一 */
#project .projects-actions{ display:flex; justify-content:center; margin-top:24px; }
#project .projects-actions .wp-block-buttons{ width:auto; } /* SWELLの横幅制御を無効化する保険 */
#project .btn-look-more .wp-block-button__link{
  border:1px solid #000 !important;
  background:#fff !important;
  color:#000 !important;
  box-shadow:none !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px; line-height:1;
  padding:12px 28px;
  transition:opacity .2s ease, transform .2s ease;
}
#project .btn-look-more.is-style-outline .wp-block-button__link{
  border:1px solid #000 !important; background:#fff !important;
}
#project .btn-look-more .wp-block-button__link:hover{ opacity:.9; transform:translateY(-1px); }

/* ===== OVERVIEW: variables (with image URLs) ===== */
:root{
  --ov-size: clamp(220px, 38vw, 520px);
  --ov-gap: clamp(24px, 5vw, 80px);

  /* 背景グラデ画像：ご指定のURLを適用（JS/他CSSからも参照可） */
  --ov-grad-left: url('https://aquaignis-company.jp/wp-content/uploads/2025/10/left_noise-scaled.jpg');
  --ov-grad-right: url('https://aquaignis-company.jp/wp-content/uploads/2025/10/right_noise-scaled.jpg');

  --ov-grad-ops: var(--ov-grad-left);
  --ov-grad-dev: var(--ov-grad-right);

  --t-drop: 1.05s;
  --t-split: .9s;
  --t-reveal: .6s;
}

#overview.ov{ position: relative; }
.ov__head{ text-align:center; max-width: 880px; margin: 0 auto; }

.ov-stage{
  position: relative;
  min-height: 86vh;
  display: grid;
  place-items: center;
  overflow: visible;
}

.ov-bubble{
  width: var(--ov-size);
  height: var(--ov-size);
  border-radius: 50%;
  position: absolute;
  display: grid;
  place-items: center;
  color: #fff; text-align: center;
}
.ov-bubble__inner{
  width: 82%;
  transform: translateY(6px);
  opacity: 0;
  transition: opacity var(--t-reveal) ease, transform var(--t-reveal) ease;
}
.ov-bubble__h.jp{ font-weight: 800; letter-spacing: .04em; margin-bottom: .2em; }
.ov-bubble__en{ font-size: .92rem; opacity: .9; margin-bottom: .9em; }
.ov-bubble__list{ list-style: none; margin: 0 0 1.2em; padding: 0; line-height: 1.7; font-size: .92rem; }
.ov-bubble__cta{
  appearance: none; border: none; background: transparent; color: #fff;
  font-weight: 800; letter-spacing: .08em; cursor: pointer; position: relative;
}
.ov-bubble__cta::after{
  content:""; position:absolute; left:50%; bottom:-3px; width: 42px; height: 2px;
  transform: translateX(-50%); background: rgba(255,255,255,.9);
}
.ov-bubble__cta{ animation: ovBlink 1.2s steps(2, jump-none) infinite; }
@keyframes ovBlink { 50%{ opacity:.35 } }

/* Core bubble（最初に落ちてくるサークル） */
.ov-bubble--core{
  background: center/cover no-repeat var(--ov-grad-left);
  transform: translateY(-60vh) scale(.85);
  opacity: 0;
  will-change: transform, opacity;
}
.ov-stage.is-drop .ov-bubble--core{
  animation: ovDrop var(--t-drop) cubic-bezier(.15,.85,.25,1) forwards;
}
@keyframes ovDrop{
  0%{ transform: translateY(-60vh) scale(.85); opacity: 0; }
  60%{ opacity: 1; }
  100%{ transform: translateY(0) scale(1); opacity: 1; }
}
/* Left / Right bubbles（分裂して左右へ） */
.ov-bubble--left, .ov-bubble--right{
  opacity: 0; transform: translateX(0) scale(.92);
  pointer-events: none;
}
.ov-bubble--left{  background: center/cover no-repeat var(--ov-grad-left); }
.ov-bubble--right{ background: center/cover no-repeat var(--ov-grad-right); }
.ov-stage.is-split .ov-bubble--core{ opacity: 0; transform: scale(.86); }
.ov-stage.is-split .ov-bubble--left,
.ov-stage.is-split .ov-bubble--right{ opacity: 1; pointer-events: auto; }
.ov-stage.is-split .ov-bubble--left{
  animation: ovSplitLeft var(--t-split) cubic-bezier(.2,.9,.2,1) forwards;
}
.ov-stage.is-split .ov-bubble--right{
  animation: ovSplitRight var(--t-split) cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes ovSplitLeft{ 0%{ transform: translateX(0) scale(.92); } 100%{ transform: translateX(calc(-50% - var(--ov-gap)/2)) scale(1); } }
@keyframes ovSplitRight{ 0%{ transform: translateX(0) scale(.92); } 100%{ transform: translateX(calc(50% + var(--ov-gap)/2)) scale(1); } }
.ov-stage.is-reveal .ov-bubble__inner{ opacity: 1; transform: translateY(0); }

/* 旧・モーダル（ベース。最終オーバーライドで上書きされます） */
.ov-modal{
  position: fixed; inset: 0; display: grid; place-items: center;
  z-index: 9999; pointer-events: none; opacity: 0; transition: opacity .35s ease;
}
.ov-modal.is-open{ pointer-events: auto; opacity: 1; }
.ov-modal__bg{ position: absolute; inset: 0; background: rgba(10,14,20,.35); backdrop-filter: blur(6px); }
.ov-modal__body{
  position: relative; width: min(1100px, 92vw); min-height: min(70vh, 820px);
  padding: clamp(20px, 4vw, 48px); color: #fff; border-radius: 16px; overflow: hidden;
}
.ov-modal[data-ov-modal="ops"] .ov-modal__body{ background: center/cover no-repeat var(--ov-grad-ops); }
.ov-modal[data-ov-modal="dev"] .ov-modal__body{ background: center/cover no-repeat var(--ov-grad-dev); }
.ov-modal__title{ font-weight: 800; letter-spacing: .08em; margin: 0 0 .8em; font-size: clamp(22px, 2.4vw, 30px); }
.ov-modal__content{ line-height: 2; font-size: clamp(14px, 1.3vw, 16px); }
.ov-modal__close{
  position: absolute; top: 10px; right: 14px; width: 40px; height: 40px;
  background: rgba(0,0,0,.25); color: #fff; border: none; border-radius: 999px; cursor: pointer;
  font-size: 22px; line-height: 40px;
}
@media (max-width: 780px){
  .ov-stage{ min-height: 96vh; }
  @keyframes ovSplitLeft{ 100%{ transform: translateX(calc(-46% - var(--ov-gap)/3)) scale(1); } }
  @keyframes ovSplitRight{ 100%{ transform: translateX(calc(46% + var(--ov-gap)/3)) scale(1); } }
  .ov-bubble__list{ font-size: .88rem; line-height: 1.65; }
}
@media (prefers-reduced-motion: reduce){
  .ov-bubble--core, .ov-bubble--left, .ov-bubble--right, .ov-bubble__inner{ transition: none !important; animation: none !important; }
  .ov-stage.is-drop .ov-bubble--core{ opacity: 1; transform: translateY(0) scale(1); }
  .ov-stage.is-split .ov-bubble--left{ opacity:1; transform:none; }
  .ov-stage.is-split .ov-bubble--right{ opacity:1; transform:none; }
  .ov-stage.is-reveal .ov-bubble__inner{ opacity:1; transform:none; }
  .ov-bubble__cta{ animation:none; }
}

/* =========================================================
   10) OV modal: 最終オーバーライド
   ========================================================= */

/* UA/テーマ由来の余白を調整（モーダル時の下余白防止） */
html, body { margin: 0 !important; padding: 0 !important; }

/* === Overview Modal 背景（左右を個別に固定）=== */
.ov-modal[data-ov-modal] .ov-modal__bg{
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-image: url('https://aquaignis-company.jp/wp-content/uploads/2025/10/left_noise-scaled.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  backdrop-filter: none !important;
}


/* 右：本文（縦センター） */
.ov-modal[data-ov-modal] .ov-modal__body{
  grid-column: 2 / 3 !important;
  grid-row: 1 / 2 !important;
  z-index: 1 !important;
  width: auto !important;
  max-width: 760px !important;
  min-height: 100vh !important;
  padding: clamp(16px,3.3vw,48px) !important;
  border-radius: 0 !important;
  background: transparent !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: flex-start !important;
}
.ov-modal[data-ov-modal] .ov-modal__content p{ margin: 0 0 .7em !important; line-height: 1.9 !important; }

/* 左：見出し（白文字のみ）— 右本文の上端に同期（--ov-top をJSで更新） */
.ov-modal[data-ov-modal] .ov-modal__headline{
  grid-column: 1 / 2 !important;
  grid-row: 1 / 2 !important;
  z-index: 1 !important;
  position: relative !important;
  margin-top: var(--ov-top, clamp(48px,12vh,200px)) !important;
  margin-left: var(--ov-head-left, clamp(16px,3.3vw,48px)) !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important; box-shadow: none !important; text-shadow: none !important;
  color: #fff !important;
  font-weight: 800 !important; letter-spacing: .06em !important; line-height: 1.35 !important;
  font-size: clamp(22px, 2.6vw, 42px) !important;
}
.ov-modal[data-ov-modal] .ov-modal__headline::before,
.ov-modal[data-ov-modal] .ov-modal__headline::after{ content:none !important; display:none !important; }

/* ×ボタン */
.ov-modal[data-ov-modal] .ov-modal__close{
  position: fixed !important;
  top: clamp(12px,2.2vw,24px) !important;
  right: clamp(12px,2.2vw,24px) !important;
  z-index: 100000 !important;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
  color:#fff !important; padding:6px !important; width:auto !important; height:auto !important;
  font-size: clamp(40px,6vw,54px) !important; line-height:1 !important;
}

/* ===== SP（〜959px）：必ず 1 カラム（見出し → 本文） ===== */
@media (max-width: 959px){
  .ov-modal[data-ov-modal]{
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 1fr !important;  /* 1=見出し / 2=本文 */
    align-content: start !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  /* 背景はそのまま 1 枚全面（固定） */
  .ov-modal[data-ov-modal] .ov-modal__bg{
    position: fixed !important;
    inset: 0 !important;
    height: auto !important;
  }
  .ov-modal[data-ov-modal] .ov-modal__headline{
    grid-column: 1 / 2 !important;
    grid-row: 1 / 2 !important;
    margin: clamp(16px, 6vw, 28px) clamp(16px, 6vw, 28px) clamp(12px, 3vw, 16px) !important;
    font-size: clamp(18px, 6vw, 26px) !important;
  }
  .ov-modal[data-ov-modal] .ov-modal__body{
    grid-column: 1 / 2 !important;
    grid-row: 2 / 3 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: auto !important;
    padding: 0 clamp(16px, 6vw, 28px) clamp(28px, 8vw, 44px) !important;
    display: block !important; /* 縦センター解除 */
  }
  /* 変数オフセットはSPで使わない */
  .ov-modal[data-ov-modal]{ --ov-top: 0px !important; }

  /* ×ボタン（SP） */
  .ov-modal[data-ov-modal] .ov-modal__close{
    top: clamp(10px, 4vw, 16px) !important;
    right: clamp(10px, 4vw, 16px) !important;
    font-size: clamp(22px, 6vw, 30px) !important;
  }
}

/* ===== PC: OVモーダル 見出しと本文の“上揃え”最終パッチ ===== */
@media (min-width: 960px){
  /* 上端オフセット（JS が --ov-top を入れていればそれを優先） */
  .ov-modal[data-ov-modal]{
    --ov-top: var(--ov-top, clamp(24px, 6vw, 72px));
  }

  /* 右本文：縦センターを解除し、上余白を --ov-top に統一 */
  .ov-modal[data-ov-modal] .ov-modal__body{
    justify-content: flex-start !important;       /* 中央揃え解除 */
    padding-top: var(--ov-top) !important;        /* 上端基準 */
  }

  /* 左見出し：本文と同じ上端にそろえる */
  .ov-modal[data-ov-modal] .ov-modal__headline{
    margin-top: var(--ov-top) !important;         /* 本文と同値 */
  }
}

/* =========================================
  11) SP: カバー比率
   - TOPビジュアル（.lp-hero-visual--top）だけ 4:5 の“少し縦長”
   - その他のカバーは 1:1（正方形）
   ※ PCには影響なし
   ========================================= */
@media (max-width: 767px){
  /* TOPだけ少し縦長 */
  .lp-hero-visual.lp-hero-visual--top{
    aspect-ratio: 9 / 16 !important;
  }

  /* それ以外のカバーは全部 1:1 */
  .lp-hero-visual:not(.lp-hero-visual--top){
    aspect-ratio: 1 / 1 !important;
  }
}
/* =========================================================
   12) スマホ開閉メニューを活かしつつロゴ＆中央寄せを制御
   - ロゴ：画像ウィジェット(.spmenu-logo)を最上段・中央に固定
   - メニュー：縦横センター
   - 装飾：矢印/罫線/背景オフ、英字はGeomanist
   ========================================================= */
@media (max-width: 959px){

  /* MENU見出しは常に非表示 */
  #sp_menu .c-widget__title.-spmenu,
  #sp_menu .p-spMenu__title,
  #sp_menu .spmenu__title{ display:none !important; }

  /* 全体レイアウト：メニューをど真ん中に */
  #sp_menu .p-spMenu__inner,
  #sp_menu .p-spMenu__body,
  #sp_menu .spmenu__inner{
    min-height: 100svh !important;
    display: grid !important;
    place-items: center !important;     /* 縦横センター */
    text-align: center !important;
    gap: clamp(14px, 4vw, 24px) !important;
    padding: clamp(64px, 12vw, 96px) 6vw 6vw !important; /* ← 上はロゴ分の余白を確保 */
  }

  /* ロゴ（画像ウィジェット）— 最上段・中央に“固定配置”して勝ち切る */
  #sp_menu .widget_media_image.spmenu-logo{
    position: fixed !important;
    top: clamp(12px, 4vw, 24px) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 100001 !important;     /* SWELLより前面 */
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    pointer-events: none;           /* 親はクリック無効にして… */
  }
  #sp_menu .widget_media_image.spmenu-logo a{
    pointer-events: auto;           /* …リンクだけ有効化 */
    display: inline-block; line-height: 1; text-decoration: none !important;
  }
  #sp_menu .widget_media_image.spmenu-logo img{
    display:block !important;
    height: clamp(22px, 6vw, 30px) !important;
    width: auto !important;
  }

  /* 既存メニューの装飾をオフ（矢印/罫線/背景など） */
  #sp_menu li, #sp_menu li a,
  #sp_menu .c-listMenu__item, #sp_menu .c-listMenu__item > a{
    border:0 !important; background:transparent !important; box-shadow:none !important;
    padding:0 !important; margin:0 !important; text-decoration:none !important;
  }
  #sp_menu li::before, #sp_menu li::after,
  #sp_menu li > a::before, #sp_menu li > a::after,
  #sp_menu .c-listMenu__item::before, #sp_menu .c-listMenu__item::after,
  #sp_menu .c-listMenu__item > a::before, #sp_menu .c-listMenu__item > a::after{
    content:none !important;
  }

  /* タイポグラフィ（英字＝Geomanist） */
  #sp_menu nav a{
    font-family:"Geomanist","Helvetica Neue",Arial,sans-serif !important;
    font-weight:800 !important; text-transform:uppercase !important; letter-spacing:.08em !important;
    font-size: clamp(14px, 4.2vw, 20px) !important; line-height:1.3 !important; color:#111 !important;
  }

  /* ウィジェットの外枠も全部クリアに */
  #sp_menu .c-widget.-spmenu,
  #sp_menu .c-widget.-spmenu .c-widget__body,
  #sp_menu .widget_media_image,
  #sp_menu .widget_custom_html{
    background:transparent !important; border:0 !important; box-shadow:none !important; margin:0 !important; padding:0 !important;
  }
}
/* === SPメニュー：gridをやめてflexで中央寄せに固定（上書き） === */
@media (max-width: 959px){
  #sp_menu .p-spMenu__inner,
  #sp_menu .p-spMenu__body,
  #sp_menu .spmenu__inner{
    display: flex !important;          /* ← gridから切り替え */
    flex-direction: column !important;
    justify-content: center !important; /* 縦センター */
    align-items: center !important;     /* 横センター */
    row-gap: clamp(12px, 3.2vw, 18px) !important; /* gapの代わりにrow-gap */
    gap: 0 !important;                  /* grid用gapは無効化 */
    padding: clamp(56px, 10vw, 84px) 6vw 6vw !important; /* 上はロゴ分だけ */
  }

  /* UL側も保険で中央寄せ */
  #sp_menu nav ul{
    display:flex !important; flex-direction:column !important;
    align-items:center !important; justify-content:center !important;
    margin:0 !important; padding:0 !important;
    row-gap: clamp(10px, 3vw, 16px) !important;
  }

  /* 最上要素の余計なmarginを無効 */
  #sp_menu .p-spMenu__body > *:first-child{ margin-top:0 !important; }
}
/* === SPメニュー 微調整：ロゴ縮小 / ロゴとメニュー間の余白 / メニュー書体 === */
@media (max-width: 959px){
  /* ロゴサイズとロゴ下の余白を変数で管理 */
  #sp_menu{
    --spLogoH: clamp(10px, 3vw, 12px);     /* ← ロゴの高さ（小さめに） */
  }
  /* ロゴ（画像ウィジェット .spmenu-logo はこの高さに追従） */
  #sp_menu .widget_media_image.spmenu-logo img{
    height: var(--spLogoH) !important;
    width: auto !important;
  }
  /* メニュー全体の上パディングを ロゴ高さ + 余白 分に */
  #sp_menu .p-spMenu__inner,
  #sp_menu .p-spMenu__body,
  #sp_menu .spmenu__inner{
    padding-top: calc(var(--spLogoH) + var(--spLogoGap)) !important;
  }

  /* メニュー行間（項目間の距離）も少しだけ広げる */
  #sp_menu nav ul{ row-gap: clamp(14px, 4.2vw, 24px) !important; }

  /* メニュー文字：Geomanist Medium（500）に差し替え */
  #sp_menu nav a{
    font-family: "Geomanist","Helvetica Neue",Arial,sans-serif !important;
    font-weight: 500 !important;             /* ← ここを Medium 相当へ */
    letter-spacing: .06em !important;        /* 少し詰める */
    font-size: clamp(14px, 3vw, 18px) !important; /* 大きめに */
  }
}
@media (max-width: 959px){
  #sp_menu .as-copy{
    margin-top: clamp(24px, 6vw, 40px) !important;
    font-size: 8px !important;
    line-height: 1 !important;
    opacity: .75 !important;
    text-align: center !important;
    font-family: "Hiragino Sans","ヒラギノ角ゴシック","Noto Sans JP",sans-serif !important;
  }
}
/* SPメニューのロゴだけ幅180pxに固定（強制） */
@media (max-width: 959px){
  #sp_menu img.wp-image-292{
    width: 180px !important;
    height: auto !important;
    display: block;
  }
  /* 余白が必要なら調整 */
  #sp_menu .widget_media_image{
    margin: 12px 0 16px;
  }
}

/* === SP：NEWS / OUR PROJECT をフル幅表示に（画像を大きく） === */
@media (max-width: 600px){

  /* NEWS：alignfullグループの“内側コンテナ”を画面端まで広げる */
  .post_content .wp-block-group.alignfull.lp-news > .wp-block-group__inner-container,
  .post_content .wp-block-group.alignfull.lp-news
    > .wp-block-group__inner-container
    > .wp-block-group.section-inner
    > .wp-block-group__inner-container{
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* OUR PROJECT：見出し直下の器も同様にフル幅化 */
  .post_content .lp-project .wp-block-group__inner-container{
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 各カード側で安全余白を確保 */
  .post_content .lp-news .news-item,
  .post_content .facility-card{
    padding-left: 40px;
    padding-right: 40px;
  }

  /* 1カラム間の縦の間隔は少しだけ詰める（任意） */
  .post_content .lp-news .news-grid,
  .post_content .facility-grid{
    row-gap: 16px !important;
  }
}
/* === SP：RECRUITボタンの崩れ修正（横並び・中央寄せに固定） === */
@media (max-width: 767px){
  /* ボタンラッパーを中央寄せ＆1行 */
  #recruit .wp-block-buttons{
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    margin: 0 !important;
  }
  /* 余計な幅・高さ指定を排除 */
  #recruit .wp-block-button{
    margin: 0 !important;
    flex: 0 1 auto !important;
  }
  /* 本体：横書き/横幅自動/中央配置 */
  #recruit .wp-block-button__link{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    writing-mode: horizontal-tb !important; /* 縦書き化の抑止 */
    width: auto !important;
    height: auto !important;
    min-height: 44px !important;
    min-width: 220px !important; /* 好みで 180–260px に調整可 */
    padding: 14px 20px !important;
    white-space: nowrap !important; /* 1行に */
    line-height: 1 !important;
  }
}
/* === SP：RECRUITボタンの右寄りを強制中央に補正 === */
@media (max-width: 767px){
  #recruit .wp-block-buttons{
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
  /* has-custom-width等が付ける auto マージンを無効化 */
  #recruit .wp-block-buttons > .wp-block-button{
    margin-left: 0 !important;
    margin-right: 0 !important;
    flex: 0 0 auto !important;
  }
  /* 念のためリンク要素側も中央寄せを固定 */
  #recruit .wp-block-button__link{
    margin: 0 auto !important;
  }
}
/* === SP：RECRUITボタンの幅指定をリセットして真正中央に === */
@media (max-width: 767px){
  /* 25% 等のカスタム幅クラスを無効化 */
  #recruit .wp-block-buttons > .wp-block-button.has-custom-width,
  #recruit .wp-block-buttons > .wp-block-button[class*="wp-block-button__width-"]{
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;   /* shrink/expandさせない */
  }

  /* 念のため、親は中央寄せ固定 */
  #recruit .wp-block-buttons{
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
  }

  /* 本体リンクは自動幅＋中央 */
  #recruit .wp-block-button__link{
    margin: 0 auto !important;
    width: auto !important;
    min-width: 220px !important;   /* 好みで 180–260px に調整可 */
    white-space: nowrap !important;
  }
}
/* === NEWS: SPは3件まで表示（4件目以降は隠す） === */
@media (max-width: 767px){
  .post_content .lp-news .news-grid .news-item:nth-child(n+4){
    display: none !important;
  }
}

/* === LOOK MOREボタン（NEWS/PROJECTで共用できるように汎用化） === */
.btn-look-more .wp-block-button__link{
  border:1px solid #000 !important;
  background:#fff !important;
  color:#000 !important;
  box-shadow:none !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px; line-height:1;
  padding:12px 28px;
  transition:opacity .2s ease, transform .2s ease;
}
.btn-look-more .wp-block-button__link:hover{
  opacity:.9; transform: translateY(-1px);
}
.news-actions{ display:flex; justify-content:center; margin-top:24px; }
/* === NEWS：LOOK MORE を強制表示（SWELL装飾の影響を排除） === */
.post_content .news-actions{
  display:flex !important;
  justify-content:center !important;
  margin-top:24px !important;
}
.post_content .news-actions .wp-block-buttons{ 
  display:flex !important; 
  gap:0 !important;
}
.post_content .news-actions .wp-block-button{ 
  margin:0 !important; 
  flex:0 0 auto !important;
}
.post_content .news-actions .wp-block-button__link{
  display:inline-block !important;
  border:1px solid #000 !important;
  background:#fff !important;
  color:#000 !important;
  text-decoration:none !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px; line-height:1;
  padding:12px 28px !important;
  box-shadow:none !important;
}

/* === NEWS：SPだけタイトルを読みやすく（PCは据え置き） === */
@media (max-width: 767px){
  .post_content .lp-news .news-item-title{
    font-size: clamp(12px, 4.2vw, 14px) !important;
    line-height: 1.45 !important;
    font-weight: 700 !important;
    margin-top: .35em !important;
  }
  /* （任意）日付/カテゴリは少しだけ間隔を広げる */
  .post_content .lp-news .news-meta{ gap: .7em !important; }
}
/* === NEWS / OUR PROJECT：グリッドとボタンの間を少し空ける === */
.post_content .lp-news .news-grid,
.post_content .facility-grid{
  margin-bottom: clamp(20px, 3vw, 36px) !important;
}

/* ボタン行そのものの上マージン（見た目の間隔） */
.post_content .news-actions,
#project .projects-actions{
  margin-top: clamp(20px, 3vw, 36px) !important;
  display: flex !important;
  justify-content: center !important;
}

/* === LOOK MORE（テキスト＋センター下線） === */
.btn-look-more .wp-block-button,
.btn-look-more .wp-block-buttons{ gap:0 !important; }

.btn-look-more .wp-block-button__link{
  /* 見た目 */
  background: transparent !important;
  border: none !important;
  color: #000 !important;
  text-decoration: none !important;

  /* 文字組 */
  display: inline-block !important;
  padding: 0 !important;
  font-family: "Geomanist","Helvetica Neue",Arial,sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  position: relative !important;
}

/* 下線（センター） */
.btn-look-more .wp-block-button__link::after{
  content: "";
  display: block;
  width: 96px;                 /* 下線の長さ（お好みで 64–96px） */
  height: 2px;
  margin: 6px auto 0;          /* テキストと線の間隔 */
  background: #000;
  opacity: .9;
  transition: transform .2s ease, opacity .2s ease;
}

/* Hover */
.btn-look-more .wp-block-button__link:hover{
  transform: translateY(-1px);
}
.btn-look-more .wp-block-button__link:hover::after{
  opacity: 1;
}

/* SPは少しだけコンパクトに */
@media (max-width: 767px){
  .btn-look-more .wp-block-button__link{
    font-size: 13px !important;
    letter-spacing: .1em !important;
  }
  .btn-look-more .wp-block-button__link::after{
    width: 72px;
    margin-top: 5px;
  }
}
/* === LOOK MORE：（NEWS / PROJECT） === */
.post_content .news-actions .wp-block-button.is-style-outline,
#project .projects-actions .wp-block-button.is-style-outline{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* リンク側もボーダー/角丸/余白を0にする */
.post_content .news-actions .wp-block-button.is-style-outline .wp-block-button__link,
#project .projects-actions .wp-block-button.is-style-outline .wp-block-button__link{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* SWELLの擬似要素装飾を無くす（自前の下線は link::after なので影響なし） */
.post_content .news-actions .wp-block-button.is-style-outline::before,
.post_content .news-actions .wp-block-button.is-style-outline::after,
#project .projects-actions .wp-block-button.is-style-outline::before,
#project .projects-actions .wp-block-button.is-style-outline::after{
  content: none !important; display: none !important;
}

/* === LOOK MORE：（NEWS / PROJECT） === */
.post_content .news-actions .wp-block-button.is-style-outline,
#project .projects-actions .wp-block-button.is-style-outline{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* リンク側もボーダー/角丸/余白を0にする */
.post_content .news-actions .wp-block-button.is-style-outline .wp-block-button__link,
#project .projects-actions .wp-block-button.is-style-outline .wp-block-button__link{
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* SWELLの擬似要素装飾を無くす（自前の下線は link::after なので影響なし） */
.post_content .news-actions .wp-block-button.is-style-outline::before,
.post_content .news-actions .wp-block-button.is-style-outline::after,
#project .projects-actions .wp-block-button.is-style-outline::before,
#project .projects-actions .wp-block-button.is-style-outline::after{
  content: none !important; display: none !important;
}
/* === OUR PROJECT：初期は一部だけ表示（PC=6 / SP=3） === */
.post_content .facility-grid.is-collapsed .facility-card:nth-child(n+7){
  display:none !important;          /* PC: 7枚目以降を隠す */
}
@media (max-width: 1024px){
  .post_content .facility-grid.is-collapsed .facility-card:nth-child(n+4){
    display:none !important;        /* SP/タブ: 4枚目以降を隠す */
  }
}

/* ボタン周りの余白（NEWSと統一） */
#project .projects-actions{ 
  display:flex; justify-content:center; 
  margin-top: clamp(20px, 3vw, 36px) !important; 
}
/* === PROJECT：LOOK MORE を完全リセット → テキスト＋下線に === */
#project .projects-actions{ 
  display:flex !important; justify-content:center !important;
  margin-top: clamp(20px, 3vw, 36px) !important;
}

/* SWELLのボタン装飾・縦書き・幅指定の残骸をリセット */
#project .projects-actions .wp-block-buttons,
#project .projects-actions .wp-block-button{
  display:flex !important; justify-content:center !important; align-items:center !important;
  gap:0 !important; width:auto !important; margin:0 !important; padding:0 !important;
  background:transparent !important; border:0 !important; box-shadow:none !important;
  border-radius:0 !important;
}
#project .projects-actions .wp-block-button.has-custom-width,
#project .projects-actions .wp-block-button[class*="wp-block-button__width-"]{
  width:auto !important; max-width:none !important; flex:0 0 auto !important;
  margin:0 !important;
}

/* リンク本体：横書き・囲み無し・テキストのみ */
#project .projects-actions .wp-block-button__link{
  writing-mode: horizontal-tb !important;   /* ← 縦書きを修正 */
  display:inline-block !important;
  width:auto !important; height:auto !important;
  margin:0 auto !important; padding:0 !important;
  background:transparent !important; border:0 !important; border-radius:0 !important;
  box-shadow:none !important; outline:0 !important;

  font-family:"Geomanist","Helvetica Neue",Arial,sans-serif !important;
  font-weight:700 !important; text-transform:uppercase !important;
  letter-spacing:.12em !important; line-height:1 !important;
  font-size:14px !important; color:#000 !important; text-decoration:none !important;
  position:relative !important;
}

/* 下線（センター） */
#project .projects-actions .wp-block-button__link::after{
  content:""; display:block; width:96px; height:2px;
  margin:6px auto 0; background:#000; opacity:.9;
  transition:transform .2s ease, opacity .2s ease;
}
#project .projects-actions .wp-block-button__link:hover{ transform:translateY(-1px); }
#project .projects-actions .wp-block-button__link:hover::after{ opacity:1; }

/* SPは少しコンパクトに */
@media (max-width: 767px){
  #project .projects-actions .wp-block-button__link{ font-size:13px !important; letter-spacing:.1em !important; }
  #project .projects-actions .wp-block-button__link::after{ width:72px; margin-top:5px; }
}
/* PROJECT: LOOK MORE を消す用のクラス（!importantで確実に勝つ） */
#project .projects-actions.is-hidden{
  display: none !important;
}
/* SPだけ：会社概要(co_text)の文字を少し小さく＆詰める */
@media (max-width: 767px){
  .post_content .co_text{
    font-feature-settings: "palt" 1;  /* 約物まわりを詰めて横幅節約（対応フォントのみ） */
    font-kerning: normal;
  }
  .post_content .co_text p{
    font-size: clamp(12px, 3.2vw, 13.5px); /* 430pxで≈13.8px / 375pxで≈12px */
    line-height: 1.9;                       /* 可読性キープ */
    letter-spacing: 0;                       /* 余計な広がりを抑える */
  }
}
/* ===== 外側：フルブリード化（100vw） ===== */
#before_footer_widget{ background:#000 !important; }
#before_footer_widget > .l-container{
  box-sizing:border-box !important;
  max-width:none !important;
  width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
/* ウィジェット枠の装飾を無効化（保険） */
#before_footer_widget .widget,
#before_footer_widget .widget_text,
#before_footer_widget .c-widget,
#before_footer_widget .c-widget__body,
#before_footer_widget .textwidget{
  max-width:none !important;
  width:100% !important;
  margin:0 !important; padding:0 !important;
  background:transparent !important; border:0 !important; box-shadow:none !important;
}
/* SWELL純正フッターは非表示 */
footer#footer.l-footer{ display:none !important; }

/* ===== 変数（ここだけ触ればOK） ===== */
:root{
  /* PC：上下余白／ロゴ↔メニュー行の間隔／左右“安全”余白 */
  --ft-pc-pad-top: clamp(36px, 4vw, 72px);
  --ft-pc-pad-bottom: clamp(36px, 4vw, 72px);
  --ft-pc-gap: clamp(18px, 2.8vw, 40px);
  --ft-pc-side: 30px; /* ←端ピタ。少し内側にしたければ 12px 等に */

  /* SP：上下余白／メニュー↔ロゴの間隔／左右余白 */
  --ft-sp-pad-top: clamp(32px, 7vw, 64px);
  --ft-sp-pad-bottom: clamp(32px, 7vw, 64px);
  --ft-sp-gap: clamp(20px, 6vw, 36px);
  --ft-sp-side: 16px;
}

/* ===== 中身：共通 ===== */
.ftx{ color:#fff; }
.ftx a{ color:#fff; text-decoration:none; opacity:.95; }
.ftx a:hover{ opacity:1; }
.ftx__inner{
  box-sizing:border-box !important;
  width:100% !important;           /* 100vw は外側で適用済み */
  margin:0 auto !important;
  padding-left:var(--ft-pc-side);
  padding-right:var(--ft-pc-side);
  padding-top:var(--ft-pc-pad-top);
  padding-bottom:var(--ft-pc-pad-bottom);
}

/* ===== PC：ロゴ段→メニュー&コピー（同一行で左右端） ===== */
@media (min-width:960px){
  .ftx__pc{
    display:grid;
    grid-template-columns:1fr auto;   /* 左=メニュー(伸縮) / 右=コピー(内容幅) */
    row-gap:var(--ft-pc-gap);
  }
  .ftx__logo{ grid-column:1 / 3; justify-self:start; display:block; height:20px; width:auto; }
  .ftx__menu{
    grid-column:1 / 2; align-self:center;
    display:flex; flex-wrap:wrap; gap:0;
  }
  .ftx__menu a{
    position:relative; padding:0 12px; line-height:1; font-size:13px; letter-spacing:.04em;
  }
  .ftx__menu a:first-child{ padding-left:0; }
  .ftx__menu a + a::before{ content:"|"; position:absolute; left:-6px; top:0; opacity:.6; }
  .ftx__copy{
    grid-column:2 / 3; align-self:center; justify-self:end;
    white-space:nowrap; font-size:12px; line-height:1; opacity:.9;
  }
}

/* ===== SP：中央揃え（メニュー | 区切り → SVG） ===== */
.ftx__sp{ display:none; }  /* PCでは非表示 */

@media (max-width:959px){
  .ftx__inner{
    padding-left:var(--ft-sp-side);
    padding-right:var(--ft-sp-side);
    padding-top:var(--ft-sp-pad-top);
    padding-bottom:var(--ft-sp-pad-bottom);
  }
  .ftx__pc{ display:none; }
  .ftx__sp{
    display:flex; flex-direction:column; align-items:center; text-align:center;
    gap:var(--ft-sp-gap);
  }
  .ftx__sp-menu{
    display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:0;
  }
  .ftx__sp-menu a{
    position:relative; padding:0 10px; line-height:1.1; font-size:13px; letter-spacing:.04em;
  }
  .ftx__sp-menu a:first-child{ padding-left:0; }
  .ftx__sp-menu a + a::before{ content:"|"; position:absolute; left:-2px; top:0; opacity:.6; }
  .ftx__sp-mark{ width:min(560px, 86vw); height:auto; display:block; }
}
/* === SP専用：ロゴ高さ40px＆メニュー文字8px === */
@media (max-width: 959px){
  .ftx__sp-mark{
    height: 40px !important;
    width: auto !important;
    display: block !important;
  }
  .ftx__sp-menu a{
    font-size: 10px !important;
    line-height: 1.1 !important;
    letter-spacing: .04em !important;
  }
}
/* === PCヘッダー：SWELLの .c-gnav .ttl を10pxに固定 === */
@media (min-width: 960px){
  /* タイトルspanを直指定（こいつが14pxを持ってる） */
  #fix_header .c-gnav .ttl,
  #header     .c-gnav .ttl{
    font-size: 10px !important;
    line-height: 1 !important;
  }

  /* 念のため a にも同値を被せておく（テーマ差異の保険） */
  #fix_header .c-gnav a,
  #header     .c-gnav a{
    font-size: 10px !important;
  }

  /* 幅詰め（任意）：ULの隙間と左右パディングを少しだけ縮める */
  #fix_header .c-gnav ul,
  #header     .c-gnav ul{
    gap: 8px !important;
  }
  #fix_header .c-gnav ul > li > a,
  #header     .c-gnav ul > li > a{
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
}
@media (min-width: 960px){
  .ov-modal{ align-items: first baseline !important; --ov-top:0px !important; }
  .ov-modal__headline,
  .ov-modal__body{
    margin-top: 0 !important;
    padding-top: 0 !important;
    align-self: first baseline !important;
    position: static !important;
  }
  .ov-modal__body{ justify-content: flex-start !important; }
  .ov-modal__content > *:first-child{ margin-top: 0 !important; }
}
/* PC: 本文は縦センターのまま / 見出しだけ --ov-top に揃える */
@media (min-width: 960px){
  .ov-modal[data-ov-modal] .ov-modal__body{
    justify-content: center !important;
    padding-top: 0 !important;
  }
  .ov-modal[data-ov-modal] .ov-modal__headline{
    margin-top: var(--ov-top) !important;
  }
}
/* PC: OVERVIEWモーダル本文は固定14px */
@media (min-width: 960px){
  .ov-modal[data-ov-modal] .ov-modal__content,
  .ov-modal[data-ov-modal] .ov-modal__content p,
  .ov-modal[data-ov-modal] .ov-modal__content li{
    font-size: 14px !important;
    line-height: 1.9; /* お好みで 1.8–2.0 */
  }
}
/* PCだけ <br> を有効化 */
.br-pc{ display:none; }
@media (min-width:960px){
  .br-pc{ display:inline; }
}
/* 1) PC：本文カラムの“左だけ”パディングをゼロに（他は既存のまま） */
@media (min-width: 960px){
  .ov-modal[data-ov-modal] .ov-modal__body{
    padding-left: 0 !important;        /* ← これだけ */
  }
  /* 念のため、内側に余白がいる場合の保険 */
  .ov-modal[data-ov-modal] .ov-modal__content{
    padding-left: 0 !important;
    margin-left: 0 !important;
  }
}

/* 2) 見出しが少し上に見える “視覚補正”（レイアウトには影響しない） */
@media (min-width: 960px){
  .ov-modal__headline{
    transform: translateY(-5px);       /* 好みで -2〜-5px */
    will-change: transform;
  }
}
/* モーダル開閉中はヘッダーを無効化 */
body.ov-modal-open #fix_header,
body.ov-modal-open .l-header{
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-8px);
}

/* （任意）SPメニューのオーバーレイも念のため無効化 */
body.ov-modal-open #sp_menu{ display:none !important; }


 /* モーダルOPEN中：SPのヘッダー/ボタン類を完全に消す（強制） */
@media (max-width: 959px){
  body.ov-modal-open #header,
  body.ov-modal-open #fix_header,
  body.ov-modal-open header.l-header,
  body.ov-modal-open .l-header,
  body.ov-modal-open .l-fixHeader,
  body.ov-modal-open .l-fixHeader__inner,
  body.ov-modal-open .p-spMenuBtn,
  body.ov-modal-open .p-spMenu__btn,
  body.ov-modal-open .spmenu__btn,
  body.ov-modal-open .sp_menu_btn,
  body.ov-modal-open .c-hamburger,
  body.ov-modal-open .p-hamburger,
  body.ov-modal-open .u-spMenuBtn,
  body.ov-modal-open .c-iconBtn--menu{
    display: none !important;
  }
}
@media (max-width: 959px){
  body.ov-modal-open #fix_header,
  body.ov-modal-open #header,
  body.ov-modal-open header.l-header,
  body.ov-modal-open .l-header,
  body.ov-modal-open .p-spMenuBtn,
  body.ov-modal-open .c-hamburger {
    display: none !important;
  }
}
/* モーダルOPEN中はヘッダー完全無効（PC/SP両方） */
body.ov-open #header,
body.ov-open #fix_header,
body.ov-open .l-header {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-12px) !important;
}
/* SP：モーダル本文を段落連結（改行なし・インデントなし） */
@media (max-width: 959px){
  .ov-modal__content{
    line-height: 1.9;
    white-space: normal;
  }
  .ov-modal__content p{
    display: inline !important;   /* 段落を横に連結 */
    margin: 0 !important;
    padding: 0 !important;
    text-indent: 0 !important;    /* インデント無し */
  }
  /* 段落間の見切れ防止に半角スペースを挿入（不要なら削除） */
  .ov-modal__content p + p::before{
    content: " ";
  }
}

/* ===== SPモーダル：本文左右20px固定 ===== */
@media (max-width: 959px){

  /* いったん body 側の左右パディング無効化（二重回避） */
  .ov-modal.is-open .ov-modal__body{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 本文ブロックにだけ左右20px */
  .ov-modal.is-open .ov-modal__content{
    box-sizing: border-box !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
  }

  /* 段落のインデントや左右マージンの“念のため”掃除 */
  .ov-modal.is-open .ov-modal__content > *{
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-indent: 0 !important;
  }

/* ===== SP：モーダル見出しをミディアム（500）に ===== */
@media (max-width: 959px){
  .ov-modal.is-open .ov-modal__headline{
    font-weight: 500 !important;   /* Hiragino系なら“W5”相当のトーンに */
  }

/* ===== SP：モーダル見出し（サイズ少しUP） ===== */
@media (max-width: 959px){
  .ov-modal.is-open .ov-modal__headline{
    font-weight: 500 !important;                 /* 既に効いてるミディアムのまま */
    font-size: clamp(20px, 4.8vw, 24px) !important; /* ← ちょい大きめ */
    line-height: 1.25 !important;
  }
}

/* ===== SP：見出しをさらに下げる ===== */
@media (max-width: 959px){
  .ov-modal.is-open .ov-modal__headline{
    margin-top: clamp(160px, 36vw, 280px) !important; /* ← もっと下へ */
  }
}
/* ===== Overview：英字サブ見出し（Facility Operations / Real Estate Development） ===== */
/* PC/SP 共通：フォントスタック（Condensed Bold → なければ Geomanist Medium） */
#overview .ov-bubble__en{
  font-family:
    "Helvetica Neue Condensed Bold",
    "HelveticaNeue-CondensedBold",
    "HelveticaNeue-Condensed",
    "Helvetica Neue",
    Geomanist,
    Helvetica, Arial, sans-serif !important;
  font-weight: 600 !important; /* Condensed Boldがあれば太め、無ければGeomanist Medium寄り */
  letter-spacing: .02em;
}

/* ===== SPのみ：サイズを小さく ===== */
@media (max-width: 959px){
  /* 英字サブ見出し（Facility / Real Estate） */
  #overview .ov-bubble__en{
    font-size: clamp(11px, 3.2vw, 13px) !important;
  }
  /* “STATEMENT” ボタン文字 */
  #overview .ov-bubble__cta{
    font-size: clamp(11px, 3vw, 13px) !important;
    letter-spacing: .08em;
  }
}


/* ===== First View White Splash (0.5s wait → 0.6s fade) ===== */
#aq-fv-splash{
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 2147483647; /* 最前面 */
  opacity: 1;
  visibility: visible;
  animation: aq-fv-splash-fade 0.6s ease 0.5s forwards;
  /* パフォーマンス */
  will-change: opacity, visibility;
}

/* モーション苦手なユーザー配慮：すぐ消す */
@media (prefers-reduced-motion: reduce){
  #aq-fv-splash{
    animation-duration: 0.01s;
    animation-delay: 0s;
  }
}

@keyframes aq-fv-splash-fade{
  0%   { opacity: 1; visibility: visible; }
  99%  { opacity: 0; }
  100% { opacity: 0; visibility: hidden; }
}
/* #visual 内に“途中地点”アンカーを作るための下準備 */
#visual{ position:relative; }               /* 相対基準を作る */
#visual #visual-mid{
  position:absolute; left:0;
  top:300px;                                /* ← ここを好みの距離に（上から何px） */
  width:1px; height:1px;                    /* 見えない小さなターゲット */
  pointer-events:none;
  scroll-margin-top: 100px;                  /* 固定ヘッダーぶんの逃げ（調整可） */
}
/* SPだけ位置を変えたい場合の例 */
@media (max-width: 959px){
  #visual #visual-mid{ top:180px; }         /* 例：SPは180px地点へ */
}
/* === OVモーダル背景は“常に1枚”にする === */
#ov-modal.ov-modal .ov-modal__bg--right{ display:none !important; }
#ov-modal.ov-modal .ov-modal__bg--left{
  grid-column: 1 / -1 !important;   /* 2カラムを横断 */
  grid-row: 1 / -1 !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}


/* モーダル種別ごとに“1枚だけ”差し替え（ops=左画像／dev=右画像） */
#ov-modal.ov-modal[data-ov-modal="ops"] .ov-modal__bg--left{
  background-image: url('https://aquaignis-company.jp/wp-content/uploads/2025/10/left_noise-scaled.jpg') !important;
}
#ov-modal.ov-modal[data-ov-modal="dev"] .ov-modal__bg--left{
  background-image: url('https://aquaignis-company.jp/wp-content/uploads/2025/10/right_noise-scaled.jpg') !important;
}


/* ===== SP：Overview 高さの跳ね上がりを解消（計算値に固定）＋アニメ最終位置を同期 ===== */
@media (max-width: 959px){
  /* 円2つ + 間のすき間（px相当） */
  #overview{
    --sp-gap: clamp(24px, 8vw, 48px);             /* 上下の間隔 */
  }

  /* ステージは “直径×2 + すき間” だけ確保（vhは使わない） */
  #overview .ov-stage{
    min-height: calc(var(--ov-size) * 2 + var(--sp-gap)) !important;
    /* 分裂位置用のオフセット（中心からの距離） */
    --sp-offset: calc(var(--ov-size) / 2 + var(--sp-gap) / 2);
  }

  /* 横スプリットは無効 */
  #overview .ov-stage.is-split .ov-bubble--left,
  #overview .ov-stage.is-split .ov-bubble--right{
    left: 50% !important;
    top: 50% !important;
    animation-name: none !important;
    opacity: 1 !important;
  }

  /* コア退場（フェード縮小） */
  @keyframes ovCoreFadeSP{
    0%   { opacity:1;   transform: translate(-50%, -50%) scale(1); }
    60%  { opacity:.35; transform: translate(-50%, -50%) scale(.94); }
    100% { opacity:0;   transform: translate(-50%, -50%) scale(.90); }
  }
  #overview .ov-stage.is-split .ov-bubble--core{
    animation: ovCoreFadeSP .75s cubic-bezier(.2,.9,.2,1) .06s forwards !important;
  }

  /* 上下へ分裂（最終位置は --sp-offset を使う＝上下の余白は常に一定） */
  @keyframes ovSplitUpSP{
    0%   { opacity:0; transform: translate(-50%, -50%) scale(1); }
    20%  { opacity:.45; }
    100% { opacity:1; transform: translate(-50%, calc(-50% - var(--sp-offset))) scale(1); }
  }
  @keyframes ovSplitDownSP{
    0%   { opacity:0; transform: translate(-50%, -50%) scale(1); }
    20%  { opacity:.45; }
    100% { opacity:1; transform: translate(-50%, calc(-50% + var(--sp-offset))) scale(1); }
  }
  #overview .ov-stage.is-split .ov-bubble--left{
    animation: ovSplitUpSP .8s cubic-bezier(.2,.9,.2,1) forwards !important;
  }
  #overview .ov-stage.is-split .ov-bubble--right{
    animation: ovSplitDownSP .8s cubic-bezier(.2,.9,.2,1) forwards !important;
  }

  /* テキストのフェードインは据え置き */
  #overview .ov-bubble__inner{
    opacity:0; transform: translateY(6px);
    transition: opacity .45s ease .1s, transform .45s ease .1s;
  }
  #overview .ov-stage.is-reveal .ov-bubble__inner{
    opacity:1; transform: none;
  }
}
/* 割れたら即テキスト表示＋速く */
#overview .ov-bubble__inner{
  opacity: 0;
  transform: translateY(4px);
  transition: opacity .25s ease .04s, transform .25s ease .04s;
}
#overview .ov-stage.is-split .ov-bubble__inner{
  opacity: 1;
  transform: none;
}
/* SPだけ：割れ(左右スプリット)をゆっくりに */
@media (max-width: 959px){
  :root{ --t-split: 1.4s; }  /* 例: 0.9s → 1.4s に */
  /* テキストの出現は短めにサッと */
  #overview .ov-bubble__inner{
    transition: opacity .28s ease, transform .28s ease;
  }
}

/* テキストは is-reveal で出す（is-splitでは出さない） */
#overview .ov-bubble__inner{
  opacity: 0; transform: translateY(4px);
}
#overview .ov-stage.is-reveal .ov-bubble__inner{
  opacity: 1; transform: none;
}
/* SP：NEWSアーカイブのタイトルだけ左パディングを足す */
@media (max-width: 959px){
  .post-type-archive-news h1.c-pageTitle .c-pageTitle__inner{
    padding-left: 5px !important;
  }
}

/* ===== OVERVIEW：小画面（~414px）だけ文字サイズ/行間を調整 ===== */
@media (max-width: 413px){
  /* モーダル範囲に合わせてセレクタは両取り */
  #qa-ovSplash, .ov-modal{ --ov-font-base: 11px; --ov-lh: 1.36; }

  /* 本文テキスト */
  #qa-ovSplash p,
  .ov-modal p,
  #qa-ovSplash li,
  .ov-modal li{
    font-size: var(--ov-font-base) !important;   /* 既存より強めに */
    line-height: var(--ov-lh) !important;
    letter-spacing: .02em;
    margin: 0 0 .6em;
  }

  /* 小見出し（必要なら調整） */
  #qa-ovSplash h2, .ov-modal h2{
    font-size: 13px !important;
    line-height: 1.28 !important;
    letter-spacing: .02em;
    margin: 0 0 .5em;
  }
  #qa-ovSplash h3, .ov-modal h3{
    font-size: 12px !important;
    line-height: 1.3 !important;
    margin: 0 0 .5em;
  }

  /* 余白を少しだけタイトに */
  #qa-ovSplash > * , .ov-modal > * {
    padding: 10px !important;
    max-height: calc(100dvh - 24px) !important;
  }

  /* 閉じるボタンも指で押しやすく微拡大 */
  .ov-close, .ov-modal__close, #qa-ovSplash .m-close{
    transform: scale(1.1);
    top: max(10px, env(safe-area-inset-top)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
  }
}

/* 旧SE(320px)をさらに絞る場合は下を有効化
@media (max-width: 320px){
  #qa-ovSplash, .ov-modal{ --ov-font-base: 12.5px; --ov-lh: 1.34; }
}
*/
/* ===== OVERVIEW 小画面(~414px) & モーダル表示中：見出しの上マージンを打ち消す ===== */
@media (max-width: 413px){
  .ov-modal.is-open .ov-modal__headline,
  .ov-modal.is-open #ov-modal-ops__title,
  #qa-ovSplash.is-open .ov-modal__headline{
    margin-top: 20px !important;
    /* 念のため位置指定をリセットしたい場合は下を有効化 */
    /* transform: none !important; */
  }
}
/* ===== OVERVIEW 小画面(~375px)：本文フォントを少し小さく＆行間タイト ===== */
@media (max-width: 413px){
  /* ベース値（必要なら数値だけ微調整） */
  .ov-modal.is-open .ov-modal__body,
  #qa-ovSplash.is-open .ov-modal__body{
    --ov-body-fs: 11px;
    --ov-body-lh: 1;
  }

  .ov-modal.is-open .ov-modal__body p,
  .ov-modal.is-open .ov-modal__body li,
  #qa-ovSplash.is-open .ov-modal__body p,
  #qa-ovSplash.is-open .ov-modal__body li{
    font-size: var(--ov-body-fs) !important;
    line-height: var(--ov-body-lh) !important;
    letter-spacing: 0em;
    margin: 0 0 .58em;
  }
}
/* ===== PCだけ：NEWS / OUR PROJECTS の画像グリッドを強制適用 ===== */
@media (min-width: 960px){

  /* グリッド列数 & 余白（値は好みで：48px→36/40/56…） */
  .post_content .facility-grid{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    column-gap: 48px !important;
    row-gap: 48px !important;
  }
  .post_content .news-grid{
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    column-gap: 48px !important;
    row-gap: 48px !important;
  }

  /* サムネは16:9固定＋トリミング */
  .facility-grid .wp-block-image,
  .facility-grid figure,
  .facility-grid .thumb,
  .news-grid .news-thumb,
  .news-grid figure,
  .news-grid .wp-block-image{
    aspect-ratio: 16/9 !important;
    overflow: hidden !important;
  }
  .facility-grid img,
  .news-grid img{
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    aspect-ratio: 16/9 !important;
  }
}
/* ===== Overview モーダル：テキストSVGを重ねる（既存アニメ/JSは不干渉） ===== */

/* 1) SVGレイヤー：背景の上・×ボタンの下に固定表示 */
.ov-modal.ov--svg{
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important; /* 既存より少し強め */
}
.ov-modal.ov--svg .ov-modal__bg{
  z-index: 0 !important;     /* 背景（既存のまま） */
}

/* SVGは全面にフィット。クリックは背面へ通す（誤操作防止） */
.ov-modal.ov--svg .ov-modal__svg{
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important; /* 画像がクリックを奪わない */
  display: block !important;
}
.ov-modal.ov--svg .ov-modal__svg img{
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  max-width: none !important;
  max-height: none !important;
}

/* 2) 既存テキストは“見た目だけ”消す（A11yは残す） */
.ov-modal.ov--svg .ov-modal__headline,
.ov-modal.ov--svg .ov-modal__body{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

/* 3) ×ボタンは常に最前面＆押しやすく */
.ov-modal.ov--svg .ov-modal__close{
  position: absolute !important;
  top: clamp(12px, 2.2vw, 24px) !important;
  right: clamp(12px, 2.2vw, 24px) !important;
  z-index: 2 !important;     /* SVG(1) より上 */
  background: transparent !important;
  border: 0 !important;
  color: #fff !important;
  font-size: clamp(24px, 3.4vw, 36px) !important;
  line-height: 1 !important;
  width: 1.2em !important;
  height: 1.2em !important;
  text-shadow: 0 0 8px rgba(0,0,0,.35) !important;
  cursor: pointer !important;
}

/* 4) SP/PC の切替は <picture> 側に任せるので追加メディアクエリ不要 */
/* === OVモーダル：PCだけ既存の position:static!important を打ち消して再度“視覚的に非表示”に === */
@media (min-width: 960px){
  .ov-modal.ov--svg .ov-modal__headline,
  .ov-modal.ov--svg .ov-modal__body{
    position: absolute !important;   /* ← 既存の static!important を上書き */
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
  }

  /* 念のため：SVG/JPGレイヤーが前に来るよう最終確認 */
  .ov-modal.ov--svg .ov-modal__svg{ 
    position: absolute !important; 
    inset: 0 !important; 
    z-index: 1 !important; 
    pointer-events: none !important; 
  }
  .ov-modal.ov--svg .ov-modal__close{ z-index: 2 !important; }
}
/* =========================
   PC：.l-fixHeader を主役に（ロゴ＋ハンバーガー）
   ========================= */
@media (min-width: 960px){

  /* 1) 通常ヘッダーはPCでは隠す */
  .l-header{ display: none !important; }

  /* 2) 追従ヘッダーを常時表示＆固定化 */
  .l-fixHeader{
    display: block !important;
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 9999;
    background: transparent; /* ←色は次の手順で制御するので一旦透過 */
    min-height: var(--header_h, 72px);
    will-change: transform;
  }

  /* 3) 横幅と左右レイアウト */
  .l-fixHeader .l-container{
    max-width: 100% !important;
    padding: 0 clamp(16px, 4vw, 48px);
  }
  .l-fixHeader .l-header__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
  }

  /* 4) ロゴサイズ（必要なら --logo_size_pc を調整） */
  .l-fixHeader .l-header__logo{ margin: 0; line-height: 1; }
  .l-fixHeader .l-header__logo img{
    height: var(--logo_size_pc, 28px) !important;
    width: auto;
  }

  /* 5) PCの通常メニューは隠す→ハンバーガーだけ出す */
  nav#gnav{ display: none !important; }

  .l-fixHeader .l-header__menuBtn{
    display: block !important;
  }
  .l-fixHeader .l-header__menuBtn,
  .l-fixHeader .l-header__menuBtn button{
    width: 48px; height: 48px;
  }

  /* 6) 本文がヘッダー下に潜らないよう上パディングを付与 */
  body{ padding-top: var(--header_h, 72px); }
}
/* ===== OVモーダル（PCのみ）：画像(JPG)を最前面＆既存テキストを完全OFF ===== */
@media (min-width: 960px){

  /* モーダル自体を最前面に固定（他スタックをねじ伏せ） */
  .ov-modal.ov--svg{
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483000 !important; /* 超最前面 */
  }

  /* 背景は最背面 */
  .ov-modal.ov--svg .ov-modal__bg{
    position: fixed !important;
    inset: 0 !important;
    z-index: 0 !important;
  }

  /* テキスト画像レイヤーを全面表示（背景の上、×の下） */
  .ov-modal.ov--svg .ov-modal__svg{
    position: fixed !important;
    inset: 0 !important;
    z-index: 2 !important;
    pointer-events: none !important;
    display: block !important;
    opacity: 1 !important;
  }
  .ov-modal.ov--svg .ov-modal__svg img{
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    max-width: none !important;
    max-height: none !important;
  }

  /* ×ボタンは最前面 */
  .ov-modal.ov--svg .ov-modal__close{
    position: fixed !important;
    top: clamp(12px, 2.2vw, 24px) !important;
    right: clamp(12px, 2.2vw, 24px) !important;
    z-index: 3 !important;
  }

  /* 既存の見出し/本文は“完全に非表示”（一旦A11yより確実表示を優先） */
  .ov-modal.ov--svg .ov-modal__headline,
  .ov-modal.ov--svg .ov-modal__body{
    display: none !important;
  }
}
/* ===== ヘッダー遅延フェード（SP/PC 共通） ===== */
/* ヘッダー本体のアニメ基礎（どちらのクラスでも効くように） */
.l-fixHeader,
.l-header{
  transition: opacity 500ms ease, transform 500ms ease;
}

/* 統一版クラス：as-header-delay が <html> に付いている間は隠す */
html.as-header-delay .l-fixHeader,
html.as-header-delay .l-header{
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}

/* 互換：旧SPクラス sp-header-delay が残っても同じ挙動に */
html.sp-header-delay .l-fixHeader,
html.sp-header-delay .l-header{
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}
/* ===== OVモーダル：画像重ねを“CSSだけ”で実現（フリーズ対策版） ===== */

/* 背景は最背面、SVG/JPGは中面、×は最前面。ポインターは貫通 */
.ov-modal.ov--svg .ov-modal__bg{
  z-index: 0 !important;
}

/* 画像レイヤ：絶対配置（fixedは禁止）でフリーズ回避 */
.ov-modal.ov--svg .ov-modal__svg{
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important; /* 画像がクリックを奪わない */
  display: block !important;
}
.ov-modal.ov--svg .ov-modal__svg img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

/* 既存テキストは“見た目だけ”消す（DOMは残す＝A11y維持） */
@media (min-width: 960px){ /* ←PCだけ非表示。SPはそのまま（SVGが前面） */
  .ov-modal.ov--svg .ov-modal__headline,
  .ov-modal.ov--svg .ov-modal__body{
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

/* ×ボタンは常に最前面（押しやすさ維持） */
.ov-modal.ov--svg .ov-modal__close{
  position: absolute !important; /* fixed は使わない */
  top: clamp(12px, 2.2vw, 24px) !important;
  right: clamp(12px, 2.2vw, 24px) !important;
  z-index: 2 !important;
}

/* 念のため：モーダル本体はテーマ既定の位置付けに任せる */
.ov-modal.ov--svg{
  z-index: 9999 !important; /* テーマより少し上にするだけ。positionは触らない */
}
/* ==== PCだけ：NEWS / OUR PROJECT のキャプションが消える問題を総リセット ==== */
@media (min-width: 960px){

  /* 1) はみ出し隠し＆固定比率の影響を解除（figure/.wp-block-image） */
  .post_content :is(.news-grid,.facility-grid) :is(figure,.wp-block-image){
    overflow: visible !important;
    aspect-ratio: auto !important;
    height: auto !important;
  }

  /* 2) サムネ容器だけ 16:9 を維持（画像はここに収める） */
  .post_content :is(.news-grid,.facility-grid) :is(.news-thumb,.facility-thumb){
    aspect-ratio: 16/9 !important;
    overflow: hidden !important;
    position: relative !important;
  }
  .post_content :is(.news-grid,.facility-grid) :is(.news-thumb img,.facility-thumb__img,img){
    width:100% !important; height:100% !important; object-fit:cover !important;
  }

  /* 3) キャプション要素を“普通のフロー”へ戻す（絶対配置/クリップ） */
  .post_content :is(.news-grid,.facility-grid)
    :is(figcaption,.news-meta,.news-date,.news-cat,.news-item-title,.facility-title,
        .p-postList__title,.p-postList__meta,.p-postList__date){
    display:block !important;
    position: static !important;
    inset: auto !important; top:auto !important; right:auto !important; bottom:auto !important; left:auto !important;
    opacity: 1 !important; visibility: visible !important;
    clip: auto !important; clip-path: none !important; -webkit-line-clamp: unset !important; overflow: visible !important;
    max-height: none !important; transform: none !important;
    margin-top: .45em !important; color:#111 !important; z-index: 2 !important;
  }

  /* 4) カード自体がテキストを切らないように */
  .post_content :is(.news-grid,.facility-grid) :is(.news-item,.facility-card,li,article,div){
    overflow: visible !important;
  }

  /* 5) “画像だけ”に比率を掛け直す（既存16:9 を無効化） */
  .facility-grid :is(.wp-block-image,figure),
  .news-grid     :is(.wp-block-image,figure){
    aspect-ratio: auto !important;
    overflow: visible !important;
  }
}
/* ===== SP（～959px）ハンバーガー反転：フォントアイコン版 ===== */
@media (max-width:959px){

  /* 親と<i>に currentColor を供給 */
  html[data-header-tone] .c-iconBtn,
  html[data-header-tone] .c-iconBtn__icon{
    color: var(--header-fg) !important;
  }

  /* 実体： <i class="c-iconBtn__icon icon-menu-thin">::before */
  html[data-header-tone] i.c-iconBtn__icon.icon-menu-thin::before{
    color: var(--header-fg) !important;
    background: none !important;
    box-shadow: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    -webkit-text-fill-color: var(--header-fg) !important; /* iOS対策 */
  }

  /* 保険の直指定 */
  html[data-header-tone="dark"]  i.c-iconBtn__icon.icon-menu-thin::before{ color:#fff !important; -webkit-text-fill-color:#fff !important; }
  html[data-header-tone="light"] i.c-iconBtn__icon.icon-menu-thin::before{ color:#000 !important; -webkit-text-fill-color:#000 !important; }

  /* ヘッダー側の固定色を打ち消し */
  html[data-header-tone] .l-header,
  html[data-header-tone] .l-fixHeader{ color: inherit !important; }

/* ==== SP専用：facility-thumb を 16:9 に固定 ==== */
@media (max-width: 959px){

  /* （必要なら下2行をあなたのIDでスコープにしてOK）
     例）#project_facility_thumb .facility-card__a > .facility-thumb { ... } */
  .facility-card__a > .facility-thumb,
  .facility-thumb{
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    height: auto !important;          /* 比率で高さ算出 */
    padding: 0 !important;            /* padding-bottom式の比率を無効化 */
    min-height: 0 !important;
    position: relative !important;
    overflow: hidden !important;
  }

  /* figure 等がある場合の保険 */
  .facility-thumb > figure{
    aspect-ratio: 16 / 9 !important;
    margin: 0 !important;
    width: 100% !important;
    height: 100% !important;
  }

  /* 中の画像をフィットさせる */
  .facility-thumb img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
  }
}

/* =========================================
   CONTACT(page-id:375) 仕上げ上書き
   - PC: 幅900pxで中央寄せ
   - SP: 左右44pxの余白
   - 送信ボタン：PCでもSPと同じフル幅ピル型
   ========================================= */

/* 器：幅/余白だけ上書き（中の見た目は既存のまま活かす） */
.page-id-375 .post_content .aq-contact{
  max-width: 900px;          /* PCは900px */
  width: auto;               /* 既存の min(88vw,720px) を解除 */
  margin-left: auto;
  margin-right: auto;
}

/* タイトル＆リードも器に揃える（幅指定を外して中央揃えだけ維持） */
.page-id-375 .post_content .aq-contact__title,
.page-id-375 .post_content .aq-contact__lead{
  max-width: 900px;
  width: auto;
  margin-left: auto;
  margin-right: auto;
}

/* SP: 左右44pxパディング（TOP合わせ） */
@media (max-width: 959px){
  .page-id-375 .post_content .aq-contact,
  .page-id-375 .post_content .aq-contact__title,
  .page-id-375 .post_content .aq-contact__lead{
    padding-left: 44px;
    padding-right: 44px;
    box-sizing: border-box;
  }
}

/* PCでもSPボタン仕様（フル幅ピル型）を適用 */
.page-id-375 .post_content .aq-contact .aqc-submit{ 
  text-align: initial;       /* 中央寄せは解除（フル幅になるため） */
  margin-top: clamp(18px,4vw,32px);
}
.page-id-375 .post_content .aq-contact input[type="submit"]{
  display: block !important;
  width: 100% !important;    /* フル幅 */
  min-height: 56px;          /* SPと同等の高さ感 */
  border-radius: 9999px !important;
  /* 既存の色/フォント/影などはそのまま生かす（既存が強いのでOK） */
}
/* ================================
   14) CONTACT (page-id:375) PCレイアウト
   - 本文ブロックを 900px で中央寄せ
   - 中の .aq-contact は幅100%で器に追従
   - ボタンはPCでもフル幅ピル型
   ================================ */
@media (min-width: 960px){

  /* 本文コンテナを 900px 固定でセンターに */
  body.page-id-375 #content .post_content,
  body.page-id-375 .c-postContent,
  body.page-id-375 main .post_content{
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  /* “親コンテナの制限”を無効化（テーマの .l-container 等が強い場合の保険） */
  body.page-id-375 main .l-container{
    max-width: none !important;   /* ここで親の上限を解除 */
  }

  /* フォーム本体は器にフィット（既存の min(88vw,720px) ） */
  body.page-id-375 .post_content .aq-contact,
  body.page-id-375 .post_content .aq-contact__title,
  body.page-id-375 .post_content .aq-contact__lead{
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 送信ボタンをPCでもフル幅に */
  body.page-id-375 .wpcf7 .wpcf7-submit,
  body.page-id-375 .post_content .aq-contact input[type="submit"]{
    display: block !important;
    width: 100% !important;
    min-height: 56px !important;
    border-radius: 9999px !important;
  }

  /* ボタン周辺の段落が中央寄せしている場合のリセット */
  body.page-id-375 .post_content .aqc-submit{
    text-align: initial !important;
  }
}

/* ================================
   CONTACT page-id:375 — PCで900px中央 & フィールド100%
   ================================ */
@media (min-width: 960px){

  /* 器（本文）を900pxでセンター固定 */
  body.page-id-375 #content .post_content{
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }

  /* 親の l-container 等の上限が強い場合の保険 */
  body.page-id-375 main .l-container{
    max-width: none !important;
  }

  /* フォーム全体は器に追従（既存の min(88vw,720px) を無効化） */
  body.page-id-375 .post_content .aq-contact,
  body.page-id-375 .post_content .aq-contact__title,
  body.page-id-375 .post_content .aq-contact__lead{
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* === ここが効き筋 ===
     CF7の wrap/段落が横幅を制限しているので、100%を徹底させる */
  body.page-id-375 .post_content .aq-contact p,
  body.page-id-375 .post_content .aq-contact .aqc-field,
  body.page-id-375 .post_content .aq-contact .wpcf7-form-control-wrap{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 入力要素を必ずフルワイドに（size属性やテーマCSSを上書き） */
  body.page-id-375 .post_content .aq-contact input.wpcf7-form-control,
  body.page-id-375 .post_content .aq-contact input[type="text"],
  body.page-id-375 .post_content .aq-contact input[type="email"],
  body.page-id-375 .post_content .aq-contact input[type="tel"],
  body.page-id-375 .post_content .aq-contact select,
  body.page-id-375 .post_content .aq-contact textarea{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* 送信ボタンもPCでフル幅（SP同仕様） */
  body.page-id-375 .post_content .aq-contact .aqc-submit{
    text-align: initial !important;
    margin-top: clamp(18px, 4vw, 32px) !important;
  }
  body.page-id-375 .post_content .aq-contact input[type="submit"],
  body.page-id-375 .wpcf7 .wpcf7-submit{
    display: block !important;
    width: 100% !important;
    min-height: 56px !important;
    border-radius: 9999px !important;
  }
}
/* CONTACT page-id:375 — CF7のmax-width制限を解除してフル幅に */
@media (min-width: 960px){
  /* ラッパーの幅キャップ */
  .page-id-375 .wpcf7-form-control-wrap{
    max-width: none !important;
    width: 100% !important;
    display: block !important;
    box-sizing: border-box !important;
  }

  /* pや独自ラッパが横幅を絞っている保険 */
  .page-id-375 .aq-contact p,
  .page-id-375 .aq-contact .aqc-field{
    max-width: none !important;
    width: 100% !important;
    display: block !important;
  }

  /* 入力要素側のmax-widthも完全解除 */
  .page-id-375 .aq-contact input.wpcf7-form-control,
  .page-id-375 .aq-contact input[type="text"],
  .page-id-375 .aq-contact input[type="email"],
  .page-id-375 .aq-contact input[type="tel"],
  .page-id-375 .aq-contact select,
  .page-id-375 .aq-contact textarea{
    width: 100% !important;
    max-width: none !important;   /* ← これ重要 */
    box-sizing: border-box !important;
  }
}
@media (min-width: 960px){
  .page-id-375 #content .post_content{
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .page-id-375 main .l-container{ max-width: none !important; }
}
@media (min-width: 960px){
  .page-id-375 .aq-contact .aqc-submit{ text-align: initial !important; }
  .page-id-375 .aq-contact input[type="submit"],
  .page-id-375 .wpcf7 .wpcf7-submit{
    display: block !important;
    width: 100% !important;
    min-height: 56px !important;
    border-radius: 9999px !important;
  }
}
/* CONTACT page-id:375 — PCで各フィールドを100%に強制 */
@media (min-width: 960px){

  /* 器を900pxセンターに（再掲・保険） */
  body.page-id-375 #content .post_content{
    max-width: 900px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 0 !important;
  }
  body.page-id-375 main .l-container{ max-width: none !important; }

  /* ラッパ類の幅キャップと横並びを完全解除 */
  body.page-id-375 .aq-contact .wpcf7-form-control-wrap,
  body.page-id-375 .aq-contact .aqc-field,
  body.page-id-375 .aq-contact p{
    width: 100% !important;
    max-width: none !important;
    display: block !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  /* 入力要素：size属性やテーマ既定のmax-width/widthを無効化 */
  body.page-id-375 .aq-contact input.wpcf7-form-control,
  body.page-id-375 .aq-contact input[type="text"],
  body.page-id-375 .aq-contact input[type="email"],
  body.page-id-375 .aq-contact input[type="tel"],
  body.page-id-375 .aq-contact select,
  body.page-id-375 .aq-contact textarea{
    inline-size: 100% !important;   /* widthより優先されやすい論理プロパティ */
    width: 100% !important;
    max-inline-size: none !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  /* CF7が入れる “span > input” の直下指定（最優先で幅100%） */
  body.page-id-375 .aq-contact span.wpcf7-form-control-wrap > input,
  body.page-id-375 .aq-contact span.wpcf7-form-control-wrap > textarea,
  body.page-id-375 .aq-contact span.wpcf7-form-control-wrap > select{
    width: 100% !important;
    max-width: none !important;
  }

  /* 送信ボタン：PCでもSPと同じフル幅ピル型 */
  body.page-id-375 .aq-contact .aqc-submit{ text-align: initial !important; }
  body.page-id-375 .aq-contact input[type="submit"],
  body.page-id-375 .wpcf7 .wpcf7-submit{
    display: block !important;
    width: 100% !important;
    min-height: 56px !important;
    border-radius: 9999px !important;
  }
}
/* CONTACT 375 レイアウト最終仕上げ */
.page-id-375 .post_content{ /* PCは900pxセンター */
  max-width: 900px; margin: 0 auto;
}
@media (max-width: 959px){
  .page-id-375 .aq-contact,
  .page-id-375 .aq-contact__title,
  .page-id-375 .aq-contact__lead{
    padding-left: 44px; padding-right: 44px; box-sizing: border-box;
  }
}
/* ボタンをPCでもSPと同じフル幅に */
.page-id-375 .aqc-submit{ text-align: initial; }
.page-id-375 .aqc-submit .wpcf7-submit{ display:block; width:100%; min-height:56px; border-radius:9999px; }
/* CONTACT 375: CF7が出す空の fieldset を無力化 */
.page-id-375 fieldset.hidden-fields-container{
  display: contents !important;   /* 要素を“中身だけ”にする。枠/余白を消せる */
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  min-inline-size: 0 !important;  /* UAの最小幅を解除 */
}
/* display:contents 未対応ブラウザの保険（線が出たらこちらが効く） */
@supports not (display: contents){
  .page-id-375 fieldset.hidden-fields-container{ display:none !important; }
}

/* ===== CONTACT(ページ375)だけに効かせる：CF7インスタンスIDでスコープ ===== */
/* 例: <div id="wpcf7-f372-p375-o1" class="wpcf7 js"> … */
@media (min-width:960px){
  /* 本文を900pxで中央に */
  .page-id-375 #content .post_content{
    max-width:900px; margin:0 auto; padding:0; box-sizing:border-box;
  }
}

/* SPは左右44px（TOP合わせ） */
@media (max-width:959px){
  .page-id-375 .aq-contact__title,
  .page-id-375 .aq-contact__lead,
  .page-id-375 .aq-contact{
    padding-left:44px; padding-right:44px; box-sizing:border-box;
  }
}

/* === ここからが“勝ち筋” === */
/* 「wpcf7-f で始まり、-p375- を含む」＝このページ上のCF7インスタンスだけ */
@media (min-width:960px){
  [id^="wpcf7-f"][id*="-p375-"] .wpcf7-form-control-wrap,
  [id^="wpcf7-f"][id*="-p375-"] .aqc-field,
  [id^="wpcf7-f"][id*="-p375-"] p{
    display:block; width:100%; max-width:none; box-sizing:border-box;
  }
  [id^="wpcf7-f"][id*="-p375-"] input[type="text"],
  [id^="wpcf7-f"][id*="-p375-"] input[type="email"],
  [id^="wpcf7-f"][id*="-p375-"] input[type="tel"],
  [id^="wpcf7-f"][id*="-p375-"] textarea,
  [id^="wpcf7-f"][id*="-p375-"] select,
  [id^="wpcf7-f"][id*="-p375-"] > form input.wpcf7-form-control{
    width:100%; max-width:none; box-sizing:border-box;
  }
  /* ボタンもPCでフル幅（SPと同じ） */
  [id^="wpcf7-f"][id*="-p375-"] .aqc-submit{ text-align: initial; }
  [id^="wpcf7-f"][id*="-p375-"] .aqc-submit .wpcf7-submit{
    display:block; width:100%; min-height:56px; border-radius:9999px;
  }
}

/* 見出し上の“謎の線”（空fieldset）を無効化 */
.page-id-375 fieldset.hidden-fields-container{ border:0; margin:0; padding:0; }

/* 対象：フロントの本文領域（必要に応じてラッパーを追加） */
body:not(.wp-admin):not(.block-editor-page)
  :where(.post_content, .content, .l-content)
  :is(.alignfull,
      .alignwide,
      .wp-block-group,
      .wp-block-cover,
      .wp-block-columns,
      .wp-block-image,
      .wp-block-gallery,
      .wp-block-media-text){
  margin-bottom: 0 !important;
}

/* SWELL系のユーティリティ .mb-xx を“本文内だけ”ゼロに（46.8px = .mb-30 などの打消し） */
body:not(.wp-admin):not(.block-editor-page)
  :where(.post_content, .content, .l-content)
  [class^="mb-"],
body:not(.wp-admin):not(.block-editor-page)
  :where(.post_content, .content, .l-content)
  [class*=" mb-"]{
  margin-bottom: 0 !important;
}

/* ページ末尾の余白も消したい場合（必要なら） */
body:not(.wp-admin):not(.block-editor-page)
  :where(.post_content, .content, .l-content) > *:last-child{
  margin-bottom: 0 !important;
}

/* SP専用：facility-title を15px / 15px に固定 */
@media (max-width: 959px){
  /* セレクタ強度を上げて上書き勝ちにいく */
  .facility-title.facility-title,
  .facility-card .facility-title,
  .l-container .facility-title{
    margin-top: 15px !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
  }
}

@media (max-width: 959px){
  /* #philosophy 自身に当てる（子孫ではない） */
  #philosophy.wp-block-group.alignfull{
    padding-left: 20px !important;
    padding-right: 20px !important;
    padding-inline: 44.7px !important; /* 論理プロパティ対策 */
  }

  /* 内側に .l-container がある場合は余白を打ち消し */
  #philosophy .l-container{
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-inline: 0 !important;
  }
}
/* OVERVIEW の下余白だけ 0 に（CSS保険） */
#overview,
[id^="overview"]{
  padding-bottom: 0 !important;
}

/* ===== OVモーダル：クローズボタン調整 ===== */
.ov-modal__close{
  /* 好みで調整 */
  --size-pc: 100px;   /* PCの外形サイズ */
  --size-sp: 40px;   /* SPの外形サイズ */
  --stroke: 2px;     /* 斜線の太さ（細め） */

  position: fixed !important; /* 既存がabsoluteでも上書き */
  width: var(--size-pc) !important;
  height: var(--size-pc) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 50% !important;
  cursor: pointer;
  color: rgba(255,255,255,.95); /* 線色 */
  z-index: 9999 !important; /* 最前面 */
}

/* SPサイズ */
@media (max-width: 959px){
  .ov-modal__close{
    width: var(--size-sp) !important;
    height: var(--size-sp) !important;
  }
}

/* “×” の細い線を描く（既存のアイコンを打ち消して強制上書き） */
.ov-modal__close::before,
.ov-modal__close::after{
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 70%;
  height: var(--stroke);
  background: currentColor !important;
  transform-origin: center;
  translate: -50% -50%;
  box-shadow: none !important;
}
.ov-modal__close::before{ transform: rotate(45deg); }
.ov-modal__close::after { transform: rotate(-45deg); }

/* 既存の枠線・背景・余計な画像を無効化 */
.ov-modal__close,
.ov-modal__close *{
  background-image: none !important;
  border: none !important;
  text-shadow: none !important;
}
#header {
background: rgba(255 255 255 / 50%);important;
}

h1 {
display: none;
}
.l-mainContent__inner>.post_content {
margin-top: 0;
}

.l-content{
margin-bottom:0!important;
}

.cf-area {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0.5em 0;
	transition: all .3s;
}

.cf-area:last-child {
	border-bottom: none;
}

.cf-area dt {
  width: 200px;
  padding-right: 30px;
  text-align: right;
	line-height:1.5em;
}

.cf-area dd {
    flex: 1;
}

.cf-area input::placeholder {
color: #888;

}

select, textarea {
	color:#888;
	}

select{
    appearance: none;
    position: relative;
}

.cf-area select[name="select"] {
color:#888!important;  
width: 100%;
  padding: 0.8em;
  border: 1;
  background-color: #fff;
  font-size: 12px;
	resize: vertical;
	transition: all .3s;
	line-height:1.5em;
  font-weight: normal!important;
}

.cf-area select[name="select"] dt {
  width: 200px;
  padding-right: 30px;
  text-align: right;
	line-height:1.5em;
}

.cf-area select[name="select"] dd {
    flex: 1;
}

.cf-area input, .cf-area textarea{
  width: 100%;
  padding: 0.8em;
  border: 1;
  background-color: #ffffff;
  font-size: 12px;
	resize: vertical;
	transition: all .3s;
}

.cf-area input:focus,.cf-area textarea:focus {
	outline: none;
	background: #f7f7f7;
}

.cf-required {
	background: #b91e23;
	color: #fff;
	font-size: 0.8em;
	padding: 0 5px 2px;
	border-radius: 2px
}

.cf-send input {
	display: block;
	background: #999999;
	width: 300px;
	height: 50px;
	margin: 30px auto 0;
	border: none;
	color: #fff;
	
	font-size: 1em;
	font-weight: bold;
	transition: all .3s;
}

.cf-send input:hover {
	background: black;
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
	background-color: #fce3e3;
	border: none;
	text-align: center;
}

/* Contact：SP（～959px）は必ず “縦2段” */
@media (max-width: 959px){
  .post_content .cf-area{
    display:block !important;              /* ← flexを完全に無効化 */
    padding:0.5em 0;
  }
  .post_content .cf-area > dt,
  .post_content .cf-area > dd{
    display:block !important;
    width:100% !important;                 /* ← dtの200pxを上書き */
    padding:0 !important;                  /* ← 右30pxを上書き */
    margin:0 !important;
    float:none !important;
    box-sizing:border-box;
  }
  .post_content .cf-area > dd{
    flex:none !important;                  /* ← ddのflex:1を無効化 */
  }
  .post_content .cf-area > dt{
    text-align:left !important;
    margin:0 0 6px !important;
    line-height:1.5em;
  }
  .post_content .cf-area > dt p,
  .post_content .cf-area > dd p{
    margin:0 !important;                   /* pの既定余白 */
  }
  .post_content .cf-area input,
  .post_content .cf-area textarea,
  .post_content .cf-area select{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }
}
/* ===== SPヘッダー：バー透明＋ロゴをCSSだけで必ず表示（トーン連動） ===== */
@media (max-width: 959px){

  /* バーは完全透明（影/ブラーなし） */
  .l-header,
  .l-fixHeader,
  .l-header__bar,
  .l-fixHeader__bar{
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    opacity: 1 !important;
  }
  /* 高さだけ確保してロゴが潰れないように */
  .l-header .l-header__inner,
  .l-fixHeader .l-fixHeader__inner{
    min-height: 56px !important;
    display: flex !important;
    align-items: center !important;
  }

  /* ロゴ枠を前面へ */
  .l-header .l-header__logo,
  .l-fixHeader .l-header__logo{
    position: relative !important;
    z-index: 2147483001 !important;
  }

  /* 既存imgはそのまま残すが、視覚には出さない（テーマ依存のJS対策で display:none は避ける） */
  .l-header .l-header__logo img,
  .l-fixHeader .l-header__logo img,
  img.c-headLogo__img{
    opacity: 0 !important;
    visibility: hidden !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    mix-blend-mode: normal !important;
    filter: none !important;
    -webkit-mask: none !important;
            mask: none !important;
  }

  /* 擬似要素で“必ず見える”ロゴを描画（サイズは好みで） */
  .l-header .l-header__logo::before,
  .l-fixHeader .l-header__logo::before{
    content: "";
    display: block;
    width: 150px;             /* ← ロゴ幅（120–180px 目安） */
    height: 24px;             /* ← ロゴ高さ（20–28px 目安） */
    background: var(--as-sp-logo) no-repeat left center / contain;
  }

  /* ハンバーガーは currentColor。トーンに応じて黒/白を切り替え */
  html[data-header-tone="light"]  .c-iconBtn,
  html[data-header-tone="light"]  .c-iconBtn__icon{ color:#000 !important; }
  html[data-header-tone="dark"]   .c-iconBtn,
  html[data-header-tone="dark"]   .c-iconBtn__icon{ color:#fff !important; }
  html[data-header-tone] i.c-iconBtn__icon.icon-menu-thin::before{
    color: currentColor !important;
    -webkit-text-fill-color: currentColor !important;
    background: none !important; box-shadow: none !important;
    -webkit-mask: none !important; mask: none !important;
  }
}

/* トーン別にロゴを切替（dark=白 / その他=黒） */
html[data-header-tone="dark"]{
  --as-sp-logo: url("https://aquaignis-company.jp/wp-content/uploads/2025/10/AQUAIGNIS_wh.svg");
}
html:not([data-header-tone]),           /* 未設定＝既定を黒に */
html[data-header-tone="light"]{
  --as-sp-logo: url("https://aquaignis-company.jp/wp-content/uploads/2025/10/AQUAIGNIS_bk.svg");
}
/* ===== 1) 見出しSVG（JP+EN）サイズ調整 ===== */
#overview .ov-bubble__title{
  display:block;
  margin: 0 auto .8rem;
  /* SP既定（丸の中に収まる安全値） */
  width: min(78%, 340px);
  height:auto;
  pointer-events:none;
}
@media (min-width: 960px){
  /* PCは少しワイドに */
  #overview .ov-bubble__title{
    width: min(60%, 520px);
  }
}

/* ===== 2) STATEMENT（SVG）をPCでも確実に表示 ===== */
/* ボタン本体のリセット＆レイアウトを image 基準にする */
#overview .ov-bubble__cta.ov-cta{
  position: relative;
  display: inline-flex;          /* ←画像の実幅で収まる */
  align-items: flex-end;
  background: transparent !important;
  border: 0 !important;
  padding: 0 0 8px !important;   /* 下線との間隔 */
  line-height: 1;                /* 余白の暴れ止め */
}

/* 画像を強制表示（テーマ側のimgリセット対策） */
#overview .ov-bubble__cta .ov-cta__label{
  display: block !important;
  width: clamp(120px, 12vw, 220px) !important;  /* ←PCで出ない原因の多くは幅=0系。ここで固定 */
  height: auto !important;
  max-width: none !important;
  opacity: 1 !important;
}

/* 万が一の display:none 上書き */
#overview .ov-bubble__cta img,
#overview .ov-bubble__cta svg{
  display: block !important;
  visibility: visible !important;
}

/* 下線アニメ（SVG幅＝ボタン幅に同期） */
#overview .ov-bubble__cta.ov-cta::after{
  content:"";
  position:absolute; left:0; bottom:0;
  height:2px; width:0;
  background: rgba(255,255,255,.95);
  transform-origin:left center;
  animation: ovUnderlineLR 2.1s linear infinite;
}
@keyframes ovUnderlineLR{
  0%{width:0;transform:none;opacity:1}
  70%{width:100%;transform:none;opacity:1}
  100%{width:100%;transform:translateX(100%);opacity:0}
}
@media (hover:hover){
  #overview .ov-bubble__cta.ov-cta:hover::after{ animation-duration:1.6s; }
}
@media (prefers-reduced-motion: reduce){
  #overview .ov-bubble__cta.ov-cta::after{ animation:none; width:100%; transform:none; opacity:1; }
}

@media (max-width: 959px){
  /* 画像を入れているラッパー（クラスは実態に合わせて） */
  .ov-modal__bg{
    min-height: calc(100dvh - 40px); /* モーダルの上下パディング・ボタン分を差し引き。数値は調整OK */
    box-sizing: border-box;
  }

  /* 画像要素を“縦横ともに埋めてトリミング” */
  .ov-modal__bg img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;   /* ← 横いっぱいでも縦不足を解消 */
  }
}

@media (max-width: 959px){
  /* 旧：背景ブロックを全面オフ */
  .ov-modal__bg,
  .ov-modal__bg-left,
  .ov-modal__bg-right{
    background: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
  /* 擬似要素で重ねていた場合 */
  .ov-modal__bg::before,
  .ov-modal__bg::after,
  .ov-modal__bg-left::before,
  .ov-modal__bg-left::after,
  .ov-modal__bg-right::before,
  .ov-modal__bg-right::after{
    content: none !important;
    display: none !important;
  }

  /* もし旧構成で“背景SVGレイヤー”(.ov-modal__svg)を使っていたなら、いったん非表示にして重なりを確認 */
  .ov-modal__svg{ display: none !important; }
}
/* Modal Close “X” — thin lines, scalable */
.ov-modal button.ov-modal__close{
  position:absolute;
  top: clamp(12px, 2vw, 24px) !important;
  right: clamp(12px, 2vw, 24px) !important;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  border: none !important;
  color: #fff;
  cursor: pointer;
  font-size: 0; /* 元の×文字は非表示 */
  line-height: 0;
  z-index: 10000;
}

.ov-modal button.ov-modal__close::before,
.ov-modal button.ov-modal__close::after{
  content:"";
  position:absolute;
  width: 26px;       /* ← Xの大きさ（長さ） */
  height: 1.6px;     /* ← 線の細さ */
  background: currentColor;
  border-radius: 1px;
  transform-origin: center;
}
.ov-modal button.ov-modal__close::before{ transform: rotate(45deg); }
.ov-modal button.ov-modal__close::after { transform: rotate(-45deg); }

@media (max-width: 599px){
  .ov-modal button.ov-modal__close{ width: 40px; height: 40px; }
  .ov-modal button.ov-modal__close::before,
  .ov-modal button.ov-modal__close::after{ width: 22px; }
}

@media (max-width: 959px){
  /* モーダル本体を基準にする＆高さを端末UIに追従 */
  .ov-modal[data-ov-modal]{
    position: fixed !important;
    inset: 0 !important;
    height: 100svh;              /* iOS16+ */
    height: 100dvh;              /* 近年のブラウザ */
    height: 100vh;               /* フォールバック */
    box-sizing: border-box;
  }

  /* 背景レイヤーは“親の中で”はみ出し禁止（クリップ） */
  .ov-modal__bg{
    position: absolute !important;
    inset: 0 !important;
    overflow: hidden !important;  /* ← はみ出しを切る */
  }

  /* 画像は親いっぱいにフィット（トリミングOK） */
  .ov-modal__bg img{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;               /* ベースライン隙間対策 */
  }

  /* テキストなど前景は背景の上に表示＆スクロール可能に */
  .ov-modal__body{
    position: relative;
    z-index: 1;
    max-height: 100svh;           /* 画面内でスクロール */
    overflow: auto;
    -webkit-overflow-scrolling: touch;
  }
}
	/* 1) ヒーローを基準に（あなたが付けた .ss-hero を使う） */
.ss-hero{ position: relative; }

/* 2) 余白ゼロのマーカー（中央下） */
.hero-scroll{
  position: absolute;
  left: 50%;
  bottom: clamp(18px, 2vw, 28px);
  transform: translateX(-50%);
  width: 0; height: 0;
  pointer-events: none;
  z-index: 2;
}

/* 3) 縦ライン本体（疑似要素のみ描画） */
.ss-hero .hero-scroll::after{
  content: "";
  display: block;
  width: 1px;
  height: 50px;
  background: #000;
  animation: heroScroll 2s infinite;
  transform-origin: 50% 0%;
}

/* 4) アニメ（上→下→消える） */
@keyframes heroScroll{
  0%   { transform: scaleY(0); transform-origin: 50% 0%; }
  50%  { transform: scaleY(1); transform-origin: 50% 0%; }
  51%  { transform: scaleY(1); transform-origin: 50% 100%; }
  100% { transform: scaleY(0); transform-origin: 50% 100%; }
}

/* 5) 任意：SPは短め */
@media (max-width: 959px){
  .ss-hero .hero-scroll::after{ height: 40px; }
}

/* 置き換え前（これが残っていたら無効化） */
/* .ss-hero .hero-scroll::after{ ... } */

/* 置き換え後（PC/SPどちらも有効） */
.hero-scroll::after{
  content: "";
  display: block;
  width: 1px;
  height: 50px;      /* 任意で調整OK */
  background: #000;  /* 黒ライン */
  animation: none;   /* アニメなし指定 */
  transform-origin: 50% 0%;
}

}
/* SPだけ：アニメを少しゆっくり、線を少し短く */
@media (max-width: 959px){
  .hero-scroll::after{
    height: 28px;                          /* 長さ調整 */
    animation: heroScroll 3s infinite !important; /* 2.0s→2.6s（少しゆっくり） */
    transform-origin: 50% 0%;
  }
}
/* SPだけ：横方向を0.75倍にして“わずかに細く” */
@media (max-width: 959px){
  .hero-scroll::after{
    /* 既存の高さ・アニメ設定はそのまま活かす */
    --sx: .75; /* 横スケール（1=元の太さ）。0.7〜0.85で微調整OK */
  }
}

/* アニメ側を“変数対応”に差し替え（下に置けば上書きされます） */
@keyframes heroScroll{
  0%   { transform: scale(var(--sx,1), 0);   transform-origin: 50% 0%; }
  50%  { transform: scale(var(--sx,1), 1);   transform-origin: 50% 0%; }
  51%  { transform: scale(var(--sx,1), 1);   transform-origin: 50% 100%; }
  100% { transform: scale(var(--sx,1), 0);   transform-origin: 50% 100%; }
}


/* = PCで確実に表示（SWELLの .pc_only クラス不一致/初期非表示の保険） = */
@media (min-width: 960px){
  .pc_only{ display:block !important; }         /* 認識されてなくても強制表示 */
  .hero-scroll{ z-index: 50 !important; }       /* 他レイヤーに埋もれ防止 */
  .hero-scroll::after{
    height: 48px !important;                    /* 少し短く（ご希望） */
    animation: heroScroll 2.6s infinite !important; /* 少しゆっくり（SPと同等） */
    background: #000 !important;
    width: 1px !important;                      /* 念のため太さを固定 */
  }
}

/* ===== Overview モーダル余白ブレイカー ========================= */
/* モーダルを常にビューポートいっぱいに（親のpadding/transform影響を無視） */
.ov-modal.ov--svg.is-open{
  position: fixed !important;
  /* ビューポート端まで強制フルブリード */
  left:  calc(50% - 50vw) !important;
  right: calc(50% - 50vw) !important;
  top:   0 !important;
  bottom:0 !important;

  width: 100vw !important;
  height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;

  /* gridのギャップや内側余白を完全にゼロに */
  display: grid !important;
  grid-template-columns: 1fr !important;
  grid-template-rows: 1fr !important;
  gap: 0 !important;
  overflow: hidden !important;

  /* 万一の祖先transform影響を最小化 */
  transform: none !important;
  box-sizing: border-box !important;
}

/* 背景左右のレイヤーを端まで伸ばす */
.ov-modal__bg{ position:absolute !important; inset:0 !important; }
.ov-modal__bg--left { right:50% !important; }
.ov-modal__bg--right{ left: 50% !important; }

/* 背景画像（PC/JPG・SP/JPG）を全面フィット */
.ov-modal__svg,
.ov-modal__svg > img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  margin:0 !important;
  padding:0 !important;
}

/* 見出し・本文の内側だけ、必要最小の余白を付与（お好みで調整） */
.ov-modal__headline,
.ov-modal__body{
  position: relative !important;
  margin: 0 !important;
  padding: clamp(12px, 4.5vw, 28px) !important;
}

/* 段落のデフォルト余白を整理（下の詰まり防止） */
.ov-modal__content p{ margin: 0 0 .9em !important; }
.ov-modal__content p:last-child{ margin-bottom: 0 !important; }

/* ×ボタンを端に固定（ノッチ対応） */
.ov-modal__close{
  position:absolute !important;
  top:  max(10px, env(safe-area-inset-top)) !important;
  right:max(10px, env(safe-area-inset-right)) !important;
}

/* SP明示（不要なら消してOK） */
@media (max-width: 959px){
  .ov-modal.ov--svg.is-open{ height: 100dvh !important; }
}
/* 親を基準にする */
.ss-hero{ position: relative; }

/* CSSだけで“下センター”に縦線を出す（疑似要素） */
.ss-hero::after{
  content:"";
  position:absolute;
  left:50%;
  bottom: clamp(18px, 2vw, 28px);
  transform: translateX(-50%);
  width:1px;
  height:48px;               /* PC：少し短め */
  background:#000;
  pointer-events:none;
  z-index:50;
  /* アニメ（少しゆっくり） */
  animation: heroScroll 2.6s infinite;
  /* SPで細くする用の横スケール（PCは1のまま） */
  --sx: 1;
}

/* SPだけ：縦線をさらに上へ（CSS-only版に対応） */
@media (max-width: 959px){
  .ss-hero::after{
    bottom: 100px !important;  /* 好みで 80〜120px などに */
  }
}

@media (max-width: 959px){
  .ss-hero::after{
    height:36px;     /* “少し短く” */
    --sx:.75;        /* “わずかに細く” */
  }
}

/* 横スケールに対応したアニメ（上→下→消える） */
@keyframes heroScroll{
  0%   { transform: translateX(-50%) scale(var(--sx,1), 0);   transform-origin: 50% 0%; }
  50%  { transform: translateX(-50%) scale(var(--sx,1), 1);   transform-origin: 50% 0%; }
  51%  { transform: translateX(-50%) scale(var(--sx,1), 1);   transform-origin: 50% 100%; }
  100% { transform: translateX(-50%) scale(var(--sx,1), 0);   transform-origin: 50% 100%; }
}
/* PC: モーダルを必ず画像表示に戻す（テキストは隠す） */
@media (min-width: 960px){
  /* よく使う2パターンを面でカバー */
  #overview .ov-modal__text,
  .ov-modal .ov-modal__text,
  .modal .modal__text{
    display: none !important;
  }

  /* 画像要素（<img>/<picture>）を優先表示 */
  #overview .ov-modal__img,
  .ov-modal .ov-modal__img,
  .modal .modal__img,
  #overview .ov-modal picture,
  .ov-modal picture,
  .modal picture,
  #overview .ov-modal img,
  .ov-modal img,
  .modal img{
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* 背景画像で出していたケースの保険（必要ならURL差し替え） */
  #overview .ov-modal__body,
  .ov-modal .ov-modal__body,
  .modal .modal__body{
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: cover !important;
    /* もし背景で出すテーマなら、下の一行のURLを指定画像に差し替えて使ってOK */
    /* background-image: url("https://aquaignis-company.jp/wp-content/uploads/2025/10/your-modal-image.jpg") !important; */
  }
}

/* PC：モーダルは必ず<picture>を表示、テキストは隠す（上書き） */
@media (min-width: 960px){
  /* 画像ブロックを確実に可視化 */
  .ov-modal.ov--svg .ov-modal__svg,
  .ov-modal .ov-modal__svg{
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    width: 100% !important;
    height: auto !important;
    position: relative !important;
    z-index: 2;
  }

  /* 見出しと本文はPCでは非表示（画像に差し替えのため） */
  .ov-modal.ov--svg .ov-modal__headline,
  .ov-modal.ov--svg .ov-modal__body,
  .ov-modal .ov-modal__headline,
  .ov-modal .ov-modal__body{
    display: none !important;
  }

  /* もし何かで<picture>が隠されていた場合の総当たりリセット */
  .ov-modal picture,
  .ov-modal picture source,
  .ov-modal picture img{
    display: block !important;
    max-width: 100% !important;
  }

  /* 背景レイヤが前に来て隠している可能性の保険 */
  .ov-modal__bg{ z-index: 1 !important; }
}
/* = PC：ヒーロー下センターの縦線（固定オーバーレイ） = */
@media (min-width: 960px){
  .pc-hero-pin{
    position: fixed;
    left: 50%;
    bottom: 48px;                 /* 位置は後で微調整OK */
    transform: translateX(-50%);
    width: 0; height: 0;
    pointer-events: none;
    z-index: 9999;
    opacity: 0;                   /* 初期は非表示（JSでON） */
    transition: opacity .25s ease;
  }
  .pc-hero-pin.is-active{ opacity: 1; }

  .pc-hero-pin::after{
    content: "";
    display: block;
    width: 1px;
    height: 48px;                 /* “少し短く” */
    background: #000;
    animation: heroScroll 2.6s infinite; /* “少しゆっくり” */
    transform-origin: 50% 0%;
  }
}

/* 既存のSP用はそのまま。キーフレームは流用 */
@keyframes heroScroll{
  0%   { transform: scaleY(0); transform-origin: 50% 0%; }
  50%  { transform: scaleY(1); transform-origin: 50% 0%; }
  51%  { transform: scaleY(1); transform-origin: 50% 100%; }
  100% { transform: scaleY(0); transform-origin: 50% 100%; }
}

/* ================================
   メニュー開閉に影響されず、元のDark/Light判定だけを使うための最終パッチ
   - 擬似要素ロゴを撤回
   - ヘッダーを最前面に固定（クリック阻害なし）
   - ドロワー白面はヘッダーの下から始める（重なり誤判定を根絶）
   - 開閉時に色を変える既存のfilter/mix-blendを無効化（最小限）
   ================================ */

/* 0) ヘッダー高さ（環境に合わせて微調整可） */
:root{
  --header-h-sp: 56px;
  --header-h-pc: 72px;
}
@media (min-width:960px){
  :root{ --header-h: var(--header-h-pc); }
}
@media (max-width:959px){
  :root{ --header-h: var(--header-h-sp); }
}

/* 1) 擬似要素で上書きしていたロゴ表示を撤回（元の<img>/<svg>を使う） */
.c-headLogo a::before{ content: none !important; }
.c-headLogo a img,
.c-headLogo a svg{
  position: static !important;
  width: auto !important;
  height: auto !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

/* 2) ヘッダーは常に最前面だが、クリック阻害しない（通常z-indexでOK） */
.l-header, .p-header, header[role="banner"]{
  position: relative;
  isolation: isolate;          /* 背後の白面の影響を遮断：判定が乱れにくい */
  z-index: 100;                /* 大きすぎる値は付けない（クリック阻害防止） */
  transform: translateZ(0);    /* 独立合成でブレンド干渉をさらに回避 */
}

/* 3) ドロワー/メニュー白面は “ヘッダーの下から” 始める（被せない） */
.p-spMenu, .l-drawer, .c-drawer, .as-spmenu, .as-spmenu-overlay{
  position: fixed; inset: 0;               /* 画面全面 */
  z-index: 90;                              /* ヘッダーより下 */
  padding-top: var(--header-h);             /* ← ここが肝：白面をヘッダーの下から開始 */
  box-sizing: border-box;
}

/* 4) テーマが「開いている間だけヘッダー色味を調整」する残存を無効化（最小限） */
html.is-openDrawer .l-header,
html.is-spmenu-open .l-header{
  filter: none !important;
  mix-blend-mode: initial !important;
}

/* 5) ロゴ自体も外界のブレンド影響を受けにくくしておく（保険） */
.l-header .c-headLogo,
.l-header .c-headLogo img,
.l-header .c-headLogo svg{
  isolation: isolate;
}

/* 6) 以前の “is-spmenu-openで黒ロゴ固定／疑似要素ロゴ表示 */
html.is-spmenu-open .c-headLogo a::before{
  background-image: none !important;
  mix-blend-mode: initial !important;
  filter: none !important;
}

/* iPad縦だけ：#philosophy のカラム内余白を完全ゼロにする */
@media (min-width:768px) and (max-width:959px) and (orientation:portrait){

  /* SWELLが inline-style で入れてくる CSS変数を上書き */
  #philosophy .swell-block-column{
    --swl-clmn-pddng: 0 !important;
    --swl-clmn-mrgn-x: 0 !important;
  }

  /* 念押し（実パディング＆ギャップもゼロ化） */
  #philosophy .swell-block-columns_inner,
  #philosophy .swell-block-column,
  #philosophy .swell-block-column > .swell-block-column__inner{
    padding: 0 !important;
    margin: 0 !important;
  }
  #philosophy .swell-block-columns{
    column-gap: 0 !important;
    row-gap: 0 !important;
  }
}

