@charset "UTF-8";

/* 基本設定：Figmaの指定書体をローカルから読み込む。 */
@font-face {
  font-family: "Zen Kaku Gothic New";
  src: url("../fonts/ZenKakuGothicNew-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Zen Kaku Gothic New";
  src: url("../fonts/ZenKakuGothicNew-Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
:root {
  --color-page: #ebeae8;
  --color-menu: #dbd8d2;
  --color-text: #686765;
  --color-green: #4c584e;
  --menu-duration: 240ms;
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: hidden; }
body { margin: 0; min-width: 320px; background: var(--color-page); color: var(--color-text); font-family: "Zen Kaku Gothic New", sans-serif; font-weight: 400; }
body.is-menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
a[href], button { -webkit-tap-highlight-color: transparent; }
button { color: inherit; font: inherit; cursor: pointer; }
button, a { touch-action: manipulation; }
button:focus-visible, a:focus-visible { outline: 2px solid var(--color-green); outline-offset: 5px; }
img { display: block; max-width: 100%; height: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* 共通：通常ヘッダー（PC 1440pxの位置・寸法を基準にする）。 */
.site-header { position: relative; z-index: 10; padding: 31px 80px 31px 82px; }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; max-width: 1278px; margin-inline: auto; }
.site-header__brand { display: block; flex: 0 0 297.67px; }
.site-header__brand picture { display: block; }
.site-header__brand img { width: 297.67px; height: 15.04px; }
.site-header__actions { display: flex; align-items: center; gap: 30px; }
.site-header__nav { display: flex; align-items: center; gap: 30px; }
.site-header__link { flex-shrink: 0; font-size: 12px; font-weight: 500; line-height: 24.7px; letter-spacing: 1.04px; white-space: nowrap; }
.site-header__cta { display: flex; gap: 10px; }
.site-header__button { display: flex; align-items: center; justify-content: center; width: 124px; height: 36px; border: 1px solid var(--color-green); border-radius: 1px; color: var(--color-green); font-size: 12px; font-weight: 500; letter-spacing: 1.04px; white-space: nowrap; }
.site-header__button--filled { width: 122px; background: var(--color-green); color: #fff; }
.menu-toggle { display: grid; place-items: center; width: 44px; height: 44px; padding: 12px; margin: -4px -12px -4px -12px; border: 0; background: transparent; }
.menu-toggle__icon { display: flex; flex-direction: column; justify-content: space-between; width: 20px; height: 11px; }
.menu-toggle__icon span { display: block; width: 20px; height: 1px; background: var(--color-text); }

/* 共通：展開メニュー。dialogで背景の操作とフォーカスの移動を制御。 */
.site-menu { position: fixed; inset: 0 0 auto; width: 100%; max-width: none; max-height: 100dvh; margin: 0; padding: 0; overflow-x: hidden; overflow-y: auto; border: 0; background: var(--color-menu); color: var(--color-text); opacity: 0; transform: translateY(-8px); transition: opacity var(--menu-duration) ease, transform var(--menu-duration) ease; }
.site-menu[open] { display: block; }
.site-menu.is-open { opacity: 1; transform: translateY(0); }
.site-menu::backdrop { background: rgb(0 0 0 / 0); transition: background-color var(--menu-duration) ease; }
.site-menu.is-open::backdrop { background: rgb(0 0 0 / 0.12); }
.site-menu__panel { position: relative; min-height: 460px; padding: 125px 60px 78px; }
.site-menu__mobile-header { display: none; }
.site-menu__close { position: absolute; top: 12px; right: 68px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; }
.site-menu__close-icon { position: relative; display: block; width: 20px; height: 12px; }
.site-menu__close-icon::before, .site-menu__close-icon::after { position: absolute; top: 5.5px; left: 0; width: 20px; height: 1px; background: var(--color-text); content: ""; }
.site-menu__close-icon::before { transform: rotate(30deg); }
.site-menu__close-icon::after { transform: rotate(-30deg); }
.site-menu__content { display: grid; grid-template-columns: 259px minmax(0, 414px) 300px; grid-template-rows: 45.19px auto; column-gap: 83.5px; max-width: 1140px; margin-inline: auto; }
.site-menu__brand { grid-column: 1; grid-row: 1; width: 180px; }
.site-menu__brand img { width: 180px; height: 45.19px; }
.site-menu__nav { grid-column: 2; grid-row: 1 / 3; }
.site-menu__links { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 71px; margin: 0; padding: 0; list-style: none; }
.site-menu__links a { display: block; font-size: 14px; line-height: 25px; letter-spacing: 1.04px; white-space: nowrap; }
.site-menu__cta { grid-column: 3; grid-row: 1 / 3; display: grid; align-content: start; gap: 20px; }
.button { display: flex; align-items: center; justify-content: center; min-height: 70px; border: 1px solid var(--color-green); border-radius: 1px; color: var(--color-green); font-size: 16px; font-weight: 500; line-height: 1.5; letter-spacing: 1.04px; text-align: center; }
.button--filled { background: var(--color-green); color: #fff; }
.site-menu__company { grid-column: 1; grid-row: 2; margin-top: 25px; }
.site-menu__address { margin: 0; font-size: 12px; font-style: normal; line-height: 20px; letter-spacing: 0.6px; white-space: nowrap; }
.site-menu__social { display: block; width: 24px; height: 24px; margin-top: 25px; }
.site-menu__legal { display: flex; align-items: baseline; justify-content: center; gap: 6px; margin: 74px 0 0; font-size: 11px; line-height: 20px; letter-spacing: 1.04px; white-space: nowrap; }
.site-menu__legal small { font: inherit; }
.site-menu__legal a { text-decoration: underline; text-decoration-thickness: 0.5px; text-underline-offset: 2px; }
.site-menu__legal-divider { font-size: 10px; }
@media (hover: hover) {
  a[href]:hover { opacity: 0.7; }
  .menu-toggle:hover, .site-menu__close:hover { opacity: 0.65; }
}

/* 中間幅：PCのナビが重なる幅ではSP構成へ切り替える実装案。 */
@media (min-width: 1280px) and (max-width: 1399px) {
  .site-header { padding-inline: 40px; }
  .site-header__inner { gap: 20px; }
  .site-header__actions, .site-header__nav { gap: 20px; }
  .site-menu__content { column-gap: 40px; grid-template-columns: 259px minmax(0, 1fr) 280px; }
  .site-menu__links { column-gap: 30px; }
}

/* SP：390pxのフレームを基準にした共通HTMLの再配置。 */
@media (max-width: 1279px) {
  .site-header { padding: 22px 20px; }
  .site-header__inner { max-width: none; min-height: 44px; gap: 20px; }
  .site-header__brand { flex: 0 1 290px; min-width: 0; }
  .site-header__brand img { width: 100%; max-width: 100%; height: auto; }
  .site-header__actions { flex-shrink: 0; gap: 0; }
  .site-header__nav, .site-header__cta { display: none; }
  .menu-toggle { margin: 0 -12px 0 0; }
  .site-menu__panel { min-height: max(830px, 100dvh); padding: 0 0 30px; }
  .site-menu__mobile-header { display: flex; align-items: center; height: 60px; padding: 10px 20px; border-bottom: 1px solid #fff; background: var(--color-page); }
  .site-menu__mobile-brand { display: block; width: 130px; }
  .site-menu__mobile-brand img { width: 130px; height: 40px; }
  .site-menu__close { top: 8px; right: 8px; }
  .site-menu__content { display: flex; flex-direction: column; gap: 0; margin: 0; padding: 50px 30px 0; }
  .site-menu__brand { display: none; }
  .site-menu__links { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .site-menu__links a { font-weight: 500; }
  .site-menu__desktop-label { display: none; }
  .site-menu__cta { display: grid; gap: 14px; margin-top: 35px; }
  .site-menu__company { margin-top: 35px; }
  .site-menu__social { margin-top: 15px; }
  .site-menu__legal { justify-content: flex-start; gap: 5px; margin: 25px 30px 0; letter-spacing: 0.6px; }
  .site-menu__legal a { text-decoration: none; }
}
@media (max-width: 359px) {
  .site-menu__content { padding-inline: 20px; }
  .site-menu__legal { margin-inline: 20px; font-size: 10px; letter-spacing: 0.2px; gap: 2px; }
  .site-menu__address { font-size: 11px; letter-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) {
  :root { --menu-duration: 0ms; }
  .site-menu { transform: none; }
}
/* TOP共通：Figma指定の書体・余白・写真を使用。 */
@font-face { font-family:"Zen Kaku Gothic New"; src:url("../fonts/ZenKakuGothicNew-Bold.ttf") format("truetype"); font-weight:700; font-display:swap; }
@font-face { font-family:"Shippori Mincho"; src:url("../fonts/ShipporiMincho-Medium.ttf") format("truetype"); font-weight:500; font-display:swap; }
@font-face { font-family:"Shippori Mincho"; src:url("../fonts/ShipporiMincho-SemiBold.ttf") format("truetype"); font-weight:600; font-display:swap; }
@font-face { font-family:"Shippori Mincho B1"; src:url("../fonts/ShipporiMinchoB1-Medium.ttf") format("truetype"); font-weight:500; font-display:swap; }
main p, main h1, main h2, main h3, .site-footer p { margin:0; }
/* 全幅の背景・写真を含むmain自体は制限しない。本文の最大幅は各コンテナで管理する。 */
main { margin-inline:auto; }
picture { display:block; }
main picture img { width:100%; height:auto; }
.container { width:calc(100% - 240px); max-width:1200px; margin-inline:auto; }
.section-label { display:flex; flex-direction:column; justify-content:center; height:40px; border-left:1px solid; padding-left:25px; font-size:11px; font-weight:700; line-height:21px; letter-spacing:3.52px; color:#4c584e; }
.section-heading { margin-top:40px; font:500 36px/1.5 "Shippori Mincho B1",serif; letter-spacing:3.6px; color:#26241e; }
main .section-heading { margin-top:40px; }
.body-copy { font-size:15px; line-height:1.9; letter-spacing:.6px; }
main .body-copy { margin-top:30px; }
.body-copy p+p { margin-top:25px; }
.minor-heading { font:500 28px/1.5 "Shippori Mincho B1",serif; letter-spacing:3.6px; color:#26241e; }
main .english-label { margin-top:10px; font-size:11px; font-weight:700; line-height:20px; letter-spacing:3.52px; color:#4c584e; }
.sp-br,.sp-text { display:none; }
.action-button { display:flex; align-items:center; justify-content:center; gap:10px; width:290px; min-height:64px; padding:16px 10px; border:1px solid #4c584e; color:#4c584e; font-size:15px; font-weight:500; letter-spacing:1.6px; line-height:1.6; }
.action-button--green { background:#4c584e; color:#fff; }
.action-button { max-width:100%; }
.action-button--white { background:transparent; border-color:#fff; color:#fff; }
.action-button--gold { background:#847250; border-color:#847250; color:#fff; }
.text-link { display:flex; align-items:center; width:max-content; max-width:100%; gap:10px; padding-bottom:8px; border-bottom:1px solid #26241e; font-size:12px; font-weight:500; line-height:24px; letter-spacing:2.16px; color:#26241e; }
.vertical-copy { display:flex; align-items:flex-start; gap:10px; color:#686765; }
.vertical-copy__line { display:block; padding:10px 11px; background:#fff; }
.vertical-copy__line>span { display:block; font:600 18px/24px "Shippori Mincho",serif; text-align:center; }
.hero { position:relative; height:840px; margin-top:-98px; }
.hero__photo { position:absolute; top:0; right:0; width:66.666667%; isolation:isolate; --hero-fade-duration:1000ms; }
/* 先頭のpictureで高さを確保。全写真はFigmaのPC/SP書き出しを等倍比率で重ねる。 */
.hero__slide { position:absolute; inset:0; display:block; width:100%; opacity:0; visibility:hidden; }
.hero__slide:first-child { position:relative; }
.hero__slide img { width:100%; height:auto; }
.hero__slide.is-current { opacity:1; visibility:visible; z-index:1; }
.hero__slide.is-entering { visibility:visible; z-index:2; }
/* 前の写真は不透明のまま保持し、背景色が透けないクロスフェードにする。 */
.hero__slide.is-entering.is-visible { opacity:1; transition:opacity var(--hero-fade-duration) ease-in-out; }
@media (prefers-reduced-motion:reduce) {
 .hero__slide.is-entering.is-visible { transition:none; }
}
/* 個別文字セルの寸法はそのまま、句読点だけ指定書体の縦組み用字形にする。 */
.hero__vertical .hero__punctuation { font-feature-settings:"vert" 1, "vrt2" 1; }
.hero__family { position:absolute; width:263px; top:540px; right:87px; }
.hero__vertical { position:absolute; right:110px; top:130px; }
.hero__copy { position:absolute; top:201.472px; left:max(80px,calc((100% - 1280px)/2)); }
.hero__title { width:281.968px; margin-left:2.4px; }
main .hero__lead { margin-top:46.67px; font-size:16px; line-height:31.2px; font-weight:500; letter-spacing:2.52px; }
main .hero__note { margin-top:14.24px; font-size:9.5px; line-height:18px; letter-spacing:1px; color:#898884; }
.hero__cta { display:grid; gap:13px; margin-top:55.6px; }
.introduction { height:460px; position:relative; }
.introduction::before { content:""; position:absolute; left:0; top:0; width:62.5%; height:100%; background:#f0f0f0; }
.introduction__image { position:absolute; width:66.666667%; left:5.555556%; top:100px; }
.introduction__heading { position:absolute; right:6.25%; top:60px; }
.introduction__body { position:absolute; right:228px; top:70px; writing-mode:vertical-rl; font-size:15px; line-height:32px; letter-spacing:4px; }
.features { background:#4c584e; color:#fff; height:320px; padding:61px 0 60px; }
.features__list { display:grid; grid-template-columns:repeat(5,1fr); list-style:none; margin:0; padding:0 26px; }
.features__item { position:relative; text-align:center; }
.features__item+.features__item::before { content:""; position:absolute; left:0; top:19px; height:160px; border-left:1px solid #ffffff4d; }
.features__icon { width:100px; margin:auto; }
main .features__value { margin-top:15px; font:600 48px/1.3 "Shippori Mincho",serif; letter-spacing:3.5px; }
main .features__value--0,main .features__value--4 { font-size:40px; line-height:62.4px; }
.features__value small { font-size:16px; }
.features__value sup { font-size:12px; vertical-align:baseline; line-height:32px; }
main .features__caption { font-size:11px; font-weight:500; line-height:21px; letter-spacing:2.64px; color:#b9b3a0; }
.about { padding:160px 0 180px; }
.about__layout { position:relative; min-height:569px; }
.about__copy { width:350px; }
.about__visual { position:absolute; top:89px; left:400px; width:calc(100% - 400px); }
.about__vertical { position:absolute; top:-89px; right:30px; }
.about__plant { position:absolute; width:150px; right:-50px; top:351px; }
.wooden { position:relative; padding-bottom:150px; }
.wooden::before { content:""; position:absolute; inset:90px 0 0; background:#cac6bd; z-index:-1; }
.wooden__top { position:relative; min-height:560px; }
.wooden__visual { width:55.555556%; position:relative; }
.wooden__birds { width:170px; position:absolute; top:-79px; left:0; }
.wooden__copy { position:absolute; left:61.666667%; top:170px; width:calc(38.333333% - 80px); }
.reasons { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:13.333px; }
.reasons__item { padding:35px 26px; min-height:300px; background:#ebeae8; border-radius:3px; }
.reasons__toggle { display:block; width:100%; padding:0; background:none; border:0; text-align:left; cursor:default; }
.reasons__category { display:flex; gap:10px; align-items:center; color:#4c584e; font-size:13px; font-weight:500; letter-spacing:2.86px; line-height:24px; }
.reasons__category::before { content:""; width:7px; height:7px; background:#b9b3a0; clip-path:polygon(50% 0,100% 38%,81% 100%,19% 100%,0 38%); }
.reasons__heading { display:block; margin-top:20px; font:500 20px/30px "Shippori Mincho",serif; letter-spacing:1.9px; color:#26241e; }
.reasons__body { margin-top:24px; font-size:13px; line-height:24px; letter-spacing:.6px; }
.reasons__body[hidden] { display:block; }
.models { padding-bottom:150px; }
.models__top { position:relative; min-height:600px; }
.models__copy { padding-top:150px; width:440px; }
.models__visual { position:absolute; top:0; right:0; width:59.236111%; }
.models__couple { position:absolute; top:381px; right:71px; width:119px; }
.models__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:70px 37.5px; }
.model-card__body { padding:20px 20px 20px; min-height:163px; background:#f0f0f0; }
.model-card__company { font-size:12px; font-weight:500; line-height:18px; letter-spacing:2.2px; color:#4c584e; }
.model-card h3 { margin-top:10px; font:500 18px/27px "Shippori Mincho",serif; letter-spacing:1.44px; color:#26241e; }
main .model-card__spec { margin-top:8px; font-size:12px; line-height:20px; letter-spacing:.6px; }
.model-card__spec span { margin:0 5px; }
.model-card__link { margin:10px 0 0 auto; padding-bottom:5px; }
.news { background:#fafafa; padding:120px 0; }
.news__layout { display:grid; grid-template-columns:350px 1fr; gap:50px; }
.news__heading { padding-top:20px; }
.news__illustration { width:80px; margin-top:94px; }
.news__list { margin:0; padding:0; list-style:none; }
.news__item { display:grid; grid-template-columns:70px 72px minmax(0,1fr); align-items:center; gap:20px; padding:21px 6px; min-height:71px; border-bottom:1px solid #d9d6d1; font-size:13px; line-height:26px; letter-spacing:1.3px; }
.news__item:first-child { border-top:1px solid #d9d6d1; }
.news__item time { width:70px; }
.news__tag { border:1px solid #4c584e; border-radius:20px; color:#4c584e; font-size:10px; font-weight:500; line-height:24px; letter-spacing:2px; text-align:center; }
.news__tag--event { border-color:#847250; color:#847250; }
.news__title { font-size:14.5px; letter-spacing:1px; white-space:nowrap; color:#26241e; }
.news__more { margin:48px 0 0 auto; line-height:20px; }
.access { background:#e3e0da; padding:170px 0 150px; }
.access__outline { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:repeat(3,auto); grid-auto-flow:column; column-gap:80px; margin:48px 0 56px; }
.access__outline>div { display:flex; align-items:center; min-height:69px; border-bottom:1px solid #c7c4be; font-size:14.5px; line-height:24px; letter-spacing:1px; color:#26241e; }
.access__outline dt { flex:0 0 100px; font-size:14px; font-weight:500; letter-spacing:1.96px; color:#4c584e; }
.access__outline dd { margin:0; }
.access__map { width:calc(100% - 240px); max-width:1200px; margin:auto; }
.access__transport { display:grid; grid-template-columns:1fr 1fr; padding:20px 40px; margin-top:20px; background:#ebeae8; }
.access__way { display:flex; align-items:center; gap:30px; min-height:60px; }
.access__way+.access__way { border-left:1px solid #c7c4be; padding-left:40px; }
.access__way h3 { display:flex; align-items:center; gap:10px; flex-shrink:0; font-size:14px; font-weight:500; letter-spacing:1.96px; color:#4c584e; }
.access__way picture { width:50px; }
.access__way p { font-size:14.5px; line-height:27px; letter-spacing:1px; color:#26241e; }
.around { padding:150px 0 170px; }
.around__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.around__heading .body-copy { width:520px; margin-top:30px; }
.around-map { width:920px; max-width:100%; position:relative; margin:26px auto 89px; }
.around-map__label { position:absolute; font:500 14px/21px "Zen Kaku Gothic New",sans-serif; letter-spacing:.6px; color:#686765; }
.around-map__label--spa { left:63.83%; top:75.3%; }
.around-map__label--market { left:31.12%; top:74.2%; }
.around-map__label--fish { left:14.17%; top:71.77%; }
.around-map__label--cafe { left:11.33%; top:31.94%; }
.around-map__label--park { left:29.15%; top:19.2%; text-align:center; }
.around-map__note { position:absolute; right:0; bottom:0; font-size:9px; letter-spacing:.7px; }
.around-map__logo { position:absolute; left:65.11%; top:6.94%; width:15.217%; }
.around__grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.place-card { position:relative; display:flex; align-items:center; gap:28px; min-height:240px; padding:40px 20px 20px; border:1px solid #b9b3a0; }
.place-card__tag { position:absolute; top:-1px; left:-1px; padding:9px 20px; background:#c36a36; color:white; font-size:11px; line-height:18px; letter-spacing:1.04px; }
.place-card__tag--spa { background:#958471; }
.place-card__tag--park { background:#829385; }
.place-card__photo { flex:0 0 240px; }
.place-card__body { flex:1; }
.place-card h3 { font:500 17px/25.5px "Shippori Mincho B1",serif; letter-spacing:1.36px; color:#26241e; }
.place-card__body p { margin-top:10px; font-size:12.5px; line-height:20px; letter-spacing:.6px; }
.place-card__link { margin-top:16px; font-size:12px; padding-bottom:0; border-bottom:0; }
.recruit { position:relative; width:calc(100% - 160px); max-width:1280px; margin:0 auto 170px; color:#fff; background:#414c42; border-radius:7px; isolation:isolate; }
.recruit__photo { position:absolute; inset:0; z-index:-2; }
.recruit::before { content:""; position:absolute; inset:0; border-radius:7px; background:#414c4299; z-index:-1; }
.recruit__content { min-height:525px; padding:80px 120px; }
.recruit__copy { width:700px; }
.recruit .section-label { color:#fff; }
.recruit .section-heading { color:#fff; font-size:32px; line-height:54px; margin-top:32px; letter-spacing:3.6px; }
.recruit .body-copy { width:600px; margin-top:26px; }
.recruit__benefits { display:flex; gap:10px; list-style:none; padding:0; margin:37.5px 0 0; }
.recruit__benefits li { border:1px solid #fff; border-radius:18px; padding:8px 15px; font-size:12px; font-weight:500; letter-spacing:.96px; line-height:18px; white-space:nowrap; }
.recruit__contact { position:absolute; top:212px; right:135px; width:290px; }
.recruit__contact p { margin-top:18px; font-size:12px; line-height:20px; letter-spacing:1.2px; text-align:center; }
.contact-cta { background:#36413a; color:#fff; text-align:center; padding:90px 20px 84px; }
.contact-cta h2 { font:500 34px/57.8px "Shippori Mincho B1",serif; letter-spacing:4.76px; color:#f5f2ea; }
.contact-cta p { margin-top:22px; font-size:14px; line-height:26.6px; letter-spacing:.6px; color:#bdb7a4; }
.contact-cta__buttons { display:flex; justify-content:center; gap:16px; margin-top:40px; }
.site-footer { background:#26241e; color:#b9b3a0; }
.site-footer__content { position:relative; display:grid; grid-template-columns:1fr 326px 240px; gap:60px; width:calc(100% - 340px); max-width:1100px; margin:auto; padding:70px 0 79px; }
.site-footer__logo { width:180px; }
.site-footer address { margin-top:20px; font-size:12px; font-style:normal; line-height:20px; letter-spacing:.6px; white-space:nowrap; }
.site-footer__nav { display:grid; grid-template-rows:repeat(4,24px); grid-auto-flow:column; grid-template-columns:148px 1fr; gap:15px 30px; font-size:13px; line-height:24px; letter-spacing:.5px; }
.site-footer__cta { display:grid; gap:20px; align-content:start; }
.site-footer__button { display:flex; align-items:center; justify-content:center; border:1px solid #686765; height:60px; font-size:14px; letter-spacing:.6px; }
.site-footer__social { position:absolute; left:0; top:186px; }
.site-footer__social img { filter:brightness(0) saturate(100%) invert(76%) sepia(10%) saturate(443%) hue-rotate(7deg) brightness(94%) contrast(90%); }
.site-footer__legal { display:flex; justify-content:center; align-items:center; min-height:60px; border-top:1px solid #686765; font-size:11px; letter-spacing:1.54px; }
.site-footer__legal small { font:inherit; }
@media(min-width:1280px) and (max-width:1399px) {
 .news__title { white-space:normal; }
 .recruit__content { padding-inline:80px; }
 .recruit__copy { width:600px; }
 .recruit .section-heading { font-size:28px; }
 .recruit .body-copy { width:560px; }
 .recruit__contact { right:60px; }
 .site-footer__content { width:calc(100% - 240px); gap:40px; }
}
/* SPは専用画像を使用し、写真自体の縦横比を変えない。 */
@media(max-width:1279px) {
 .container { width:calc(100% - 40px); max-width:680px; }
 .pc-br,.pc-text { display:none; } .sp-br { display:initial; } .sp-text { display:inline; }
 .section-label { padding-left:25px; }
 main .section-heading { margin-top:30px; font-size:28px; line-height:42px; }
 .minor-heading { font-size:24px; line-height:36px; }
 .action-button { font-size:15px; }
 .vertical-copy { gap:8px; }
 .vertical-copy__line { padding:9px; }
 .vertical-copy__line>span { font-size:16px; line-height:21px; }
 .hero { height:850px; margin-top:-88px; }
 .hero__photo { top:130px; width:calc(100% - 40px); max-width:680px; }
 .hero__family { top:340px; right:16px; width:154px; }
 .hero__vertical { left:20px; right:auto; top:90px; }
 .hero__copy { top:475px; left:20px; right:20px; }
 .hero__title { width:253px; margin:0; }
 main .hero__lead { margin-top:30px; font-size:15px; line-height:29.25px; }
 main .hero__note { margin-top:6px; font-size:9.5px; line-height:18px; letter-spacing:1px; }
 .hero__cta { display:flex; gap:10px; margin-top:33px; }
 .hero__cta .action-button { width:calc(50% - 5px); min-height:50px; padding:12px 5px; font-size:12px; letter-spacing:1.6px; gap:5px; }
 .introduction { height:600px; }
 .introduction::before { top:120px; width:76.923%; height:440px; }
 .introduction__image { left:20px; width:calc(100% - 20px); top:365px; }
 .introduction__heading { top:70px; right:78px; }
 .introduction__body { top:70px; right:202px; font-size:15px; }
 .features { height:700px; padding:70px 30px 50px; }
 .features__list { display:block; padding:0; }
 .features__item { min-height:116px; text-align:left; padding:8px 10px 20px; border-bottom:1px solid #ffffff4d; }
 .features__item+.features__item::before { display:none; }
 .features__icon { width:80px; position:absolute; top:0; right:20px; }
 main .features__value { margin:0; font-size:40px; line-height:55px; }
 main .features__value--0, main .features__value--4 { font-size:36px; line-height:55px; }
 .features__value small { font-size:18px; }
 main .features__caption { margin-top:2px; }
 .about { padding:0 0 112px; }
 .about__layout { display:flex; flex-direction:column-reverse; width:100%; min-height:0; }
 .about__visual { position:relative; top:auto; left:auto; width:100%; padding-top:140px; }
 .about__vertical { top:90px; right:20px; }
 .about__plant { top:310px; right:20px; width:100px; }
 .about__copy { width:calc(100% - 40px); max-width:680px; margin:66px auto 0; }
 .about .body-copy { margin-top:24px; }
 .about .body-copy p+p { margin-top:20px; }
 .wooden { padding-bottom:96px; }
 .wooden::before { inset:230px 0 0; }
 .wooden__top { min-height:0; }
 .wooden__visual { width:100%; }
 .wooden__birds { width:130px; top:-65px; }
 .wooden__copy { position:static; width:calc(100% - 40px); max-width:680px; margin:66px auto 0; }
 .wooden .body-copy { margin-top:24px; }
 .reasons { display:grid; grid-template-columns:1fr; gap:8px; margin-top:56px; }
 .reasons__item { min-height:104px; padding:20px 26px 22px; }
 .reasons__toggle { position:relative; cursor:pointer; }
 .reasons__heading { font-size:20px; line-height:30px; margin-top:8px; letter-spacing:1.9px; white-space:nowrap; }
 .reasons__body { margin-top:12px; line-height:24px; }
 .reasons__body[hidden] { display:none; }
 .reasons__indicator { position:absolute; right:0; top:4px; width:14px; height:14px; }
 .reasons__indicator::before,.reasons__indicator::after { position:absolute; content:""; background:#847250; }
 .reasons__indicator::before { width:14px; height:1px; top:6px; }
 .reasons__indicator::after { width:1px; height:14px; left:6px; }
 [aria-expanded="true"] .reasons__indicator::after { display:none; }
 .models { padding-bottom:69px; }
 .models__top { display:flex; flex-direction:column-reverse; min-height:0; }
 .models__visual { position:relative; width:100%; }
 .models__couple { width:66px; top:170px; right:30px; }
 .models__copy { width:auto; padding-top:79px; }
 .models .body-copy { margin-top:24px; }
 .models__grid { grid-template-columns:1fr; gap:30px; margin-top:50px; }
 .model-card__body { min-height:163px; }
 .model-card h3 { letter-spacing:1.44px; white-space:nowrap; }
 .news { padding:90px 0 70px; }
 .news__layout { display:block; }
 .news__heading { position:relative; padding:0; }
 .news__illustration { position:absolute; top:-18px; right:19px; width:51px; margin:0; }
 .news__list { margin-top:56px; }
 .news__item { display:grid; grid-template-columns:60px 72px 1fr; gap:8px 17px; padding:19.5px 0; min-height:102px; }
 .news__title { grid-column:1/-1; line-height:28px; white-space:normal; }
 .news__more { margin-top:48px; line-height:24px; }
 .access { padding:90px 0 70px; }
 .access__outline { grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row; margin:63px 0 70px; }
 .access__outline>div { display:block; min-height:80px; padding:4px 0 15px; }
 .access__outline dd { margin-top:4px; font-size:14.5px; letter-spacing:1px; }
 .access__map { width:100%; max-width:none; }
 .access__transport { display:block; min-height:300px; margin-top:47px; padding:0 20px; }
 .access__way { display:block; padding:16px 0 24px; }
 .access__way+.access__way { border-left:0; border-top:1px solid #c7c4be; padding:16px 0 24px; }
 .access__way h3 { gap:15px; }
 .access__way picture { width:40px; }
 .access__way p { margin-top:14px; font-size:14.5px; line-height:27px; }
 .around { padding:100px 0 100px; }
 .around__heading { display:block; }
 .around__heading .body-copy { width:auto; margin-top:24px; }
 .around-map { width:100%; margin:22px auto 54px; }
 .around-map__label { font-size:12px; line-height:16px; letter-spacing:0; }
 .around-map__label--spa { left:73.33%; top:67%; }
 .around-map__label--market { left:36.15%; top:67.6%; }
 .around-map__label--fish { left:11.79%; top:68%; }
 .around-map__label--cafe { left:6.15%; top:30%; }
 .around-map__label--park { left:30.25%; top:21%; }
 .around-map__note { bottom:-14px; right:20px; font-size:9px; }
 .around-map__logo { left:70.77%; top:8.125%; width:24.36%; }
 .around__grid { grid-template-columns:1fr; gap:30px; }
 .place-card { display:block; min-height:0; padding:19px 20px 20px; }
 .place-card__tag { padding:5px 15px; line-height:20px; }
 .place-card__body { margin-top:20px; }
 .place-card h3 { font-size:17px; line-height:25.5px; }
 .place-card__body p { margin-top:10px; font-size:12.5px; line-height:20px; }
 .place-card__link { margin:15px 0 0 auto; font-size:12px; }
 .recruit { width:calc(100% - 40px); max-width:680px; margin-bottom:80px; }
 .recruit__photo { z-index:0; }
 .recruit::before { z-index:1; }
 .recruit__photo img { height:auto; }
 .recruit__content { position:relative; z-index:2; display:block; min-height:724px; padding:50px 25px; }
 .recruit__copy { width:auto; max-width:none; }
 .recruit .section-label { font-size:11px; letter-spacing:3.52px; padding-left:25px; white-space:nowrap; }
 .recruit .section-heading { font-size:22px; line-height:33px; margin-top:32px; letter-spacing:3.6px; }
 .recruit .body-copy { width:auto; font-size:15px; line-height:28.5px; margin-top:21px; letter-spacing:.6px; }
 .recruit__benefits { flex-direction:column; align-items:flex-start; margin-top:30px; gap:10px; }
 .recruit__benefits li { padding:8px 15px; }
 .recruit__contact { position:static; width:auto; margin:31px -5px 0; }
 .recruit__contact .action-button { width:100%; }
 .recruit__contact p { margin-top:14px; font-size:12px; white-space:nowrap; }
 .contact-cta { padding:90px 20px 83px; }
 .contact-cta h2 { font-size:24px; line-height:42px; letter-spacing:3.6px; }
 .contact-cta p { margin-top:14px; }
 .contact-cta__buttons { flex-direction:column; align-items:center; gap:15px; margin-top:30px; }
 .site-footer__content { display:flex; flex-direction:column; gap:0; width:calc(100% - 60px); max-width:660px; padding:70px 0 30px; }
 .site-footer__logo { width:200px; }
 .site-footer address { margin-top:20px; }
 .site-footer__nav { grid-auto-flow:row; grid-template-rows:repeat(4,24px); grid-template-columns:1fr 1fr; column-gap:20px; row-gap:9px; margin-top:43px; font-size:13px; }
 .site-footer__cta { grid-template-columns:1fr 1fr; gap:18px; margin-top:30px; }
 .site-footer__button { height:50px; font-size:12px; letter-spacing:.3px; }
 .site-footer__social { position:static; margin-top:30px; }
 .site-footer__legal { font-size:11px; letter-spacing:1.54px; }
}
/* 中間幅では文章の可読幅を保ち、書き出し画像の比率のまま拡縮する。 */
@media(min-width:600px) and (max-width:1279px) {
 .hero { height:1150px; } .hero__copy { top:750px; left:max(20px,calc((100% - 680px)/2)); }
 .hero__family { top:600px; } .introduction__image { max-width:680px; }
 .introduction { height:720px; } .introduction::before { height:560px; }
 .about__plant { top:auto; bottom:-60px; } .models__couple { top:auto; bottom:-50px; }
 .models__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .model-card h3 { white-space:normal; }
 .around-map { max-width:680px; } .recruit { max-width:350px; }
}
@media(max-width:374px) {
 .hero__note { max-width:280px; letter-spacing:.2px; }
 .features { padding-inline:20px; } .features__icon { right:0; width:70px; }
 main .features__value--4 { font-size:30px; }
 .introduction__heading { right:25px; } .introduction__body { right:145px; }
 .reasons__heading { font-size:17px; letter-spacing:1px; white-space:normal; }
 .reasons__item { padding-inline:20px; } .model-card h3 { font-size:16px; }
 .contact-cta h2 { font-size:21px; } .contact-cta p { font-size:12px; }
 .recruit .section-heading { font-size:19px; letter-spacing:1.5px; }
 .recruit .section-label { height:auto; min-height:40px; white-space:normal; font-size:10px; letter-spacing:1.2px; }
 .model-card h3 { white-space:normal; }
 .recruit__content { padding-inline:20px; } .recruit__contact p { font-size:8px; }
 .site-footer address { font-size:10px; letter-spacing:.1px; }
 .site-footer__nav { font-size:10px; gap:9px 10px; }
 .site-footer__button { font-size:10px; } .site-footer__legal { font-size:9px; letter-spacing:.5px; }
}

/* ワイドPC：中央の本文幅を保ち、端まで続く写真だけを広げる。
   写真を通常フローに戻し、元画像の比率で増えた高さを次のセクションへ反映する。 */
@media (min-width:1441px) {
 .hero { height:auto; min-height:840px; padding-bottom:170px; }
 .hero__photo { position:relative; width:calc(50% + 240px); margin-left:auto; }
 .hero__family { top:auto; bottom:129px; }
 .introduction::before { width:calc(50% + 180px); }
 .introduction__image { left:calc((100% - 1280px)/2); width:960px; }
 .introduction__heading { right:calc((100% - 1260px)/2); }
 .introduction__body { right:calc((100% - 984px)/2); }
 .wooden__top { padding-bottom:80px; }
 .wooden__visual { width:calc(50% + 80px); }
 .wooden__copy { left:calc(50% + 168px); width:472px; }
 .models__top { padding-bottom:120px; }
 .models__top > .container { position:absolute; inset:0; }
 .models__visual { position:relative; width:calc(50% + 133px); margin-left:auto; }
 .models__couple { top:auto; bottom:-81px; }
}

/* モデルハウス詳細：共通テンプレート。TOPの既存ルールは変更しない。 */
@font-face { font-family:"Shippori Mincho B1 Detail"; src:url("../fonts/ShipporiMinchoB1-SemiBold.ttf") format("truetype"); font-weight:600; font-display:swap; }
.page-model .site-header { height:70px; padding:0 80px; border-bottom:1px solid #fff; }
.page-model .site-header__inner { height:100%; max-width:1280px; }
.page-model .site-header__brand { flex:0 0 137.226px; }
.page-model .site-header__brand img { width:137.226px; height:auto; }
.page-model .site-header__link { font-size:13px; }
.model-container { width:calc(100% - 80px); max-width:1100px; margin-inline:auto; }
.model-breadcrumb { height:110px; padding:25px 80px 0; font-size:11px; line-height:20px; letter-spacing:1.54px; }
.model-breadcrumb ol { display:flex; margin:0; padding:0; list-style:none; white-space:nowrap; }
.model-breadcrumb li+li::before { content:"／"; display:inline-block; margin-inline:7px; }
.model-breadcrumb a { text-decoration:underline; text-decoration-color:#dbd8d2; text-underline-offset:3px; }
.model-tabs { width:calc(100% - 80px); max-width:1100px; margin:auto; }
.model-tabs ul { display:grid; grid-template-columns:263fr 222fr 276fr 141fr 186fr; gap:3px; margin:0; padding:0; list-style:none; }
.model-tabs a { display:flex; align-items:center; justify-content:center; height:60px; padding:5px; border-radius:5px 5px 0 0; background:#fafafa; font-size:12px; line-height:20px; letter-spacing:.96px; text-align:center; white-space:nowrap; }
.model-tabs [aria-current="page"] { background:#4c584e; color:#fff; font-weight:700; }
.model-detail { padding:70px 0 117px; background:#fafafa; }
.model-eyebrow { display:flex; align-items:center; gap:6px; height:21px; padding-left:17px; position:relative; color:#4c584e; font-size:11px; font-weight:700; line-height:21px; letter-spacing:3.52px; }
.model-eyebrow::before { content:""; position:absolute; left:0; top:7px; width:7px; height:7px; background:#b9b3a0; clip-path:polygon(50% 0,100% 38%,81% 100%,19% 100%,0 38%); }
.model-intro__heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:19px; }
.model-intro h1 { color:#26241e; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:36px; line-height:54px; letter-spacing:3.6px; }
.model-intro__builder { display:flex; align-items:center; justify-content:center; width:105px; height:31px; flex-shrink:0; border-radius:3px; background:#ebeae8; color:#4c584e; font-size:12px; font-weight:500; letter-spacing:2.2px; }
.model-intro__photo { display:block; margin-top:36px; }
.model-intro__photo img { border-radius:2px; }
.model-overview { display:grid; grid-template-columns:minmax(0,550px) minmax(0,500px); grid-template-areas:"copy specs" "actions specs"; column-gap:50px; row-gap:35px; margin-top:100px; }
.model-overview__copy { grid-area:copy; margin-top:-8px; margin-left:-3px; }
.model-overview__copy h2 { color:#26241e; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:24px; line-height:42px; letter-spacing:3.6px; }
.model-overview__copy p { width:500px; max-width:100%; margin-top:22px; font-size:15px; line-height:28.5px; letter-spacing:.6px; }
.model-tags { display:flex; flex-wrap:wrap; gap:8px; margin:26.5px 0 0; padding:0; list-style:none; }
.model-tags li { display:flex; align-items:center; justify-content:center; height:35px; padding:0 12px; border:1px solid #b9b3a0; border-radius:18px; color:#26241e; font-size:12px; letter-spacing:.96px; white-space:nowrap; }
.model-tags li:nth-child(1) { width:129px; }
.model-tags li:nth-child(2) { width:103px; }
.model-tags li:nth-child(3) { width:77px; }
.model-tags li:nth-child(4) { width:141px; }
.model-specs { grid-area:specs; margin:0; align-self:start; }
.model-specs>div { display:grid; grid-template-columns:120px 1fr; align-items:center; min-height:69px; border-top:1px solid #dbd8d2; }
.model-specs>div:last-child { border-bottom:1px solid #dbd8d2; }
.model-specs dt { font-size:14px; font-weight:500; line-height:26px; letter-spacing:1.96px; color:#4c584e; }
.model-specs dd { margin:0; font-size:14.5px; line-height:26px; letter-spacing:1px; color:#26241e; }
.model-actions { display:flex; gap:14px; }
.model-button { display:flex; align-items:center; justify-content:center; gap:10px; width:290px; max-width:100%; min-height:63px; padding:10px; border:1px solid #4c584e; border-radius:1px; color:#4c584e; font-size:15px; font-weight:500; line-height:24px; letter-spacing:1.6px; text-align:center; }
.model-button--green { background:#4c584e; color:#fff; }
.model-button--gold { background:#847250; border-color:#847250; color:#fff; }
.model-button--builder { background:#b9b3a0; border-color:#b9b3a0; color:#fff; }
.model-overview__actions { grid-area:actions; flex-direction:column; margin-left:-3px; }
.model-floorplan { margin-top:140px; background:#fff; }
.model-floorplan__image { display:block; }
.model-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:80px; }
.model-gallery__photo { display:block; }
.model-gallery__photo img { aspect-ratio:3 / 2; }
.model-builder { margin-top:110px; box-shadow:inset 0 0 0 1px #c0c0c0; }
.model-builder__label { display:flex; align-items:center; height:36px; padding:0 25px; background:#4c584e; color:#fff; font-size:12px; font-weight:700; line-height:20px; letter-spacing:1.6px; }
.model-builder__content { display:grid; grid-template-columns:240px minmax(0,360px) 360px; align-items:center; justify-content:space-between; gap:30px; padding:31.5px 26px; min-height:224px; }
.model-builder__photo { display:block; }
.model-builder__copy h3 { color:#26241e; font-family:"Shippori Mincho B1",serif; font-size:17px; font-weight:500; line-height:28px; letter-spacing:1.36px; }
.model-builder__copy p { margin-top:8px; font-size:12.5px; line-height:20px; letter-spacing:.6px; }
.model-builder__links { display:grid; gap:10px; }
.model-builder__links .model-button { width:100%; min-height:47px; padding:8px; }
.model-detail__actions { justify-content:center; margin-top:80px; }
.model-return { display:flex; justify-content:center; margin-top:136px; }
.model-return a { display:flex; gap:8px; align-items:flex-start; min-height:34px; border-bottom:1px solid #686765; font-size:12px; font-weight:500; line-height:24px; letter-spacing:2.16px; }
.model-visit { position:relative; isolation:isolate; }
.model-visit__photo { display:block; }
.model-visit::after { content:""; position:absolute; inset:0; z-index:1; background:rgb(0 0 0 / .4); pointer-events:none; }
.model-visit__content { position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; padding-top:148px; color:#fff; text-align:center; }
.model-visit h2 { padding-left:4.76px; font-family:"Shippori Mincho B1 Detail",serif; font-weight:600; font-size:34px; line-height:51px; letter-spacing:4.76px; }
.model-visit p { margin-top:16px; font-size:14px; font-weight:500; line-height:26px; letter-spacing:.6px; }
.model-visit .model-button { margin-top:35px; }
@media (min-width:1441px) {
 .model-breadcrumb { padding-inline:calc((100% - 1280px)/2); }
 .model-visit__content { justify-content:center; padding-top:7px; }
}
.page-model .site-footer__button { font-size:12px; }
.page-model .site-footer__nav a { white-space:nowrap; }
@media (min-width:1280px) and (max-width:1399px) {
 .page-model .site-header { padding-inline:40px; }
 .model-breadcrumb { padding-inline:40px; }
}
@media (max-width:1279px) {
 .page-model .site-header { height:60px; padding:0 20px; }
 .page-model .site-header__brand { flex:0 0 120px; }
 .page-model .site-header__brand img { width:120px; }
 .model-container { width:calc(100% - 40px); max-width:680px; }
 .model-breadcrumb { height:61px; padding:20px 20px 0; overflow-x:auto; scrollbar-width:none; }
 .model-breadcrumb li+li::before { margin-inline:5px; }
 .model-tabs { width:100%; max-width:none; overflow-x:auto; scrollbar-width:none; }
 .model-tabs ul { display:flex; width:max-content; gap:3px; }
 .model-tabs li { width:100px; flex-shrink:0; }
 .model-tabs a { height:69px; padding:10px 3px; font-size:11px; line-height:16px; letter-spacing:0; }
 .model-detail { padding:40px 0 58px; }
 .model-eyebrow { white-space:nowrap; }
 .model-intro__heading { display:block; margin-top:17px; }
 .model-intro h1 { font-size:24px; line-height:36px; }
 .model-intro__heading .model-intro__builder { margin-top:11px; }
 .model-intro__photo { margin-top:30px; }
 .model-overview { display:flex; flex-direction:column; gap:0; margin-top:33px; }
 .model-overview__copy { margin:0; }
 .model-overview__copy h2 { font-size:20px; line-height:35px; letter-spacing:2px; }
 .model-overview__copy p { margin-top:22px; }
 .model-tags { margin-top:25.5px; }
 .model-specs { width:100%; margin-top:32px; }
 .model-specs>div { display:block; min-height:80px; padding:14px 0 12px; }
 .model-specs dt { line-height:22px; }
 .model-specs dd { margin-top:2px; line-height:28px; }
 .model-overview__actions { flex-direction:row; gap:10px; margin:31px 0 0; }
 .model-button { width:100%; min-height:50px; padding:10px 5px; gap:10px; }
 .model-floorplan { width:100%; margin-top:30px; }
 .model-gallery { width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 2px; margin-top:30px; }
 .model-builder { margin-top:61px; }
 .model-builder__content { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:25px 24px 31px 26px; }
 .model-builder__copy { margin-top:18px; }
 .model-builder__links { margin-top:22px; }
 .model-builder__links .model-button { min-height:47px; }
 .model-detail__actions { margin-top:60px; gap:16px; }
 .model-return { margin-top:59px; }
 .model-visit { max-width:680px; margin:auto; }
 .model-visit h2 { font-size:24px; line-height:36px; }
 .model-visit p { margin-top:27px; }
 .model-visit .model-button { margin-top:38px; width:261.56px; min-height:63px; }
 .model-visit__content { padding:91px 15px 0; }
}
/* 375px付近ではパンくずの末尾を次行へ送り、文字を画面外で切らない。 */
@media (max-width:389px) {
 .model-breadcrumb ol { flex-wrap:wrap; }
}
@media (max-width:374px) {
 .model-eyebrow { letter-spacing:2px; font-size:10px; }
 .model-button { font-size:12px; gap:7px; }
 .model-builder__label { padding-inline:15px; font-size:10px; letter-spacing:1px; }
 .model-builder__content { padding-inline:15px; }
 .model-builder__links .model-button { font-size:12px; letter-spacing:1px; }
 .model-visit h2 { font-size:21px; letter-spacing:3px; }
 .model-visit p { font-size:12px; margin-top:20px; }
 .model-visit .model-button { margin-top:20px; }
 .model-visit__content { padding-top:55px; }
 .page-model .site-footer__button { font-size:10px; }
}


/* フォーム共通：page-form内に限定し、TOP・モデルハウス詳細に影響させない。 */
.page-form .site-header { height:70px; padding:0 80px; border-bottom:1px solid #fff; }
.page-form .site-header__inner { height:100%; max-width:1280px; }
.page-form .site-header__brand { flex:0 0 137.226px; }
.page-form .site-header__brand img { width:137.226px; height:auto; }
.page-form .site-header__link { font-size:13px; }
.page-form .site-footer__button { font-size:12px; }
.page-form .site-footer__nav a { white-space:nowrap; }
.form-page { color:#26241e; }
.form-hero { position:relative; }
.form-hero__photo { display:block; }
.form-hero__photo img { width:100%; height:auto; }
.form-hero::after { content:""; position:absolute; inset:0; background:rgb(0 0 0 / 20%); pointer-events:none; }
.form-hero__heading { position:absolute; z-index:1; top:calc(50% - 50px); left:80px; color:#fff; }
.form-hero__heading p { font-size:11px; font-weight:700; letter-spacing:3.52px; line-height:20px; }
.form-hero__heading h1 { margin-top:23px; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:36px; line-height:54px; letter-spacing:3.6px; }
.form-breadcrumb { padding:25px 80px 0; height:110px; color:#686765; font-size:11px; line-height:20px; letter-spacing:1.54px; }
.form-breadcrumb ol { display:flex; margin:0; padding:0; list-style:none; }
.form-breadcrumb li+li::before { content:"／"; display:inline-block; margin-inline:5px; }
.form-breadcrumb a { text-decoration:underline; text-decoration-color:#dbd8d2; text-underline-offset:3px; }
.form-page__content { padding:0 20px 120px; }
.form-page__intro { text-align:center; font-size:14px; line-height:26.6px; letter-spacing:.6px; }
.form-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; width:716.01px; max-width:100%; margin:43.4px auto 43px; padding:0; list-style:none; }
.form-steps li { display:flex; align-items:center; justify-content:center; min-height:47px; background:#fff; color:#686765; font-size:12px; font-weight:500; line-height:22.8px; letter-spacing:1.68px; }
.form-steps [aria-current="step"] { background:#4c584e; color:#fff; font-weight:700; }
.form-panel { width:800px; max-width:100%; margin:0 auto; padding:56px 48px 44.4px; border-radius:3px; background:#fff; }
.form-field { min-inline-size:0; margin:0 0 28px; padding:0; border:0; }
.form-field__label { display:flex; align-items:center; gap:9px; width:100%; min-height:27px; margin:0 0 10px; padding:0; font-size:14px; font-weight:700; line-height:27px; letter-spacing:1.12px; }
.form-field__badge { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; height:23px; min-width:38.41px; padding:0 8px; border-radius:2px; background:#a0522d; color:#fff; font-size:10px; line-height:19px; letter-spacing:1.2px; }
.form-field__badge--optional { background:#a9a9a8; }
.form-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.form-choice { display:flex; align-items:center; gap:10px; min-width:0; min-height:51.65px; padding:12px 14px; border:1px solid #d9d2bf; border-radius:3px; background:#f5f2ea; color:#26241e; font-size:13.5px; line-height:25.65px; letter-spacing:.6px; cursor:pointer; }
.form-choices--materials .form-choice { min-height:78px; }
.form-choice input { flex:0 0 13px; width:13px; height:13px; margin:0; accent-color:#0075ff; cursor:pointer; }
.form-choice span { min-width:0; }
.form-choice:has(input:checked) { border-color:#4c584e; background:#eef2ea; font-weight:700; }
.form-choice:has(input:focus-visible) { outline:2px solid #4c584e; outline-offset:3px; }
.form-field__input { display:block; width:100%; height:48px; border:1px solid #d9d2bf; border-radius:3px; padding:12px 14px; background:#f5f2ea; color:#26241e; font:400 14px/20px "Zen Kaku Gothic New",sans-serif; letter-spacing:.56px; }
.form-field__input::placeholder { color:#686765; opacity:1; }
textarea.form-field__input { height:128px; resize:vertical; }
.form-field__input:focus-visible { outline:2px solid #4c584e; outline-offset:3px; }
.form-panel__actions { display:flex; justify-content:center; padding-top:20px; }
.form-submit { display:flex; align-items:center; justify-content:center; gap:8px; width:290px; max-width:100%; min-height:63px; padding:14px; border:0; border-radius:2px; background:#4c584e; color:#fff; font-size:15px; font-weight:500; line-height:28.5px; letter-spacing:1.6px; }
.form-submit:disabled { cursor:default; }
.form-panel__notice { margin-top:36px; text-align:center; font-size:12px; line-height:22.8px; letter-spacing:.6px; }
.form-panel__notice a { text-decoration:underline; text-underline-offset:2px; }
.form-panel__status { margin-top:24px; font-size:13px; line-height:1.9; }
.form-panel__status[hidden] { display:none; }
@media (min-width:1441px) {
  .form-hero__heading { left:calc((100% - 1280px)/2); }
  .form-breadcrumb { padding-inline:calc((100% - 1280px)/2); }
}
@media (min-width:1280px) and (max-width:1399px) {
  .page-form .site-header { padding-inline:40px; }
  .form-hero__heading { left:40px; }
  .form-breadcrumb { padding-inline:40px; }
}
@media (max-width:1279px) {
  .page-form .site-header { height:60px; padding:0 20px; }
  .page-form .site-header__brand { flex:0 0 120px; }
  .page-form .site-header__brand img { width:120px; }
  .form-hero__heading { top:calc(50% - 32.45px); left:20px; }
  .form-hero__heading h1 { margin-top:12px; font-size:20px; line-height:30px; }
  .form-breadcrumb { height:90px; padding:10px 20px 0; }
  .form-page__content { padding-bottom:100px; }
  .form-steps { width:350px; margin-top:50.8px; margin-bottom:30px; }
  .form-panel { width:350px; padding:42px 30px 30.6px; }
  .form-field--type { margin-bottom:16px; }
  .form-choices { grid-template-columns:minmax(0,1fr); gap:6px; }
  .form-choice { min-height:50px; }
  .form-choices--type .form-choice { padding-block:11px; }
  .form-choices--materials .form-choice { padding-block:12px; }
  .form-choices--materials .form-choice:nth-child(2) { min-height:103px; }
  .form-field__input::placeholder { color:#757575; }
  .form-panel__notice { text-align:left; }
}
@media (max-width:374px) {
  .page-form .site-footer__button { font-size:10px; }
  .form-panel { padding-inline:20px; }
  .form-steps li { letter-spacing:1px; }
}

/* 見学予約：共通フォームの幅を継承し、差分はこのページ内に限定する。 */
.page-reservation .form-hero::after { content:none; }
.page-reservation .reservation-duration { display:flex; align-items:center; justify-content:center; width:220px; height:31px; margin:23.4px auto 0; border-radius:3px; background:#fff; color:#546056; font-size:12px; font-weight:500; line-height:22.8px; letter-spacing:2.2px; white-space:nowrap; }
.page-reservation .form-steps { margin-top:79px; }
.page-reservation .form-panel { padding-top:52px; }
.page-reservation .form-page__content { padding-bottom:148.07px; }
.page-reservation .reservation-models .form-choice { min-height:77.3px; }
.page-reservation .reservation-times { grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-reservation .reservation-times .form-choice { justify-content:center; min-height:52px; }
.page-reservation textarea.form-field__input { height:108px; }
.page-reservation .form-field__input::placeholder { color:#757575; }
.page-reservation .reservation-date { position:relative; }
.page-reservation .reservation-date input { height:50px; min-width:0; }
.page-reservation .reservation-date__placeholder { display:none; position:absolute; top:15px; left:20px; pointer-events:none; font-size:14px; line-height:20px; letter-spacing:.56px; }
.page-reservation .reservation-date.is-empty:not(:focus-within) .reservation-date__placeholder { display:block; }
.page-reservation .reservation-date.is-empty:not(:focus-within) input { color:transparent; }
/* 日付の編集・カレンダー操作時はブラウザ標準UIを表示する。 */
.page-reservation .reservation-date input::-webkit-calendar-picker-indicator { opacity:0; }
.page-reservation .reservation-date:focus-within input::-webkit-calendar-picker-indicator,
.page-reservation .reservation-date:hover input::-webkit-calendar-picker-indicator { opacity:1; }
@media (max-width:1279px) {
  .page-reservation .reservation-duration { margin-top:20.8px; }
  .page-reservation .form-steps { margin-top:70px; }
  .page-reservation .form-panel { padding-top:30px; }
  .page-reservation .form-page__content { padding-bottom:100px; }
  .page-reservation .reservation-models .form-choice { min-height:78px; }
  .page-reservation .reservation-models .form-choice:last-child { min-height:50px; padding-block:11px; }
  .page-reservation .reservation-times { grid-template-columns:minmax(0,1fr); }
  .page-reservation .reservation-times .form-choice { justify-content:flex-start; min-height:50px; padding-block:11px; }
  .page-reservation textarea.form-field__input { height:128px; }
}

/* 新規加盟店募集：全幅写真と既存フォーム幅を継承し、ページ固有の募集文だけを調整。 */
.page-recruit .recruit-intro { max-width:800px; margin-inline:auto; }
.page-recruit .recruit-intro__eyebrow { color:#686765; text-align:center; font-size:15px; line-height:28.5px; letter-spacing:.6px; }
.page-recruit .recruit-intro h2 { margin-top:21.5px; padding-left:3.6px; text-align:center; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:24px; line-height:38px; letter-spacing:3.6px; }
.page-recruit .form-page__intro { margin-top:44px; }
.page-recruit .form-steps { margin-top:73.6px; }
.page-recruit .recruit-inquiry-type__value { font-size:13.5px; line-height:26px; letter-spacing:.6px; }
@media (max-width:1279px) {
  .page-recruit .recruit-intro { max-width:350px; }
  .page-recruit .recruit-intro h2 { margin-top:15.5px; }
  /* Figmaの24文字行に合わせ、行末に加わる字間0.6pxだけを本文枠外へ逃がす。 */
  .page-recruit .form-page__intro { margin-top:35px; margin-right:-.6px; text-align:left; }
  .page-recruit .form-steps { margin-top:50.4px; }
}

/* イベント一覧・詳細：外側は全幅、一覧800px・詳細960px（本文800px）を個別に維持。 */
.page-events .events-page { color:#26241e; }
.page-events .event-category { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; width:72px; height:27px; border:1px solid #4c584e; border-radius:14px; color:#4c584e; font-size:10px; font-weight:500; line-height:19px; letter-spacing:2px; }
.page-events .event-category--event { color:#847250; border-color:#847250; }
.page-events .event-meta { display:flex; align-items:center; gap:12px; }
.page-events .event-meta time { color:#55503f; font-size:13px; line-height:24.7px; letter-spacing:1.3px; white-space:nowrap; }
.page-events .event-list { width:calc(100% - 40px); max-width:800px; margin:auto; padding-bottom:120px; }
.page-events .event-list__heading { display:flex; align-items:center; gap:25px; height:96px; }
.page-events .event-list__heading picture { flex:0 0 55px; }
.page-events .event-list__heading img { width:55px; height:auto; }
.page-events .event-list__heading h1 { color:#26241e; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:28px; line-height:42px; letter-spacing:3.6px; }
.page-events .event-list__heading p { margin-top:8px; color:#4c584e; font-size:11px; font-weight:700; line-height:20px; letter-spacing:3.52px; }
.page-events .event-list__items { list-style:none; margin:44px 0 0; padding:1px 0 0; box-shadow:inset 0 1px #bdb7a4; }
.page-events .event-list__item { margin:0; box-shadow:inset 0 -1px #bdb7a4; }
.page-events .event-list__link { display:flex; align-items:center; gap:24px; min-height:71px; padding:15px 6px; }
.page-events .event-list__link .event-meta { flex-shrink:0; gap:20px; }
.page-events .event-list__link time { color:#686765; }
.page-events .event-list__title { color:#26241e; font-size:14.5px; line-height:27.55px; letter-spacing:1px; }
.page-events .event-list__link[href]:hover .event-list__title { text-decoration:underline; text-underline-offset:4px; }
.page-events .event-list__link[aria-disabled] { cursor:default; }
.page-events .event-pagination { display:flex; align-items:center; justify-content:center; gap:24px; height:35px; margin-top:40px; color:#26241e; font-size:14.5px; line-height:27.55px; letter-spacing:1px; }
.page-events .event-pagination a { cursor:default; }
.page-events .event-pagination__marked { text-decoration:underline; text-underline-offset:8px; }
.page-events .event-article { width:calc(100% - 40px); max-width:960px; margin:auto; padding:60px 80px 80px; background:#fafafa; }
.page-events .event-article h1 { margin-top:19px; color:#26241e; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:36px; line-height:54px; letter-spacing:3.6px; }
.page-events .event-article__visual { display:flex; align-items:center; justify-content:center; aspect-ratio:2 / 1; margin-top:46px; border:1px solid rgb(189 183 164 / .5); border-radius:3px; background:#ede8db; color:#55503f; font-size:10px; line-height:19px; letter-spacing:2.2px; }
.page-events .event-article__lead,
.page-events .event-section>p,
.page-events .event-section>ul { color:#686765; font-size:15px; line-height:28.5px; letter-spacing:.6px; }
.page-events .event-article__lead { margin-top:50px; }
.page-events .event-article__apply { display:flex; justify-content:center; margin-top:50.5px; }
.page-events .event-section { margin-top:50px; }
.page-events .event-section h2 { border-left:1px solid #4c584e; padding-left:14px; color:#26241e; font-family:"Shippori Mincho B1",serif; font-weight:500; font-size:20px; line-height:35px; letter-spacing:2px; }
.page-events .event-section>p,
.page-events .event-section>ul { margin-top:20px; }
.page-events .event-section>ul { list-style:none; padding:0; }
.page-events .event-section>ul li::before { content:"・"; }
.page-events .event-section--program,
.page-events .event-section--overview { margin-top:50.5px; }
.page-events .event-section--overview h2,
.page-events .event-section--application h2 { line-height:38px; }
.page-events .event-overview { margin-top:20px; padding-top:1px; box-shadow:inset 0 1px #bdb7a4; }
.page-events .event-overview>div { display:grid; grid-template-columns:120px minmax(0,1fr); align-items:center; min-height:69px; border-bottom:1px solid #bdb7a4; }
.page-events .event-overview dt { color:#4c584e; font-size:14px; font-weight:500; line-height:26.6px; letter-spacing:1.96px; }
.page-events .event-overview dd { margin:0; color:#26241e; font-size:14.5px; line-height:27.55px; letter-spacing:1px; }
.page-events .event-section--application { margin-top:70px; scroll-margin-top:20px; }
.page-events .event-section--application .form-panel { margin-top:20px; }
.page-events .event-inquiry-type { font-size:13.5px; line-height:26px; letter-spacing:.6px; }
.page-events .event-return { display:flex; justify-content:center; margin:120px 20px; }
.page-events .event-return a { display:flex; align-items:flex-start; gap:8px; height:31px; border-bottom:1px solid #26241e; color:#26241e; font-size:12px; font-weight:500; line-height:24px; letter-spacing:2.16px; }
@media (max-width:1279px) {
  .page-events .form-breadcrumb { height:60px; padding-top:20px; }
  .page-events .event-list { max-width:680px; padding-top:20px; padding-bottom:60px; }
  .page-events .event-list__heading { height:84px; gap:20px; }
  .page-events .event-list__heading picture { flex-basis:48px; }
  .page-events .event-list__heading img { width:48px; }
  .page-events .event-list__heading h1 { font-size:24px; line-height:36px; }
  .page-events .event-list__heading p { margin-top:10px; }
  .page-events .event-list__items { margin-top:36px; }
  .page-events .event-list__link { display:block; min-height:129px; padding:20px 0; }
  .page-events .event-list__item--short .event-list__link { min-height:101px; }
  .page-events .event-list__link .event-meta { gap:7.62px; }
  .page-events .event-list__title { display:block; margin-top:5px; }
  .page-events .event-pagination { margin-top:45px; }
  .page-events .event-article { width:100%; max-width:680px; padding:40px 20px 60px; }
  .page-events .event-article h1 { margin-top:17px; font-size:20px; line-height:35px; letter-spacing:2px; }
  .page-events .event-article__visual { margin-top:28px; }
  .page-events .event-article__lead { margin-top:30px; }
  .page-events .event-article__apply .form-submit { min-height:60px; }
  .page-events .event-section h2 { padding-left:10px; font-size:18px; line-height:24px; }
  .page-events .event-section>p,
  .page-events .event-section>ul { margin-top:12px; }
  .page-events .event-section--program,
  .page-events .event-section--overview { margin-top:40.5px; }
  .page-events .event-overview { margin-top:12px; }
  .page-events .event-overview>div { display:block; min-height:80px; padding:12px 0; }
  .page-events .event-overview dd { margin-top:.4px; }
  .page-events .event-section--application { margin-top:40px; }
  .page-events .event-section--application .form-panel { padding-top:30px; }
  .page-events .event-return { margin-block:70px; }
}
