/* Continuation of the approved Onest / milk / olive visual system. */
summary { cursor:pointer; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary:focus-visible { outline:3px solid #927143; outline-offset:5px; border-radius:4px; }
.price-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.price-option { display:flex; flex-direction:column; padding:35px 36px 28px; border-radius:var(--radius); }
.price-option-main { background:var(--leaf); }
.price-option-couple { border:1px solid var(--line); }
.price-option-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:30px; color:#586347; }
.price-option-heading .discount { font-size:12px; padding:8px 11px; }
.price-option-heading>span:not(.discount) { font-size:12px; }
.price-option h3 { font-size:32px; line-height:1.12; margin-top:23px; }
.price-description { font-size:15px; color:var(--muted); line-height:1.6; max-width:48ch; margin-top:19px; flex-grow:1; }
.price-first { margin-top:30px; }
.price-first>p:first-child { font-size:13px; color:var(--muted); }
.price-amount { font-size:43px; line-height:1.3; letter-spacing:-.035em; font-weight:500; font-variant-numeric:tabular-nums; margin-top:4px; }
.price-amount del { font-size:22px; font-weight:400; letter-spacing:-.02em; color:var(--muted); margin-left:12px; text-decoration-thickness:1px; white-space:nowrap; }
.price-option>.button { margin-top:22px; width:100%; }
.button-outline { background:transparent; border:1px solid #a6af9b; color:var(--forest); }
.button-outline:hover { background:#eeeee4; }
.price-repeat { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid #bdc5a5; padding-top:20px; margin-top:27px; font-size:14px; }
.price-repeat small { display:block; color:var(--muted); font-size:12px; margin-top:3px; }
.price-repeat strong { font-weight:500; font-size:21px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.price-option-couple .price-repeat { border-color:var(--line); }
.package-details { margin-top:28px; border-block:1px solid var(--line); }
.package-details>summary { display:flex; align-items:center; justify-content:space-between; gap:25px; min-height:80px; font-size:21px; font-weight:500; letter-spacing:-.02em; }
.disclosure-icon { display:block; width:24px; height:24px; flex-shrink:0; position:relative; }
.disclosure-icon::before,.disclosure-icon::after { content:""; position:absolute; width:16px; height:1.5px; background:currentColor; top:11px; left:4px; }
.disclosure-icon::after { transform:rotate(90deg); }
details[open]>summary .disclosure-icon::after { display:none; }
.package-content { padding:0 0 28px; }
.package-content>p { max-width:72ch; color:var(--muted); font-size:15px; }
.package-list { margin:20px 0; }
.package-list>div { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 0; border-bottom:1px solid var(--line); }
.package-list dt { font-size:16px; }
.package-list dt small { display:block; font-size:12px; color:var(--muted); margin-top:4px; }
.package-list dd { margin:0; white-space:nowrap; font-weight:500; font-size:20px; font-variant-numeric:tabular-nums; }
.package-content .package-terms { font-size:13px; line-height:1.65; }
.booking-process-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; list-style:none; padding:0; margin:43px 0 0; }
.booking-process-list li { border-top:1px solid var(--line); padding-top:24px; }
.process-number { width:39px; height:39px; display:grid; place-items:center; border:1px solid #a6af9b; border-radius:50%; font-size:15px; color:#586347; }
.booking-process-list h3 { margin-top:25px; font-size:25px; }
.booking-process-list p { font-size:15px; color:var(--muted); line-height:1.65; margin-top:14px; max-width:42ch; }
.process-action { min-width:290px; width:max-content; margin-top:35px; }
.faq-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.55fr); gap:90px; align-items:start; }
.faq-heading p { font-size:15px; color:var(--muted); line-height:1.6; max-width:28ch; margin-top:24px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:25px 0; font-size:20px; font-weight:500; line-height:1.4; letter-spacing:-.02em; }
.faq-answer { padding:0 40px 25px 0; }
.faq-answer p { font-size:15px; line-height:1.65; color:var(--muted); max-width:65ch; }
.site-footer { margin-top:85px; padding-top:40px; padding-bottom:30px; }
.footer-main { display:grid; grid-template-columns:1.3fr .85fr 1fr; gap:50px; padding:38px 0 40px; border-top:1px solid var(--line); }
.footer-identity>a { font-size:24px; font-weight:500; letter-spacing:-.025em; text-decoration:none; }
.footer-identity p { color:var(--muted); font-size:13px; line-height:1.6; margin-top:14px; }
.footer-nav { display:flex; flex-direction:column; align-items:flex-start; gap:0; margin:0; font-size:13px; }
.footer-nav a { padding-block:8px; }
.footer-contacts h2 { font-size:15px; letter-spacing:0; font-weight:500; margin-bottom:14px; }
.footer-contacts>a { display:block; width:max-content; max-width:100%; font-size:14px; padding-block:7px; text-decoration:none; overflow-wrap:anywhere; }
.footer-social { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:18px; }
.footer-social a { font-size:12px; display:flex; align-items:center; min-height:36px; }
.footer-legal { border-top:1px solid var(--line); padding-top:24px; display:flex; justify-content:space-between; align-items:center; gap:30px; color:var(--muted); font-size:11px; line-height:1.65; }
.footer-legal>a { min-height:44px; display:inline-flex; align-items:center; }
.footer-top { gap:8px; white-space:nowrap; }
.footer-top svg { width:17px; height:17px; }
@media (min-width:801px) and (max-width:1150px) { .site-header nav { gap:16px; } }
@media (max-width:1100px) {
  .price-option { padding:30px 28px 25px; }
  .price-option h3 { font-size:29px; }
  .price-options { gap:20px; }
  .booking-process-list { gap:28px; }
  .booking-process-list h3 { font-size:22px; }
  .faq-section { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:50px; }
  .faq-list summary { font-size:19px; }
  .footer-main { gap:30px; grid-template-columns:1.1fr .85fr 1fr; }
  .footer-identity>a { font-size:21px; }
}
@media (max-width:800px) {
  .price-option { padding:26px 22px 24px; }
  .price-option h3 { font-size:27px; }
  .price-option-heading { gap:8px; }
  .price-option-heading .discount { font-size:10px; padding:7px 9px; }
  .price-option-heading>span:not(.discount) { font-size:10px; }
  .price-description { font-size:14px; }
  .price-amount { font-size:36px; }
  .price-amount del { font-size:19px; margin-left:8px; }
  .price-repeat { font-size:12px; gap:12px; }
  .price-repeat strong { font-size:19px; }
  .price-option .button { font-size:12px; padding-inline:16px; }
  .booking-process-list { gap:22px; }
  .booking-process-list h3 { font-size:21px; }
  .booking-process-list p { font-size:14px; }
  .faq-section { grid-template-columns:1fr; gap:30px; }
  .faq-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; }
  .faq-heading p { margin-top:0; max-width:28ch; }
  .footer-main { grid-template-columns:1fr 1fr; gap:30px 40px; }
  .footer-identity { grid-column:1 / -1; }
  .footer-legal { flex-wrap:wrap; gap:10px 25px; }
  .footer-legal p { flex-basis:100%; }
}
@media (max-width:600px) {
  .prices .section-heading h2 { font-size:37px; }
  .price-options { grid-template-columns:1fr; gap:20px; }
  .price-option { padding:27px 25px 24px; }
  .price-option h3 { font-size:30px; margin-top:22px; }
  .price-option-heading .discount { font-size:11px; padding:8px 10px; }
  .price-option-heading>span:not(.discount) { font-size:11px; }
  .price-description { font-size:14px; margin-top:16px; }
  .price-first { margin-top:25px; }
  .price-first>p:first-child { font-size:12px; }
  .price-amount { font-size:39px; }
  .price-amount del { font-size:20px; margin-left:10px; }
  .price-option .button { font-size:13px; margin-top:19px; }
  .price-repeat { font-size:13px; margin-top:24px; padding-top:18px; }
  .price-repeat strong { font-size:21px; }
  .package-details { margin-top:25px; }
  .package-details>summary { min-height:84px; padding-block:18px; font-size:19px; line-height:1.3; }
  .package-content>p { font-size:14px; }
  .package-list>div { gap:15px; padding:17px 0; }
  .package-list dt { font-size:14px; }
  .package-list dt small { font-size:11px; }
  .package-list dd { font-size:17px; }
  .package-content .package-terms { font-size:12px; }
  .booking-process-list { grid-template-columns:1fr; gap:27px; margin-top:27px; }
  .booking-process-list li { display:grid; grid-template-columns:35px minmax(0,1fr); gap:10px 18px; padding-top:23px; }
  .process-number { grid-column:1; grid-row:1 / 3; width:35px; height:35px; font-size:14px; }
  .booking-process-list h3 { grid-column:2; margin-top:3px; font-size:23px; }
  .booking-process-list p { grid-column:2; font-size:14px; margin-top:0; }
  .process-action { width:100%; min-width:0; margin-top:29px; }
  .faq-section { gap:26px; }
  .faq-heading { display:block; }
  .faq-heading h2 { font-size:39px; }
  .faq-heading p { font-size:14px; margin-top:19px; max-width:33ch; }
  .faq-list summary { font-size:18px; padding-block:22px; gap:20px; }
  .faq-answer { padding:0 15px 23px 0; }
  .faq-answer p { font-size:14px; }
  .site-footer { margin-top:50px; padding-top:20px; padding-bottom:25px; }
  .footer-main { gap:26px 25px; padding-block:30px; }
  .footer-identity>a { font-size:23px; }
  .footer-identity p { font-size:12px; margin-top:12px; }
  .footer-nav { font-size:12px; }
  .footer-nav a { padding-block:9px; }
  .footer-contacts h2 { font-size:14px; }
  .footer-contacts>a { font-size:12px; }
  .footer-social { gap:4px 15px; margin-top:12px; }
  .footer-social a { font-size:11px; }
  .footer-legal { font-size:10px; gap:6px 20px; }
}
@media (max-width:370px) {
  .prices .section-heading h2 { font-size:34px; }
  .price-option { padding:25px 20px 23px; }
  .price-option h3 { font-size:28px; }
  .price-option .button { font-size:12px; }
  .package-list dd { font-size:16px; }
  .booking-process-list li { gap:10px 14px; }
  .booking-process-list h3 { font-size:21px; }
  .footer-main { gap:24px 18px; }
  .footer-contacts>a { font-size:11px; }
}
