/* Readable, practical details for planning a stay. */
:root { --muted: #626b5e; }
.desktop-nav { font-size: 14px; }
.language-switch button { min-height: 40px; font-size: 11px; }
.hero-description { font-size: 16px; max-width: 420px; }
.hero-note { font-size: 12px; }
.hero-story-link { font-size: 12px; }
.hero-yana-card small { font-size: 11px; }
.photo-location { font-size: 9px; letter-spacing: 1.4px; }
.trust-strip > div { font-size: 14px; }
.section-intro { font-size: 16px; max-width: 350px; }
.home-note p, .routine-grid p, .arrival-grid p,
.yana-copy > p:not(.eyebrow):not(.lead),
.family-text > p:not(.eyebrow), .care-grid p,
.koba-copy > p:not(.eyebrow):not(.koba-lead),
.social-link-card p { font-size: 15px; line-height: 1.8; }
.home-note .text-link, .yana-copy .text-link, .koba-copy .text-link { font-size: 13px; }
.photo-frame figcaption { font-size: 13px; }
.family-text p.small-text { font-size: 13px; }
.family-photo figcaption { font-size: 15px; }
.care-grid p { max-width: none; }
.price-card h3 { max-width: none; min-height: 66px; }
.price-desc { font-size: 14px; min-height: 76px; }
.price-icon span { font-size: 10px; letter-spacing: 1px; }
.price-icon { align-items: flex-start; }
.price > div { font-size: 13px; }
.price small { font-size: 12px; }
.size-price { font-size: 12px; min-height: 42px; }
.check-list { font-size: 14px; }
.price-card > .button { font-size: 13px; }
.pricing-note { font-size: 12px; max-width: 850px; }
.faq-list summary { font-size: 16px; }
.faq-list details p, .faq-intro > p:last-child { font-size: 15px; }
.contact-panel > p:not(.eyebrow) { font-size: 16px; }
.contact-instagram { font-size: 14px; }
.yana-background { list-style: none; padding: 0; margin: 23px 0; }
.yana-background li { position: relative; padding-left: 21px; font-size: 13px; line-height: 1.7; }
.yana-background li + li { margin-top: 8px; }
.yana-background li::before { content: ''; position: absolute; top: 9px; left: 0; width: 6px; height: 6px; border-radius: 50%; background: var(--olive); }
.yana-details { margin-top: 22px; font-size: 13px; }

.stay-planner { display: grid; grid-template-columns: 1fr 1.25fr .95fr; gap: 24px 34px; margin-top: 50px; padding: 34px 0 0; border-top: 1px solid #c7ceba; align-items: start; }
.planner-intro .eyebrow { font-size: 9px; color: var(--muted); margin-bottom: 13px; }
.planner-intro h3 { font-size: 31px; line-height: 1.2; }
.planner-intro > p:last-child { font-size: 13px; color: var(--muted); line-height: 1.8; margin-top: 16px; }
.planner-controls { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px 12px; }
.planner-controls label { display: flex; flex-direction: column; gap: 7px; min-width: 0; font-size: 12px; font-weight: 500; }
.planner-controls label:first-child { grid-column: 1 / -1; }
.planner-controls input, .planner-controls select { min-width: 0; width: 100%; min-height: 46px; border: 1px solid #b9c2ad; background: #faf8f1; border-radius: 4px; padding: 10px 12px; font-size: 15px; color: var(--ink); }
.planner-controls input:disabled { background: #dde3d1; }
.planner-hint { grid-column: 1 / -1; color: var(--muted); font-size: 12px; line-height: 1.7; }
.planner-result { background: #f7f4eb; border: 1px solid #c7ceba; border-radius: 5px; padding: 22px; }
.planner-result > span { display: block; font-size: 12px; color: var(--muted); }
.planner-result output { display: block; font-family: var(--serif); font-size: clamp(28px, 2.8vw, 40px); line-height: 1.2; letter-spacing: -1px; margin-top: 10px; overflow-wrap: anywhere; }
.planner-result small { display: block; font-size: 12px; color: var(--muted); min-height: 21px; margin-top: 7px; }
.planner-result .button { width: 100%; margin-top: 19px; font-size: 12px; gap: 10px; padding: 12px; }
.planner-result .button:disabled { opacity: .5; transform: none; }
.planner-note { grid-column: 1 / -1; font-size: 12px; color: var(--muted); line-height: 1.8; }
.training-section { padding-bottom: 42px; }
.training-section .section-heading > div { max-width: 620px; }
.training-goals { display: grid; grid-template-columns: 1fr 1fr; gap: 0 65px; }
.training-goals article { display: flex; align-items: flex-start; gap: 24px; padding: 25px 0; border-top: 1px solid var(--line); }
.goal-number { font-family: var(--serif); font-style: italic; color: var(--gold); font-size: 28px; line-height: 1.2; padding-top: 2px; }
.training-goals h3 { font-size: 26px; line-height: 1.2; }
.training-goals p { font-size: 15px; line-height: 1.8; margin-top: 12px; color: var(--muted); }
.training-takeaway { display: grid; grid-template-columns: 34px 1fr; column-gap: 22px; align-items: start; padding: 30px; margin-top: 20px; background: #eaece1; border-radius: 5px; }
.training-takeaway > .icon { width: 30px; height: 30px; color: var(--olive); }
.training-takeaway h3 { font-size: 27px; }
.training-takeaway p { font-size: 15px; color: var(--muted); line-height: 1.8; margin-top: 12px; max-width: 740px; }
.training-takeaway .text-link { grid-column: 2; margin-top: 20px; justify-self: start; text-align: left; }
.training-note { font-size: 12px; color: var(--muted); margin-top: 20px; max-width: 850px; }
.arrival-section { padding-top: 65px; }
.packing-panel { display: grid; grid-template-columns: .85fr 1.4fr; gap: 40px 65px; margin-top: 55px; padding: 40px; background: #eee9dc; border-radius: 5px; }
.packing-copy .eyebrow { font-size: 9px; margin-bottom: 18px; }
.packing-copy h3 { font-size: 36px; line-height: 1.2; }
.packing-copy > p:last-of-type { font-size: 14px; color: var(--muted); margin-top: 18px; line-height: 1.8; }
.packing-meter { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; align-items: center; }
.packing-meter progress { appearance: none; width: 100%; height: 5px; border: 0; border-radius: 3px; background: #d7d4c4; overflow: hidden; color: var(--green); }
.packing-meter progress::-webkit-progress-bar { background: #d7d4c4; }
.packing-meter progress::-webkit-progress-value { background: var(--green); }
.packing-meter progress::-moz-progress-bar { background: var(--green); }
.packing-meter > span { font-size: 12px; color: var(--muted); }
.packing-meter .text-link { font-size: 11px; margin-left: auto; padding: 6px 0; }
.packing-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 25px; }
.packing-item { display: flex; position: relative; gap: 15px; padding: 17px 0; cursor: pointer; border-bottom: 1px solid #d6d0bd; }
.packing-item { border-bottom: 0; border-top: 1px solid #d6d0bd; }
.packing-item > input { position: absolute; width: 24px; height: 24px; opacity: 0; margin: 0; }
.packing-check { display: grid; place-items: center; width: 24px; height: 24px; flex-shrink: 0; border-radius: 4px; border: 1px solid #939d86; margin-top: 2px; }
.packing-check .icon { width: 16px; height: 16px; opacity: 0; }
.packing-item > input:checked + .packing-check { background: var(--green); color: var(--paper); border-color: var(--green); }
.packing-item > input:checked + .packing-check .icon { opacity: 1; }
.packing-item > input:focus-visible + .packing-check { outline: 2px solid var(--gold); outline-offset: 4px; }
.packing-item > span:last-child { min-width: 0; }
.packing-item strong { display: block; font-size: 15px; line-height: 1.6; font-weight: 600; }
.packing-item > span:last-child > span { display: block; font-size: 13px; color: var(--muted); line-height: 1.8; margin-top: 4px; }
.packing-confirm { grid-column: 1 / -1; border-top: 1px solid #d6d0bd; padding-top: 24px; }
.packing-confirm > strong { font-family: var(--serif); font-size: 24px; font-weight: 400; }
.packing-confirm > p { margin-top: 10px; font-size: 14px; line-height: 1.8; color: var(--muted); }
.form-intro { font-size: 14px; }
.form-direct-link { display: inline-flex; gap: 8px; font-size: 12px; line-height: 1.8; margin-top: 14px; border-bottom: 1px solid var(--olive); }
.form-grid label { font-size: 13px; }
.form-grid input, .form-grid select, .form-grid textarea, #message-preview { font-size: 16px; }
.form-grid label.date-flexible { flex-direction: row; align-items: center; gap: 10px; font-size: 13px; cursor: pointer; }
.form-grid .date-flexible input { width: 20px; height: 20px; min-height: 20px; flex-shrink: 0; accent-color: var(--green); margin: 0; }
.form-fit-note p { font-size: 12px; }
.estimate-note, .privacy-note, .form-error, .copy-status { font-size: 12px; }
.estimate > div, .estimate small { font-size: 12px; }
.dialog-close { min-height: 40px; min-width: 40px; }

@media (max-width: 1100px) {
  .stay-planner { grid-template-columns: 1.2fr 1fr; gap: 25px 35px; }
  .planner-intro { grid-column: 1 / -1; }
  .planner-intro > p:last-child { max-width: 650px; }
  .training-goals { gap: 0 40px; }
  .packing-panel { gap: 35px; padding: 32px; }
  .hero-yana-card small { font-size: 10px; }
  .price-card h3 { font-size: 25px; }
  .price-desc { min-height: 100px; }
}
@media (max-width: 900px) {
  .price-grid { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; gap: 24px; }
  .price-card { padding: 30px; }
  .price-card h3, .price-desc, .size-price { min-height: 0; }
  .price-card h3, html[lang=ru] .price-card h3 { font-size: 30px; }
  .price-desc { max-width: none; }
  .price > span { font-size: 52px; }
  .price-card .button .icon { display: block; }
  .check-list { padding-bottom: 0; }
  .packing-panel { grid-template-columns: 1fr; }
  .packing-copy { max-width: 540px; }
  .packing-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
  .packing-item, .packing-item:first-child, .packing-item:last-child { padding: 18px 0; border-top: 1px solid #d6d0bd; border-bottom: 0; }
  .section-intro { font-size: 15px; max-width: 300px; }
  .hero-story-link, html[lang=ru] .hero-story-link { font-size: 11px; }
  .hero-yana-card small { font-size: 9px; }
  .photo-location { font-size: 8px; }
  .hero h1 { font-size: 62px; }
  .training-section .section-heading { display: block; }
  .training-section .section-intro { max-width: 620px; margin-top: 23px; }
}
@media (max-width: 580px) {
  .language-switch button { min-height: 44px; min-width: 29px; }
  .hero-description { font-size: 16px; line-height: 1.8; }
  .hero h1 { font-size: clamp(59px, 15.4vw, 82px); }
  .hero-visual.real-home-hero { margin-top: 37px; }
  .hero-yana-card { width: 158px; }
  .hero-yana-card small, html[lang=ru] .hero-yana-card small { font-size: 10px; }
  .hero-story-link, html[lang=ru] .hero-story-link { font-size: 11px; max-width: 170px; margin-left: auto; text-align: right; line-height: 1.6; }
  .hero-note { font-size: 12px; }
  .trust-strip > div { font-size: 11px; padding-inline: 7px; }
  .section-intro { max-width: none; }
  .photo-frame figcaption { font-size: 11px; }
  .home-note p, .routine-grid p, .arrival-grid p { font-size: 14px; }
  .home-note .text-link { font-size: 12px; }
  .yana-copy > p:not(.eyebrow):not(.lead), .family-text > p:not(.eyebrow), .care-grid p, .koba-copy > p:not(.eyebrow):not(.koba-lead) { font-size: 15px; }
  .family-text p.small-text { font-size: 13px; }
  .family-photo figcaption { font-size: 14px; }
  .koba-copy .text-link { font-size: 12px; flex-wrap: wrap; }
  .care-grid h3 { font-size: 25px; }
  .price-card { padding: 27px; }
  .price-icon span, html[lang=ru] .price-icon span { font-size: 10px; letter-spacing: 1px; }
  .price-desc { font-size: 15px; }
  .check-list { font-size: 14px; }
  .size-price { font-size: 12px; }
  .price-card > .button { font-size: 14px; }
  .stay-planner { display: block; margin-top: 34px; padding-top: 29px; }
  .planner-intro h3 { font-size: 34px; }
  .planner-intro > p:last-child { font-size: 14px; }
  .planner-controls { margin-top: 24px; gap: 16px 12px; }
  .planner-controls label { font-size: 12px; }
  .planner-controls input, .planner-controls select { font-size: 16px; min-height: 48px; padding-inline: 10px; }
  .planner-result { margin-top: 23px; padding: 24px; }
  .planner-result output { font-size: 42px; }
  .planner-result .button { font-size: 14px; }
  .planner-note { margin-top: 17px; }
  .training-section { padding-bottom: 25px; }
  .training-section h2 { font-size: 36px; }
  .training-goals { grid-template-columns: 1fr; }
  .training-goals article { gap: 20px; padding: 21px 0; }
  .training-goals h3 { font-size: 25px; }
  .training-goals p { font-size: 14px; }
  .training-takeaway { padding: 25px 21px; grid-template-columns: 1fr; gap: 17px; }
  .training-takeaway p { font-size: 14px; }
  .training-takeaway .text-link { grid-column: 1; margin-top: 0; font-size: 12px; gap: 12px; }
  .training-note { font-size: 12px; }
  .arrival-section { padding-top: 38px; }
  .packing-panel { display: block; padding: 28px 22px; margin-top: 36px; }
  .packing-copy h3 { font-size: 33px; }
  .packing-list { display: flex; flex-direction: column; margin-top: 27px; }
  .packing-item, .packing-item:first-child, .packing-item:last-child { padding-block: 18px; }
  .packing-confirm { margin-top: 14px; padding-top: 22px; }
  .faq-list summary { font-size: 15px; }
  .faq-list details p, .faq-intro > p:last-child { font-size: 14px; }
  .social-link-card p { font-size: 14px; }
  .contact-panel > p:not(.eyebrow) { font-size: 15px; max-width: 300px; }
  .form-grid { grid-template-columns: 1fr; gap: 17px; }
  .form-grid label { font-size: 13px; }
  .form-grid select[name=social] { font-size: 16px; }
  .form-fit-note p { font-size: 12px; }
  .estimate > div { align-items: flex-start; flex-direction: column; gap: 6px; }
  .estimate strong { font-size: 30px; }
  .privacy-note { font-size: 11px; }
  .message-actions > * { min-height: 48px; font-size: 14px; }
  .footer-location { font-size: 10px; }
}
@media (max-width: 350px) {
  .hero-yana-card { width: 139px; }
  .hero-yana-card small, html[lang=ru] .hero-yana-card small { font-size: 9px; }
  .hero-story-link, html[lang=ru] .hero-story-link { max-width: 128px; font-size: 10px; }
  .packing-panel { padding-inline: 19px; }
  .planner-controls { grid-template-columns: 1fr; }
  .planner-controls label { grid-column: 1; }
  .form-direct-link { font-size: 11px; }
}
