/*
 * ふきや お子様連れのお客様向けページ
 * .family-lp 以下が本番用ページ固有範囲です。
 * preview-* はオフライン確認用の共通部にのみ使用します。
 */
.family-lp {
  --fukiya-ink: #252823;
  --fukiya-green: #183a30;
  --fukiya-green-deep: #102a23;
  --fukiya-paper: #f3efe5;
  --fukiya-paper-deep: #e9e3d5;
  --fukiya-white: #fffefa;
  --fukiya-line: rgba(37, 40, 35, .22);
  --fukiya-serif: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", "Noto Serif JP", serif;
  --fukiya-sans: "Helvetica Neue", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

.family-page #wrapper { min-width: 0; }
.family-page #header_wrap, #contents.family-lp { width: 100%; }

.preview-header {
  position: relative; z-index: 30; height: 102px; padding: 0 4.2vw; display: flex; align-items: center;
  color: var(--fukiya-ink); background: rgba(250,248,242,.98); border-bottom: 1px solid rgba(0,0,0,.08);
}
.preview-logo { width: 178px; text-decoration: none; display: flex; flex-direction: column; align-items: center; line-height: 1; }
.preview-logo span { font-size: 32px; letter-spacing: .32em; margin-right: -.32em; }
.preview-logo small { margin-top: 9px; font: 8px/1.2 var(--fukiya-sans); letter-spacing: .12em; }
.preview-nav { display: flex; gap: clamp(18px, 2.3vw, 42px); margin-left: auto; margin-right: 4vw; }
.preview-nav a { font-size: 12px; text-decoration: none; letter-spacing: .14em; }
.preview-menu { width: 72px; height: 72px; display: grid; place-content: center; gap: 9px; text-decoration: none; text-align: center; font: 9px/1 var(--fukiya-sans); letter-spacing: .12em; border-left: 1px solid rgba(0,0,0,.1); }
.preview-menu span, .preview-menu span::before { width: 24px; height: 1px; display: block; background: var(--fukiya-ink); content: ""; }
.preview-menu span::before { transform: translateY(6px); }
.preview-reserve { min-height: 74px; padding: 14px 5vw; display: flex; justify-content: flex-end; align-items: center; gap: 3vw; color: #fff; background: var(--fukiya-green); font-size: 12px; letter-spacing: .1em; }
.preview-reserve p { margin-right: auto; }
.preview-reserve a { min-width: 150px; padding: 13px 20px; text-align: center; text-decoration: none; border: 1px solid rgba(255,255,255,.42); }

.family-header-visual { position: relative; }
#header_wrap .family-header-visual .family-hero__content { padding-top: clamp(180px, 14vw, 220px); }
#header_wrap .family-header-visual .family-button--light { color: var(--fukiya-green-deep); background: var(--fukiya-white); border-color: var(--fukiya-white); }
#header_wrap .family-header-visual .family-button--light:hover { color: #fff; background: transparent; }

.family-lp {
  --content: 1160px;
  overflow: hidden; color: var(--fukiya-ink); background: var(--fukiya-paper);
  font-family: var(--fukiya-serif); font-size: 15px; line-height: 2.08; letter-spacing: .045em;
  font-kerning: normal; font-feature-settings: "palt" 1; text-rendering: optimizeLegibility;
}
.family-lp *, .family-lp *::before, .family-lp *::after { box-sizing: border-box; }
.family-lp h1, .family-lp h2, .family-lp h3, .family-lp p, .family-lp figure, .family-lp blockquote, .family-lp dl, .family-lp dd { margin-top: 0; }
.family-lp h2 { margin-bottom: 42px; font-size: clamp(30px, 3.35vw, 52px); font-weight: 400; line-height: 1.68; letter-spacing: .09em; }
.family-lp h2, .family-lp h3 { text-wrap: balance; line-break: strict; }
.family-lp p, .family-lp li, .family-lp dt, .family-lp dd, .family-lp blockquote { line-break: strict; word-break: normal; overflow-wrap: break-word; }
.family-lp a { text-underline-offset: .25em; }
.family-section { position: relative; padding: clamp(110px, 12vw, 190px) max(6vw, calc((100vw - var(--content)) / 2)); }
.family-kicker, .family-eyebrow { margin-bottom: 22px; color: #5f6f65; font: 500 11px/1.5 var(--fukiya-sans); letter-spacing: .34em; }
.family-button {
  min-width: 350px; min-height: 70px; padding: 20px 28px; display: inline-flex; align-items: center; justify-content: space-between; gap: 24px;
  color: #fff; background: var(--fukiya-green); border: 1px solid var(--fukiya-green); text-decoration: none; font-size: 14px; letter-spacing: .1em;
  transition: background .35s ease, color .35s ease;
}
.family-button:hover { color: var(--fukiya-green); background: transparent; }
.family-button--light { color: var(--fukiya-green-deep); background: var(--fukiya-white); border-color: var(--fukiya-white); }
.family-button--light:hover { color: #fff; background: transparent; }
.family-text-link { min-width: 245px; padding: 14px 0; display: inline-flex; justify-content: space-between; gap: 30px; text-decoration: none; border-bottom: 1px solid currentColor; font-size: 13px; letter-spacing: .12em; }
.family-text-link--light { color: #fff; }
.family-actions { margin-top: 42px; display: flex; align-items: center; flex-wrap: wrap; gap: 24px 36px; }
.family-actions--center { justify-content: center; }
.family-note { color: #6d706b; font-size: 12px; line-height: 1.85; }
.family-note--center { margin-top: 45px; text-align: center; }

.family-hero { position: relative; height: min(820px, calc(100vh - 176px)); min-height: 680px; color: #fff; }
.family-hero__image { position: absolute; inset: 0; background: url("../images/room-family.jpg") center / cover no-repeat; transform: scale(1.015); }
.family-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(12,25,20,.78) 0%, rgba(12,25,20,.42) 45%, rgba(12,25,20,.06) 78%), linear-gradient(0deg, rgba(0,0,0,.25), transparent 48%); }
.family-hero__content { position: relative; z-index: 1; width: min(560px, 54vw); height: 100%; margin-left: max(7vw, calc((100vw - var(--content)) / 2)); padding-top: clamp(70px, 8vw, 120px); }
.family-hero .family-eyebrow { color: rgba(255,255,255,.7); }
.family-hero__title { margin: 0 0 30px; font-size: clamp(34px, 4.1vw, 62px); font-weight: 400; line-height: 1.45; letter-spacing: .18em; }
.family-hero__copy { margin-bottom: 20px; font-size: clamp(19px, 1.8vw, 28px); line-height: 1.8; letter-spacing: .13em; }
.family-hero__lead { color: rgba(255,255,255,.82); font-size: 13px; line-height: 2; }
.family-actions--hero { margin-top: 28px; }
.family-actions--hero .family-button { min-width: 306px; min-height: 60px; }
.family-hero__vertical { position: absolute; z-index: 2; right: 6vw; top: 14%; writing-mode: vertical-rl; font-size: 15px; letter-spacing: .42em; }
.family-scroll { position: absolute; z-index: 2; right: 3.5vw; bottom: 36px; padding-bottom: 63px; font: 9px/1 var(--fukiya-sans); letter-spacing: .22em; writing-mode: vertical-rl; }
.family-scroll::after { position: absolute; left: 50%; bottom: 0; width: 1px; height: 48px; background: rgba(255,255,255,.7); content: ""; }

.family-intro { background: var(--fukiya-paper); }
.family-intro::before { position: absolute; top: 0; left: 10vw; width: 1px; height: 78px; background: var(--fukiya-line); content: ""; }
.family-intro__inner { width: min(100%, 980px); margin: 0 auto; display: grid; grid-template-columns: 1fr .92fr; gap: 9vw; align-items: start; }
.family-intro h2 { margin-bottom: 0; font-size: clamp(30px, 3.1vw, 46px); }
.family-intro__body { padding-top: 62px; }
.family-intro__body p { margin-bottom: 32px; }

.family-promises { min-height: 900px; padding-left: max(4vw, calc((100vw - 1280px) / 2)); padding-right: max(5vw, calc((100vw - 1280px) / 2)); display: grid; grid-template-columns: 1.08fr .92fr; gap: clamp(65px, 8vw, 130px); align-items: center; background: var(--fukiya-white); }
.family-promises__image { position: relative; align-self: stretch; min-height: 630px; overflow: hidden; }
.family-promises__image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.72); }
.family-promises__image span { position: absolute; left: 36px; bottom: 38px; padding: 20px 24px; color: #fff; background: rgba(17,45,36,.85); font-size: 14px; line-height: 2; letter-spacing: .16em; }
.family-promises h2 { font-size: clamp(28px, 2.75vw, 43px); }
.family-promises__list > div { padding: 26px 0; border-top: 1px solid var(--fukiya-line); }
.family-promises__list > div:last-child { border-bottom: 1px solid var(--fukiya-line); }
.family-promises dt { margin-bottom: 7px; font-size: 20px; letter-spacing: .12em; }
.family-promises dd { color: #676b65; font-size: 13px; line-height: 1.85; }

.family-room-dining { min-height: 920px; padding-top: 170px; display: grid; grid-template-columns: minmax(0,1.28fr) minmax(340px,.72fr); gap: clamp(60px, 8vw, 120px); align-items: center; background: var(--fukiya-paper-deep); }
.family-room-dining__visual { position: relative; height: 650px; margin-left: calc(max(6vw, (100vw - var(--content)) / 2) * -1); }
.family-room-dining__visual::before { position: absolute; z-index: 1; top: -32px; right: -32px; width: 56%; height: 56%; border: 1px solid rgba(24,58,48,.35); content: ""; }
.family-room-dining__visual img { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; }
.family-room-dining__copy { position: relative; z-index: 2; }
.family-room-dining__copy h2 { font-size: clamp(32px, 3vw, 48px); }
.family-room-dining__copy blockquote { margin: 34px 0; padding: 0 0 0 24px; border-left: 1px solid var(--fukiya-green); color: var(--fukiya-green); font-size: 14px; line-height: 2; }
.family-room-dining__kanji { position: absolute; right: -20px; bottom: 20px; color: rgba(24,58,48,.045); font-size: 190px; line-height: 1; writing-mode: vertical-rl; }

.family-meal { background: var(--fukiya-paper); }
.family-meal__heading { width: min(100%, 1050px); margin: 0 auto 85px; display: grid; grid-template-columns: 1fr .76fr; gap: 9vw; align-items: end; }
.family-meal__heading h2 { margin-bottom: 0; }
.family-meal__heading > p { margin-bottom: 10px; }
.family-meal__photo { position: relative; width: min(100%, 1080px); margin: 0 auto; }
.family-meal__photo img { width: 83%; height: 650px; object-fit: cover; }
.family-meal__photo figcaption, .family-choices figcaption { margin-top: 12px; color: #6f726c; font-size: 11px; letter-spacing: .12em; }
.family-meal__menu { width: 480px; margin: 48px 0 0 auto; padding: 54px 60px; position: relative; z-index: 2; color: #fff; background: var(--fukiya-green); }
.family-meal__label { margin-bottom: 20px; font-size: 20px; letter-spacing: .18em; }
.family-meal__menu ul { margin: 0 0 25px; padding: 0; list-style: none; columns: 2; column-gap: 30px; font-size: 12px; line-height: 2.1; }
.family-meal__menu li { break-inside: avoid; }
.family-meal__menu .family-note { color: rgba(255,255,255,.68); }
.family-dessert-note { margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.24); font-size: 12px; line-height: 1.8; }

.family-choices { display: grid; grid-template-columns: minmax(0,.9fr) minmax(430px,1.1fr); gap: clamp(52px, 7vw, 105px); align-items: center; background: var(--fukiya-white); }
.family-choices__visuals { display: grid; grid-template-columns: 1fr .78fr; gap: 22px; align-items: end; }
.family-choices__visuals figure:first-child { margin-bottom: 80px; }
.family-choices__visuals img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }
.family-choices__visuals figure:last-child img { aspect-ratio: 4/6.3; }
.family-choices__copy h2 { font-size: clamp(29px, 2.8vw, 44px); }
.family-choices__subhead { margin: 30px 0 10px; color: var(--fukiya-green); font-size: 16px; letter-spacing: .14em; }
.family-choices__subhead small { margin-left: 8px; color: #777a74; font-size: 10px; letter-spacing: .08em; }
.family-choices__list { margin: 0 0 30px; padding: 16px 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: 26px; list-style: none; border-top: 1px solid var(--fukiya-line); border-bottom: 1px solid var(--fukiya-line); font-size: 12px; line-height: 1.7; }
.family-choices__list li { padding: 7px 0; display: flex; justify-content: space-between; gap: 14px; border-bottom: 1px solid rgba(37,40,35,.08); }
.family-choices__list li:nth-last-child(-n+2) { border-bottom: 0; }
.family-choices__list strong { flex: 0 0 auto; font-weight: 400; white-space: nowrap; }
.family-breakfast-detail { margin: 0 0 30px; padding: 24px 26px; background: var(--fukiya-paper); }
.family-breakfast-detail__heading { margin-bottom: 14px; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.family-breakfast-detail h3, .family-breakfast-detail p { margin-bottom: 0; }
.family-breakfast-detail h3 { font-size: 17px; letter-spacing: .12em; }
.family-breakfast-detail__heading strong { color: var(--fukiya-green); font-size: 18px; font-weight: 400; white-space: nowrap; }
.family-breakfast-detail__heading small { font-size: 10px; }
.family-breakfast-detail > ul { margin: 0; padding: 14px 0 0; display: grid; grid-template-columns: repeat(4,auto); gap: 8px 18px; list-style: none; border-top: 1px solid var(--fukiya-line); color: #5f645e; font-size: 11px; }

.family-bath { min-height: 900px; padding: 0; display: grid; grid-template-columns: minmax(0,.95fr) minmax(560px,1.05fr); color: #fff; background: var(--fukiya-green-deep); }
.family-bath__image { min-height: 900px; }
.family-bath__image img { width: 100%; height: 100%; object-fit: cover; }
.family-bath__content { width: 100%; max-width: 720px; padding: clamp(110px, 9vw, 150px) clamp(56px, 5vw, 80px); align-self: center; }
.family-bath .family-kicker { color: #a9bab0; }
.family-bath h2 { max-width: 11.5em; margin-bottom: 50px; font-size: clamp(30px, 2.8vw, 44px); line-height: 1.62; }
.family-bath__content > p { max-width: 540px; line-height: 2.25; }
.family-bath__guide { margin: 52px 0 30px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); }
.family-bath__guide p { margin: 0; padding: 21px 0; }
.family-bath__guide p + p { border-top: 1px solid rgba(255,255,255,.14); }
.family-bath__guide strong, .family-bath__guide span { display: block; }
.family-bath__guide strong { font-size: 14px; font-weight: 400; }
.family-bath__guide span { color: rgba(255,255,255,.7); font-size: 11px; }

.family-amenities { background: var(--fukiya-paper); }
.family-amenities__heading { width: min(100%, 760px); margin: 0 auto 75px; text-align: center; }
.family-amenities__heading p:last-child { width: min(100%, 610px); margin: 0 auto; }
.family-amenities__photos { width: min(100%, 880px); margin: 0 auto 74px; display: grid; grid-template-columns: repeat(3,1fr); gap: 34px; }
.family-amenities__photos figure:nth-child(2) { transform: translateY(32px); }
.family-amenities__photos img { width: 100%; aspect-ratio: 4/3; object-fit: cover; mix-blend-mode: multiply; }
.family-amenities__photos figcaption { margin-top: 12px; text-align: center; font-size: 11px; letter-spacing: .14em; }
.family-amenities__groups { width: min(100%, 940px); margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--fukiya-line); border-bottom: 1px solid var(--fukiya-line); }
.family-amenities__groups > div { padding: 35px 28px; }
.family-amenities__groups > div + div { border-left: 1px solid var(--fukiya-line); }
.family-amenities__groups h3 { margin-bottom: 18px; color: var(--fukiya-green); font-size: 17px; letter-spacing: .16em; }
.family-amenities__groups p { margin-bottom: 0; font-size: 12px; line-height: 2.15; }

.family-rate { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; color: #fff; background: var(--fukiya-green); }
.family-rate .family-kicker { color: #a9bab0; }
.family-rate h2 { margin-bottom: 0; }
.family-rate__content { padding-left: 6vw; border-left: 1px solid rgba(255,255,255,.24); }
.family-rate__lead { font-size: 22px; letter-spacing: .14em; }
.family-rate .family-text-link { color: #fff; }
.family-rate__list { margin: 38px 0 30px; border-top: 1px solid rgba(255,255,255,.24); }
.family-rate__list > div { padding: 20px 0; display: grid; grid-template-columns: minmax(150px,.85fr) minmax(190px,1.15fr); gap: 28px; align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.18); }
.family-rate__list dt { color: rgba(255,255,255,.72); font-size: 12px; }
.family-rate__list dd { margin: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.family-rate__detail{
    display:block;
}

.family-rate__detail .family-rate__price{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:16px;
}

.family-rate__detail p{
    margin:10px 0 0;
    font-size:13px;
    line-height:1.8;
}
/* 追記用：他の行のdd(flex)には影響させず、詳細行だけblockに戻す */
.family-rate__list dd.family-rate__detail {
  display: block;
}
.family-rate__list strong { font-size: 18px; font-weight: 400; letter-spacing: .1em; }
.family-rate__list small { color: rgba(255,255,255,.62); font-size: 10px; }
.family-rate__supplement { margin-bottom: 22px; font-size: 13px; }
.family-note--light { color: rgba(255,255,255,.6); }

.family-day { background: var(--fukiya-white); }
.family-day__heading { margin-bottom: 75px; display: flex; justify-content: space-between; align-items: flex-start; }
.family-day__heading .family-kicker { padding-top: 19px; }
.family-day__heading h2 { width: 63%; margin-bottom: 0; }
.family-day__grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 26px; }
.family-day__grid article:not(.family-day__photo) { min-height: 280px; padding: 34px 28px; border-top: 1px solid var(--fukiya-green); }
.family-day__grid article:nth-child(1) { grid-column: span 4; }
.family-day__grid article:nth-child(2) { grid-column: span 8; }
.family-day__grid article:nth-child(3) { grid-column: 2 / span 4; }
.family-day__grid article:nth-child(4) { grid-column: 7 / span 3; }
.family-day__grid article:nth-child(5) { grid-column: 10 / span 3; }
.family-day__grid article:nth-child(6) { grid-column: span 5; }
.family-day__grid article:nth-child(7) { grid-column: 8 / span 5; }
.family-day__grid time { display: block; margin-bottom: 28px; color: var(--fukiya-green); font: 400 23px/1 var(--fukiya-serif); letter-spacing: .08em; }
.family-day__grid h3 { margin-bottom: 18px; font-size: 18px; line-height: 1.75; letter-spacing: .1em; }
.family-day__grid p { margin-bottom: 0; color: #696c67; font-size: 12px; line-height: 1.9; }
.family-day__photo { min-height: 330px; background-position: center; background-size: cover; }
.family-day__photo--room { background-image: url("../images/room-timeflow.jpg"); }
.family-day__photo--meal { background-image: url("../images/children-dinner.jpg"); }

.family-plan { min-height: 820px; padding: 0; position: relative; color: #fff; }
.family-plan__image, .family-plan__image::after { position: absolute; inset: 0; }
.family-plan__image::after { content: ""; background: linear-gradient(90deg, rgba(9,27,21,.78), rgba(9,27,21,.32) 62%, rgba(9,27,21,.05)); }
.family-plan__image img { width: 100%; height: 100%; object-fit: cover; }
.family-plan__content { position: relative; z-index: 2; width: min(610px, 48vw); margin-left: max(8vw, calc((100vw - var(--content)) / 2)); padding-top: 150px; }
.family-plan .family-kicker { color: rgba(255,255,255,.64); }
.family-plan h2 { font-size: clamp(34px, 3.8vw, 56px); }
.family-plan__content > p { width: 520px; max-width: 100%; }

.family-faq { display: grid; grid-template-columns: .38fr .62fr; gap: 8vw; background: var(--fukiya-paper); }
.family-faq__heading { position: sticky; top: 50px; align-self: start; }
.family-faq__item { border-top: 1px solid var(--fukiya-line); }
.family-faq__item:last-child { border-bottom: 1px solid var(--fukiya-line); }
.family-faq__item h3 { margin: 0; }
.family-faq__item button { width: 100%; min-height: 92px; padding: 25px 5px; display: flex; justify-content: space-between; align-items: center; gap: 30px; color: var(--fukiya-ink); background: transparent; border: 0; cursor: pointer; text-align: left; font: 400 15px/1.8 var(--fukiya-serif); letter-spacing: .08em; }
.family-faq__item button:focus-visible { outline: 2px solid var(--fukiya-green); outline-offset: 4px; }
.family-faq__item i { position: relative; width: 22px; height: 22px; flex: 0 0 22px; }
.family-faq__item i::before, .family-faq__item i::after { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; content: ""; transition: transform .25s ease; }
.family-faq__item i::after { transform: rotate(90deg); }
.family-faq__item button[aria-expanded="true"] i::after { transform: rotate(0); }
.family-faq__answer { padding: 0 48px 32px 5px; color: #676a65; font-size: 13px; }
.family-faq__answer p { margin-bottom: 0; }

.family-final { padding-top: 145px; padding-bottom: 145px; text-align: center; color: #fff; background: var(--fukiya-green-deep); }
.family-final .family-kicker { color: #9bafa4; }
.family-final h2 { font-size: clamp(31px, 3.3vw, 48px); }
.family-final > p:not(.family-kicker) { width: min(100%, 660px); margin: 0 auto; color: rgba(255,255,255,.76); }
.family-final__links { width: min(100%, 980px); margin: 70px auto 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(255,255,255,.28); border-left: 1px solid rgba(255,255,255,.28); }
.family-final__links a { min-height: 126px; padding: 26px 32px; display: grid; grid-template-columns: 1fr auto; align-items: center; text-align: left; text-decoration: none; border-right: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); transition: background .3s ease; }
.family-final__links a:hover { background: rgba(255,255,255,.08); }
.family-final__links small { grid-column: 1 / -1; color: #9bafa4; font: 9px/1 var(--fukiya-sans); letter-spacing: .28em; }

.preview-prefooter { padding: 85px 5vw; text-align: center; background: #eeeadf; }
.preview-prefooter > p:first-child { margin: 0; font-size: 19px; }
.preview-prefooter strong { margin: 12px auto 25px; display: block; color: var(--fukiya-green); font-size: 12px; font-weight: 400; }
.preview-prefooter > a { min-width: 330px; padding: 18px 30px; display: inline-block; color: #fff; background: var(--fukiya-green); text-decoration: none; }
.preview-tel { margin: 25px 0 0; font-size: 24px; letter-spacing: .12em; }
.preview-footer { min-height: 330px; padding: 76px 10vw; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; color: #fff; background: #1b211e; font-size: 12px; line-height: 2; }
.preview-footer__logo { font-size: 33px; letter-spacing: .25em; }
.preview-footer__logo small { margin-top: 12px; display: block; font: 9px/1.5 var(--fukiya-sans); letter-spacing: .1em; }
.preview-page-top { position: fixed; z-index: 20; right: 24px; bottom: 28px; padding: 13px 9px; color: var(--fukiya-ink); background: rgba(255,255,255,.85); text-align: center; text-decoration: none; font: 8px/1.35 var(--fukiya-sans); letter-spacing: .12em; }
.preview-sp-fixed { display: none; }

@media (min-width: 901px) and (max-width: 1199px) {
  .family-page #header .wide_container { width: 100%; padding-left: 3vw; }
  .family-page #header .h_logo { margin-right: auto; }
  .family-page #header .h_nav { display: none; }
  .family-page #header .online { margin-left: auto; }

  .family-section { padding-left: 6vw; padding-right: 6vw; }
  .family-lp h2 { font-size: clamp(30px, 4vw, 42px); line-height: 1.62; }
  #header_wrap .family-header-visual .family-hero__content { width: min(610px, 62vw); margin-left: 6vw; }
  .family-hero__title { font-size: clamp(42px, 5.2vw, 56px); }

  .family-intro__inner { gap: 6vw; }
  .family-intro h2 { font-size: clamp(32px, 4vw, 40px); }
  .family-promises { min-height: 780px; gap: 5vw; grid-template-columns: .95fr 1.05fr; }
  .family-promises__image { min-height: 560px; }
  .family-room-dining { min-height: 800px; padding-top: 120px; grid-template-columns: minmax(0,1fr) minmax(400px,1fr); gap: 5vw; }
  .family-room-dining__visual { height: 560px; }
  .family-meal__heading { gap: 6vw; }
  .family-meal__menu { width: 450px; }
  .family-choices { grid-template-columns: minmax(0,.78fr) minmax(460px,1.22fr); gap: 5vw; }
  .family-choices__visuals { grid-template-columns: 1fr; }
  .family-choices__visuals figure:first-child { margin-bottom: 0; }
  .family-choices__visuals figure:last-child { display: none; }
  .family-bath { min-height: 780px; grid-template-columns: minmax(0,.88fr) minmax(520px,1.12fr); }
  .family-bath__image { min-height: 760px; }
  .family-bath__content { max-width: none; padding: 90px 5vw; }
  .family-bath h2 { margin-bottom: 42px; font-size: clamp(32px, 3.6vw, 39px); }
  .family-amenities__groups > div { padding: 30px 20px; }
  .family-rate { grid-template-columns: .68fr 1.32fr; gap: 6vw; }
  .family-rate__content { padding-left: 5vw; }
  .family-day__grid { grid-template-columns: 1fr 1fr; gap: 20px; }
  .family-day__grid article:nth-child(n) { grid-column: auto; }
  .family-day__grid article:nth-child(1), .family-day__grid article:nth-child(2) { grid-column: 1 / -1; }
  .family-faq { grid-template-columns: .32fr .68fr; gap: 5vw; }
}

@media (max-width: 900px) {
  #header_wrap .family-header-visual .family-hero__content { padding-top: 150px; }
  .preview-header { height: 74px; padding: 0 20px; }
  .preview-logo { width: 130px; }
  .preview-logo span { font-size: 25px; }
  .preview-logo small { font-size: 6px; }
  .preview-nav { display: none; }
  .preview-menu { margin-left: auto; width: 55px; height: 55px; }
  .preview-reserve { display: none; }

  .family-lp { font-size: 14px; line-height: 2; }
  .family-lp h2 { margin-bottom: 30px; font-size: 29px; line-height: 1.7; letter-spacing: .08em; }
  .family-section { padding: 100px 7vw; }
  .family-kicker, .family-eyebrow { margin-bottom: 17px; font-size: 9px; }
  .family-actions { align-items: stretch; flex-direction: column; gap: 18px; }
  .family-button, .family-text-link { width: 100%; min-width: 0; }
  .family-button { min-height: 62px; }

  .family-hero { height: calc(100svh - 74px); min-height: 660px; }
  .family-hero__image { background-position: 46% center; }
  .family-hero__shade { background: linear-gradient(90deg, rgba(10,27,21,.82), rgba(10,27,21,.36) 90%), linear-gradient(0deg, rgba(0,0,0,.3), transparent 55%); }
  .family-hero__content { width: 80vw; margin-left: 8vw; padding-top: 70px; }
  .family-hero__title { margin-bottom: 25px; font-size: 37px; }
  .family-hero__copy { font-size: 21px; }
  .family-hero__lead { font-size: 11px; }
  .family-actions--hero { gap: 12px; }
  .family-actions--hero .family-button { min-width: 0; }
  .family-actions--hero .family-text-link { width: 210px; }
  .family-hero__vertical { right: 5vw; top: 10%; font-size: 11px; }
  .family-scroll { display: none; }

  .family-intro::before { height: 48px; }
  .family-intro__inner { display: block; }
  .family-intro__body { padding-top: 52px; }

  .family-promises { min-height: 0; padding: 0 0 100px; display: flex; flex-direction: column; gap: 65px; }
  .family-promises__image { width: 88%; height: 520px; min-height: 0; margin-right: auto; }
  .family-promises__image img { object-position: 55% center; }
  .family-promises__image span { left: 7vw; bottom: -25px; font-size: 12px; }
  .family-promises__content { padding: 0 7vw; }
  .family-promises dt { font-size: 17px; }

  .family-room-dining { min-height: 0; padding: 105px 7vw; display: flex; flex-direction: column; gap: 70px; }
  .family-room-dining__visual { width: calc(100% + 7vw); height: 470px; margin: 0 0 0 -7vw; }
  .family-room-dining__visual::before { top: -18px; right: -18px; }
  .family-room-dining__copy h2 { font-size: 31px; }
  .family-room-dining__kanji { font-size: 100px; }

  .family-meal__heading { margin-bottom: 55px; display: block; }
  .family-meal__heading > p { margin-top: 35px; }
  .family-meal__photo img { width: 100%; height: 430px; object-position: center; }
  .family-meal__menu { width: 93%; margin: 28px 0 0 auto; padding: 38px 30px; }
  .family-meal__menu ul { columns: 1; }

  .family-choices { display: flex; flex-direction: column-reverse; gap: 65px; }
  .family-choices__visuals { gap: 15px; }
  .family-choices__visuals figure:first-child { margin-bottom: 50px; }
  .family-choices__copy h2 { font-size: 29px; }
  .family-choices__list { grid-template-columns: 1fr 1fr; }
  .family-breakfast-detail > ul { grid-template-columns: 1fr 1fr; }

  .family-bath { min-height: 0; display: flex; flex-direction: column; }
  .family-bath__image { height: 470px; min-height: 0; }
  .family-bath__content { padding: 85px 7vw 100px; }
  .family-bath h2 { font-size: 30px; }

  .family-amenities__heading { margin-bottom: 55px; text-align: left; }
  .family-amenities__photos { gap: 10px; margin-bottom: 65px; }
  .family-amenities__photos figcaption { font-size: 9px; }
  .family-amenities__groups { grid-template-columns: 1fr 1fr; }
  .family-amenities__groups > div { padding: 28px 20px; }
  .family-amenities__groups > div:nth-child(3) { border-left: 0; border-top: 1px solid var(--fukiya-line); }
  .family-amenities__groups > div:nth-child(4) { border-top: 1px solid var(--fukiya-line); }

  .family-rate { display: block; }
  .family-rate__content { margin-top: 55px; padding: 42px 0 0; border-top: 1px solid rgba(255,255,255,.24); border-left: 0; }
  .family-rate__lead { font-size: 18px; }
  .family-rate__list > div { grid-template-columns: minmax(120px,.8fr) minmax(170px,1.2fr); }

  .family-day__heading { display: block; }
  .family-day__heading .family-kicker { padding-top: 0; }
  .family-day__heading h2 { width: 100%; }
  .family-day__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
  .family-day__grid article:nth-child(n) { grid-column: auto; }
  .family-day__grid article:not(.family-day__photo) { min-height: 260px; padding: 28px 20px; }
  .family-day__grid article:nth-child(1), .family-day__grid article:nth-child(2) { grid-column: 1 / -1; }
  .family-day__photo { min-height: 280px; }

  .family-plan { min-height: 760px; padding: 0; }
  .family-plan__image::after { background: linear-gradient(90deg, rgba(9,27,21,.82), rgba(9,27,21,.42)); }
  .family-plan__image img { object-position: 60% center; }
  .family-plan__content { width: 86%; margin-left: 7%; padding-top: 100px; }
  .family-plan h2 { font-size: 34px; }

  .family-faq { display: block; }
  .family-faq__heading { position: static; margin-bottom: 45px; }
  .family-faq__item button { min-height: 84px; font-size: 13px; }

  .family-final { padding-top: 105px; padding-bottom: 105px; }
  .family-final__links { grid-template-columns: 1fr; margin-top: 55px; }
  .family-final__links a { min-height: 112px; }

  .preview-prefooter { padding: 70px 7vw 100px; }
  .preview-prefooter > a { width: 100%; min-width: 0; }
  .preview-footer { padding: 65px 8vw 120px; display: block; }
  .preview-footer__logo { margin-bottom: 50px; }
  .preview-page-top { display: none; }
  .preview-sp-fixed { position: fixed; z-index: 40; left: 0; right: 0; bottom: 0; height: 64px; display: grid; grid-template-columns: repeat(4,1fr); color: #fff; background: rgba(16,42,35,.97); }
  .preview-sp-fixed a { display: grid; place-items: center; text-decoration: none; font-size: 10px; letter-spacing: .09em; border-right: 1px solid rgba(255,255,255,.18); }
}

@media (min-width: 768px) and (max-width: 900px) {
  body.family-page #header_wrap #header { width: 100%; min-width: 0 !important; }
  body.family-page #header_wrap #header .wide_container { width: 100% !important; min-width: 0; padding-left: 3vw; }
  body.family-page #header_wrap #header .h_logo { margin-right: auto; }
  body.family-page #header_wrap #header .h_nav { display: none !important; }
  body.family-page #header_wrap #header .online { margin-left: auto; }
  .family-actions--hero { align-items: flex-start; }
  #header_wrap .family-header-visual .family-actions--hero .family-button { width: 340px !important; }
  #header_wrap .family-header-visual .family-actions--hero .family-text-link { width: 240px !important; }
}

@media (max-width: 520px) {
  .family-lp h2 { font-size: 26px; }
  .family-hero__title { font-size: 33px; }
  .family-hero__copy { font-size: 19px; }
  .family-promises__image { height: 420px; }
  .family-room-dining__visual { height: 390px; }
  .family-meal__photo img { height: 350px; }
  .family-choices__list { grid-template-columns: 1fr; }
  .family-choices__list li:nth-last-child(-n+2) { border-bottom: 1px solid rgba(37,40,35,.08); }
  .family-choices__list li:last-child { border-bottom: 0; }
  .family-breakfast-detail { padding: 22px 20px; }
  .family-breakfast-detail__heading { display: block; }
  .family-breakfast-detail__heading p { margin-top: 6px; }
  .family-rate__list > div { display: block; }
  .family-rate__list dd { margin-top: 6px; }
  .family-bath__image { height: 360px; }
  .family-amenities__groups { display: block; }
  .family-amenities__groups > div + div { border-top: 1px solid var(--fukiya-line); border-left: 0; }
  .family-day__grid { display: block; }
  .family-day__grid article { margin-bottom: 18px; }
  .family-day__photo { min-height: 245px; }
}

@media (prefers-reduced-motion: reduce) {
  .family-lp *, .family-lp *::before, .family-lp *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
