/*
Theme Name: Mira Child
Template: mira
Author: ANTNNA
Author URI: http://antnna.com
Description: Child theme for Mira boutique hotel theme.
Version: 1.1.2
*/

/* FUNCTIONS 1*/
.reserve-grid {
    grid-template-columns: 1.2fr 1.2fr;
}
.pty-search-wrapper { background: #DFE0D1; padding: 10px 35px; border: 1px solid #111D13; border-radius: 6px; max-width: 1200px; margin: 0 auto; }
.pty-search-wrapper h3 { font-size: 28px; margin-bottom: 25px; font-weight: 600; text-transform: lowercase; }
.pty-list-search-form { display: flex; gap: 20px; align-items: center; }
.pty-field { flex: 1; position: relative; }
.pty-field input, .pty-field select { width: 100%; height: 60px; padding: 22px 16px 8px 16px; border: 1px solid #d4d4d4; background: #fff; font-size: 15px; outline: none; transition: 0.2s ease; margin-bottom: 0; }
.pty-field input:focus, .pty-field select:focus { border-color: #0f2e1d; }
.pty-field label { position: absolute; top: 8px; left: 6px; font-size: 13px; color: #777; pointer-events: none; z-index: 1; background: transparent; }
.pty-submit button { height: 55px; padding: 0 5px; border-radius: 8px; border: none; color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; transition: 0.3s ease; }
@media (max-width: 768px) { 
.reserve-grid {grid-template-columns: 1fr;}	
.res-submit {padding: 19px;}
.pty-search-wrapper { padding: 18px 16px; border-radius: 16px; } 
.pty-search-wrapper h3 { font-size: 24px; margin-bottom: 14px; } 
.pty-list-search-form { flex-direction: column; gap: 12px; align-items: stretch; } 
.pty-field { width: 100%; } 
.pty-field input, .pty-field select { height: 52px; font-size: 15px; padding: 18px 14px 6px 14px; border-radius: 12px; } 
.pty-field label { top: 6px; left: 0px; font-size: 12px; } 
.pty-submit { width: 100%; margin-top: 4px; } 
.pty-submit button { width: 100%; height: 50px; border-radius: 12px; font-size: 16px; } 
}

/* FUNCTIONS 2 */
.day.av.in-range { background-color: #111D13 !important; color: #fff; }
.day.av.selected { color: #fff; background-color: #111D13 !important; }
.calendar { overflow: hidden; }
.calendar-header { display: flex; justify-content: space-between; align-items: center; padding: 10px 15px; font-weight: bold; }
.calendar-header button.prevBtn, .calendar-header button.nextBtn { color: #111D13; padding: 10px 12px; cursor: pointer; width: auto; border: 1px solid #aba08a; background-color: #fff; margin: 0; border-radius: 50px; }
.calendar-header button.prevBtn:disabled, .calendar-header button.nextBtn:disabled { background-color: #ccc; cursor: not-allowed; padding: 10px 12px; }
.calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; }
.calendar-days div { padding: 10px; font-size: 13px; }
.calendar-days .next-month { background-color: lightgrey; opacity: .5; }
.calendar-days .prev-month { background-color: lightgrey; opacity: .5; }
.av { color: #111D13; }
.not-av { color: #ddd; }
.aaa { background-color: #fff5c6 !important; }
.day-name { font-weight: bold; }
.booking-container input[type="checkbox"] { width: auto; }
.booking-container input { width: 100%; box-sizing: border-box; text-transform: none; }
.custom-alert span { font-weight: bold; }
.custom-alert { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: white; padding: 20px; width: 300px; box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); border-radius: 8px; z-index: 1000; display: none; }
.custom-alert-overlay { position: fixed; top: 0; left: 0; width: 100%; max-width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); display: none; z-index: 999; }
.custom-alert .close-btn { position: absolute; top: 0px; right: 0px; cursor: pointer; font-size: 15px; font-weight: bold; background: none; border: none; }
.booking-container { margin: auto; background: white; padding: 20px; border-radius: 10px; box-shadow: 2px 2px 10px rgba(0,0,0,0.1); }
/*
h3 { text-align: center; }
label { display: block; margin-top: 10px; }
select, input { width: 100%; padding: 10px; margin-top: 5px; border: 1px solid #ddd; border-radius: 5px; background: white; font-size: 16px; }
*/
select { appearance: none; background: white url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="black"><polygon points="5,8 15,8 10,13"/></svg>') no-repeat right 10px center; background-size: 12px; cursor: pointer; }
.booking-container button:hover { opacity: .8; }
#clear-btn { background: #fff; color: #111D13; }
#amount { font-size: 23px; display: contents; }
#nights, .checkin_date, .checkout_date { display: contents; }
.booking-container button { margin-left: 8px; color: white; border-radius: 5px; cursor: pointer; font-size: 18px; border-radius: 0px; }
.btn-label { padding: 13px 15px 11px 12px; }
button:disabled { background-color: #ccc; cursor: not-allowed; }
.price-summary { margin-top: 20px; padding: 15px; background: #f9f9f9; border-radius: 5px; font-size: 16px; }
.price-summary div { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid lightgray; padding-top: 10px; padding-bottom: 10px; }
.total { font-weight: bold; font-size: 18px; }
.booking-main-container .booking-container { width: 100%; margin: 0 auto; padding-left: 10px; }
.booking-container { font-family: "Montserrat"; margin: auto; background: white; padding: 20px; border-radius: 10px; box-shadow: 2px 2px 10px rgba(0,0,0,0.1); }

select { appearance: none; background: white url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="black"><polygon points="5,8 15,8 10,13"/></svg>') no-repeat right 10px center; background-size: 12px; cursor: pointer; }
button#booking-btn { background-color: #ff7f00; }
button:disabled { background-color: #ccc; cursor: not-allowed; }
.price-summary { margin-top: 20px; padding: 15px; background: #f9f9f9; border-radius: 5px; font-size: 16px; }
.price-summary div { display: flex; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid lightgray; padding-top: 10px; padding-bottom: 10px; }
.price-summary div span:first-child { font-weight: bold; }
.total { font-weight: bold; font-size: 18px; }
.booking-container select { margin-bottom: 0; }
.booking-container a, .booking-container li { display: contents; }
.booking-container label { background: #fff; color: #111D13; padding: 10px 0px; }
#addons-container h3 { text-align: left; }
#quote_container h2 { margin-top: 20px; margin-bottom: 15px; }
#quote_container hr { margin-top: 20px; }
#quote_container { display: block; padding-left: 4px; padding-right: 4px; margin-top: 18px; }
#quote_container label { padding-bottom: 0px; padding-top: 5px; }
#cleaning-fee { margin-top: 10px; }
.price-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #eee; }
.price-row span { font-weight: normal; }
.addon-row button { width: 28px; height: 28px; border: 1px solid #ccc; background: #fff; cursor: pointer; }
.addon-qty { margin: 0 8px; min-width: 20px; display: inline-block; text-align: center; }
.addon-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-bottom: 1px solid #eee; }
.addon-left { display: flex; }
.addon-name { font-weight: 500; font-size: 14px; }
.addon-price { font-size: 13px; color: #666; margin-top: 2px; }
.addon-controls { display: flex; align-items: center; gap: 10px; }
.addon-controls button { width: 32px; height: 32px; border: 1px solid #ccc; background: #fff; font-size: 18px; cursor: pointer; color: #111D13; border-radius: 6px; transition: 0.2s; }
#clear-btn, #book-btn, #pay-btn { display: none !important; }
.addon-controls button:hover { background: #f5f5f5; }
.addon-qty { min-width: 20px; text-align: center; font-size: 14px; }
.addon-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid #eee; }
.addon-left { display: flex; align-items: center; gap: 12px; }
.addon-img { width: 80px; height: 100px; object-fit: cover; border-radius: 8px; }
.addon-info { display: flex; flex-direction: column; }
.addon-name { font-size: 18px; font-weight: 500; }
.addon-price { font-size: 13px; color: #666; }
.addon-controls { display: flex; align-items: center; gap: 10px; }
.addon-controls button { width: 32px; height: 32px; border: 1px solid #ccc; background: #fff; border-radius: 6px; cursor: pointer; font-size: 18px; }
.addon-controls button:hover { background: #f5f5f5; }
.addon-qty { min-width: 20px; text-align: center; }
#customer_country { border: 1px solid #111D13; padding: 12px 16px; font-size: 15px; color: #111D13; background-color: transparent; width: 100%; margin-bottom: 12px; border-radius: 2px; text-transform: initial;}
@media (max-width: 768px) { 
.bs-actions { gap: 2px; } 
.bs-actions button { padding: 10px 5px; font-size: 12px; } 
}

/* CASAS */
.coupon-row { display: flex; gap: 10px; align-items: center; }
.coupon-row input { flex: 1; height: 42px; text-transform: none; }
.coupon-row button { padding: 12px; width: 150px; margin-top: -6px; cursor: pointer; border-radius: 2px; background-color: #111D13; font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 700; text-transform: lowercase; color: #F8F7F5; font-size: 15px;}

.hero-availability.ok { color: #1f9d55; font-weight: bold; }
.hero-availability.no { color: #e3342f; font-weight: bold; }
.hero-availability { top: 60px; background: #ffffff; padding: 8px 16px; border-radius: 20px; right: 40px; font-size: 14px; letter-spacing: 1px; z-index: 10; position: absolute; }

.sg-left { flex: 1; }
.sg-right { flex: 2; position: sticky; top: 120px; align-self: flex-start; }
.sg-right { margin-right: 0; }

.booking-summary { background: #fff; padding: 20px; border-radius: 12px; border: 1px solid #eee; }
.bs-section { margin-bottom: 24px; }
.bs-section h4 { font-size: 20px; margin-bottom: 12px; }
.bs-section p { margin: 0; font-size: 13px; color: #555; }
.bs-total { display: flex; justify-content: space-between; font-size: 16px; margin-top: 10px; padding-top: 10px; }
.bs-coupon { margin-top: 10px; }
.bs-coupon a { font-size: 13px; color: #0073aa; text-decoration: none; }
.bs-actions { margin-top: 20px; display: flex; gap: 10px; }
.bs-actions button { flex: 1; padding: 14px 0 12px; border-radius: 6px; font-size: 14px; cursor: pointer; }
.btn-outline { background: #fff; border: 1px solid #111D13; }
.btn-primary { background: #111D13; color: #fff; border: 1px solid #111D13; }
.sg-right { margin-right: 0; }

.sg-left { padding-right: 0; flex: 1; }
.bs-section p span { display: inline; }

@media (min-width: 910px) { 
.hero-availability { top: 90px; } 
}

@media screen and (max-width: 768px) { 
.sec-o-casas .sg-grid, .sec-o-hist .sg-grid { transform: none; } 
.sec-o-casas .sg-grid > *, .sec-o-hist .sg-grid > * { transform: none; } 
.sg-right { margin-left: -12px; margin-right: -12px;} 
.sg-grid { flex-direction: column; } 
.sg-right { position: relative; top: auto; }
}

/* PAGE CASAS */
/*
body{background: url(https://mira-dev.antnna.com/wp-content/uploads/2025/09/poster-desktop-home-scaled.jpg);}
footer{background: #F8F7F5;}
*/

.apartment-layout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 5px; padding: 25px; margin: 0px auto; background: #F8F7F5; }
@media (max-width: 1024px) { .apartment-layout { grid-template-columns: 1fr; } }
.search_form { width: 100%; background: #F8F7F5; margin-top: 64px; padding-top: 25px; }
.apartment-list { display: flex; flex-direction: column; gap: 30px; }
.apartment-card { display: grid; grid-template-columns: 260px 1fr; gap: 26px; background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.07); text-decoration: none; color: inherit; transition: all .3s ease; }
.apartment-card:hover { transform: translateY(-4px); box-shadow: 0 18px 45px rgba(0,0,0,.12); }
.apartment-card img { width: 100%; height: 100%; height: 225px; object-fit: cover; }
.card-body { padding: 30px 30px 15px 0; display: flex; flex-direction: column; justify-content: space-between; }
.card-title { font-size: 22px; font-weight: 600; margin: 0 0 8px; line-height: 1.35; color: #111; }
.card-location { font-size: 14px; color: #777; margin: 0 0; line-height: 1.6; }
.card-divider { height: 1px; background: #f2f2f2; margin: 10px 0 20px; }
.card-footer { display: flex; justify-content: space-between; align-items: center; }
.card-price { font-size: 20px; font-weight: 500; color: #111; }
.card-price span { font-size: 13px; font-weight: 400; color: #888; display: inline; }
.card-features { font-size: 14px; color: #555; }

.map-wrap { position: sticky; top: 100px; height: calc(100vh - 140px); border-radius: 10px; overflow: hidden; margin-bottom: 40px; }
#map { width: 100%; height: 100%; }
.house-marker .marker-bubble { width: 38px; height: 38px; background: #fff; border: 2px solid #111; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 18px rgba(0,0,0,.25); }
.map-popup-card { width: 240px; border-radius: 16px; overflow: hidden; box-shadow: 0 12px 30px rgba(0,0,0,.25); }
.map-popup-card img { width: 100%; height: 140px; object-fit: cover; }
.map-popup-card .popup-body { padding: 14px; background: #fff; }
.map-popup-card h4 { font-size: 15px; margin: 0 0 6px; font-weight: 600; }
.map-popup-card p { font-size: 13px; margin: 0 0 8px; color: #666; }
.bolder-go-to-map { display: none; }


@media (max-width: 767px) { 
.bolder-go-to-map { display: block; width: 180px; margin: 0 auto 20px; padding: 10px 0; background: #ccc; text-align: center; border-radius: 8px;} 
.apartment-card { grid-template-columns: 1fr; } 
.card-body { padding: 0px 24px 24px; } 
.card-footer { flex-direction: column; align-items: flex-start; gap: 6px; }
}


/* SINGLE CASAS */
/*
body { background: url(https://mira-dev.antnna.com/wp-content/uploads/2025/09/poster-desktop-home-scaled.jpg); }
footer { background: #F8F7F5; }
main section { margin-top: 45px; }
main h2 { font-size: 22px; margin-bottom: 16px; font-weight: 600; }
main p { font-size: 16px; line-height: 1.8; color: #333; }
*/

.single-casas-wrapper { width: 100%; background: #F8F7F5; margin-top: 64px; padding-top: 25px; }
.casas-title { font-size: 34px; font-weight: 600; margin-bottom: 12px; line-height: 1.3; }
.casas-meta { display: flex; gap: 30px; font-size: 15px; color: #666; margin-bottom: 30px; }
.casas-meta .meta-item span { font-weight: 500; color: #111; display: inline; }
.hero-main img { width: 100%; height: 65vh; object-fit: cover; border-radius: 28px; transition: transform .4s ease; }
.hero-main img:hover { transform: scale(1.02); }
.custom-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.9); display: flex; justify-content: center; align-items: center; z-index: 999999; }
.custom-lightbox img { max-width: 90%; max-height: 90vh; border-radius: 14px; }
.lb-close { position: absolute; top: 30px; right: 40px; font-size: 40px; color: #fff; cursor: pointer; }
.single-casas-wrapper { padding: 60px; margin: 0 auto; margin-top: 60px; }
.hero-main img { width: 100%; height: 70vh; object-fit: cover; border-radius: 20px; }
.hero-thumbs { display: flex; gap: 10px; margin-top: 15px; overflow-x: auto; }
.hero-thumbs img { width: 140px; height: 90px; object-fit: cover; border-radius: 10px; cursor: pointer; opacity: .6; transition: .2s; }
.hero-thumbs img.active, .hero-thumbs img:hover { opacity: 1; outline: 2px solid #111D13; }
.casas-content { display: grid; grid-template-columns: 70% 30%; gap: 40px; margin-top: 50px; }
.casas-title { font-size: 32px; margin-bottom: 10px; }
.casas-meta { display: flex; flex-wrap: wrap; gap: 25px; margin-bottom: 25px; color: #555; }
.meta-item span { font-weight: 600; color: #111; }
.price-box { background: #fff; padding: 28px; border-radius: 20px; box-shadow: 0 12px 35px rgba(0,0,0,.08); position: sticky; top: 120px; }
.price-box h3 { margin-bottom: 10px; font-size: 16px; color: #777; text-transform: uppercase; letter-spacing: 1px; }
.price-big { font-size: 30px; font-weight: 600; margin-bottom: 15px; }
.price-box p { font-size: 14px; color: #555; margin: 6px 0; }
.price-big { font-size: 26px; font-weight: 600; }
.casas-location { margin-top: 70px; }
#map { height: 380px; border-radius: 20px; margin-top: 15px; }

.casas-details { margin-top: 60px; }
.details-list { list-style: none; padding: 0; margin: 0; line-height: 2; }
.details-list li { border-bottom: 1px solid #eee; padding: 8px 0; }
.casas-amenities { margin-top: 60px; }
.amenities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 15px; }
.casas-amenities { margin-top: 60px; }
.amenities-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-top: 15px; transition: all .3s ease; }
.amenity-item { font-size: 15px; color: #444; }
.amenity-hidden { display: none; }
.amenities-toggle { display: inline-block; margin-top: 18px; font-weight: 600; text-decoration: underline; cursor: pointer; }
.amenity-item { font-size: 15px; }
.related-casas { margin-top: 80px; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 30px; }
.related-thumb img { width: 100%; height: 230px; object-fit: cover; border-radius: 18px; }
.related-card h4 { margin-top: 14px; font-size: 16px; font-weight: 600; }
.hero-overlay1 { position: absolute; bottom: 20px; left: 20px; padding: 20px; border-radius: 10px; background: linear-gradient(200deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 52%); }
.hero-overlay1 h1, .hero-overlay1 .casas-meta .meta-item span { color: #fff; }

.casas-about { margin-top: 50px; }
.about-content { max-height: 220px; overflow: hidden; position: relative; transition: max-height .4s ease; }
.about-content::after { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; height: 60px; background: linear-gradient(to top, #fff, rgba(255,255,255,0)); }
.about-content.expanded { max-height: 2000px; }
.about-content.expanded::after { display: none; }
.read-more-toggle { display: inline-block; margin-top: 12px; font-weight: 600; text-decoration: underline; cursor: pointer; }
.lb-prev, .lb-next { position: absolute; top: 50%; transform: translateY(-50%); font-size: 50px; color: #fff; cursor: pointer; padding: 15px; user-select: none; }
.lb-prev { left: 40px; }
.lb-next { right: 40px; }
.lb-prev:hover, .lb-next:hover { opacity: 0.7; }

@media(max-width:900px) { 
.casas-content { grid-template-columns: 1fr;}
.related-grid { grid-template-columns: 1fr; }
}

.sec-a-reserve.padtop6.padbot6{padding-bottom: 0;}

/*CUSTOMS*/
.monthYear {font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 700; text-transform: uppercase; font-size: 15px;}
.day-name {text-transform: lowercase; font-family: 'Lora', serif; border-bottom: 1px solid #eee; font-weight: 400;}
.calendar-header button.prevBtn, .calendar-header button.nextBtn, .calendar-header button.prevBtn:disabled, .calendar-header button.nextBtn:disabled {border: none; padding: 8px 0 16px; background-color: transparent;}
.sg-grid {gap: 60px;}
.bs-section.cancelamento {margin-bottom: 0; margin-top: 28px;}
.bs-section.cancelamento p {font-size: 14px;}
.bs-section.viagem h4 {margin-bottom: 8px;}
.bs-section p {font-size: 16px; color: #111D13; margin-bottom: 4px;}
.bs-section p span {font-size: inherit; color: inherit; font-weight: 400;}
.price-row {padding: 8px 0;}
.price-row span { font-family: 'Helvetica Neue', arial, sans-serif; }
.bs-total strong, .bs-total span { font-family: 'Helvetica Neue', arial, sans-serif; font-size: 20px; font-weight: 700;}
.booking-summary {border-radius: 6px;}
.coupon-row button {height: 42px; margin: 0 0 12px; padding: 12px 0 10px;}
.bs-actions button {border-radius: 2px; font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 700; font-size: 15px;}

.litepicker .container__months .month-item-header div > .month-item-name {font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 700; text-transform: uppercase; margin-right: 0 !important;}
.container__months.columns-2 .month-item:nth-child(2) {border-left: 1px solid #eee; margin-left: -1px;}
.litepicker .container__months .month-item-weekdays-row {border-top: 1px solid #eee; border-bottom: 1px solid #eeee; margin: 0 -5px; padding: 0 5px;}

.litepicker .container__months .month-item-weekdays-row div {font-size: 0 !important;}
.litepicker .container__months .month-item-weekdays-row div:nth-child(1)::after {content: "seg";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(2)::after {content: "ter";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(3)::after {content: "qua";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(4)::after {content: "qui";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(5)::after {content: "sex";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(6)::after {content: "sáb";}
.litepicker .container__months .month-item-weekdays-row div:nth-child(7)::after {content: "dom";}
.month-item-weekdays-row div::after {font-size: 12px}

.button-previous-month svg {display: none;}
.button-previous-month::after {content: "←"; font-size: 18px; line-height: 1; color: #111D13;}
.button-next-month svg {display: none;}
.button-next-month::after {content: "→"; font-size: 18px; line-height: 1; color: #111D13;}

.booking-success {margin: 150px 0 100px;}
.success-title{font-size:42px; margin-bottom:16px; font-family: 'Space Grotesk', sans-serif; margin-bottom: 12px;}
.booking-row span {font-family: 'Helvetica Neue', arial, sans-serif;}
.success-box h3 {border-top: 1px solid #111D13; margin-top: 24px; padding: 16px 0 12px; font-size: 24px;}
.booking-row{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid #eee;}
.booking-row.last-one {border-bottom: none;}
.home-btn{margin-top:32px; display:inline-block; background:#111D13; color:#fff; padding:12px 24px 11px; border-radius:4px; text-decoration:none; text-transform: lowercase;}

.booking-container label {font-family: 'Space Grotesk', sans-serif; margin: 12px 0 8px; display: block;}
label[for="date-range-checkinout"], #quote_container #cleaning-fee, #quote_container label[for="date-range"] { font-size: 15px; display: none; }
#quote_container hr {display: none;}

.booking-container {box-shadow: none; border-radius: 6px; border: 1px solid #eee;}
.booking-container .calendar {padding-bottom: 0; border: 1px solid #eee; border-radius: 6px;}
.calendar-header {border-bottom: 1px solid #eee;}
.booking-main-container .booking-container {padding-left: 20px;}

.calendar-days .prev-month::first-child {border-radius: 2px 0 0 2px;}
.calendar-days .prev-month::last-child {border-radius: 0 2px 2px 0;}
.calendar-days .next-month::first-child {border-radius: 2px 0 0 2px;}
.calendar-days .next-month::last-child {border-radius: 0 2px 2px 0;}
.calendar-days .day.av.selected::first-child {border-radius: 2px 0 0 2px;}
.calendar-days .day.av.selected::last-child {border-radius: 0 2px 2px 0;}

.addon-name {font-family: 'Space Grotesk', sans-serif; margin-bottom: 6px;}
.addon-price {font-family: 'Helvetica Neue', arial, sans-serif; color: #111D13; margin-bottom: 8px;}
.addon-img {width: 100px; border-radius: 4px;}
.addon-controls {gap: 0;}
.addon-qty {min-width: 16px; font-family: 'Helvetica Neue', arial, sans-serif; font-weight: 700; top: 1px;}
.addon-controls button {width: 24px; height: 24px; border-radius: 2px; margin-left: 0;}
.addon-info {padding-right: 16px;}

.booking-container select, .booking-container input {font-family: 'Helvetica Neue', arial, sans-serif;}
.booking-container select {border: 1px solid #111D13; padding: 12px 16px; font-size: 15px; color: #111D13; background-color: transparent; width: 100%; margin-bottom: 12px; text-transform: lowercase; border-radius: 2px;}

.disclaimer-reserva {font-family: 'Helvetica Neue', arial, sans-serif;}
.casas-reserva {display: flex; gap: 16px; flex-wrap: wrap;}
.icons-reserva {display: flex; gap: 8px; align-items: center; border: 1px solid #111D13; padding: 4px 10px 3px; border-radius: 999px; background-color: transparent; color: #111D13;}
.icons-reserva:hover {background-color: #F8F7F5;}
.icons-reserva p {font-weight: 700; font-family: 'Helvetica Neue', arial, sans-serif; }

.reserve-grid.reserve-grid--hl.reserve-casamentos {grid-template-columns: 1fr 1fr 1fr 1fr;}

.phone-field {position: relative;}
.phone-hint {display: none; margin-top: 6px; font-size: 12px; line-height: 1.3; color: #666;}
.phone-error {display: none; margin-top: 0; margin-bottom: 12px; font-size: 12px; line-height: 1.3; color: #d64545; font-family: 'Helvetica Neue', arial, sans-serif;;}
.phone-field.is-focused .phone-hint {display: block;}
.phone-field.has-error .phone-hint {display: none;}
.phone-field.has-error .phone-error {display: block;}
.phone-field.has-error input {background-color: rgba(214, 69, 69, .16);}


#quote-loader {text-align: center; padding-bottom: 24px !important;}
.loader-spinner { width: 28px; height: 28px; border: 3px solid rgba(0,0,0,0.15); border-top: 3px solid #111D13; border-radius: 50%; animation: loader-spin 0.8s linear infinite; margin: 0 auto; }
@keyframes loader-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
#quote_container {padding-left: 0; padding-right: 0;}

.custom-alert {border-radius: 6px;}
.custom-alert h3 {text-align: left; margin-bottom: 12px;}
.custom-alert p {font-family: 'Helvetica Neue', arial, sans-serif;}
.custom-alert .close-btn { position: absolute; top: 10px; right: 10px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; padding: 0; margin: 0; border: none; background: transparent; cursor: pointer; border-radius: 50%; appearance: none; -webkit-appearance: none; z-index: 2; transition: transform 0.35s ease, background-color 0.25s ease; }
.custom-alert .close-btn::before, .custom-alert .close-btn::after { content: ""; position: absolute; width: 16px; height: 2px; background: #111; border-radius: 2px; pointer-events: none; }
.custom-alert .close-btn::before { transform: rotate(45deg); }
.custom-alert .close-btn::after { transform: rotate(-45deg); }
.custom-alert .close-btn:hover { transform: rotate(90deg); background-color: rgba(0,0,0,0.06); }
.custom-alert .close-btn:focus { outline: none; }
.custom-alert .close-btn:focus-visible { outline: 2px solid #111D13; outline-offset: 2px; }

#calendar-hospedagem .c-item a {grid-template-columns: 1fr;}
#calendar-hospedagem .c-ico {display: none;}
.availability.ok { font-family: 'Helvetica Neue', arial, sans-serif; font-size: 11px; text-transform: uppercase; font-weight: 600; background-color: transparent !important; border: 1px solid #111D13; border-radius: 999px; color: #111D13 !important; padding: 6px 8px 4px 20px !important; top: 10px !important; right: 0; position: absolute;}
.availability.no { font-family: 'Helvetica Neue', arial, sans-serif; font-size: 11px; text-transform: uppercase; font-weight: 600; background-color: transparent !important; border: 1px solid #111D13; border-radius: 999px; color: #111D13 !important; padding: 6px 8px 4px 20px !important; top: 10px !important; right: 0; position: absolute;}
.availability.ok::before, .availability.no::before { content: ""; position: absolute; left: 8px; top: 50%; width: 7px; height: 7px; border-radius: 50%; transform: translateY(-50%); }
.availability.ok::before { background: #2e9e44; box-shadow: 0 0 0 0 rgba(46,158,68,0.35); animation: statusPulseGreen 2.4s ease-out infinite; }
.availability.no::before { background: #d64545; box-shadow: 0 0 0 0 rgba(214,69,69,0.35); animation: statusPulseRed 2.4s ease-out infinite; }
@keyframes statusPulseGreen { 0% { box-shadow: 0 0 0 0 rgba(46,158,68,0.30); } 70% { box-shadow: 0 0 0 6px rgba(46,158,68,0); } 100% { box-shadow: 0 0 0 0 rgba(46,158,68,0); } }
@keyframes statusPulseRed { 0% { box-shadow: 0 0 0 0 rgba(214,69,69,0.30); } 70% { box-shadow: 0 0 0 6px rgba(214,69,69,0); } 100% { box-shadow: 0 0 0 0 rgba(214,69,69,0); } }

@media(max-width: 1080px) { 
.availability.ok, .availability.no {border-color: #F8F7F5 !important; color: #F8F7F5 !important; top: inherit !important; bottom: 12px; right: 12px;}
#calendar-hospedagem .c-card-left img {filter: invert(100);}
.reserve-grid.reserve-grid--hl.reserve-casamentos {grid-template-columns: 1fr 1fr;}

}

@media(max-width: 980px) { 
.casas-content { grid-template-columns: 1fr; } 
.casas-content { display: flex; flex-direction: column; } 
.sg-grid.calendar-grid {gap: 24px; transform: none; align-items: flex-start; grid-template-columns: 1fr;}
}
input:not([type="submit"]), select{font-size: 16px;}
@media(max-width: 767px) { 

.booking-container { padding: 12px !important; } 
.casas-content aside { order: -1; margin-bottom: 30px; } 
.casas-content main { order: 1; } 
.mira-header { background: linear-gradient(360deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.4) 0%); } 
.hero-overlay1 { padding: 10px !important; left: 0 !important; bottom: 4px !important; } 
.hero-overlay1 h1, .hero-overlay1 .casas-meta .meta-item span { line-height: 1; } 
.hero-overlay1 .casas-meta .meta-item { display: inline-block; } 
.hero-overlay1 .casas-meta { margin-bottom: 0; display: inline-block; } 
.single-casas-wrapper { padding: 20px; margin-top: 0; } 

.booking-summary {padding: 20px 12px;}

input:not([type="submit"]), select, #customer_country, .booking-container select {padding: 12px;}

.sg-slider {margin: 0;}

.addon-img {width: 80px;}

.icons-reserva {gap: 6px;}
.casas-reserva {gap: 12px;}

.reserve-grid.reserve-grid--hl.reserve-casamentos {grid-template-columns: 1fr;}

.booking-success {margin-top: 40px; margin-bottom: 40px;}
.success-box h3 {margin-top: 20px; font-size: 20px;}


}

@media(max-width: 480px) { 

.addon-left {flex-direction: column; align-items: flex-start; gap: 12px; width: 100%;}
.addon-row {flex-direction: column; gap: 12px; align-items: baseline;}
.addon-img {width: 100%;}
.icons-reserva p {font-size: 13px;}

.booking-success {margin-top: 32px;}
.success-title {font-size: 28px;}
.booking-row span {font-size: 15px;}

.sec-d-casas {margin-top: 24px; margin-bottom: 36px;}
.c-card {margin-bottom: 8px;}
.c-card-media {height: 36vh;}

}

