@charset "UTF-8";
/* =========================================================
   LUXE HOME 完成見学会LP
   SP 375px 基準（XDカンプ SP_375 の実値）/ PC はスプリットレイアウト
   ========================================================= */

/* ---------- tokens ---------- */
:root{
  --dark:    #2d2d2d;
  --darker:  #1e1e1e;
  --ink:     #212121;
  --light:   #ececec;
  --white:   #ffffff;
  --accent:  #ffd047;
  --sub:     #cccccc;
  --rule:    #3c3c3c;
  --rule-x:  #8c8c8c;
  --box:     #606060;
  --field:   #ececec;
  --pc-bg:   #1e1e1e;

  --font-en:     "trajan-pro-3", "Times New Roman", serif;
  --font-mincho: "Zen Old Mincho", "Hiragino Mincho ProN", serif;
  --font-sans:   "Zen Kaku Gothic New", -apple-system, "Hiragino Kaku Gothic ProN", sans-serif;
  --font-din:    "din-2014", var(--font-sans);

  --sp: 375px;
  --gutter: 15px;
  --rule-l: 50px;
  --rule-r: 325px;
  --pane: min(56.8vw, calc(100vw - 510px));
  --stage-zoom: 1.2533;

  --z-rule: 0;
  --z-content: 1;
  --z-drawer: 200;
  --z-header: 300;
}

/* XD の dash:[4] 準拠の破線 */
.u-dash-b,.u-dash-t{
  background-image:repeating-linear-gradient(to right,var(--dash-c) 0 4px,transparent 4px 8px);
  background-repeat:no-repeat; background-size:100% 1px;
}
.u-dash-b{ background-position:left bottom; }
.u-dash-t{ background-position:left top; }

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--dark);
  color:var(--white);
  font-family:var(--font-sans);
  font-size:14px;
  line-height:25px;
  font-weight:400;
  overflow-x:clip;
}
img,svg{ max-width:100%; vertical-align:bottom; }
a{ color:inherit; text-decoration:none; }
ul,ol,dl,dd{ margin:0; padding:0; }
li{ list-style:none; }
h1,h2,h3,h4,p,figure,dt,dd{ margin:0; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
iframe{ border:0; display:block; }

/* ---------- layout ---------- */
.l-stage{
  position:relative;
  width:100%;
  margin-inline:auto;
  background:var(--dark);
  overflow:hidden;
}
/* 暗色セクションにだけ透ける縦罫線 */
.l-stage::before{
  content:"";
  position:absolute; inset:0;
  z-index:var(--z-rule);
  pointer-events:none;
  background:
    linear-gradient(var(--rule),var(--rule)) var(--rule-l) 0 / 1px 100% no-repeat,
    linear-gradient(var(--rule),var(--rule)) var(--rule-r) 0 / 1px 100% no-repeat;
}
.l-stage > *{ position:relative; z-index:var(--z-content); }
.l-inner{ padding-inline:var(--gutter); }

/* =========================================================
   共通パーツ
   ========================================================= */
.c-eyebrow{
  display:flex; align-items:center; gap:6px;
  font-size:12px; line-height:25px; letter-spacing:0;
  color:var(--sub);
}
.c-eyebrow__dot{
  width:5px; height:5px; border-radius:50%;
  background:currentColor; flex:none;
}
.p-model .c-eyebrow,
.p-gift .c-eyebrow{ color:var(--sub); }

/* 英字大見出し（Trajan Pro 3） */
.c-heading-en{
  font-family:var(--font-en);
  font-size:36px; font-weight:400; line-height:45px;
  letter-spacing:.15em;
}
.c-heading-en--ls100{ letter-spacing:.1em; }

/* セクション見出し（明朝） */
.c-heading-sec{
  font-family:var(--font-mincho);
  font-size:26px; font-weight:700; line-height:38px;
  letter-spacing:.1em;
}

/* 日本語リード（明朝） */
.c-lead{
  font-family:var(--font-mincho);
  font-size:20px; font-weight:400; line-height:30px; letter-spacing:.2em;
}
.c-lead--bold{ font-weight:700; }

/* 小見出し（ゴシック太） */
.c-heading-ja{ font-size:16px; font-weight:700; line-height:30px; letter-spacing:0; }

/* 注釈（※ をぶら下げ） */
.c-notes{ font-size:12px; line-height:25px; color:var(--sub); }
.c-notes li{ padding-left:17px; text-indent:-17px; }
.c-notes li::before{ content:"※ "; }
.c-notes li + li{ margin-top:2px; }

/* CTA */
.c-btn{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  width:300px; height:50px; margin-inline:auto;
  background:var(--accent); color:var(--ink);
  font-size:16px; font-weight:700; line-height:1; letter-spacing:0;
  transition:color .35s ease, translate .2s ease;
}
/* ホバー：インク色が左から満ちる */
.c-btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--ink);
  transform-origin:left center;
  scale:0 1;
  transition:scale .45s cubic-bezier(.22,1,.36,1);
}
.c-btn:focus-visible{ outline:2px solid var(--white); outline-offset:3px; }

