@font-face {
  font-family: "Yomogi Page";
  src: url("assets/fonts/Yomogi-consultation.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --paper: #f7f5ef;
  --ink: #344b43;
  --accent: #43675b;
  --mint: #e5ede7;
  --muted: #657469;
  --line: #ccd5ca;
  --sand: #ece7dc;
  --content-width: 1120px;
  --serif: "Baskerville", "Times New Roman", Georgia, serif;
}

html { scroll-behavior: smooth; scroll-padding-top: 28px; }
body { background: var(--paper); }
main { overflow: clip; }
[hidden] { display: none !important; }
figure { margin: 0; }
img { max-width: 100%; }
.small-only { display: none; }
.site-header { border-bottom: 0; }
.hero { border-radius: 3px 3px 0 0; }
.consult-button { box-shadow: none; }
.wf-section {
  position: relative;
  padding: 110px max(28px, calc((100% - var(--content-width)) / 2));
  scroll-margin-top: 25px;
}
.wf-section h2 {
  font: 400 clamp(32px, 3.1vw, 45px)/1.65 "Yomogi Page", "Hiragino Maru Gothic ProN", sans-serif;
  letter-spacing: .025em;
  margin: 16px 0 27px;
  -webkit-text-stroke: .01em currentColor;
  text-wrap: balance;
}
.wf-section h3 { font-size: 17px; font-weight: 500; line-height: 1.8; letter-spacing: .035em; margin: 0 0 8px; }
.wf-section p { font-size: 14px; line-height: 2.15; letter-spacing: .035em; margin: 0; }
.wf-section .section-label { font-size: 9px; font-weight: 500; letter-spacing: .22em; color: var(--muted); line-height: 1.8; }
.section-label::before { content: ""; display: inline-block; width: 26px; height: 1px; margin: 0 13px 3px 0; background: #95a896; }
.wf-section .editorial-word { font: 400 clamp(38px, 5.1vw, 74px)/1.1 var(--serif); letter-spacing: -.035em; color: #899c8c; margin: 0 0 30px; }
.section-lead { color: #526257; }
.center-heading { text-align: center; }
.wf-section .section-note { font-size: 12px; line-height: 1.9; color: var(--muted); }
.wf-quicknav { display: flex; justify-content: center; align-items: center; gap: 0; background: #e9eee7; border-bottom: 1px solid #dbe1d6; padding: 15px 24px; }
.wf-quicknav a { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: 7px 40px; font-size: 12px; letter-spacing: .055em; min-height: 40px; border-right: 1px solid #cbd7c9; }
.wf-quicknav a:last-child { border-right: 0; }
.wf-quicknav a span { color: #819687; }
.wf-quicknav a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* Free consultation: an editorial introduction followed by one clear offer. */
.consultation { padding-top: 95px; padding-bottom: 96px; }
.consultation-intro { display: grid; grid-template-columns: 1.12fr 1fr; align-items: center; gap: 65px; }
.consultation-intro .center-heading { text-align: left; }
.consultation-intro .editorial-word { margin-bottom: 27px; }
.consultation-still { position: relative; padding-bottom: 25px; }
.consultation-still img { display: block; width: 100%; height: auto; aspect-ratio: 1.3; object-fit: cover; object-position: 61% center; border-radius: 52% 52% 3px 3px; }
.consultation-still::before { content: ""; position: absolute; inset: -17px 18px 44px -17px; border: 1px solid #bbc7b6; border-radius: 52% 52% 3px 3px; pointer-events: none; }
.consultation-still figcaption { position: absolute; bottom: 0; right: 0; font: 17px/1.7 "Yomogi Page", sans-serif; transform: rotate(-3deg); }
.questions { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 65px; padding: 32px 25px; background: #698679; color: #fffef8; border-radius: 2px 44px 2px 2px; }
.question { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 15px; padding: 0 20px; font-size: 13px; line-height: 1.8; letter-spacing: .075em; }
.question + .question { border-left: 1px solid #edf4e745; }
.question svg { width: 33px; height: 33px; stroke: currentColor; fill: none; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; }
.free-cards { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 22px; background: #edece3; }
.free-card { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 30px 36px; }
.free-card + .free-card { border-left: 1px solid #d2d8c8; }
.free-card h3 { font-size: 16px; margin-bottom: 3px; }
.free-card p { font-size: 11px; color: var(--muted); }
.free-price { white-space: nowrap; font-size: 12px; color: var(--accent); }
.free-price strong { font: 400 66px/1 var(--serif); margin-right: 5px; }

/* Large imagery and offset outlines echo the natural curves in the references. */
.lifestyle { background: var(--mint); padding-top: 142px; padding-bottom: 128px; border-radius: 50% 8% 0 0 / 4% 2% 0 0; }
.wide-word { position: absolute; top: 35px; right: 5%; font: 400 clamp(64px, 8.5vw, 128px)/1.1 var(--serif); letter-spacing: -.055em; color: #b9cabe; pointer-events: none; }
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.lifestyle-visual { position: relative; margin-right: 5px; }
.lifestyle-visual img { display: block; width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: 37% center; border-radius: 48% 48% 2px 2px; }
.photo-outline { position: absolute; inset: -22px 22px 22px -22px; border: 1px solid #96ac9b; border-radius: 48% 48% 2px 2px; pointer-events: none; }
.lifestyle-visual figcaption { position: absolute; right: -44px; bottom: 26px; padding: 15px 28px; background: #f8f6ed; box-shadow: 0 8px 28px #30473708; font: 22px/1.7 "Yomogi Page", sans-serif; transform: rotate(-4deg); }
.daily-list { list-style: none; padding: 0; margin: 31px 0 0; }
.daily-list li { display: grid; grid-template-columns: 32px 1fr; gap: 18px; padding: 19px 0; border-top: 1px solid #c1d0c1; }
.daily-list li:last-child { padding-bottom: 0; }
.daily-list .list-no { font: italic 26px/1.4 var(--serif); color: #6a8774; }
.daily-list h3 { font-size: 16px; margin: 0 0 7px; }
.daily-list p { font-size: 12px; color: #526557; line-height: 2; }
.approach { padding-top: 108px; padding-bottom: 96px; }
.approach .two-column { grid-template-columns: 1.1fr 1fr; }
.approach .two-column > div { grid-column: 1; grid-row: 1; }
.doctor-photo { grid-column: 2; grid-row: 1; position: relative; padding: 0 0 0 18px; }
.doctor-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 3px 42% 3px 3px; position: relative; z-index: 1; }
.doctor-photo::before { content: ""; position: absolute; background: #e3e8dc; inset: 40px -35px -25px 50px; border-radius: 3px 40% 3px 3px; }
.doctor-photo figcaption { position: relative; z-index: 1; font-size: 9px; letter-spacing: .25em; padding-top: 14px; }
.approach-text { margin-top: 19px !important; }
.approach-points { display: flex; flex-wrap: wrap; gap: 18px; margin: 28px 0 18px; }
.approach-points span { font-size: 12px; padding: 7px 0; border-bottom: 1px solid #aebfa9; }
.text-link { display: inline-flex; align-items: center; gap: 26px; font-size: 12px; letter-spacing: .04em; padding: 10px 0; border-bottom: 1px solid #a8bca7; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }

.consult-flow { background: #efeee5; padding-top: 86px; padding-bottom: 66px; }
.flow-list { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 52px; margin: 42px 0 33px; padding: 0; }
.flow-list li { position: relative; border-top: 1px solid #c4cfbd; padding-top: 19px; }
.flow-step { display: block; font: 400 52px/1.2 var(--serif); color: #839982; margin-bottom: 16px; }
.flow-list li:not(:last-child)::after { content: "→"; position: absolute; right: -38px; top: 40px; font-size: 21px; color: #91a18a; }
.flow-list h3 { font-size: 17px; }
.flow-list p { font-size: 12px; color: #55624e; }
.wf-section .flow-note { text-align: center; font-size: 12px; color: var(--muted); padding-top: 5px; }
.inline-cta { border-top: 1px solid #d0d7c7; padding-top: 29px; margin-top: 31px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.inline-cta p { font: 23px/1.8 "Yomogi Page", sans-serif; }
.wf-button { display: inline-flex; align-items: center; justify-content: center; gap: 26px; min-height: 59px; padding: 16px 30px; border: 1px solid var(--accent); border-radius: 50px; background: var(--accent); color: #fffef8; font-size: 14px; font-weight: 500; letter-spacing: .07em; transition: background .2s, transform .2s; white-space: nowrap; }
.wf-button .arrow { font-size: 24px; font-weight: 400; margin-left: auto; }
.wf-button:hover { background: #2f5546; transform: translateY(-2px); }

.fees { background: #fbfaf5; }
.fee-layout { display: grid; grid-template-columns: .82fr 1.18fr; gap: 72px; align-items: start; }
.fee-intro { padding-top: 20px; }
.fee-intro .editorial-word { font-size: 51px; margin-bottom: 40px; }
.fee-intro .section-note { margin: 23px 0 15px; }
.fee-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.fee-table caption { font-size: 11px; color: var(--muted); text-align: left; letter-spacing: .08em; margin-bottom: 15px; }
.fee-table th, .fee-table td { padding: 21px 0; border-bottom: 1px solid var(--line); }
.fee-table th { text-align: left; font-weight: 400; line-height: 1.85; }
.fee-table td { text-align: right; white-space: nowrap; font-size: 12px; }
.fee-table small { display: block; font-size: 10px; color: var(--muted); }
.fee-table .price-value { font: 400 30px/1.4 var(--serif); margin-right: 5px; font-variant-numeric: lining-nums; }
.fee-table .free-row { background: #edf0e6; }
.fee-table .free-row th { padding-left: 15px; }
.fee-table .free-row td { padding-right: 15px; color: #41634d; font-size: 18px; }
.fee-details { margin-top: 26px; }
details { border-bottom: 1px solid var(--line); }
summary { position: relative; list-style: none; cursor: pointer; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; position: absolute; right: 3px; top: 50%; transform: translateY(-50%); font-size: 22px; color: #728b73; font-weight: 300; }
details[open] > summary::after { content: "−"; }
.fee-details summary { padding: 17px 30px 17px 0; font-size: 12px; }
.fee-details p { font-size: 12px; color: #5b6b5c; padding: 0 0 18px; line-height: 1.95; }
summary:focus-visible { outline: 3px solid #80bcad; outline-offset: 4px; }

.faq { background: #e7ede3; display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; padding-top: 90px; padding-bottom: 94px; }
.faq .center-heading { text-align: left; }
.faq .editorial-word { font-size: 58px; margin-bottom: 37px; }
.faq-list { padding-top: 5px; }
.faq-list details { border-bottom-color: #c5d2bf; }
.faq-list details:first-child { border-top: 1px solid #c5d2bf; }
.faq-list summary { display: flex; align-items: baseline; gap: 17px; padding: 23px 32px 23px 0; font-size: 14px; line-height: 1.85; }
.q-mark { flex-shrink: 0; font: italic 26px/1 var(--serif); color: #728b73; }
.faq-list p { font-size: 12px; color: #52614f; padding: 0 20px 23px 38px; line-height: 2; }

.booking { padding-top: 0; padding-bottom: 72px; }
.booking-invitation { position: relative; margin: 0 calc(-1 * max(28px, (100vw - var(--content-width)) / 2)); padding: 90px 28px 86px; isolation: isolate; overflow: hidden; background: #f7f5ed; }
.booking-invitation::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #f7f5edf2 15%, #f7f5edea 55%, #f7f5ed59), url("assets/design-natural-stilllife-v1.webp") right 65% / cover; z-index: -2; }
.booking-invitation::after { content: ""; position: absolute; top: -43%; right: -18%; width: 63%; height: 170%; border: 1px solid #9db29c65; border-radius: 50%; transform: rotate(-20deg); z-index: -1; }
.booking-actions { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 30px; }
.booking-actions .wf-button { width: 390px; max-width: 100%; }
.booking-actions .text-link { font-size: 12px; }
.access-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center; padding-top: 76px; }
.access-grid img { display: block; width: 100%; height: auto; aspect-ratio: 1.15; object-fit: cover; border-radius: 2px 64px 2px 2px; }
.access-grid h3 { font: 400 29px/1.2 var(--serif); letter-spacing: .04em; }
.access-grid .clinic-ja { font-size: 12px; margin: 10px 0 21px; color: var(--muted); }
.access-grid p { font-size: 13px; }
.access-info { margin: 24px 0 8px; }
.access-info div { display: grid; grid-template-columns: 72px 1fr; gap: 18px; border-top: 1px solid var(--line); padding: 13px 0; font-size: 12px; line-height: 1.8; }
.access-info dt { color: var(--muted); }
.access-info dd { margin: 0; }
.access-links { display: flex; flex-wrap: wrap; gap: 24px; }
.wf-footer { padding: 32px 24px 26px; text-align: center; color: #65775f; background: #e4e9df; }
.wf-footer p { font-size: 9px; letter-spacing: .08em; margin: 0 0 10px; }
.wf-footer .footer-signature { font: 25px/1.5 var(--serif); letter-spacing: .11em; margin: 0 0 12px; }
.preview-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 17px; font-size: 9px; margin-top: 25px; }
.preview-links a { text-decoration: underline; text-underline-offset: 3px; }
.review-toggle { position: static; display: inline-block; border: 1px solid #b8c5b1; border-radius: 30px; color: var(--ink); background: transparent; font-size: 10px; min-height: 34px; padding: 7px 14px; cursor: pointer; }
.mobile-reserve { display: none; }
.review-dialog { max-width: 570px; width: calc(100% - 36px); border: 1px solid var(--line); border-radius: 18px; padding: 30px; color: var(--ink); background: var(--paper); max-height: 85svh; overflow: auto; }
.review-dialog::backdrop { background: #1e352c70; backdrop-filter: blur(4px); }
.review-dialog header { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.review-dialog h2 { font-size: 18px; margin: 0; }
.review-dialog h3 { font-size: 13px; margin: 24px 0 8px; }
.review-dialog p, .review-dialog li { font-size: 12px; line-height: 1.9; }
.review-dialog a { text-decoration: underline; }
.review-dialog ul { padding-left: 20px; }
.review-version { color: var(--muted); font-size: 10px !important; }
.review-close { width: 36px; height: 36px; flex-shrink: 0; border: 1px solid var(--line); background: #e7ede1; color: var(--ink); border-radius: 50%; font-size: 22px; cursor: pointer; }

@media (max-width: 1190px) {
  .wf-section { padding-left: 46px; padding-right: 46px; }
  .consultation-intro, .two-column, .fee-layout, .faq, .access-grid { gap: 50px; }
  .free-card { padding: 28px 24px; }
  .free-card h3 { font-size: 14px; }
  .booking-invitation { margin-left: -46px; margin-right: -46px; }
  .doctor-photo::before { right: -20px; }
}
@media (max-width: 900px) {
  .wf-section { padding: 75px 32px; }
  .wf-section h2 { font-size: 32px; }
  .wf-section p { font-size: 13px; }
  .wf-quicknav a { padding: 5px 26px; gap: 30px; }
  .consultation-intro { gap: 30px; grid-template-columns: 1.15fr 1fr; }
  .consultation-intro .editorial-word { font-size: 47px; }
  .consultation-intro h2 { font-size: 30px; }
  .consultation-intro .section-lead { font-size: 12px; }
  .consultation-still img { aspect-ratio: .87; }
  .consultation-still figcaption { font-size: 13px; right: -6px; }
  .questions { margin-top: 42px; padding: 27px 12px; }
  .question { padding: 0 11px; font-size: 12px; }
  .free-card { padding: 26px 20px; gap: 10px; }
  .free-card h3 { font-size: 13px; }
  .free-card p { font-size: 9px; }
  .free-price strong { font-size: 53px; }
  .lifestyle { padding-top: 112px; padding-bottom: 85px; }
  .wide-word { top: 24px; font-size: 82px; }
  .two-column { gap: 43px; }
  .lifestyle-visual img { aspect-ratio: .7; }
  .lifestyle-visual figcaption { font-size: 16px; padding: 13px 19px; right: -24px; }
  .photo-outline { inset: -16px 16px 16px -16px; }
  .daily-list { margin-top: 25px; }
  .daily-list li { grid-template-columns: 25px 1fr; gap: 12px; padding: 15px 0; }
  .daily-list h3 { font-size: 14px; }
  .daily-list p { font-size: 11px; }
  .approach .two-column { gap: 38px; }
  .approach .two-column > div { padding: 0; }
  .approach .two-column h2 { font-size: 30px; }
  .doctor-photo { padding-left: 0; }
  .approach-points { gap: 13px; }
  .approach-points span { font-size: 11px; }
  .flow-list { gap: 32px; }
  .flow-list li:not(:last-child)::after { right: -24px; }
  .flow-list h3 { font-size: 15px; }
  .flow-list p { font-size: 11px; }
  .inline-cta p { font-size: 20px; }
  .fee-layout { grid-template-columns: 1fr; gap: 32px; }
  .fee-intro { padding-top: 0; }
  .fee-intro .editorial-word { font-size: 53px; margin-bottom: 25px; }
  .faq { grid-template-columns: 1fr; gap: 28px; }
  .faq .center-heading { text-align: center; }
  .faq .editorial-word { font-size: 55px; margin-bottom: 24px; }
  .booking { padding-top: 0; padding-bottom: 65px; }
  .booking-invitation { margin: 0 -32px; padding: 75px 32px 70px; }
  .access-grid { gap: 36px; padding-top: 64px; }
  .access-grid h3 { font-size: 24px; }
  .access-grid img { aspect-ratio: .85; }
  .access-info div { gap: 10px; grid-template-columns: 56px 1fr; font-size: 11px; }
  .access-links { gap: 14px; }
  .access-links .text-link { font-size: 11px; gap: 10px; }
  .mobile-reserve { display: flex; position: fixed; z-index: 15; left: 0; right: 0; bottom: 0; justify-content: center; padding: 10px 22px max(10px, env(safe-area-inset-bottom)); background: #f7f5eff2; border-top: 1px solid #d3dccd; backdrop-filter: blur(12px); }
  .mobile-reserve .wf-button { width: 100%; max-width: 450px; min-height: 49px; padding: 10px 22px; font-size: 13px; }
  .reserve-caption { font-size: 10px; padding-right: 16px; border-right: 1px solid #ffffff59; }
  .wf-footer { padding-bottom: 108px; }
}
@media (max-width: 600px) {
  .wf-section { padding: 65px 25px; }
  .wf-section h2 { font-size: 30px; line-height: 1.75; margin-top: 13px; margin-bottom: 22px; }
  .wf-section p { font-size: 13px; line-height: 2.1; }
  .wf-section .section-label { font-size: 8px; letter-spacing: .17em; }
  .wf-section .section-note { font-size: 11px; }
  .wf-quicknav { padding: 12px 16px; }
  .wf-quicknav a { justify-content: center; flex: 1; gap: 10px; padding: 4px 9px; font-size: 10px; min-height: 33px; white-space: nowrap; }
  .wf-quicknav a:first-child { flex: 1.45; }
  .consultation { padding-top: 51px; }
  .consultation-intro { grid-template-columns: 1fr; gap: 34px; }
  .consultation-intro .center-heading { text-align: center; }
  .consultation-intro .editorial-word { font-size: 52px; margin-bottom: 25px; }
  .consultation-intro .section-lead { font-size: 12px; line-height: 2.15; }
  .consultation-still { width: 82%; margin: 0 0 0 auto; padding-bottom: 26px; }
  .consultation-still img { aspect-ratio: 1.4; border-radius: 48% 48% 2px 2px; }
  .consultation-still::before { inset: -13px 13px 39px -13px; }
  .consultation-still figcaption { font-size: 15px; right: 0; }
  .questions { grid-template-columns: 1fr 1fr; margin-top: 33px; padding: 27px 18px; gap: 24px 0; border-top-right-radius: 38px; }
  .question { gap: 10px; font-size: 12px; padding: 0 10px; }
  .question:nth-child(3) { border-left: 0; }
  .question svg { width: 31px; height: 31px; }
  .free-cards { grid-template-columns: 1fr; margin-bottom: 18px; }
  .free-card { padding: 24px 24px; }
  .free-card + .free-card { border-left: 0; border-top: 1px solid #d2d8c8; }
  .free-card h3 { font-size: 14px; }
  .free-card p { font-size: 10px; }
  .free-price strong { font-size: 57px; }
  .lifestyle { padding-top: 112px; padding-bottom: 64px; border-radius: 45% 0 0 0 / 2% 0 0 0; }
  .wide-word { top: 31px; right: auto; left: 25px; font-size: clamp(48px, 13.2vw, 75px); white-space: nowrap; }
  .two-column { grid-template-columns: 1fr; gap: 42px; }
  .lifestyle-visual { width: 88%; margin: 0 auto 0 11px; }
  .lifestyle-visual img { aspect-ratio: .95; }
  .lifestyle-visual figcaption { font-size: 19px; bottom: 18px; right: -25px; padding: 12px 20px; }
  .lifestyle .two-column > div { padding-top: 1px; }
  .daily-list { margin-top: 26px; }
  .daily-list li { grid-template-columns: 28px 1fr; padding: 19px 0; gap: 15px; }
  .daily-list h3 { font-size: 15px; }
  .daily-list p { font-size: 12px; }
  .approach { padding-top: 59px; padding-bottom: 75px; }
  .approach .two-column { grid-template-columns: 1fr; gap: 35px; }
  .approach .two-column > div { grid-column: 1; grid-row: 1; }
  .approach .two-column h2 { font-size: 30px; }
  .doctor-photo { grid-column: 1; grid-row: 2; width: 87%; margin-right: auto; }
  .doctor-photo img { border-top-right-radius: 38%; }
  .doctor-photo::before { inset: 30px -25px -18px 38px; }
  .approach-text { font-size: 12px !important; }
  .approach-points { margin-top: 22px; gap: 18px; }
  .flow-list { grid-template-columns: 1fr; gap: 0; margin-top: 32px; margin-bottom: 20px; }
  .flow-list li { display: grid; grid-template-columns: 50px 1fr; gap: 0 19px; padding: 24px 0; }
  .flow-step { grid-row: 1/3; font-size: 43px; }
  .flow-list h3 { font-size: 16px; margin: 0 0 8px; }
  .flow-list p { grid-column: 2; font-size: 12px; }
  .flow-list li:not(:last-child)::after { display: none; }
  .small-only { display: initial; }
  .wf-section .flow-note { font-size: 11px; }
  .inline-cta { display: block; text-align: center; margin-top: 25px; padding-top: 25px; }
  .inline-cta p { font-size: 19px; margin-bottom: 17px; }
  .inline-cta .wf-button { width: 100%; }
  .wf-button { min-height: 59px; padding: 16px 24px; font-size: 13px; }
  .fees { padding-top: 60px; padding-bottom: 60px; }
  .fee-layout { gap: 29px; }
  .fee-intro .editorial-word { font-size: 50px; margin-bottom: 27px; }
  .fee-intro .section-note { margin-top: 19px; }
  .fee-table { font-size: 12px; }
  .fee-table th, .fee-table td { padding: 20px 0; }
  .fee-table th { padding-right: 10px; }
  .fee-table .free-row th { padding-left: 11px; padding-right: 8px; }
  .fee-table .free-row td { padding-right: 11px; font-size: 16px; }
  .fee-table .price-value { font-size: 27px; margin-right: 3px; }
  .fee-table small { font-size: 9px; }
  .fee-details p { font-size: 11px; }
  .fee-details summary { font-size: 11px; }
  .faq { display: block; padding-top: 59px; padding-bottom: 60px; }
  .faq .editorial-word { font-size: 54px; margin-bottom: 24px; }
  .faq-list { margin-top: 33px; }
  .faq-list summary { font-size: 13px; gap: 13px; padding: 23px 29px 23px 0; }
  .q-mark { font-size: 25px; }
  .faq-list p { font-size: 12px; padding-left: 33px; padding-right: 15px; }
  .booking { padding-top: 0; padding-bottom: 50px; }
  .booking-invitation { margin: 0 -25px; padding: 65px 25px 61px; }
  .booking-invitation::before { background-image: linear-gradient(90deg, #f7f5edf0, #f7f5edd4), url("assets/design-natural-stilllife-v1.webp"); background-position: center, 63% center; }
  .booking-invitation::after { right: -70%; width: 130%; }
  .booking-invitation .section-lead { font-size: 12px; }
  .booking-actions { margin-top: 27px; }
  .booking-actions .wf-button { width: 100%; }
  .access-grid { grid-template-columns: 1fr; gap: 35px; padding-top: 50px; }
  .access-grid img { width: 92%; aspect-ratio: 1.15; border-top-right-radius: 54px; }
  .access-grid h3 { font-size: 28px; }
  .access-info div { grid-template-columns: 62px 1fr; font-size: 12px; }
  .access-links { gap: 24px; }
  .preview-links { gap: 16px; }
  .preview-links > span { width: 100%; }
  .wf-footer .footer-signature { font-size: 22px; }
  .review-dialog { padding: 22px; }
  .mobile-reserve { padding-left: 18px; padding-right: 18px; }
  .mobile-reserve .wf-button { gap: 17px; }
}
@media (max-width: 359px) {
  .wf-quicknav a { font-size: 9px; padding-inline: 4px; gap: 7px; }
  .wf-section { padding-left: 21px; padding-right: 21px; }
  .wf-section h2 { font-size: 27px; }
  .free-card { padding-inline: 18px; }
  .free-card h3 { font-size: 13px; }
  .fee-table { font-size: 11px; }
  .fee-table .price-value { font-size: 24px; }
  .booking-invitation { margin-inline: -21px; padding-inline: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .wf-button { transition: none; }
}
@media print {
  .mobile-reserve, .video-toggle, .preview-links { display: none !important; }
  .wf-section { padding: 35px 20px; }
  .wf-footer { padding-bottom: 25px; }
}
