﻿@charset "UTF-8";
/* ============================================================
   solanes（ソラネス） LP
   デザイン：中央500pxフレーム／明朝＋赤アクセント／縦組み見出し
   ============================================================ */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
body{margin:0;background:var(--outer);color:var(--ink);
  font-family:var(--mincho);-webkit-font-smoothing:antialiased;overflow-x:clip;
  font-feature-settings:"palt" 1;text-spacing-trim:trim-start}
::selection{background:var(--red);color:#fff}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,figure{margin:0}
ul{margin:0;padding:0;list-style:none}

:root{
  --frame:500px;
  --red:#d41522;
  --red-d:#a9101a;
  --ink:#33322e;        /* 見出し・本文（黒は使わない） */
  --dark:#3f3e39;       /* 濃いグレーの面（Haiot章・フッター・表ヘッダー） */
  --dark-2:#4a4844;     /* 面の重なり用 */
  --sub:#4a4844;
  --mute:#8a8781;
  --line:#dedede;
  --gray:#f2f2f2;
  --gray-d:#e8e8e8;
  --outer:#cbcbcb;
  --mincho:"Shippori Mincho","Noto Serif JP","Yu Mincho",YuMincho,"Hiragino Mincho ProN",serif;
  --eng:"Jost","Noto Sans JP",sans-serif;
  --gothic:"Noto Sans JP",-apple-system,"Hiragino Sans",Meiryo,sans-serif;
}

/* ---- フレーム ---- */
.frame{position:relative;max-width:var(--frame);margin-inline:auto;background:#fff;
  box-shadow:0 0 2.5rem rgba(63,62,57,.26);overflow:hidden}
.pad{padding-inline:2rem}
.sect{padding-block:5.4rem}
.sect--gray{background:var(--gray)}
.sect--tight{padding-block:3.4rem}

/* ---- 章の切れ目 ---- */
/* 白い章が続くときの区切り（中央に落ちる赤い線） */
.sep{display:flex;justify-content:center;padding-block:3rem;background:#fff}
.sep::before{content:"";width:1px;height:3rem;background:var(--red)}
.sep--gray{background:var(--gray)}
/* 章の見出しブロック：ラベル＋タイトルを一塊にして、上に区切り線 */
.shead{margin-bottom:2rem;text-align:center}
.shead__rule{display:flex;align-items:center;gap:.9rem;margin-bottom:1.6rem}
.shead__rule i{flex:1;height:1px;background:var(--line)}
.shead__rule b{font-family:var(--eng);font-weight:500;font-size:.66rem;letter-spacing:.2em;color:var(--red);
  white-space:nowrap}

/* ---- 英字ラベル（赤・小・トラッキング広） ---- */
.en{font-family:var(--eng);font-size:.66rem;font-weight:400;letter-spacing:.24em;
  color:var(--red);line-height:1.6}
.en--c{text-align:center}
/* 中央ラベルの上に落ちる、赤の細い縦線（参考LPの縦ライン意匠） */
.en--c::before{content:"";display:block;width:1px;height:2.2rem;background:var(--red);
  margin:0 auto .9rem;opacity:.9}
.en--vert{writing-mode:vertical-rl;letter-spacing:.2em}

/* ---- 共通テキスト ---- */
.copy{font-family:var(--mincho);font-size:.95rem;line-height:2.5;letter-spacing:.05em;
  color:var(--ink);text-align:center}
.copy span{display:block}
.body-tx{font-family:var(--mincho);font-size:.86rem;line-height:2.1;letter-spacing:.03em;color:var(--sub)}
.note{font-family:var(--gothic);font-size:.66rem;line-height:1.9;color:var(--mute);letter-spacing:.01em}
.u-red{display:inline;font-style:normal;
  background:linear-gradient(transparent 86%,var(--red) 86%,var(--red) 90%,transparent 90%)}
.tx-red{color:var(--red)}

/* ---- 見出し（横） ---- */
.h-lead{font-family:var(--mincho);font-weight:600;font-size:1.5rem;line-height:1.9;letter-spacing:.04em;text-align:center}
.h-lead span{display:block}
.h-sub{font-family:var(--mincho);font-weight:600;font-size:1.18rem;line-height:1.8;letter-spacing:.04em}

/* ---- 見出し（縦組み）＋赤い横罫 ---- */
.vhead{position:relative;padding-block:2.5rem}
.vhead::before{content:"";position:absolute;left:0;right:0;top:44%;height:1px;background:var(--red)}
.vhead__inner{position:relative;display:flex;justify-content:flex-start;gap:1rem;padding-left:2.9rem}
.vtitle{writing-mode:vertical-rl;font-family:var(--mincho);font-weight:600;font-size:1.55rem;letter-spacing:.16em;
  line-height:1.55;color:var(--ink);background:#fff;padding-block:.4rem}
.vhead__img{flex:1;min-width:0}
.vhead__img img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover}
.vhead__en{position:absolute;left:.7rem;top:2.8rem;z-index:2}

/* ---- 写真ブリード（フレーム外へはみ出す） ---- */
.bleed-r{margin-right:-2.5rem}
.bleed-l{margin-left:-2.5rem}
/* 写真は横長にトリミングして高さを抑える（縦長素材でも間延びしない） */
.photo img{width:100%;aspect-ratio:16/10;object-fit:cover}
/* 図解は切らずに全体を見せる（左右も欠けさせない） */
.photo--dia{padding:.6rem 1.2rem;background:#fff}
.photo--dia img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.photo--stack{display:flex;flex-direction:column;gap:.9rem}
.overlap__a img{aspect-ratio:4/3;object-fit:cover}
.overlap__b img{aspect-ratio:1/1;object-fit:cover}

/* ---- MV ---- */
.mv{position:relative;background:var(--dark)}
.mv__img{position:relative}
.mv__img img{width:100%;height:auto}
.mv__logo{position:absolute;left:1.4rem;top:1.2rem;width:8.4rem;z-index:3}
/* 白ロゴが空や外壁に溶けないよう、影で浮かせる */
.mv__logo img{width:100%;filter:brightness(0) invert(1)
  drop-shadow(0 1px 3px rgba(35,32,28,.6)) drop-shadow(0 6px 16px rgba(35,32,28,.45))}
/* ロゴ周りをうっすら暗く落とす */
.mv__img::before{content:"";position:absolute;left:0;right:0;top:0;height:34%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(45,42,38,.5) 0%,rgba(45,42,38,.22) 45%,rgba(45,42,38,0) 100%)}
/* 写真の四隅を締めるビネット＋微細ノイズ */
.mv__img::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 50% 35%,rgba(63,62,57,0) 40%,rgba(63,62,57,.3) 100%)}
.mv__copy{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:6.5rem 1.4rem 2rem;
  background:linear-gradient(180deg,rgba(45,42,38,0) 0%,rgba(45,42,38,.45) 32%,rgba(45,42,38,.82) 62%,rgba(52,46,40,.96) 100%)}