/* 来場特典バナー（中身は中央寄せの固定幅グループ・枠は流動） */
.c-offer{ position:relative; height:129px; background:var(--darker); }
.c-offer__head{
  position:absolute; left:0; right:0; top:15px;
  width:280px; height:25px; margin-inline:auto;
  display:grid; place-items:center;
  background:var(--dark);
  font-size:14px; font-weight:500; line-height:1; letter-spacing:0;
  color:var(--white);
}
.c-offer__body{
  position:absolute; left:0; right:0; top:55.2px;
  width:309.2px; height:58.8px; margin-inline:auto;
}
.c-offer__brand{
  position:absolute; left:0; top:0;
  width:93.2px; height:58.8px;
  border-radius:3px; overflow:hidden;
  background:var(--white);
  display:grid; place-items:center;
}
.c-offer__brand svg{ width:93.2px; height:58.8px; }
.c-offer__label{
  position:absolute; left:113.2px; top:1.8px;
  font-size:12px; font-weight:500; line-height:15px; color:var(--white);
}
.c-offer__ast{
  position:absolute; left:243.2px; top:0.8px;
  font-size:10px; line-height:1; color:var(--sub);
}
.c-offer__num{
  position:absolute; left:113.2px; top:21.8px;
  font-family:var(--font-en);
  font-size:40px; font-weight:600; line-height:40px; letter-spacing:0;
  color:var(--accent);
}
.c-offer__stack{
  position:absolute; left:228.2px; top:20.8px;
  white-space:nowrap;
  font-size:14px; font-weight:700; line-height:18px; letter-spacing:.05em;
  color:var(--white);
}
.c-offer__unit{ color:var(--accent); }

