/* The WhatsApp form (contact.js): a calm white card centred on a computer, a sheet from the bottom on a phone. Brand palette
   only; the WhatsApp green is kept for the WhatsApp button, as everywhere on the site. */
html.ct-open{overflow:hidden}
.ct{width:min(520px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:4px;background:var(--white,#fff);color:var(--ink,#101010);box-shadow:0 40px 90px -30px #10101066;overflow:auto;font-family:var(--sans,inherit)}
.ct::backdrop{background:#101010a6;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.ct[open]{animation:ct-in .32s cubic-bezier(.215,.61,.355,1)}
@keyframes ct-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ct-card{position:relative;margin:0;padding:34px 34px 28px}
.ct-close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #ded7cb;border-radius:50%;background:#fff;color:#101010;cursor:pointer;transition:border-color .2s}
.ct-close:hover{border-color:#101010}
.ct-close .icon{width:14px;height:14px}
.ct-kicker{display:flex;align-items:center;gap:8px;margin:0;font-size:11px;font-weight:600;letter-spacing:1.75px;text-transform:uppercase;color:#b99860}
.ct-kicker .icon{width:15px;height:15px;color:#25d366}
.ct h2{margin:14px 44px 0 0;font-size:clamp(26px,3.4vw,32px);font-weight:500;letter-spacing:-.035em;line-height:1.1}
.ct-copy{margin:12px 0 0;font-size:15px;line-height:1.65;color:#5c5a55}
.ct-fields{display:grid;gap:18px;margin-top:26px}
.ct-field{display:grid;gap:8px;min-width:0}
.ct-label{display:flex;align-items:baseline;gap:6px;font-size:13px;font-weight:600;color:#101010}
.ct-label em{font-style:normal;color:#b99860}
.ct-label small{font-size:12px;font-weight:500;color:#5c5a55}
.ct-field input[type=text],.ct-field input[type=tel]{width:100%;min-height:52px;padding:0 16px;border:1px solid #ded7cb;border-radius:2px;background:#fff;color:#101010;font:inherit;font-size:16px;outline:none;transition:border-color .2s,box-shadow .2s}
.ct-field input::placeholder{color:#5c5a5599}
.ct-field input:focus{border-color:#101010;box-shadow:0 0 0 3px #b9986033}
.ct-field input[aria-invalid=true]{border-color:#101010;box-shadow:0 0 0 3px #b9986059}
.ct-error{min-height:0;font-size:12.5px;line-height:1.4;color:#101010}
.ct-error:empty{display:none}
.ct-error:not(:empty):before{content:'';display:inline-block;width:6px;height:6px;margin:0 8px 1px 0;border-radius:50%;background:#b99860}
.ct-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ct-stepper{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 6px;border:1px solid #ded7cb;border-radius:2px}
.ct-stepper button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:2px;background:none;color:#101010;cursor:pointer}
.ct-stepper button:hover:enabled{background:#f3eee4}
.ct-stepper button:disabled{color:#ded7cb;cursor:default}
.ct-stepper .icon{width:14px;height:14px}
.ct-stepper output{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.ct-stepper output.is-empty{font-size:14px;font-weight:500;color:#5c5a55;white-space:nowrap}
.ct-send{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:56px;margin-top:26px;padding:0 22px;border:0;border-radius:2px;background:#101010;color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}
.ct-send .icon{width:18px;height:18px;color:#25d366}
.ct-send:hover{background:#000}
.ct-note{margin:14px 0 0;font-size:12.5px;line-height:1.55;color:#5c5a55;text-align:center}
@media(max-width:600px){
  .ct{width:100vw;max-height:calc(100dvh - 24px);margin:auto 0 0;border-radius:6px 6px 0 0}
  .ct[open]{animation:ct-up .34s cubic-bezier(.215,.61,.355,1)}
  @keyframes ct-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
  .ct-card{padding:26px 20px calc(22px + env(safe-area-inset-bottom))}
  .ct-close{top:14px;right:14px}
  .ct h2{font-size:26px}
}
@media(prefers-reduced-motion:reduce){.ct[open]{animation:none}}
.ct-count{grid-template-columns:minmax(0,1fr)}
.ct-stepper{min-width:0}
.ct-stepper output{min-width:0;overflow:hidden;text-overflow:ellipsis;text-align:center}
@media(max-width:420px){.ct-stepper{padding:0 2px}.ct-stepper button{width:34px}.ct-stepper output.is-empty{font-size:13px}.ct-pair{gap:10px}}
/* A quote from the builder: its plan, read-only; a plan's nights, fixed. */
.ct-summary{display:grid;gap:6px;padding:16px 18px;border:1px solid #ded7cb;border-radius:2px;background:#f3eee4}
.ct-summary p{margin:0;font-size:15px;font-weight:600;line-height:1.45;color:#101010}
.ct-summary small{font-size:12.5px;line-height:1.5;color:#5c5a55}
.ct-fixed{display:flex;align-items:center;justify-content:center;min-height:52px;border:1px solid #ded7cb;border-radius:2px;background:#f3eee4;font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.ct-note a{color:#101010;text-decoration:underline;text-decoration-color:#b99860;text-underline-offset:3px}
/* The line of links at the foot of every page (site/legal.mjs footLinks; written in both languages in index.html and the house
   pages): the contact page, the email address, the privacy policy and the booking terms. Here because this stylesheet is on every
   page. On the dark footers of the generated pages and the house pages it takes a line of its own under a hairline; on the home
   page it sits in the bottom row. */
.foot-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;font-size:12.5px;line-height:1.5}
.foot-legal a{color:#ded7cb!important;text-decoration:none;transition:color .2s}
.foot-legal a:hover{color:#b99860!important}
.doc-footer .foot-legal,.house-footer-bar .foot-legal{flex-basis:100%;margin-top:4px;padding-top:16px;border-top:1px solid #ffffff1f}
.full-footer .footer-bottom{flex-wrap:wrap}
.full-footer .foot-legal{gap:6px 18px;font-size:inherit}
.full-footer .foot-legal a{text-decoration:underline;text-decoration-color:#ffffff40;text-underline-offset:3px}
.full-footer .footer-note a.foot-contact{color:inherit}
@media(max-width:760px){.full-footer .foot-legal{order:4;flex-basis:100%}}
/* The same two pages from the builder's terms, under the deposit and the cancellation (packs.js, legalHTML). */
.summary-legal a{color:#101010;text-decoration:underline;text-decoration-color:#b99860;text-underline-offset:2px}
.summary-legal a:hover{color:#b99860}
