:root{font-family:Jost,Arial,sans-serif;color:#213329;background:#f5f3ed}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}[hidden]{display:none!important}.booking-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem max(5vw,1rem);background:#fff;border-bottom:1px solid #e1e4dc}.booking-header img{width:170px;max-width:42vw;height:auto}.booking-header nav{display:flex;gap:1.4rem}.booking-header a,.booking-footer a{color:#264a38;text-decoration:none}.booking-main{max-width:1050px;margin:0 auto;padding:3rem 1rem 5rem}.booking-heading{text-align:center;margin:0 auto 2.5rem;max-width:700px}.booking-heading>p:first-child{color:#8b6f49;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem}.booking-heading h1{font:400 clamp(2.1rem,5vw,3.6rem) 'Gilda Display',serif;margin:.4rem 0}.booking-heading>p:last-child{font-size:1.05rem;line-height:1.5}.booking-panel,.booking-card{background:#fff;box-shadow:0 8px 30px #17281b10;border:1px solid #e1e4dc;border-radius:16px;padding:clamp(1.25rem,3vw,2rem)}.booking-panel h2,.booking-results h2{font:400 2rem 'Gilda Display',serif}.booking-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-bottom:1.4rem}.booking-fields label{display:flex;flex-direction:column;gap:.45rem;font-weight:600;font-size:.92rem}.booking-fields input,.booking-fields select,.booking-fields textarea{width:100%;padding:.75rem;border:1px solid #bac6b9;border-radius:8px;background:#fff;color:#203227;min-width:0}.booking-fields input:focus,.booking-fields select:focus,.booking-fields textarea:focus{outline:2px solid #88a78b;outline-offset:1px}.booking-button{border:0;background:#234d39;color:#fff;padding:.85rem 1.35rem;border-radius:8px;font-weight:600}.booking-button:hover{background:#173c2a}.booking-button:disabled{opacity:.55;cursor:wait}.booking-results{margin-top:2.2rem}.booking-results h2{margin-bottom:1rem}#bookingCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.booking-card h3{font:400 1.5rem 'Gilda Display',serif;margin:.1rem 0}.booking-card p{margin:.5rem 0}.booking-total{font-weight:700;font-size:1.2rem}.booking-tax,.booking-expiry{font-size:.9rem;color:#53645a}.booking-message{padding:1rem 1.2rem;border-radius:9px;background:#e5efe6;margin:1.2rem 0}.booking-message.booking-error{background:#fce7e4;color:#792b24}#bookingCheckout,#bookingConfirmed{margin-top:2rem}.booking-guest{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-guest .booking-notes{grid-column:1/-1}.booking-checkbox{display:block;margin:.75rem 0;line-height:1.4}.booking-checkbox input{margin-right:.5rem;accent-color:#234d39}.booking-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}.booking-link-button{border:0;background:transparent;color:#264a38;text-decoration:underline}.booking-footer{text-align:center;padding:1.5rem;background:#fff;border-top:1px solid #e1e4dc}@media(max-width:850px){.booking-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.booking-main{padding-top:2rem}.booking-fields,.booking-guest{grid-template-columns:1fr}.booking-panel,.booking-card{padding:1.2rem}.booking-header img{width:130px}}
.booking-payment-note{margin-top:1.2rem;font-weight:600}.booking-paypal-buttons{max-width:420px;margin-top:1.5rem}#bookingPending{margin-top:2rem}
.booking-checkout-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;list-style:none;margin:0 0 1.3rem;padding:0}.booking-checkout-steps li{display:flex;align-items:center;gap:.6rem;color:#65736a;font-size:.9rem;font-weight:600;line-height:1.25}.booking-step-number{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;border:1px solid #c9d5ca;background:#f3f6f2;color:#395443}.booking-checkout-steps .is-complete .booking-step-number{background:#dceadf;border-color:#b2cfb9}.booking-checkout-steps .is-current{color:#234d39}.booking-checkout-steps .is-current .booking-step-number{background:#234d39;border-color:#234d39;color:#fff}.booking-payment-required{margin:0 0 1.5rem;padding:1rem 1.15rem;border-left:4px solid #b1844c;border-radius:0 9px 9px 0;background:#faf5eb;color:#4c3b27;line-height:1.5;font-weight:600}.booking-paypal-stage{margin-top:1.5rem;padding:clamp(1.1rem,3vw,1.6rem);border:1px solid #d7e3d8;border-radius:14px;background:#f7faf6;text-align:center}.booking-paypal-stage h3{margin:0 0 .35rem;font:400 1.55rem 'Gilda Display',serif}.booking-paypal-stage p{margin:.25rem 0 1.2rem;color:#53645a}.booking-paypal-buttons{max-width:440px;margin:0 auto;min-height:45px}.booking-paypal-stage:focus-within{box-shadow:0 0 0 3px #b4d4b8}@media(max-width:560px){.booking-checkout-steps{gap:.4rem}.booking-checkout-steps li{flex-direction:column;align-items:flex-start;font-size:.76rem}.booking-step-number{width:1.8rem;height:1.8rem}}
.booking-captcha{min-height:68px;margin:18px 0 12px;color:#a12626}
.booking-captcha-status{display:flex;align-items:center;gap:11px;min-height:34px;color:#526b5d;font-size:13px;line-height:1.4}.booking-captcha-status[hidden]{display:none}.booking-captcha-spinner{display:none;width:18px;height:18px;flex:none;border:2px solid #d8e3d9;border-top-color:#234d39;border-radius:50%;animation:booking-captcha-spin .8s linear infinite}.booking-captcha-status.is-loading .booking-captcha-spinner{display:block}@keyframes booking-captcha-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.booking-captcha-spinner{animation-duration:2s}}
.booking-card-status{margin:.7rem 0 0;color:#496454;font-size:.9rem;line-height:1.4}.booking-card-status.booking-error{color:#792b24}.booking-card-status[hidden]{display:none}
.booking-embedded .booking-header,.booking-embedded .booking-footer,.booking-embedded .booking-heading,.booking-embedded #searchPanel,.booking-embedded #bookingResults{display:none!important}
.booking-embedded .booking-main{max-width:900px;padding:3.5rem 1rem 2rem}
.booking-embedded #bookingCheckout,.booking-embedded #bookingConfirmed,.booking-embedded #bookingPending{margin-top:0}
.booking-embedded-status{display:flex;align-items:center;gap:18px;min-height:180px}.booking-embedded-status .booking-captcha-spinner{display:block;width:30px;height:30px;border-width:3px}.booking-embedded-status h2,.booking-embedded-error h2{margin:0 0 .5rem}.booking-embedded-status p,.booking-embedded-error p{margin:0;line-height:1.5}.booking-embedded-error{border-color:#e6c5bf;background:#fff7f5;color:#792b24}
#bookingSearch .booking-fields label:last-child{grid-column:1/-1}
.booking-card-status{margin:.7rem 0 .25rem}
#bookingCheckoutMessage{margin-bottom:0}
@media print{body{background:#fff;color:#000}.booking-header,.booking-heading,.booking-footer,#bookingEmbeddedLoading,#bookingEmbeddedError,#searchPanel,#bookingResults,#bookingCheckout,#bookingPending,.booking-confirmation-actions{display:none!important}.booking-main,.booking-embedded .booking-main{max-width:none;padding:0}#bookingConfirmed{display:block!important;margin:0;padding:0;border:0;box-shadow:none}#bookingConfirmed::before{content:"Villa Garden · Tropea";display:block;margin-bottom:24px;font-size:18px;font-weight:700}#bookingConfirmed h2{color:#000}#bookingConfirmationCode{font-weight:700}}