/* 必須／任意バッジ */
.c-badge{
  flex:none;
  display:inline-grid; place-items:center;
  width:35.5px; height:17.7px;
  font-size:12px; font-weight:500; line-height:1; letter-spacing:0;
}
.c-badge--req{ background:var(--accent); color:var(--ink); }
.c-badge--any{ background:#d1d1d1; color:var(--ink); }

.u-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* =========================================================
   ヘッダー / ドロワー
   ========================================================= */
.p-header{
  position:relative; z-index:var(--z-header);
  padding:15px var(--gutter) 0;
}
.p-header__inner{ display:flex; align-items:flex-start; justify-content:space-between; }
.p-header__logo{ display:block; width:148.7px; color:var(--white); }
.p-header__logo svg{ width:100%; height:auto; display:block; }
.p-header__burger{ width:45px; height:15px; position:relative; flex:none; margin-top:6px; }
.p-header__burger span{
  position:absolute; left:0; width:100%; height:1px; background:var(--white);
  transition:translate .3s ease, rotate .3s ease;
}
.p-header__burger span:nth-child(1){ top:0; }
.p-header__burger span:nth-child(2){ top:8px; }
.p-header__burger.is-open span:nth-child(1){ translate:0 4px; rotate:12deg; }
.p-header__burger.is-open span:nth-child(2){ translate:0 -4px; rotate:-12deg; }

.p-drawer{
  position:fixed; inset:0;
  z-index:var(--z-drawer);
  display:flex; flex-direction:column; justify-content:center; gap:34px;
  padding:0 40px;
  background:var(--darker);
  opacity:0; visibility:hidden;
  transition:opacity .35s ease, visibility .35s ease;
}
.p-drawer.is-open{ opacity:1; visibility:visible; }
.p-drawer__list{ display:flex; flex-direction:column; gap:22px; }
.p-drawer__list a{
  font-family:var(--font-mincho);
  font-size:18px; font-weight:500; letter-spacing:.12em; line-height:1;
  color:var(--white);
}
.p-drawer__cta{ margin-inline:0; width:100%; max-width:300px; }

/* =========================================================
   KV
   ========================================================= */
.p-kv__area{
  display:flex; align-items:center; justify-content:center; gap:4px;
  width:80px; height:25px;
  margin:33.5px 0 0 var(--gutter);
  background:#ebebeb;
  font-size:16px; font-weight:500; line-height:1; letter-spacing:0;
  color:var(--ink);
}
.p-kv__pin{ width:8px; height:11px; fill:var(--ink); flex:none; }

.p-kv__stage{ position:relative; margin-top:15px; height:430px; }
.p-kv__photo{ position:absolute; left:var(--gutter); right:var(--gutter); top:0; height:430px; margin:0; overflow:hidden; }
.p-kv__photo img{ width:100%; height:100%; object-fit:cover; }

.p-kv__title{
  position:absolute; left:24px; top:35px;
  font-family:var(--font-en);
  font-size:40px; font-weight:400; line-height:45px; letter-spacing:0;
  color:var(--white);
  text-shadow:0 2px 18px rgba(0,0,0,.4);
}
.p-kv__sub{
  position:absolute; left:0; right:0; top:82px;
  text-align:center;
  font-family:var(--font-mincho);
  font-size:14px; font-weight:700; line-height:22px; letter-spacing:.12em;
  text-indent:.12em;
  color:var(--white);
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}

/* 日付帯（XDの実座標で配置） */
.p-kv__date{
  position:absolute; left:0; top:0; width:375px; height:430px;
  font-family:var(--font-din); color:var(--white);
  text-shadow:0 2px 12px rgba(0,0,0,.5);
  pointer-events:none;
}
.p-kv__date > *{ position:absolute; line-height:1; }
.p-kv__month{ left:57px; top:381px; font-size:16px; font-weight:700; }
.p-kv__slash{ left:77px; top:382px; font-size:14px; font-weight:700; }
.p-kv__day--sat{ left:87px; top:377px; font-size:32px; font-weight:700; }
.p-kv__dow--sat{ left:124px; top:382px; }
.p-kv__dot{ left:144px; top:391px; width:5px; height:5px; border-radius:50%; background:currentColor; }
.p-kv__day--sun{ left:151px; top:377px; font-size:32px; font-weight:700; }
.p-kv__dow--sun{ left:188px; top:382px; }
.p-kv__dow{
  writing-mode:vertical-rl;
  font-size:12px; font-weight:400; letter-spacing:.1em;
}
.p-kv__bar{ left:212px; top:375px; width:1px; height:30px; background:currentColor; }
.p-kv__time{ left:222px; top:386px; font-size:14px; font-weight:700; }

.p-kv__cta{ margin-top:35px; }

/* =========================================================
   来場特典バナー（KV下）
   ========================================================= */
.p-offer{ margin-top:70px; }

/* =========================================================
   イベント概要
   ========================================================= */

/* =========================================================
   CONCEPT
   ========================================================= */
.p-concept{ margin-top:77px; padding-top:49px; border-top:1px solid #ebebeb; }
.p-concept__lead{ margin-top:12px; padding-left:17px; border-left:2px solid var(--white); }
.p-concept .c-heading-ja{ margin-top:44px; }
.p-concept__list{
  margin-top:11px; padding:15px;
  background:var(--box);
  display:flex; flex-direction:column; gap:10px;
}
.p-concept__list li{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-mincho);
  font-size:14px; line-height:20px; letter-spacing:.05em;
}
.p-concept__list li::before{
  content:""; flex:none;
  width:20px; height:20px;
  background:var(--white);
  -webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23000' d='M.5.5h19v19H.5z'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='m4.2 10.2 3.6 3.7 7.6-7.8'/%3E%3C/svg%3E") no-repeat center / contain;
  mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23000' d='M.5.5h19v19H.5z'/%3E%3Cpath fill='none' stroke='%23000' stroke-width='1.8' d='m4.2 10.2 3.6 3.7 7.6-7.8'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* =========================================================
   MODEL HOUSE（明色）
   ========================================================= */
.p-model{ margin-top:70px; padding-top:49px; background:var(--light); color:var(--ink); }
.p-model__lead{ margin-top:24px; }

.p-room{ margin-top:35px; }
.p-room__fig{ position:relative; }
.p-room__fig img{ width:100%; height:auto; aspect-ratio:345/200; object-fit:cover; display:block; }
.p-room__en{
  position:absolute; top:10px; right:14px;
  writing-mode:vertical-rl;
  font-family:var(--font-en);
  font-size:24px; font-weight:400; letter-spacing:.1em; line-height:1;
  color:var(--white);
  mix-blend-mode:overlay;
}
.p-room__title{ margin-top:25px; font-family:var(--font-mincho); font-size:20px; font-weight:700; line-height:30px; letter-spacing:.2em; }
.p-room__body{ margin-top:19px; font-size:14px; line-height:35px; color:var(--ink); }

/* =========================================================
   ギャラリー（明色）
   ========================================================= */
.p-gallery{ padding-top:35px; padding-bottom:70px; background:var(--light); color:var(--ink); }
.p-gallery > .l-inner{
  --dash-c:#cccccc;
  padding-top:43px;
  background-image:repeating-linear-gradient(to right,var(--dash-c) 0 4px,transparent 4px 8px);
  background-repeat:no-repeat; background-size:100% 1px; background-position:left top;
}

.p-gallery__viewport{ position:relative; margin-top:30px; }
.p-gallery__next{
  position:absolute; top:50%; right:-8px; z-index:2;
  display:grid; place-items:center;
  width:44px; height:44px; margin-top:-22px;
  border-radius:50%;
  background:rgba(255,255,255,.92); color:var(--ink);
  box-shadow:0 2px 10px rgba(0,0,0,.18);
  animation:lx-nudge 1.4s ease-in-out infinite;
}
.p-gallery__next svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.p-gallery__next svg{ transition:rotate .4s ease; }
.p-gallery__next.is-end svg{ rotate:180deg; }
@keyframes lx-nudge{
  0%,100%{ translate:0 0; }
  50%{ translate:6px 0; }
}
.p-gallery__swiper{
  margin-right:calc(var(--gutter) * -1);
  overflow:hidden;
}
.p-gallery__swiper .swiper-slide{ width:250px; height:auto; }
.p-gallery__swiper img{ width:250px; height:auto; aspect-ratio:250/190; object-fit:cover; display:block; }
/* JS前・JS無効時も横スクロールで見られる */
.p-gallery__swiper:not(.swiper-initialized) .swiper-wrapper{
  display:flex; gap:25px; overflow-x:auto; scrollbar-width:none;
}
.p-gallery__swiper:not(.swiper-initialized) .swiper-wrapper::-webkit-scrollbar{ display:none; }

.p-gallery__cta{ margin-top:50px; }

/* =========================================================
   FLOOR PLAN（暗色）
   ========================================================= */
.p-floor{ padding-top:56px; }
.p-floor__lead{ margin-top:12px; }
.p-floor__body{ margin-top:24px; font-size:14px; line-height:35px; color:var(--sub); }
.p-floor__fig{ margin-top:6px; background:var(--white); }
.p-floor__zoom{ position:relative; display:block; width:100%; cursor:zoom-in; }
.p-floor__zoom img{ width:100%; display:block; }
.p-floor__zoomHint{
  position:absolute; right:8px; bottom:8px;
  display:flex; align-items:center; gap:4px;
  padding:5px 10px 5px 8px;
  background:rgba(34,34,34,.82); color:var(--white);
  font-size:11px; line-height:1; letter-spacing:.05em;
}
.p-floor__zoomHint svg{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.p-floor__map{ margin-top:49px; aspect-ratio:345/263; background:#e8e6e1; }
.p-floor__map iframe{ width:100%; height:100%; filter:grayscale(1); }

/* 平面図の拡大表示 */
.p-zoom{
  position:fixed; inset:0;
  width:100%; max-width:none; height:100%; max-height:none;
  margin:0; padding:68px 0 0; border:0;
  background:#141414; color:var(--white);
}
.p-zoom::backdrop{ background:rgba(0,0,0,.6); }
.p-zoom[open]{ display:flex; flex-direction:column; justify-content:center; }
.p-zoom__scroller{
  flex:0 1 auto; max-height:calc(100% - 150px);
  overflow:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  touch-action:pan-x pan-y;
  background:var(--white);
}
.p-zoom__scroller img{ display:block; width:calc(var(--z, 1) * 100%); max-width:none; height:auto; }
.p-zoom__ctrl{
  display:flex; align-items:center; justify-content:center; gap:14px;
  margin-top:16px;
}
.p-zoom__step{
  width:44px; height:44px;
  border:1px solid rgba(255,255,255,.6); border-radius:50%;
  color:var(--white); font-size:22px; line-height:1;
}
.p-zoom__step:disabled{ opacity:.3; }
.p-zoom__rate{ min-width:4em; text-align:center; font-family:var(--font-din); font-size:15px; letter-spacing:.05em; }
.p-zoom__hint{ margin-top:14px; text-align:center; font-size:12px; letter-spacing:.05em; color:#bdbdbd; }
.p-zoom__x{
  position:absolute; top:12px; right:12px; z-index:2;
  width:48px; height:48px;
  background:var(--white); border-radius:50%;
  box-shadow:0 2px 10px rgba(0,0,0,.35);
}
.p-zoom__x span{
  position:absolute; top:50%; left:50%;
  width:20px; height:2px; margin:-1px 0 0 -10px;
  background:var(--ink);
}
.p-zoom__x span:first-child{ rotate:45deg; }
.p-zoom__x span:last-child{ rotate:-45deg; }
.p-zoom__close{
  align-self:center;
  width:min(300px, calc(100% - 2 * var(--gutter))); height:50px; margin-top:16px;
  border:1px solid var(--white);
  color:var(--white); font-size:15px; font-weight:700; letter-spacing:.1em;
}

.p-floor__spec{ margin-top:34px; }
.p-floor__spec dt{
  float:left; width:153px; padding:9px 0 9px 10px;
  font-family:var(--font-en);
  font-size:14px; font-weight:400; line-height:22px; letter-spacing:.15em;
}
.p-floor__spec dd{
  --dash-c:#cccccc;
  padding:9px 0 9px 163px;
  background-image:repeating-linear-gradient(to right,var(--dash-c) 0 4px,transparent 4px 8px);
  background-repeat:no-repeat; background-size:100% 1px; background-position:left bottom;
  font-size:14px; line-height:22px; color:var(--sub);
}


/* =========================================================
   VISITOR GIFT（明色）
   ========================================================= */
.p-gift{ margin-top:70px; padding:49px 0 17px; background:var(--light); color:var(--ink); }
.p-gift .c-offer{ margin-top:27px; }
.p-gift .c-notes{
  --dash-c:#cccccc;
  margin-top:23px; padding-top:25px; color:var(--ink);
  background-image:repeating-linear-gradient(to right,var(--dash-c) 0 4px,transparent 4px 8px);
  background-repeat:no-repeat; background-size:100% 1px; background-position:left top;
}
.p-gift__card{ margin-top:36px; padding:15px; background:var(--white); }
.p-gift__cardTitle{ font-size:16px; font-weight:700; line-height:30px; }
.p-gift__cond{ margin-top:7px; display:flex; flex-direction:column; gap:10px; }
.p-gift__cond li{
  position:relative; padding-left:18px;
  font-size:14px; line-height:25px;
}
.p-gift__cond li::before{
  content:""; position:absolute; left:0; top:9px;
  width:8px; height:8px; border-radius:50%; background:var(--ink);
}

/* =========================================================
   CONTACT / フォーム（暗色）
   ========================================================= */
.p-contact{ padding:49px 0 70px; }
.p-contact__lead{ margin-top:12px; font-size:14px; line-height:35px; color:var(--sub); }

.p-form{ margin-top:33px; padding:17px 18px 35px; background:var(--white); color:var(--ink); }
.p-form__items{ display:flex; flex-direction:column; gap:17px; }
.p-form__label{ display:flex; align-items:center; gap:10px; font-size:14px; font-weight:700; line-height:26px; }
.p-form__body{ margin-top:12px; }

.p-form__input,
.p-form__select{
  width:100%; height:50px; padding:0 9px;
  background:var(--field); border:0; border-radius:0;
  font-family:inherit; font-size:14px; line-height:26px; color:var(--ink);
  appearance:none;
}
.p-form__input::placeholder{ color:var(--sub); }
.p-form__input:focus-visible,
.p-form__select:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }

.p-form__selectWrap{ position:relative; }
.p-form__selectWrap::after{
  content:""; position:absolute; right:16px; top:50%;
  width:9px; height:9px; margin-top:-6px;
  border-right:1.5px solid #8e8e8e; border-bottom:1.5px solid #8e8e8e;
  rotate:45deg; pointer-events:none;
}

.p-form__radios{ display:flex; gap:16px; }
.p-form__radio{
  position:relative; flex:1 1 0;
  display:flex; align-items:center; gap:9px;
  height:35px; padding-inline:10px;
  background:var(--field); cursor:pointer;
  font-size:14px; line-height:26px;
}
.p-form__radio input{ position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.p-form__radioMark{
  flex:none; width:15px; height:15px; border-radius:50%;
  background:var(--white); box-shadow:inset 0 0 0 1px #c3c3c3;
  display:grid; place-items:center;
}
.p-form__radio input:checked + .p-form__radioMark::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--ink);
}
.p-form__radio input:focus-visible + .p-form__radioMark{ outline:2px solid var(--accent); outline-offset:2px; }

.p-form__value{ min-height:50px; padding:12px 9px; background:var(--field); font-size:14px; line-height:26px; word-break:break-all; }

.p-form__policy{ margin-top:35px; }
.p-form__policyBox{
  height:160px; padding:12px 18px 12px 10px;
  background:var(--field);
  overflow-y:scroll; overscroll-behavior:contain;
  font-size:12px; line-height:26px; color:var(--ink);
  scrollbar-color:#8e8e8e #cccccc; scrollbar-width:thin;
}
.p-form__policyBox::-webkit-scrollbar{ width:9px; }
.p-form__policyBox::-webkit-scrollbar-track{ background:#cccccc; }
.p-form__policyBox::-webkit-scrollbar-thumb{ background:#8e8e8e; }
.p-form__policyBox:focus-visible{ outline:2px solid var(--accent); outline-offset:1px; }
.p-form__policyBox h3{ font-size:12px; font-weight:700; }
.p-form__policyBox h4{ margin-top:12px; font-size:12px; font-weight:700; }
.p-form__policyBox p{ margin-top:2px; }
.p-form__policyBox ul,
.p-form__policyBox ol{ margin-top:2px; padding-left:1.1em; }
.p-form__policyBox ul li{ list-style:disc; }
.p-form__policyBox ol li{ list-style:decimal; }

.p-form__agree{
  position:relative;
  display:flex; align-items:center; gap:9px;
  margin-top:36px; padding-left:9px; cursor:pointer;
  font-size:14px; line-height:20px;
}
.p-form__agree input{ position:absolute; left:9px; top:0; width:20px; height:20px; margin:0; opacity:0; cursor:pointer; }
.p-form__agreeMark{
  flex:none; width:20px; height:20px;
  background:var(--white); box-shadow:inset 0 0 0 1px #9c9c9c;
  display:grid; place-items:center;
}
.p-form__agree input:checked + .p-form__agreeMark::before{
  content:""; width:11px; height:6px;
  border-left:2px solid var(--ink); border-bottom:2px solid var(--ink);
  rotate:-45deg; translate:0 -2px;
}
.p-form__agree input:focus-visible + .p-form__agreeMark{ outline:2px solid var(--accent); outline-offset:2px; }

.p-form__submit{ margin-top:35px; }
.p-form__err{
  margin-top:18px; padding:14px 16px;
  background:#fdeaea; color:#a11b1b;
  font-size:13px; line-height:1.8;
}
.p-form__err li{ padding-left:1.1em; text-indent:-1.1em; }
.p-form__err li::before{ content:"・"; }

/* =========================================================
   確認 / 完了ページ
   ========================================================= */
.p-page{ padding:49px 0 70px; }
.p-page__lead{ margin-top:22px; font-size:14px; line-height:35px; color:var(--sub); }
.p-page__actions{ display:flex; flex-direction:column; gap:14px; margin-top:35px; }
.c-btn--ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px #b5b5b5; }
.c-btn--ghost::before{ background:var(--ink); }

/* =========================================================
   フッター
   ========================================================= */
.p-footer{ background:var(--light); color:var(--ink); }
.p-footer__inner{ padding:22px var(--gutter) 16px; }
.p-footer__logo{ display:block; width:148.7px; color:var(--ink); }
.p-footer__logo svg{ width:100%; height:auto; display:block; }
.p-footer__corp{ margin-top:27px; font-size:14px; line-height:30px; }
.p-footer__copy{
  height:30px; display:grid; place-items:center;
  background:var(--ink); color:var(--white);
  font-family:var(--font-din);
  font-size:14px; line-height:30px; letter-spacing:0;
}

/* =========================================================
   PC左ペイン（1024px以上でスプリットレイアウト）
   ========================================================= */
.p-sidenav{ display:none; }

@media (hover:hover) and (pointer:fine){
  .c-btn:hover{ color:var(--white); }
  .c-btn:hover::before{ scale:1 1; }
  .c-btn:active{ translate:0 1px; }
  .c-btn--ghost:hover{ color:var(--white); }
  .p-footer__tel a:hover{ text-decoration:underline; text-underline-offset:3px; }
}

@media (min-width:481px) and (max-width:1023px){
  .l-inner,
  .p-kv__area,
  .p-header__inner,
  .p-drawer__list,
  .p-footer__inner{ max-width:480px; margin-inline:auto; }
  .p-kv__stage{ max-width:480px; margin-inline:auto; }
}

@media (min-width:1024px){
  body{ background:var(--pc-bg); padding-left:var(--pane); }
  .l-stage{ width:var(--sp); zoom:var(--stage-zoom); margin-inline:0; }
  .p-header,
  .p-drawer{ display:none !important; }

  .p-sidenav{
    display:block;
    position:fixed; top:0; left:0; bottom:0;
    width:var(--pane);
    background:var(--pc-bg);
    z-index:var(--z-header);
  }
  .p-sidenav__inner{
    display:flex; flex-direction:column;
    height:100%;
    padding:clamp(40px,4.4vw,64px) 0 clamp(36px,3.6vw,54px);
  }
  .p-sidenav__logo{ display:block; width:clamp(230px,21vw,360px); margin-left:8.78vw; color:var(--white); }
  .p-sidenav__logo svg{ width:100%; height:auto; display:block; }
  .p-sidenav__lead{
    margin:clamp(18px,1.8vw,28px) 0 0 8.78vw;
    font-family:var(--font-mincho);
    font-size:clamp(13px,1.03vw,18px); letter-spacing:.2em; line-height:1.9;
    color:var(--sub);
  }
  .p-sidenav__list{ margin:clamp(34px,4vw,60px) 0 0 8.78vw; width:clamp(300px,30vw,520px); }
  .p-sidenav__list a{
    display:flex; align-items:baseline; gap:14px;
    padding-bottom:clamp(12px,1.1vw,20px);
    margin-bottom:clamp(18px,1.9vw,34px);
    border-bottom:1px solid #3a3a3a;
    font-family:var(--font-mincho);
    font-size:clamp(15px,1.25vw,22px); font-weight:500; letter-spacing:.12em; line-height:1.2;
    color:var(--white);
    transition:color .25s ease, translate .25s ease;
  }
  .p-sidenav__list a:hover{ color:var(--accent); translate:4px 0; }
  .p-zoom__scroller{ align-self:center; width:min(1035px, calc(100% - 80px), calc((100dvh - 220px) * 1.787)); }
  .p-sidenav__cta{
    width:clamp(230px,20vw,380px); height:clamp(46px,3.6vw,64px);
    margin:clamp(10px,1.4vw,24px) 0 0 8.78vw;
    font-size:clamp(13px,1vw,17px);
  }
  .p-sidenav__corp{
    margin:auto 0 0 8.78vw;
    font-size:clamp(11px,.8vw,14px); letter-spacing:.04em; line-height:1.9;
    color:#8c8c8c;
  }
}

/* =========================================================
   モーション
   ========================================================= */
/* GSAP が初期状態を作るまで隠す（JS無効・GSAP失敗時は is-ready が付いて必ず出る） */
.js-anim .p-kv,
.js-anim .p-offer,
.js-anim [data-anim]{ visibility:hidden; }
.js-anim.is-ready .p-kv,
.js-anim.is-ready .p-offer,
.js-anim.is-ready [data-anim]{ visibility:visible; }

/* 文字スクランブル */
.u-scr{ display:inline-block; white-space:pre; text-align:center; }

/* 行ごとのマスク */
.u-line{ display:block; overflow:hidden; }
.u-line__in{ display:block; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .js-anim .p-kv,
  .js-anim .p-offer,
  .js-anim [data-anim]{ visibility:visible; }
  .p-gallery__next{ animation:none; }
}

/* スクリーンリーダー・検索エンジン向けの非表示テキスト */
.u-sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