/* スクロール誘導（縦線が流れる） */
.mv__scroll{position:absolute;right:1.5rem;bottom:0;z-index:3;display:flex;flex-direction:column;
  align-items:center;gap:.6rem;color:#fff}
.mv__scroll span{writing-mode:vertical-rl;font-family:var(--eng);font-size:.56rem;letter-spacing:.3em;opacity:.85}
.mv__scroll i{display:block;width:1px;height:3.4rem;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.mv__scroll i::after{content:"";position:absolute;left:0;top:-100%;width:1px;height:100%;background:#fff;
  animation:scrollLine 2.2s cubic-bezier(.4,0,.2,1) infinite}
@keyframes scrollLine{0%{top:-100%}60%{top:100%}100%{top:100%}}
.mv__catch{font-family:var(--mincho);font-weight:600;font-size:1.85rem;letter-spacing:.02em;line-height:1.45;color:#fff;
  /* 文字を浮き出させる：近い影で輪郭、遠い影で背景から分離 */
  text-shadow:0 1px 2px rgba(30,27,24,.75),0 2px 10px rgba(30,27,24,.55),0 10px 30px rgba(30,27,24,.4)}
/* リード：赤い短罫を添えて視線の起点をつくる */
.mv__catch small{display:inline-flex;align-items:center;gap:.6rem;font-size:.46em;font-weight:500;
  letter-spacing:.12em;line-height:1.5;margin-bottom:.9rem;color:#fff}
.mv__catch small::before{content:"";width:1.6rem;height:2px;background:var(--red);flex:0 0 auto}
.mv__catch b{display:block;font-weight:500;font-size:.6em;letter-spacing:.1em;line-height:1.6;color:#f6ece0}
.mv__catch em{display:block;font-style:normal;font-size:1.28em;letter-spacing:.08em;line-height:1.3}
.mv__scroll span,.mv__scroll i{filter:drop-shadow(0 1px 4px rgba(30,27,24,.6))}

/* ---- ブランドバー（ウェルネストホーム × ソラネス のロックアップ） ---- */
.brandbar{padding:2.2rem 1.4rem 2rem;text-align:center;border-bottom:1px solid var(--line)}
.lockup{display:flex;align-items:center;justify-content:center;gap:1.1rem}
.lockup__item{margin:0;display:flex;flex-direction:column;align-items:center;gap:.55rem;min-width:0}
.lockup__item img{width:100%;height:auto}
.lockup__item figcaption{font-family:var(--mincho);font-size:.56rem;letter-spacing:.14em;
  color:var(--mute);white-space:nowrap}
/* 左＝ウェルネストホーム（横長ワードマーク）／右＝solanes */
.lockup__item:first-of-type{flex:0 1 8rem}
.lockup__item--brand{flex:0 1 5.4rem}
.lockup__item--brand img{margin-block:.15rem}
/* × は細い2本線で（ページのクロス意匠に合わせる） */
.lockup__x{position:relative;flex:0 0 .9rem;height:.9rem;align-self:flex-start;margin-top:.4rem}
.lockup__x::before,.lockup__x::after{content:"";position:absolute;left:50%;top:50%;
  width:1rem;height:1px;background:var(--red)}
.lockup__x::before{transform:translate(-50%,-50%) rotate(45deg)}
.lockup__x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.brandbar__ja{font-family:var(--mincho);font-weight:600;font-size:1rem;line-height:1.85;
  letter-spacing:.06em;margin-top:1.5rem}
/* 文章とスペックの間に置くブランドロゴ（主役） */
.brandbar__brand{margin:1.1rem auto .9rem;width:11rem;max-width:62%}
.brandbar__brand img{width:100%}
.brandbar__note{position:relative;font-family:var(--mincho);font-size:.78rem;line-height:1.8;letter-spacing:.06em;
  color:var(--sub);padding-top:.9rem}
/* ロゴとスペックをつなぐ赤い縦線 */
.brandbar__note::before{content:"";position:absolute;left:50%;top:0;width:1px;height:.6rem;background:var(--red)}

/* ---- 特典／予約バッジブロック ---- */
.present{display:flex;align-items:stretch}
.present__left{position:relative;flex:0 0 47%;padding:1.2rem 1rem 1.2rem 1.4rem}
.present__script{font-family:var(--mincho);font-style:italic;font-size:1.6rem;color:var(--red);
  transform:rotate(-8deg);transform-origin:left bottom;margin-bottom:.2rem}
.present__circle{position:relative;aspect-ratio:1;border:1px solid var(--ink);border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;text-align:center}
.present__circle p{font-family:var(--mincho);font-size:.92rem;line-height:1.5;letter-spacing:.04em}
.present__circle p{font-weight:600}.present__circle p:last-child{font-size:1.05rem}
.badge-free{position:absolute;right:-.6rem;bottom:.4rem;width:3.4rem;height:3.4rem;border-radius:50%;
  background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;
  font-family:var(--mincho);font-size:.8rem;letter-spacing:.02em}
.badge-free--red{background:var(--red)}
.present__right{flex:1;min-width:0}
.present__right img{width:100%;height:100%;object-fit:cover}

/* ---- 巨大数字ビジュアル ---- */
.bignum{padding:4rem 1.4rem 3rem;text-align:center}
/* 「35年で」＝横組み。左右に細罫を添えて数字への導入にする */
.bignum__k{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-bottom:.7rem}
.bignum__k i{width:2.4rem;height:1px;background:var(--red);opacity:.55}
.bignum__k span{font-family:var(--mincho);font-weight:500;font-size:.98rem;
  letter-spacing:.22em;text-indent:.22em;line-height:1;color:var(--ink)}
.bignum__n{font-family:var(--mincho);font-weight:600;font-size:5.2rem;line-height:1;letter-spacing:-.01em}
.bignum__n small{font-size:.3em;font-weight:500;letter-spacing:.06em;margin-left:.08em}
.bignum__d{font-family:var(--mincho);font-weight:600;font-size:1.2rem;letter-spacing:.16em;
  text-indent:.16em;line-height:1.6;margin-top:.75rem}
.bignum__ttl{font-family:var(--mincho);font-weight:600;font-size:1.5rem;letter-spacing:.1em;margin-top:.8rem}
.bignum__en{margin-top:.9rem}
.bignum__en::before{display:none}

/* ---- ナンバリング項目 ---- */
.numitem{padding:2.6rem 1.4rem 0}
.numitem__head{display:flex;align-items:center;gap:1.1rem}
.numitem__no{position:relative;font-family:var(--mincho);font-size:3.4rem;line-height:1;
  letter-spacing:-.02em;color:var(--ink)}
.numitem__no::after{content:"";position:absolute;left:.12em;bottom:-.34rem;width:1.5rem;height:1px;background:var(--red)}
.numitem__ttl{border-left:2px solid var(--ink);padding-left:1.1rem;font-weight:600;
  font-family:var(--mincho);font-size:1.12rem;line-height:1.65;letter-spacing:.04em}
.numitem--rev .numitem__head{flex-direction:row-reverse}
.numitem--rev .numitem__ttl{border-left:none;border-right:2px solid var(--ink);
  padding-left:0;padding-right:1.1rem;text-align:right;flex:1}
.numitem__tx{margin-top:1.1rem}

/* ---- 赤いコーナー罫／縦ライン ---- */
.corner{position:relative;padding:1.4rem 0 0 0}
.corner::before{content:"";position:absolute;left:1.4rem;right:35%;top:0;height:1px;background:var(--red)}
.corner::after{content:"";position:absolute;right:35%;top:0;width:1px;height:2.6rem;background:var(--red)}
.redline{position:relative;height:5.5rem}
.redline::before{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:var(--red)}
.redline::after{content:"";position:absolute;left:50%;bottom:0;width:.62rem;height:.62rem;border-radius:50%;
  background:var(--red);transform:translate(-50%,50%)}

/* ---- スペック表 ---- */
.spec{border-top:1px solid var(--ink)}
.spec table{width:100%;border-collapse:collapse}
.spec th,.spec td{font-family:var(--mincho);font-size:.8rem;letter-spacing:.02em;line-height:1.7;
  padding:.9rem .7rem;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle}
.spec thead th{font-size:.78rem;background:var(--dark);color:#fff;font-weight:600;letter-spacing:.06em}
.spec thead th:last-child{background:var(--red)}
.spec tbody th{text-align:left;color:var(--sub);font-weight:400;white-space:nowrap}
.spec td:last-child{background:#fdf3f3;color:var(--red)}
.spec .is-total th,.spec .is-total td{background:#f7f7f7;font-size:.86rem}
.spec .is-total td:last-child{background:#fdeaea;font-size:1.15rem;letter-spacing:0}

/* ---- 数値タイル ---- */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.tile{background:#fff;padding:1.3rem .6rem;text-align:center}
.tile b{display:block;font-family:var(--mincho);font-weight:600;font-size:1.75rem;line-height:1.1;color:var(--ink)}
.tile b .u{display:inline;font-size:.5em;letter-spacing:.02em}
.tile>span{display:block;font-family:var(--mincho);font-size:.72rem;letter-spacing:.04em;
  line-height:1.6;color:var(--sub);margin-top:.5rem}

/* ---- 3カード（課題など） ---- */
.plist{display:flex;flex-direction:column;gap:1.4rem}
.pitem{display:flex;gap:1rem;align-items:flex-start}
.pitem__no{font-family:var(--eng);font-size:.72rem;letter-spacing:.16em;color:var(--red);padding-top:.35rem}
.pitem__ttl{font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.04em;line-height:1.6;
  border-bottom:1px solid var(--line);padding-bottom:.5rem;margin-bottom:.6rem}

/* ---- スタイル4種タイル ---- */
.styles{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.style{position:relative;aspect-ratio:4/3;overflow:hidden}
.style img{width:100%;height:100%;object-fit:cover}
.style span{position:absolute;left:0;bottom:0;font-weight:600;padding:.45rem .7rem;background:rgba(63,62,57,.82);
  color:#fff;font-family:var(--mincho);font-size:.74rem;letter-spacing:.08em}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.chip{border:1px solid var(--ink);font-family:var(--mincho);font-size:.72rem;letter-spacing:.06em;
  padding:.35rem .85rem}

/* ---- 間取りスライダー ---- */
.plan{position:relative}
.plan__vp{overflow:hidden;border:1px solid var(--line)}
.plan__track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.plan__slide{flex:0 0 100%;min-width:0;background:#fff;padding:1rem}
.plan__cap{display:flex;align-items:baseline;gap:.6rem;padding-top:.6rem;
  font-family:var(--mincho);font-size:.78rem;letter-spacing:.06em}
.plan__cap i{font-style:normal;font-family:var(--eng);color:var(--red);letter-spacing:.14em}
.plan__cap em{margin-left:auto;font-style:normal;color:var(--red)}
.plan__nav{position:absolute;top:45%;width:2.4rem;height:2.4rem;border:none;background:rgba(63,62,57,.62);
  color:#fff;font-size:1.2rem;line-height:1;cursor:pointer;z-index:2}
.plan__nav--prev{left:0}
.plan__nav--next{right:0}
.plan__dots{display:flex;justify-content:center;gap:.45rem;margin-top:.9rem}
.plan__dot{width:.45rem;height:.45rem;padding:0;border:none;border-radius:50%;background:var(--line);cursor:pointer}
.plan__dot[aria-current="true"]{background:var(--red)}

/* ---- FAQ ---- */
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{display:flex;gap:.8rem;align-items:flex-start;cursor:pointer;list-style:none;padding:1.1rem 0}
.faq__q::-webkit-details-marker{display:none}
.faq__q i{font-style:normal;font-family:var(--eng);color:var(--red);font-size:.9rem;line-height:1.5}
.faq__q span{flex:1;font-family:var(--mincho);font-weight:600;font-size:.88rem;line-height:1.65;letter-spacing:.03em}
.faq__q em{position:relative;flex:0 0 .7rem;height:.7rem;margin-top:.45rem;font-style:normal}
.faq__q em::before,.faq__q em::after{content:"";position:absolute;left:0;top:50%;width:.7rem;height:1px;background:var(--ink)}
.faq__q em::after{transform:rotate(90deg);transition:transform .25s}
.faq__item[open] .faq__q em::after{transform:rotate(0)}
.faq__a{padding:0 0 1.2rem 1.7rem}

/* ---- 会社情報 ---- */
.company{width:100%;border-collapse:collapse}
.company th,.company td{font-family:var(--mincho);font-size:.78rem;line-height:1.8;letter-spacing:.02em;
  padding:.8rem .4rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.company th{width:6.2rem;color:var(--mute);font-weight:400;white-space:nowrap}
.company a{border-bottom:1px solid var(--red)}

/* ---- CTA ---- */
.cta{background:var(--gray);padding:3.5rem 1.4rem 4rem;text-align:center}
.cta__en{font-family:var(--mincho);font-weight:600;font-size:3.1rem;letter-spacing:.12em;line-height:1;color:var(--ink)}
.cta__ja{font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.1em;line-height:1.9;margin-top:1rem}
.cta__tx{margin-top:1.4rem}
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;height:3.9rem;
  font-family:var(--mincho);font-size:1rem;letter-spacing:.1em;transition:opacity .3s}
.btn:hover{opacity:.82}
.btn--red{background:var(--red);color:#fff}
.btn--line{border:1px solid var(--ink);color:var(--ink);background:#fff}
.btn__arrow{font-family:var(--eng);font-size:.9rem}
.cta__btns{display:flex;flex-direction:column;gap:.7rem;margin-top:2rem}
.cta__tel{margin-top:2rem}
.cta__tel a{font-family:var(--eng);font-size:1.9rem;letter-spacing:.04em}
.cta__tel span{display:block;font-family:var(--mincho);font-size:.72rem;letter-spacing:.1em;color:var(--sub);margin-top:.2rem}

/* ---- フッター ---- */
.footer{background:var(--dark);color:#fff;padding:2.6rem 1.4rem 5.6rem;text-align:center}
.footer__logo{width:9rem;margin:0 auto 1.2rem}
.footer__logo img{width:100%;filter:brightness(0) invert(1)}
/* フッターのロックアップ */
.footer__lockup{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.4rem}
.footer__lockup img{filter:brightness(0) invert(1)}
.footer__wh{width:9.5rem}
.footer__brand{width:6.4rem}
.footer__x{position:relative;flex:0 0 .9rem;height:.9rem}
.footer__x::before,.footer__x::after{content:"";position:absolute;left:50%;top:50%;
  width:1rem;height:1px;background:rgba(255,255,255,.6)}
.footer__x::before{transform:translate(-50%,-50%) rotate(45deg)}
.footer__x::after{transform:translate(-50%,-50%) rotate(-45deg)}
.footer__tx{font-family:var(--mincho);font-size:.72rem;line-height:1.9;letter-spacing:.04em;color:#d5d2ce}
.footer__copy{font-family:var(--eng);font-size:.6rem;letter-spacing:.08em;color:#8d8a86;margin-top:1.4rem}

/* ---- 下部固定2ボタン ---- */
.fixbar{position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:var(--frame);margin-inline:auto;
  display:grid;grid-template-columns:1fr}
.fixbar a{display:flex;align-items:center;justify-content:center;height:3.5rem;
  background:var(--red);color:#fff;font-family:var(--mincho);font-size:.9rem;letter-spacing:.08em}

/* ---- 右の縦ページナビ（PC） ---- */
.sidenav{display:none}
@media(min-width:1024px){
  .sidenav{display:flex;flex-direction:column;gap:.55rem;position:fixed;right:1.6rem;top:50%;
    transform:translateY(-50%);z-index:20}
  .sidenav a{width:2rem;height:2rem;border:1px solid #9a9a9a;color:#5c5852;background:rgba(255,255,255,.7);
    display:flex;align-items:center;justify-content:center;font-family:var(--eng);font-size:.7rem;
    letter-spacing:.02em;transition:background .3s,color .3s,border-color .3s}
  .sidenav a:hover,.sidenav a.is-active{background:var(--red);border-color:var(--red);color:#fff}
  .sidenav a.is-form{height:3.4rem;writing-mode:vertical-rl;font-family:var(--mincho);letter-spacing:.1em}
}

/* ---- 拡大表示 ---- */
.zoomable{cursor:zoom-in}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(58,56,51,.95);display:none;
  align-items:center;justify-content:center;padding:1.2rem;cursor:zoom-out}
.lightbox.is-open{display:flex}
.lightbox img{max-width:100%;max-height:100%;object-fit:contain}
.lightbox::after{content:"\00d7";position:fixed;top:.5rem;right:1rem;color:#fff;font-family:Arial,sans-serif;
  font-size:2rem;line-height:1;opacity:.85;pointer-events:none}

/* ---- フェードイン ---- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-in{opacity:1;transform:none}
/* 写真はわずかにスケールしながら現れる */
.reveal-img{overflow:hidden}
.reveal-img img{transform:scale(1.06);transition:transform 1.4s cubic-bezier(.22,.61,.36,1)}
.reveal-img.is-in img{transform:scale(1)}

/* ============================================================
   ディテール
   ============================================================ */

/* 写真を段違いに重ねる（参考LPの非対称レイアウト） */
.overlap{position:relative;padding-bottom:3.2rem}
.overlap__a{width:78%;margin-left:auto;margin-right:-2.5rem}
.overlap__b{position:absolute;left:-2.5rem;bottom:0;width:52%;
  border:6px solid #fff;box-shadow:0 10px 30px rgba(63,62,57,.18)}
.overlap__cap{position:absolute;right:2.4rem;top:1.2rem;writing-mode:vertical-rl;
  display:flex;align-items:center;
  font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.24em;color:#fff;
  /* MVと同じ三層シャドウで写真から浮き出させる */
  text-shadow:0 1px 2px rgba(30,27,24,.8),0 2px 10px rgba(30,27,24,.6),0 10px 26px rgba(30,27,24,.45)}
/* 見出しの起点になる赤い短罫（縦組みなので文字の上に出る） */
.overlap__cap::before{content:"";display:inline-block;inline-size:1.5rem;block-size:2px;
  background:var(--red);margin-inline-end:.8rem;
  box-shadow:0 1px 4px rgba(30,27,24,.5)}

/* 数値はJostで、単位だけ明朝に */
.num{font-family:var(--eng);font-weight:400;letter-spacing:.01em}

/* テーブルの精度（ヘアライン＋ハイライト行の赤い左罫） */
.spec table{border-collapse:separate;border-spacing:0}
.spec th,.spec td{border-bottom:1px solid rgba(63,62,57,.12)}
.spec tbody tr{transition:background .3s}
.spec tbody tr:hover{background:rgba(63,62,57,.03)}
.spec .is-total th{position:relative}
.spec .is-total th::before{content:"";position:absolute;left:0;top:.75rem;bottom:.75rem;width:2px;background:var(--red)}
.spec td:last-child{position:relative}

/* タイルの微細ホバー */
.tile{transition:background .35s}
.tile:hover{background:#fbfbfb}
.tile b{letter-spacing:.01em}

/* FAQ：アイコンを赤に、開いたら本文がふわっと出る */
.faq__q em::before,.faq__q em::after{background:var(--red)}
.faq__item[open] .faq__a{animation:faqIn .45s ease both}
@keyframes faqIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ボタンの動き */
.btn{position:relative;overflow:hidden}
.btn__arrow{transition:transform .35s}
.btn:hover .btn__arrow{transform:translateX(.3rem)}
.btn--red{background:var(--red)}
.btn--red:hover{background:var(--red-d);opacity:1}
.btn--line:hover{background:var(--dark);color:#fff;opacity:1}
.fixbar a{transition:background .3s}
.fixbar a:hover{background:var(--red-d)}

/* 見出しの版面：明朝の字面を締める */
.h-lead,.h-sub,.vtitle,.mv__catch,.cta__en{font-feature-settings:"palt" 1}
.copy{text-wrap:balance}

/* ============================================================
   章ラベル／Haiot独立章／月額比較（4P：POU強化・POD増幅）
   ============================================================ */

/* Haiot＝唯一性の章 */
.haiot{background:var(--dark);color:#fff;padding-block:5rem;position:relative;overflow:hidden}
.haiot::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--red)}
.haiot .en{color:#ff6b6b}
.haiot__head{padding-inline:2rem;text-align:center}
.haiot__ttl{font-family:var(--mincho);font-weight:600;font-size:1.6rem;line-height:1.75;letter-spacing:.08em;color:#fff;margin:1rem 0 1.6rem}
.haiot__ttl em{font-style:normal;color:#e8c98a}
.haiot__logo{width:11rem;margin:0 auto 1rem;filter:brightness(0) invert(1)}
.haiot__sub{font-family:var(--mincho);font-size:.76rem;letter-spacing:.14em;color:#b9b4ac}
.haiot__img{margin:2.2rem 0;background:#fff;padding:1rem}
.haiot__lead{padding-inline:2rem;font-family:var(--mincho);font-size:.88rem;line-height:2.15;
  letter-spacing:.03em;color:#e2ded7;text-align:justify}

/* HEMS比較2列 */
.hems{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:2rem 2rem 0}
.hems__col{border:1px solid rgba(255,255,255,.25);padding:1.2rem 1rem;display:flex;flex-direction:column;gap:.7rem}
.hems__col--ai{border-color:var(--red);background:rgba(212,21,34,.1)}
.hems__name{font-family:var(--mincho);font-weight:600;font-size:.92rem;letter-spacing:.06em;color:#fff}
.hems__col--ai .hems__name{color:#ff8f8f}
.hems__desc{font-family:var(--mincho);font-size:.76rem;line-height:1.85;color:#c8c3bb;text-align:justify}
.hems__tag{margin-top:auto;font-family:var(--eng);font-size:.62rem;letter-spacing:.14em;color:#8f8a83}
.hems__col--ai .hems__tag{color:#ff8f8f}

/* 数値2枚（ダーク） */
.stat2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1.6rem 2rem 0}
.stat2 div{border:1px solid rgba(255,255,255,.22);padding:1.4rem .6rem;text-align:center}
.stat2 b{display:block;font-family:var(--mincho);font-weight:600;font-size:2.1rem;line-height:1;color:#e8c98a}
.stat2 b .u{display:inline;font-size:.45em}
.stat2 span{display:block;font-family:var(--mincho);font-size:.72rem;line-height:1.7;color:#b9b4ac;margin-top:.6rem}
.haiot .note{color:#8f8a83;padding-inline:2rem;margin-top:1.2rem}

/* 月額で見るコスト差 */
.monthly{margin-top:2rem}
.mrow{margin-bottom:1.4rem}
.mrow__label{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:.45rem}
.mrow__label span{font-family:var(--mincho);font-size:.82rem;letter-spacing:.06em}
.mrow__label b{font-family:var(--mincho);font-weight:600;font-size:1.15rem;letter-spacing:.02em}
.mrow__label b .u{font-size:.6em}
.mbar{height:2.3rem;background:#eceae6;position:relative;overflow:hidden}
.mbar i{display:block;height:100%;background:#a8a49c;transform-origin:left;transform:scaleX(0);
  transition:transform 1.2s cubic-bezier(.22,.61,.36,1)}
.is-in .mbar i{transform:scaleX(1)}
.mrow--s .mbar i{background:var(--red)}
.mrow--s .mrow__label b{color:var(--red)}
.mdiff{display:flex;align-items:center;justify-content:center;gap:.6rem;
  border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:1rem 0;margin-top:1.8rem}
.mdiff span{font-family:var(--mincho);font-size:.85rem;letter-spacing:.08em}
.mdiff b{font-family:var(--mincho);font-weight:600;font-size:1.9rem;line-height:1;color:var(--red);letter-spacing:.01em}
.mdiff b .u{font-size:.5em}
/* ローン換算ボックス */
.conv{margin-top:1.4rem;border:1px solid var(--red);padding:1.4rem 1.2rem;text-align:center;background:#fdf5f5}
.conv__k{font-family:var(--mincho);font-size:.8rem;letter-spacing:.06em;color:var(--sub)}
.conv__v{font-family:var(--mincho);font-weight:600;font-size:2.1rem;line-height:1.2;letter-spacing:.02em;color:var(--red);margin-top:.4rem}
.conv__v .u{font-size:.5em}
.conv__s{font-family:var(--mincho);font-size:.76rem;line-height:1.8;color:var(--sub);margin-top:.5rem}

/* 表の可読性 */
.spec th,.spec td{padding:1rem .7rem;font-size:.82rem;line-height:1.75}
.spec thead th{font-size:.8rem}
.spec .is-total td:last-child{font-size:1.25rem}
.tile b{font-size:1.85rem}
.tile>span{font-size:.74rem}

/* ============================================================
   予約フォーム（Responsive Mailform のCSSをこのLPのトンマナへ上書き）
   ============================================================ */
form#mail_form{width:100%;max-width:none;margin:2.4rem 0 0;padding:1.6rem 1.3rem 1.2rem;
  background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:none;
  font-family:var(--mincho);text-align:left;line-height:1.8}
form#mail_form dl{width:100%;margin:0 0 1.1rem;padding-bottom:1.1rem;gap:.5rem;
  border-bottom:1px solid var(--line)}
form#mail_form dl dt{font-family:var(--mincho);font-weight:600;font-size:.86rem;letter-spacing:.06em;align-items:center}
form#mail_form dl dt i{top:0}
/* 必須／任意バッジ（JSが自動付与）を赤系に */
form#mail_form dl dt span.required{background:var(--red);border-color:var(--red);border-radius:2px;
  font-family:var(--gothic);font-size:.62rem;letter-spacing:.06em;padding:3px 8px}
form#mail_form dl dt span.optional{background:var(--mute);border-color:var(--mute);border-radius:2px;
  font-family:var(--gothic);font-size:.62rem;letter-spacing:.06em;padding:3px 8px}
form#mail_form input[type="text"],form#mail_form input[type="email"],
form#mail_form input[type="tel"],form#mail_form textarea,form#mail_form select{
  font-family:var(--gothic);font-size:1rem;background:#f4f2ee;border:1px solid var(--line);border-radius:2px}
form#mail_form input[type="text"]:focus,form#mail_form input[type="email"]:focus,
form#mail_form input[type="tel"]:focus,form#mail_form textarea:focus{
  box-shadow:0 0 0 2px rgba(212,21,34,.15);border-color:var(--red);background:#fff}
form#mail_form select{width:100%;padding:.85rem .7rem}
form#mail_form input[name="address"]{width:100%}
form#mail_form textarea{height:8rem;background:#f4f2ee}
form#mail_form input[name="postal"]+a{background:var(--dark);border-color:var(--dark);border-radius:2px;
  font-family:var(--mincho);font-size:.76rem;padding:.7rem .9rem;margin-left:.4rem}
form#mail_form input[name="postal"]+a:hover{background:var(--red);border-color:var(--red)}
form#mail_form p#form_submit{width:100%;padding:1.3rem 0 .2rem}
form#mail_form input[type="button"]{width:100%;max-width:none;height:3.9rem;background:var(--red);
  border-radius:0;box-shadow:none;font-family:var(--mincho);font-weight:600;font-size:1rem;letter-spacing:.1em;
  align-items:center;transition:background .3s}
form#mail_form input[type="button"]:hover{background:var(--red-d);opacity:1;transition:background .3s}
form#mail_form span.error_blank,form#mail_form span.error_format,
form#mail_form span.error_match,span.error_check{font-family:var(--gothic);font-size:.72rem;color:var(--red)}

/* 同意ブロック */
#agreement{margin-top:1.2rem;text-align:left}
#agreement h3{font-family:var(--mincho);font-weight:600;font-size:.86rem;letter-spacing:.06em;margin-bottom:.55rem}
#agreement>div{max-height:9rem;overflow-y:auto;border:1px solid var(--line);background:#faf9f7;padding:.9rem;
  font-family:var(--gothic);font-size:.7rem;line-height:1.9;color:var(--sub)}
#agreement>div p+p{margin-top:.7rem}
#agreement a{color:var(--red)}
#agree_check{margin-top:.9rem;font-family:var(--gothic);font-size:.74rem;line-height:1.7;color:var(--sub)}
#agree_check input{margin-right:.4rem}

/* 動きを減らす設定の尊重 */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-img img,.mbar i{transition:none}
  .reveal{opacity:1;transform:none}
  .mbar i{transform:scaleX(1)}
  .mv__scroll i::after{animation:none}
  html{scroll-behavior:auto}
}

/* ---- 小画面調整 ---- */
@media(max-width:480px){
  .mv__catch{font-size:1.52rem}
  .mv__catch em{letter-spacing:.04em}
  .bignum__n{font-size:4.1rem}
  .bignum__k span{font-size:.9rem;letter-spacing:.18em}
  .bignum__k i{width:1.9rem}
  .bignum__d{font-size:1.06rem;letter-spacing:.12em}
  .vtitle{font-size:1.35rem}
  /* 見出し・本文：意図しない折返しを防ぐため小画面では級数を落とす */
  .cta__en{font-size:2.05rem;letter-spacing:.06em}
  .h-lead{font-size:1.2rem;line-height:1.85;letter-spacing:.02em}
  .h-sub{font-size:1.08rem}
  .copy{font-size:.85rem;letter-spacing:.04em;line-height:2.35}
  /* 縦組みキャプションが2列に折れないように */
  .overlap__cap{font-size:.76rem;letter-spacing:.12em;white-space:nowrap;right:1.6rem;top:.8rem}
  .overlap__cap::before{inline-size:1rem;margin-inline-end:.6rem}
  /* ナンバリング見出しが1文字だけ折れないように */
  .numitem{padding-inline:1.2rem}
  .numitem__no{font-size:2.9rem}
  .numitem__ttl{font-size:1rem;letter-spacing:.02em;padding-left:.9rem}
  .numitem--rev .numitem__ttl{padding-right:.9rem}
  .numitem__head{gap:.9rem}

  /* ブランドバー */
  .brandbar{padding:1.9rem 1.1rem 1.7rem}
  .lockup{gap:.8rem}
  .lockup__item:first-of-type{flex:0 1 9rem}
  .lockup__item--brand{flex:0 1 6.2rem}
  .lockup__item figcaption{font-size:.58rem;letter-spacing:.14em}
  .brandbar__ja{font-size:.92rem;margin-top:1.3rem}
  .brandbar__note{font-size:.74rem}

  /* 表：金額を折り返さない */
  .spec th,.spec td{padding:.85rem .35rem;font-size:.74rem;line-height:1.6}
  .spec thead th,.spec tbody th,.spec td{white-space:nowrap}
  .spec .is-total th,.spec .is-total td{font-size:.78rem}
  .spec .is-total td:last-child{font-size:1.02rem}
  /* 2つめの比較表は文章が入るので折り返しを許可 */
  .spec--wrap th,.spec--wrap td{white-space:normal;font-size:.72rem}

  /* HEMS比較は1列に */
  .hems{grid-template-columns:1fr;margin-inline:1.2rem}
  .stat2{margin-inline:1.2rem}
  .haiot__lead,.haiot .note{padding-inline:1.2rem}
  .pad{padding-inline:1.4rem}
  .mdiff{gap:.4rem}
  .mdiff b{font-size:1.7rem}
}
/* 語の途中や1文字だけの改行を避ける */
.body-tx,.faq__a p,.conv__s,.note{text-wrap:pretty}
.h-lead,.h-sub,.conv__s,.mv__catch,.haiot__ttl,.cta__ja{text-wrap:balance}

/* ---- MVの金賞バッジ ---- */
.mv__img img.mv__badge{position:absolute;right:.9rem;top:.85rem;z-index:3;width:5.85rem;height:auto;
  filter:drop-shadow(0 3px 10px rgba(30,27,24,.45))}

/* ---- 7A基準の判定（MV直下・認定パネル） ---- */
.rating7a{padding:1.6rem 1.3rem 1.5rem;background:#faf8f4;border-bottom:1px solid var(--line)}
/* 見出し：金の細罫＋英字ラベル（認定書の体裁） */
.rating7a__head{display:flex;align-items:center;justify-content:center;gap:.85rem}
.rating7a__head i{flex:1;height:1px;max-width:5rem;
  background:linear-gradient(90deg,rgba(168,134,63,0),rgba(168,134,63,.85),rgba(168,134,63,0))}
.rating7a__head b{font-family:var(--eng);font-weight:500;font-size:.6rem;letter-spacing:.28em;
  text-indent:.28em;color:#a8863f;white-space:nowrap}
.rating7a__lead{margin-top:.6rem;text-align:center;font-family:var(--mincho);font-size:.74rem;
  letter-spacing:.08em;color:var(--sub)}
/* 判定カード：白地＋二重の枠で"認定"感を出す */
.rating7a__card{position:relative;margin-top:.9rem;display:flex;align-items:center;justify-content:center;
  flex-wrap:wrap;gap:.5rem .85rem;background:#fff;border:1px solid #e3dbcb;padding:.95rem .9rem}
.rating7a__card::before{content:"";position:absolute;inset:3px;border:1px solid rgba(168,134,63,.28);
  pointer-events:none}
/* 星（★を重ねて％で塗る） */
.rating7a__stars{position:relative;display:inline-block;height:1.2rem;width:6.4rem;
  font-family:Arial,sans-serif;font-size:1.2rem;line-height:1;letter-spacing:.08em;color:#e6e0d3}
.rating7a__stars::before{content:"★★★★★";position:absolute;left:0;top:0;white-space:nowrap}
.rating7a__stars i{position:absolute;left:0;top:0;height:100%;overflow:hidden;color:#c8a24a}
.rating7a__stars i::before{content:"★★★★★";white-space:nowrap;letter-spacing:.08em}
/* 総合点 */
.rating7a__val{display:inline-flex;align-items:baseline;gap:.1rem;font-family:var(--eng);font-size:1.85rem;
  font-weight:500;line-height:1;color:var(--ink)}
.rating7a__val small{font-size:.42em;font-weight:400;color:var(--mute);letter-spacing:.04em}
/* ランク：濃グレー地＋金枠の認定章 */
.rating7a__rank{display:inline-flex;align-items:baseline;gap:.15rem;background:var(--dark);
  border:1px solid rgba(200,162,74,.75);color:#fff;padding:.34rem .75rem;
  font-family:var(--mincho);font-weight:600;font-size:.74rem;letter-spacing:.1em;line-height:1.2}
.rating7a__rank em{font-style:normal;font-family:var(--eng);font-size:1.28em;font-weight:500;
  letter-spacing:.02em;color:#e6c684}
.rating7a__btn{border:none;background:none;cursor:pointer;display:inline-flex;align-items:center;gap:.3rem;
  font-family:var(--mincho);font-size:.76rem;letter-spacing:.05em;color:var(--red);padding:0}
.rating7a__btn i{font-style:normal;font-size:.62em;transition:transform .25s}
.rating7a__btn[aria-expanded="true"] i{transform:rotate(90deg)}
/* 7項目：1枚の判定表として罫線で区切る */
.rating7a__grid{display:grid;grid-template-columns:repeat(7,1fr);margin-top:.75rem;
  background:#fff;border:1px solid #e3dbcb}
.s7{display:flex;flex-direction:column;align-items:center;gap:.18rem;padding:.5rem .1rem .55rem;
  border-left:1px solid #ece5d8}
.s7:first-child{border-left:none}
.s7__k{font-family:var(--mincho);font-size:.58rem;letter-spacing:.02em;color:var(--mute);white-space:nowrap}
.s7__v{font-family:var(--eng);font-size:.92rem;font-weight:500;line-height:1;color:var(--ink)}
/* 詳細の開閉テキスト */
.rating7a__desc{margin-top:.8rem;border-top:1px solid #e3dbcb;padding-top:.8rem}
.rating7a__desc p{font-family:var(--mincho);font-size:.74rem;line-height:1.95;letter-spacing:.02em;
  color:var(--sub);text-align:justify}
.rating7a__desc p b{font-weight:600;color:var(--ink)}
@media(max-width:480px){
  .mv__img img.mv__badge{width:4.95rem;right:.7rem;top:.7rem}

  .rating7a{padding:1.3rem 1rem 1.3rem}

  .s7__k{font-size:.52rem}
  .s7__v{font-size:.78rem}
  .rating7a__stars{width:5.4rem;font-size:1rem}
  .rating7a__val{font-size:1.42rem}
  .rating7a__card{gap:.35rem .5rem;padding:.8rem .5rem}
  .rating7a__head b{font-size:.54rem;letter-spacing:.22em}
  .rating7a__lead{font-size:.68rem;letter-spacing:.04em}
  .rating7a__rank{font-size:.68rem;padding:.3rem .55rem}
  .rating7a__btn{font-size:.7rem}
}

/* ---- 7A基準 判定モーダル ---- */
.m7a{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  padding:1.2rem .9rem;background:rgba(45,42,38,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.m7a[aria-hidden="false"]{display:flex}
.m7a__panel{width:100%;max-width:23.5rem;max-height:84vh;display:flex;flex-direction:column;
  background:#fff;border:1px solid #e3dbcb;box-shadow:0 18px 50px rgba(45,42,38,.35)}
.m7a__head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;
  padding:.85rem 1rem;border-bottom:1px solid #e3dbcb;background:#faf8f4}
.m7a__title{font-family:var(--mincho);font-weight:600;font-size:.86rem;letter-spacing:.06em;color:var(--ink)}
.m7a__title sup{font-size:.55em;vertical-align:super;letter-spacing:.02em}
.m7a__x{flex:0 0 auto;border:1px solid var(--line);background:#fff;cursor:pointer;border-radius:999px;
  padding:.3rem .75rem;font-family:var(--mincho);font-size:.7rem;letter-spacing:.06em;color:var(--sub)}
.m7a__x:hover{border-color:var(--red);color:var(--red)}
.m7a__body{overflow-y:auto;padding:1rem}
/* 総合 */
.m7a__total{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem .8rem;
  background:#fdf7ea;border:1px solid #ecdfc4;padding:.8rem}
.m7a__val{display:inline-flex;align-items:baseline;gap:.1rem;font-family:var(--eng);font-size:1.6rem;
  font-weight:500;line-height:1;color:var(--ink)}
.m7a__val small{font-size:.42em;font-weight:400;color:var(--mute)}
/* 7項目 */
.m7a__list{margin-top:.9rem;border-top:1px solid #ece5d8}
.m7a__item{display:grid;grid-template-columns:1fr auto;gap:.2rem .6rem;align-items:center;
  padding:.7rem .1rem;border-bottom:1px solid #ece5d8}
.m7a__name{font-family:var(--mincho);font-weight:600;font-size:.84rem;letter-spacing:.04em;color:var(--ink)}
.m7a__score{display:inline-flex;align-items:center;gap:.4rem;justify-self:end}
.m7a__score b{font-family:var(--eng);font-size:.86rem;font-weight:500;color:var(--ink)}
.rating7a__stars--s{width:4.2rem;height:.8rem;font-size:.8rem}
.m7a__rank{font-style:normal;display:inline-flex;align-items:center;justify-content:center;
  width:1.25rem;height:1.25rem;background:var(--dark);border:1px solid rgba(200,162,74,.75);
  color:#e6c684;font-family:var(--eng);font-size:.68rem;font-weight:500}
.m7a__rank--b{background:#8a8580;border-color:rgba(255,255,255,.35);color:#fff}
.m7a__note{grid-column:1/3;font-family:var(--mincho);font-size:.72rem;line-height:1.85;
  letter-spacing:.02em;color:var(--sub);text-align:justify}
.m7a__note-all{margin-top:.9rem;font-family:var(--gothic);font-size:.64rem;line-height:1.85;
  color:var(--mute);text-align:justify}
.m7a__close{width:100%;margin-top:1rem;height:2.9rem;background:var(--dark);color:#fff;border:none;
  cursor:pointer;font-family:var(--mincho);font-weight:600;font-size:.88rem;letter-spacing:.1em}
.m7a__close:hover{background:var(--red)}
.m7a__hint{margin-top:.6rem;text-align:center;font-family:var(--gothic);font-size:.62rem;color:var(--mute)}
@media(max-width:480px){
  .m7a{padding:.9rem .7rem}
  .m7a__panel{max-width:none;max-height:86vh}
  .m7a__title{font-size:.8rem}
  .m7a__name{font-size:.78rem}
  .m7a__note{font-size:.68rem}
}

/* Sランク（最上位）と総合点の表示 */
.m7a__rank--s{background:linear-gradient(180deg,#c8a24a,#a8863f);border-color:#e6c684;color:#fff}
.s7--s{background:#fdf3dd}
.s7--s .s7__v{color:#a8863f}
.m7a__point{font-family:var(--eng);font-size:.72rem;letter-spacing:.04em;color:var(--mute)}
.m7a__point small{font-family:var(--mincho);font-size:.9em}

/* ---- 星（1つずつ塗るので点数と塗り位置が正確に一致する） ---- */
.stars{display:inline-flex;align-items:center;gap:.1em;font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:1.2rem;line-height:1}
.stars i{font-style:normal;color:#e6e0d3}
.stars i::before{content:"★"}
.stars i.on{color:#c8a24a}
/* 端数の星：--f の位置までを金、残りをグレーで塗り分け */
.stars i.pt{background:linear-gradient(90deg,#c8a24a var(--f),#e6e0d3 var(--f));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.stars--s{font-size:.82rem;gap:.06em}
@media(max-width:480px){ .stars{font-size:1.02rem} .stars--s{font-size:.76rem} }

/* ---- ヘッダーバナー（7A基準） ---- */
.topbanner{background:#2a0a0d;line-height:0}
.topbanner img{width:100%;height:auto;display:block}

/* ============================================================
   MV（グランドOPEN版）
   ============================================================ */
.mv2{background:#fff}
/* 導入：ロゴ → 赤の縦線 → GRAND OPEN → 見出し */
.mv2__intro{padding:2.6rem 1.6rem 2.1rem;text-align:center}
.mv2__logo{width:8.4rem;margin:0 auto}
.mv2__logo img{width:100%;height:auto}
.mv2__rule{display:block;width:1px;height:2.3rem;background:var(--red);margin:1.05rem auto .95rem}
.mv2__label{font-family:var(--eng);font-weight:500;font-size:.62rem;letter-spacing:.36em;
  text-indent:.36em;color:var(--mute);margin-bottom:1.35rem}
.mv2__catch{font-family:var(--mincho);font-weight:600;font-size:1.3rem;line-height:2.05;
  letter-spacing:.06em;color:var(--ink)}
.mv2__catch span{display:block}
.mv2__catch em{font-style:normal;
  background:linear-gradient(transparent 84%,var(--red) 84%,var(--red) 89%,transparent 89%)}
/* 写真＋金賞バッジ */
.mv2__photo{position:relative;line-height:0}
.mv2__photo>img{width:100%;height:auto}
.mv2__photo img.mv2__badge{position:absolute;right:.9rem;top:.9rem;width:5.4rem;height:auto;
  filter:drop-shadow(0 2px 8px rgba(35,32,28,.4))}
/* 赤帯 */
.mv2__band{background:var(--red);color:#fff;text-align:center;padding:.72rem .6rem;
  font-family:var(--gothic);font-weight:700;font-size:.78rem;letter-spacing:.03em;line-height:1.6}
/* リード＋署名 */
.mv2__lead{padding:2.1rem 1.6rem 1.9rem;text-align:center}
.mv2__lead-tx span{display:block;font-family:var(--mincho);font-size:.92rem;line-height:2.15;
  letter-spacing:.09em;color:#6f7a86}
.mv2__by{display:flex;align-items:center;justify-content:center;gap:.9rem;margin-top:1.7rem}
.mv2__by i{flex:1;max-width:3.6rem;height:1px;background:var(--line)}
.mv2__by b{font-family:var(--eng);font-weight:500;font-size:.6rem;letter-spacing:.24em;
  text-indent:.24em;color:var(--mute);white-space:nowrap}
@media(max-width:480px){
  .mv2__intro{padding:2.1rem 1.2rem 1.8rem}
  .mv2__logo{width:7.4rem}
  .mv2__catch{font-size:1.14rem;line-height:2}
  .mv2__photo img.mv2__badge{width:4.6rem;right:.7rem;top:.7rem}
  .mv2__band{font-size:.7rem;padding:.62rem .5rem}
  .mv2__lead{padding:1.8rem 1.2rem 1.6rem}
  .mv2__lead-tx span{font-size:.84rem;letter-spacing:.06em}
  .mv2__by b{font-size:.54rem;letter-spacing:.2em}
}

/* 会社情報の下に置く注記（控えめに） */
.company__disclaimer{margin-top:1.2rem;font-size:.6rem;line-height:1.85;color:#a3a09a;text-align:justify}
