:root{
    --ac-free:#5b9f3d;
    --ac-booked:#c94141;
    --ac-text:#ffffff;
    --ac-muted:rgba(255,255,255,.80);
}
.ac-calendar-wrap{
    width:94vw!important;
    max-width:1500px!important;
    min-width:0!important;
    margin-left:calc(50% - 47vw)!important;
    margin-right:0!important;
    transform:none!important;
    font-family:inherit;
    color:#333;
}
.ac-calendar-wrap.ac-fullwidth{
    max-width:1120px;
    width:100%;
    margin-left:auto;
    margin-right:auto;
}
.ac-main-title{
    text-align:left;
    margin:0 0 14px;
    font-size:clamp(1.8rem, 3vw, 2.5rem);
    line-height:1.15;
}
.ac-info-text{
    font-size:.92rem;
    line-height:1.5;
    background:#f7f7f7;
    border:1px solid #e4e4e4;
    border-radius:10px;
    padding:16px 18px;
    margin-bottom:22px;
}
.ac-info-text p{margin:0 0 .7em}
.ac-info-text p:last-child{margin-bottom:0}

.ac-legend{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    align-items:center;
    justify-content:flex-start;
    margin:4px 0 22px;
    font-size:.95rem;
}
.ac-legend span{display:inline-flex;align-items:center;gap:8px}
.ac-swatch{
    width:30px;
    height:30px;
    border:2px solid #fff;
    box-shadow:0 1px 4px rgba(0,0,0,.16);
    display:inline-block;
}
.ac-swatch.ac-free{background:var(--ac-free)}
.ac-swatch.ac-booked{background:var(--ac-booked)}
.ac-swatch.ac-arrival{
    background:linear-gradient(135deg,var(--ac-free) 0%,var(--ac-free) 50%,var(--ac-booked) 50%,var(--ac-booked) 100%);
}
.ac-swatch.ac-departure{
    background:linear-gradient(135deg,var(--ac-booked) 0%,var(--ac-booked) 50%,var(--ac-free) 50%,var(--ac-free) 100%);
}

.ac-month-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:22px!important;
    align-items:start;
}
.ac-month{
    background:#fff;
    border-radius:10px;
    padding:16px 14px 18px;
    box-shadow:0 2px 14px rgba(0,0,0,.13);
    min-width:0;
}
.ac-month h3{
    text-align:left;
    font-size:1.02rem;
    margin:0 0 14px;
    font-weight:700;
}
.ac-weekdays,
.ac-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:2px;
}
.ac-weekdays span{
    text-align:center;
    font-size:.92rem;
    opacity:.78;
    font-weight:800;
    padding:0 0 10px;
    letter-spacing:.02em;
}
.ac-day{
    position:relative;
    min-height:70px;
    border:none;
    border-radius:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    align-items:center;
    gap:6px;
    padding:7px 2px 5px;
    text-align:center;
    isolation:isolate;
    background:var(--ac-free);
    color:var(--ac-text);
}
.ac-empty{
    background:transparent!important;
    visibility:hidden;
}
.ac-state-free{background:var(--ac-free)}
.ac-state-booked{background:var(--ac-booked)}
.ac-state-arrival,
.ac-state-departure{
    background:transparent;
}
.ac-state-arrival:before,
.ac-state-departure:before,
.ac-state-arrival:after,
.ac-state-departure:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
}
.ac-state-arrival:before{
    background:var(--ac-free);
    clip-path:polygon(0 0,100% 0,0 100%);
}
.ac-state-arrival:after{
    background:var(--ac-booked);
    clip-path:polygon(100% 0,100% 100%,0 100%);
}
.ac-state-departure:before{
    background:var(--ac-booked);
    clip-path:polygon(0 0,100% 0,0 100%);
}
.ac-state-departure:after{
    background:var(--ac-free);
    clip-path:polygon(100% 0,100% 100%,0 100%);
}
.ac-date,
.ac-price{
    position:relative;
    z-index:2;
    color:#fff;
    text-shadow:0 1px 2px rgba(0,0,0,.18);
}
.ac-date{
    font-weight:800;
    font-size:1.38rem;
    line-height:1;
}
.ac-price{
    font-weight:500;
    font-size:.74rem;
    line-height:1.05;
    color:var(--ac-muted);
    margin-top:auto;
    margin-bottom:1px;
}
.ac-no-price{opacity:.65}

.ac-nav-wrap{
    display:flex;
    justify-content:center;
    gap:6px;
    margin:28px 0 4px;
    flex-wrap:wrap;
}
.ac-nav-button{
    display:inline-block;
    padding:11px 20px;
    border-radius:6px;
    border:1px solid rgba(0,0,0,.18);
    text-decoration:none;
    font-weight:700;
    background:#fff;
    box-shadow:0 1px 5px rgba(0,0,0,.08);
}
.ac-nav-button:hover{
    text-decoration:none;
    transform:translateY(-1px);
}

@media (max-width:900px){
    .ac-month-grid{grid-template-columns:1fr!important;gap:24px!important}
}
@media (max-width:760px){
    .ac-calendar-wrap{
        width:100%;
        max-width:100%;
    }
    .ac-month{padding:16px 12px 18px}
    .ac-day{aspect-ratio:1 / 1;min-height:auto;gap:6px;padding-top:7px}
    .ac-date{font-size:1.16rem}
    .ac-price{font-size:.66rem}
    .ac-weekdays span{font-size:.82rem}
}


/* Force the calendar to escape narrow theme content columns. */
.entry-content .ac-calendar-wrap,
.wp-site-blocks .ac-calendar-wrap,
.wp-block-post-content .ac-calendar-wrap,
.wp-block-group .ac-calendar-wrap{
    width:94vw!important;
    max-width:1500px!important;
    margin-left:calc(50% - 47vw)!important;
    margin-right:0!important;
}

.ac-month-grid{
    width:100%!important;
}

@media(max-width:900px){
    .entry-content .ac-calendar-wrap,
    .wp-site-blocks .ac-calendar-wrap,
    .wp-block-post-content .ac-calendar-wrap,
    .wp-block-group .ac-calendar-wrap,
    .ac-calendar-wrap{
        width:calc(100vw - 28px)!important;
        margin-left:calc(50% - 50vw + 14px)!important;
        max-width:none!important;
        transform:none!important;
    }
}


/* v2.0 responsive layout refinement */
.ac-days{
    align-items:start!important;
}
.ac-day{
    width:100%!important;
    aspect-ratio:1 / 1!important;
    min-height:0!important;
    height:auto!important;
    box-sizing:border-box!important;
}
@media(max-width:1320px){
    .ac-month-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:820px){
    .ac-month-grid{grid-template-columns:1fr!important}
}


/* v2.1 fixed month count by viewport:
   - wide desktop: 3 months in one row
   - medium/tablet: 2 months in one row, third hidden
   - mobile: 2 months stacked, third hidden
*/
@media(max-width:1320px){
    .ac-month-grid .ac-month:nth-child(n+3){
        display:none!important;
    }
}
@media(max-width:820px){
    .ac-month-grid .ac-month:nth-child(n+3){
        display:none!important;
    }
}


/* v2.2 booking form and planned stay highlight */
:root{
    --ac-planned:#f39a2f;
    --ac-planned-soft:rgba(243,154,47,.92);
}
.ac-day.ac-planned-stay{
    outline:3px solid var(--ac-planned);
    outline-offset:-3px;
    box-shadow:inset 0 0 0 999px rgba(243,154,47,.20);
}
.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-stay .ac-price{
    color:#fff;
}
.ac-day.ac-planned-edge{
    outline:3px solid var(--ac-planned);
    outline-offset:-3px;
}
.ac-booking-form{
    margin:34px 0 0;
    background:#fff;
    border-radius:12px;
    box-shadow:0 2px 12px rgba(0,0,0,.10);
    padding:22px;
}
.ac-booking-form h2{
    margin:0 0 18px;
    font-size:1.45rem;
}
.ac-form-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
}
.ac-form-grid label,
.ac-children-ages label{
    display:flex;
    flex-direction:column;
    gap:6px;
    font-weight:700;
    font-size:.92rem;
}
.ac-form-grid input,
.ac-children-ages input{
    width:100%;
    box-sizing:border-box;
    padding:10px 11px;
    border:1px solid #d4d4d4;
    border-radius:7px;
    font:inherit;
}
.ac-children-ages{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:14px;
}
.ac-availability-message{
    margin:16px 0;
    padding:12px 14px;
    border-radius:8px;
    font-weight:700;
}
.ac-availability-message.ac-neutral{background:#f2f2f2;color:#444}
.ac-availability-message.ac-ok{background:#e7f6e7;color:#285d22}
.ac-availability-message.ac-error{background:#ffe7e0;color:#8a2b13}
.ac-price-box{
    border-top:1px solid #e6e6e6;
    padding-top:12px;
}
.ac-price-box div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:7px 0;
}
.ac-price-box .ac-total-row{
    border-top:1px solid #ddd;
    margin-top:6px;
    padding-top:12px;
    font-size:1.2rem;
}
@media(max-width:900px){
    .ac-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ac-children-ages{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
    .ac-booking-form{padding:18px 14px}
    .ac-form-grid{grid-template-columns:1fr}
    .ac-children-ages{grid-template-columns:1fr}
}


/* v2.3 refinements */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge{
    outline:5px solid var(--ac-planned)!important;
    outline-offset:-5px!important;
    box-shadow:inset 0 0 0 999px rgba(243,154,47,.28)!important;
}
.ac-day.ac-planned-edge{
    filter:saturate(1.08);
}
.ac-price-box div{
    display:grid!important;
    grid-template-columns:1.1fr 1fr .75fr;
    align-items:center;
    gap:14px;
}
.ac-price-box em{
    font-style:normal;
    color:#666;
    font-size:.9rem;
    text-align:left;
}
.ac-price-box strong{
    text-align:right;
}
.ac-send-button{
    margin-top:18px;
    padding:12px 22px;
    border:0;
    border-radius:8px;
    font-weight:800;
    background:#5b9f3d;
    color:#fff;
    cursor:pointer;
}
.ac-send-button:disabled{
    background:#b9b9b9;
    cursor:not-allowed;
}
.ac-send-note{
    margin:.55rem 0 0;
    font-size:.86rem;
    color:#666;
}
.ac-child-age.invalid{
    border-color:#c94141!important;
    box-shadow:0 0 0 2px rgba(201,65,65,.12);
}
@media(max-width:560px){
    .ac-price-box div{
        grid-template-columns:1fr;
        gap:3px;
        padding:10px 0;
    }
    .ac-price-box strong{
        text-align:left;
    }
}


/* v2.4 planned outline fix for diagonal arrival/departure days */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge{
    outline:none!important;
    box-shadow:inset 0 0 0 999px rgba(243,154,47,.24)!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-edge::before{
    box-shadow:inset 0 0 0 5px var(--ac-planned)!important;
}
.ac-day.ac-planned-stay.ac-state-free::after,
.ac-day.ac-planned-stay.ac-state-booked::after,
.ac-day.ac-planned-edge.ac-state-free::after,
.ac-day.ac-planned-edge.ac-state-booked::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:3;
    pointer-events:none;
    box-shadow:inset 0 0 0 5px var(--ac-planned);
}
.ac-state-arrival.ac-planned-edge > .ac-date::before,
.ac-state-departure.ac-planned-edge > .ac-date::before,
.ac-state-arrival.ac-planned-stay > .ac-date::before,
.ac-state-departure.ac-planned-stay > .ac-date::before{
    content:"";
    position:absolute;
    inset:-100px;
    z-index:4;
    pointer-events:none;
    box-shadow:inset 0 0 0 5px var(--ac-planned);
}
.ac-form-hint{
    margin:10px 0 0;
    color:#8a2b13;
    font-weight:700;
    font-size:.9rem;
}


/* v2.5 reliable planned border overlay */
.ac-planned-border{
    display:none;
    position:absolute;
    inset:0;
    z-index:10;
    pointer-events:none;
    border:6px solid var(--ac-planned);
    box-sizing:border-box;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border{
    display:block;
}
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge{
    outline:none!important;
}


/* v2.6 definitive selected-period border and clickable day styling */
.ac-day{
    cursor:pointer;
}
.ac-empty{
    cursor:default;
}
.ac-day .ac-planned-border{
    display:none;
    position:absolute;
    inset:0;
    z-index:50!important;
    pointer-events:none;
    box-shadow:inset 0 0 0 6px var(--ac-planned);
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border{
    display:block!important;
}
.ac-day.ac-planned-edge,
.ac-day.ac-planned-stay{
    outline:none!important;
}
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{
    box-shadow:inset 0 0 0 7px var(--ac-planned);
}


/* v2.7 final selected-period marker:
   Use external outline + glow, not an inner border, so diagonal pseudo-elements cannot cover it. */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    outline:6px solid var(--ac-planned)!important;
    outline-offset:-2px!important;
    box-shadow:
        0 0 0 2px var(--ac-planned),
        inset 0 0 0 999px rgba(243,154,47,.12)!important;
    position:relative!important;
    z-index:20!important;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{
    display:none!important;
}
.ac-state-arrival.ac-planned-edge > .ac-date::before,
.ac-state-departure.ac-planned-edge > .ac-date::before,
.ac-state-arrival.ac-planned-stay > .ac-date::before,
.ac-state-departure.ac-planned-stay > .ac-date::before{
    display:none!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-edge::before{
    box-shadow:none!important;
}


/* v2.8 final internal selected-period border.
   It stays inside the cell and sits above diagonal color layers. */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    outline:none!important;
    box-shadow:none!important;
    z-index:1!important;
}
.ac-day .ac-planned-border{
    display:none;
    position:absolute;
    inset:5px;
    z-index:999!important;
    pointer-events:none;
    border:5px solid var(--ac-planned);
    box-sizing:border-box;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{
    display:block!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-edge::before{
    box-shadow:none!important;
}
.ac-state-arrival.ac-planned-edge > .ac-date::before,
.ac-state-departure.ac-planned-edge > .ac-date::before,
.ac-state-arrival.ac-planned-stay > .ac-date::before,
.ac-state-departure.ac-planned-stay > .ac-date::before{
    display:none!important;
}


/* v2.9 selected period as orange fill, not border */
:root{
    --ac-planned-fill:#f39a2f;
}
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    outline:none!important;
    box-shadow:none!important;
    background:var(--ac-planned-fill)!important;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{
    display:none!important;
}

/* Override diagonal arrival/departure triangles while selected */
.ac-state-arrival.ac-planned-stay:before,
.ac-state-arrival.ac-planned-edge:before,
.ac-state-arrival.ac-selection-start:before,
.ac-state-arrival.ac-selection-end:before,
.ac-state-departure.ac-planned-stay:before,
.ac-state-departure.ac-planned-edge:before,
.ac-state-departure.ac-selection-start:before,
.ac-state-departure.ac-selection-end:before,
.ac-state-arrival.ac-planned-stay:after,
.ac-state-arrival.ac-planned-edge:after,
.ac-state-arrival.ac-selection-start:after,
.ac-state-arrival.ac-selection-end:after,
.ac-state-departure.ac-planned-stay:after,
.ac-state-departure.ac-planned-edge:after,
.ac-state-departure.ac-selection-start:after,
.ac-state-departure.ac-selection-end:after{
    background:var(--ac-planned-fill)!important;
    clip-path:none!important;
}

.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-edge .ac-date,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-planned-edge .ac-price,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-price{
    color:#fff!important;
}

/* Keep the white grid lines visible */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge{
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}


/* v3.0 selected period with half-day orange logic */
.ac-day.ac-planned-stay{
    background:var(--ac-planned-fill)!important;
    outline:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}
.ac-day.ac-selection-start,
.ac-day.ac-selection-end,
.ac-day.ac-planned-edge{
    outline:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}

/* Reset old full-orange edge override for diagonal cells */
.ac-state-arrival.ac-planned-edge:before,
.ac-state-arrival.ac-selection-start:before,
.ac-state-arrival.ac-selection-end:before,
.ac-state-departure.ac-planned-edge:before,
.ac-state-departure.ac-selection-start:before,
.ac-state-departure.ac-selection-end:before,
.ac-state-arrival.ac-planned-edge:after,
.ac-state-arrival.ac-selection-start:after,
.ac-state-arrival.ac-selection-end:after,
.ac-state-departure.ac-planned-edge:after,
.ac-state-departure.ac-selection-start:after,
.ac-state-departure.ac-selection-end:after{
    clip-path:initial;
}

/* Check-in day: orange bottom-right half */
.ac-day.ac-selection-start{
    background:transparent!important;
}
.ac-day.ac-selection-start:before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-free)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
}
.ac-day.ac-selection-start:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-planned-fill)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
}

/* Check-out day: orange top-left half */
.ac-day.ac-selection-end{
    background:transparent!important;
}
.ac-day.ac-selection-end:before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-planned-fill)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
}
.ac-day.ac-selection-end:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-free)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
}

/* If the selected edge was originally booked/arrival/departure, keep the non-orange half red where appropriate */
.ac-state-booked.ac-selection-start:before,
.ac-state-arrival.ac-selection-start:before{
    background:var(--ac-booked)!important;
}
.ac-state-booked.ac-selection-end:after,
.ac-state-departure.ac-selection-end:after{
    background:var(--ac-booked)!important;
}

/* Middle selected days should override arrival/departure diagonals to full orange */
.ac-day.ac-planned-stay:before,
.ac-day.ac-planned-stay:after{
    background:var(--ac-planned-fill)!important;
    clip-path:none!important;
}

/* Keep text above all selected half fills */
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-selection-end .ac-price,
.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-stay .ac-price{
    z-index:3!important;
}

/* no border layer for orange-fill mode */
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border,
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border{
    display:none!important;
}

/* v3.1 final form + inquiry UI + text layer */
.ac-day .ac-date,
.ac-day .ac-price{
    position:relative!important;
    z-index:30!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.42), 0 0 5px rgba(0,0,0,.28)!important;
}
.ac-day.ac-planned-stay:before,
.ac-day.ac-planned-stay:after,
.ac-day.ac-selection-start:before,
.ac-day.ac-selection-start:after,
.ac-day.ac-selection-end:before,
.ac-day.ac-selection-end:after{z-index:1!important;}
.ac-stay-summary{margin:16px 0;padding:14px 16px;border-radius:10px;background:#fff7ed;border:1px solid rgba(243,154,47,.35);display:flex;flex-direction:column;gap:5px}.ac-stay-summary strong{font-size:1.05rem}.ac-form-section{margin-top:22px}.ac-form-section h3{margin:0 0 12px;font-size:1.15rem}.ac-form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ac-form-section textarea{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #d4d4d4;border-radius:7px;font:inherit}.ac-helper-text{margin:.2rem 0 .9rem;color:#666;font-size:.92rem}.ac-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.ac-checkbox-grid label{display:flex;align-items:center;gap:8px;font-weight:600}.ac-other-interest{grid-column:span 2}.ac-other-interest .ac-interest-other{flex:1;min-width:140px;padding:8px 9px;border:1px solid #d4d4d4;border-radius:7px}.ac-gdpr-row label{display:flex;align-items:flex-start;gap:8px;font-weight:700}.ac-privacy-note{margin:.55rem 0 0;font-size:.82rem;color:#666}.ac-send-button.ac-sending{opacity:.8}.ac-send-status{margin-top:14px;padding:0}.ac-send-status.ac-ok,.ac-send-status.ac-error{padding:12px 14px;border-radius:8px;font-weight:700}.ac-send-status.ac-ok{background:#e7f6e7;color:#285d22}.ac-send-status.ac-error{background:#ffe7e0;color:#8a2b13}.ac-email.invalid,.ac-name.invalid,.ac-gdpr.invalid{outline:2px solid rgba(201,65,65,.35)}
@media(max-width:760px){.ac-form-grid-2,.ac-checkbox-grid{grid-template-columns:1fr}.ac-other-interest{grid-column:span 1;flex-wrap:wrap}}


/* v3.2 summary total and wider information block */
.ac-summary-total{
    font-weight:800;
    font-size:1.05rem;
}
.ac-info-text{
    max-width:none;
}
@media(min-width:900px){
    .ac-info-text{
        column-count:2;
        column-gap:36px;
    }
    .ac-info-text p{
        break-inside:avoid;
    }
}
.ac-privacy-note{
    max-width:1100px;
}

/* v3.3 stronger selected text visibility */
.ac-day .ac-date,
.ac-day .ac-price{
    position:relative!important;
    z-index:50!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.42), 0 0 5px rgba(0,0,0,.28)!important;
}


/* v3.4 selected half-day logic: preserve original booked/free half on selected edge days */
.ac-state-arrival.ac-selection-end:after{ background:var(--ac-booked)!important; }
.ac-state-departure.ac-selection-start:before{ background:var(--ac-booked)!important; }
.ac-state-arrival.ac-selection-start:before{ background:var(--ac-free)!important; }
.ac-state-departure.ac-selection-end:after{ background:var(--ac-free)!important; }

/* v3.4 separate price table from following contact inputs */
.ac-price-box{
    background:#f7f7f7;
    border:1px solid #e4e4e4;
    border-radius:10px;
    padding:16px 18px;
    margin:18px 0 26px;
}
.ac-price-box .ac-total-row{ border-top:1px solid #ddd; }

/* v3.4 selected text always visible */
.ac-day .ac-date,
.ac-day .ac-price{
    position:relative!important;
    z-index:80!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.45), 0 0 6px rgba(0,0,0,.32)!important;
}


/* v3.6 country/language + summary price fix support */
.ac-form-grid-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(min-width:1100px){
    .ac-personal-section .ac-form-grid-2{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}


/* v3.8 stable send state + spinner */
.ac-send-button{
    display:inline-flex;
    align-items:center;
    gap:9px;
}
.ac-spinner{
    display:none;
    width:16px;
    height:16px;
    border:2px solid rgba(255,255,255,.45);
    border-top-color:#fff;
    border-radius:50%;
    animation:ac-spin .8s linear infinite;
}
.ac-send-button.ac-sending .ac-spinner{
    display:inline-block;
}
@keyframes ac-spin{
    to{ transform:rotate(360deg); }
}
.ac-send-status.ac-neutral{
    padding:12px 14px;
    border-radius:8px;
    font-weight:700;
    background:#f2f2f2;
    color:#444;
}
.ac-summary-total{
    font-weight:800;
    font-size:1.05rem;
}


/* v3.9 country/language select */
.ac-form-grid select{
    width:100%;
    box-sizing:border-box;
    padding:10px 11px;
    border:1px solid #d4d4d4;
    border-radius:7px;
    font:inherit;
    background:#fff;
}

/* v4.3 soft nonce test */

/* v4.4 guest HTML confirmation email support */

/* v4.5 admin fee fields */
.ac-admin-inline-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,220px));
    gap:16px;
    align-items:end;
    margin:8px 0 14px;
}
.ac-admin-inline-fields label,
.ac-admin-block-label{
    display:flex;
    flex-direction:column;
    gap:6px;
    font-weight:600;
}
.ac-admin-inline-fields input{
    max-width:180px;
}
@media(max-width:700px){
    .ac-admin-inline-fields{
        grid-template-columns:1fr;
    }
}
.ac-guest-cards-text{
    font-weight:600;
}

/* v4.6 full calculation settings */
.ac-admin-inline-fields-wide{grid-template-columns:repeat(3,minmax(0,220px));}
@media(max-width:900px){.ac-admin-inline-fields-wide{grid-template-columns:repeat(2,minmax(0,220px));}}
@media(max-width:600px){.ac-admin-inline-fields-wide{grid-template-columns:1fr;}}


/* v4.6.1 admin cleanup */
.ac-admin-inline-fields-wide{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:18px 22px;
    align-items:start;
}
.ac-admin-inline-fields-wide label{
    display:flex;
    flex-direction:column;
    gap:7px;
    font-weight:600;
    line-height:1.25;
}
.ac-admin-inline-fields-wide input{
    width:100%;
    max-width:none;
    box-sizing:border-box;
}
.ac-admin-block-label{
    margin-top:16px;
}
@media(max-width:1200px){
    .ac-admin-inline-fields-wide{
        grid-template-columns:repeat(3,minmax(180px,1fr));
    }
}
@media(max-width:850px){
    .ac-admin-inline-fields-wide{
        grid-template-columns:repeat(2,minmax(180px,1fr));
    }
}
@media(max-width:560px){
    .ac-admin-inline-fields-wide{
        grid-template-columns:1fr;
    }
}


/* v4.7.2 selected-period fix: use a full orange border instead of orange triangle/fill.
   This preserves the original green/red/diagonal availability colors on all days. */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    background:inherit!important;
    outline:none!important;
    box-shadow:inset 0 0 0 4px var(--ac-planned-fill)!important;
}
.ac-state-free.ac-planned-stay,
.ac-state-free.ac-planned-edge,
.ac-state-free.ac-selection-start,
.ac-state-free.ac-selection-end{background:var(--ac-free)!important;}
.ac-state-booked.ac-planned-stay,
.ac-state-booked.ac-planned-edge,
.ac-state-booked.ac-selection-start,
.ac-state-booked.ac-selection-end{background:var(--ac-booked)!important;}
.ac-state-arrival.ac-planned-stay,
.ac-state-arrival.ac-planned-edge,
.ac-state-arrival.ac-selection-start,
.ac-state-arrival.ac-selection-end,
.ac-state-departure.ac-planned-stay,
.ac-state-departure.ac-planned-edge,
.ac-state-departure.ac-selection-start,
.ac-state-departure.ac-selection-end{background:transparent!important;}
.ac-state-arrival.ac-planned-stay:before,
.ac-state-arrival.ac-planned-edge:before,
.ac-state-arrival.ac-selection-start:before,
.ac-state-arrival.ac-selection-end:before{
    background:var(--ac-free)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
}
.ac-state-arrival.ac-planned-stay:after,
.ac-state-arrival.ac-planned-edge:after,
.ac-state-arrival.ac-selection-start:after,
.ac-state-arrival.ac-selection-end:after{
    background:var(--ac-booked)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
}
.ac-state-departure.ac-planned-stay:before,
.ac-state-departure.ac-planned-edge:before,
.ac-state-departure.ac-selection-start:before,
.ac-state-departure.ac-selection-end:before{
    background:var(--ac-booked)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
}
.ac-state-departure.ac-planned-stay:after,
.ac-state-departure.ac-planned-edge:after,
.ac-state-departure.ac-selection-start:after,
.ac-state-departure.ac-selection-end:after{
    background:var(--ac-free)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
}
.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-edge .ac-date,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-planned-edge .ac-price,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-price{
    z-index:80!important;
}


/* v4.7.3 definitive selected-period overlay.
   The selected range is a border only; it never recolors the original cell state. */
.ac-day .ac-planned-border{
    display:none!important;
    position:absolute!important;
    inset:0!important;
    border:5px solid #f39a2f!important;
    box-sizing:border-box!important;
    z-index:120!important;
    pointer-events:none!important;
    border-radius:0!important;
    background:transparent!important;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{display:block!important;}
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{outline:none!important;box-shadow:none!important;}
.ac-state-free.ac-planned-stay,
.ac-state-free.ac-planned-edge,
.ac-state-free.ac-selection-start,
.ac-state-free.ac-selection-end{background:var(--ac-free)!important;}
.ac-state-booked.ac-planned-stay,
.ac-state-booked.ac-planned-edge,
.ac-state-booked.ac-selection-start,
.ac-state-booked.ac-selection-end{background:var(--ac-booked)!important;}
.ac-state-arrival.ac-planned-stay,
.ac-state-arrival.ac-planned-edge,
.ac-state-arrival.ac-selection-start,
.ac-state-arrival.ac-selection-end,
.ac-state-departure.ac-planned-stay,
.ac-state-departure.ac-planned-edge,
.ac-state-departure.ac-selection-start,
.ac-state-departure.ac-selection-end{background:transparent!important;}
.ac-state-arrival.ac-planned-stay::before,
.ac-state-arrival.ac-planned-edge::before,
.ac-state-arrival.ac-selection-start::before,
.ac-state-arrival.ac-selection-end::before{background:var(--ac-free)!important;clip-path:polygon(0 0,100% 0,0 100%)!important;}
.ac-state-arrival.ac-planned-stay::after,
.ac-state-arrival.ac-planned-edge::after,
.ac-state-arrival.ac-selection-start::after,
.ac-state-arrival.ac-selection-end::after{background:var(--ac-booked)!important;clip-path:polygon(100% 0,100% 100%,0 100%)!important;}
.ac-state-departure.ac-planned-stay::before,
.ac-state-departure.ac-planned-edge::before,
.ac-state-departure.ac-selection-start::before,
.ac-state-departure.ac-selection-end::before{background:var(--ac-booked)!important;clip-path:polygon(0 0,100% 0,0 100%)!important;}
.ac-state-departure.ac-planned-stay::after,
.ac-state-departure.ac-planned-edge::after,
.ac-state-departure.ac-selection-start::after,
.ac-state-departure.ac-selection-end::after{background:var(--ac-free)!important;clip-path:polygon(100% 0,100% 100%,0 100%)!important;}
.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-edge .ac-date,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-planned-edge .ac-price,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-price{z-index:130!important;}

/* v4.7.4 final selection fix: keep original day colors/diagonals, show orange as border only */
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    background:var(--ac-free)!important;
    outline:none!important;
    box-shadow:none!important;
}
.ac-state-booked.ac-planned-stay,
.ac-state-booked.ac-planned-edge,
.ac-state-booked.ac-selection-start,
.ac-state-booked.ac-selection-end{
    background:var(--ac-booked)!important;
}
.ac-state-arrival.ac-planned-stay,
.ac-state-arrival.ac-planned-edge,
.ac-state-arrival.ac-selection-start,
.ac-state-arrival.ac-selection-end,
.ac-state-departure.ac-planned-stay,
.ac-state-departure.ac-planned-edge,
.ac-state-departure.ac-selection-start,
.ac-state-departure.ac-selection-end{
    background:transparent!important;
}
.ac-state-arrival.ac-planned-stay:before,
.ac-state-arrival.ac-planned-edge:before,
.ac-state-arrival.ac-selection-start:before,
.ac-state-arrival.ac-selection-end:before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-free)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
    box-shadow:none!important;
}
.ac-state-arrival.ac-planned-stay:after,
.ac-state-arrival.ac-planned-edge:after,
.ac-state-arrival.ac-selection-start:after,
.ac-state-arrival.ac-selection-end:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-booked)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
    box-shadow:none!important;
}
.ac-state-departure.ac-planned-stay:before,
.ac-state-departure.ac-planned-edge:before,
.ac-state-departure.ac-selection-start:before,
.ac-state-departure.ac-selection-end:before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-booked)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
    box-shadow:none!important;
}
.ac-state-departure.ac-planned-stay:after,
.ac-state-departure.ac-planned-edge:after,
.ac-state-departure.ac-selection-start:after,
.ac-state-departure.ac-selection-end:after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:0!important;
    background:var(--ac-free)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
    box-shadow:none!important;
}
.ac-day.ac-planned-stay .ac-planned-border,
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border{
    display:block!important;
    position:absolute!important;
    inset:3px!important;
    z-index:120!important;
    pointer-events:none!important;
    border:5px solid var(--ac-planned)!important;
    box-sizing:border-box!important;
    background:transparent!important;
    clip-path:none!important;
}
.ac-day .ac-date,
.ac-day .ac-price{
    position:relative!important;
    z-index:130!important;
}


/* v4.7.5 restore orange-fill selection logic (no borders):
   - check-in day: only afternoon / bottom-right triangle is orange
   - check-out day: only morning / top-left triangle is orange
   - full nights between them are full orange squares
   This intentionally overrides the v4.7.2-4.7.4 border experiments above. */
.ac-day .ac-planned-border{
    display:none!important;
    border:0!important;
    background:transparent!important;
}
.ac-day.ac-planned-stay,
.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    outline:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}
.ac-day.ac-planned-stay{
    background:var(--ac-planned-fill)!important;
}
.ac-state-arrival.ac-planned-stay,
.ac-state-departure.ac-planned-stay{
    background:var(--ac-planned-fill)!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-stay::after{
    background:var(--ac-planned-fill)!important;
    clip-path:none!important;
    box-shadow:none!important;
}

/* Selected check-in day: orange afternoon / bottom-right triangle. */
.ac-day.ac-selection-start{
    background:transparent!important;
}
.ac-day.ac-selection-start::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:var(--ac-free)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
    box-shadow:none!important;
}
.ac-day.ac-selection-start::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:var(--ac-planned-fill)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
    box-shadow:none!important;
}
.ac-state-booked.ac-selection-start::before,
.ac-state-departure.ac-selection-start::before{
    background:var(--ac-booked)!important;
}
.ac-state-arrival.ac-selection-start::before,
.ac-state-free.ac-selection-start::before{
    background:var(--ac-free)!important;
}

/* Selected check-out day: orange morning / top-left triangle. */
.ac-day.ac-selection-end{
    background:transparent!important;
}
.ac-day.ac-selection-end::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:var(--ac-planned-fill)!important;
    clip-path:polygon(0 0,100% 0,0 100%)!important;
    box-shadow:none!important;
}
.ac-day.ac-selection-end::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:var(--ac-free)!important;
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
    box-shadow:none!important;
}
.ac-state-booked.ac-selection-end::after,
.ac-state-arrival.ac-selection-end::after{
    background:var(--ac-booked)!important;
}
.ac-state-departure.ac-selection-end::after,
.ac-state-free.ac-selection-end::after{
    background:var(--ac-free)!important;
}

.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-selection-end .ac-price{
    position:relative!important;
    z-index:130!important;
    color:#fff!important;
}

/* v4.7.6 definitive selection overlay based on the original day state.
   No borders. The selected stay is shown with orange fills:
   - check-in: afternoon / bottom-right triangle orange
   - check-out: morning / top-left triangle orange
   - full nights between: full orange square
   The non-selected half keeps the original free/booked color. */
.ac-day.ac-planned-stay{
    background:var(--ac-planned-fill)!important;
    outline:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-stay::after{
    content:none!important;
    display:none!important;
}

.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    outline:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)!important;
}
.ac-day.ac-selection-start::before,
.ac-day.ac-selection-start::after,
.ac-day.ac-selection-end::before,
.ac-day.ac-selection-end::after{
    content:none!important;
    display:none!important;
}

/* Check-in day: keep original morning, orange afternoon. */
.ac-state-free.ac-selection-start,
.ac-state-arrival.ac-selection-start{
    background:linear-gradient(135deg,var(--ac-free) 0%,var(--ac-free) 50%,var(--ac-planned-fill) 50%,var(--ac-planned-fill) 100%)!important;
}
.ac-state-departure.ac-selection-start,
.ac-state-booked.ac-selection-start{
    background:linear-gradient(135deg,var(--ac-booked) 0%,var(--ac-booked) 50%,var(--ac-planned-fill) 50%,var(--ac-planned-fill) 100%)!important;
}

/* Check-out day: orange morning, keep original afternoon. */
.ac-state-free.ac-selection-end,
.ac-state-departure.ac-selection-end{
    background:linear-gradient(135deg,var(--ac-planned-fill) 0%,var(--ac-planned-fill) 50%,var(--ac-free) 50%,var(--ac-free) 100%)!important;
}
.ac-state-arrival.ac-selection-end,
.ac-state-booked.ac-selection-end{
    background:linear-gradient(135deg,var(--ac-planned-fill) 0%,var(--ac-planned-fill) 50%,var(--ac-booked) 50%,var(--ac-booked) 100%)!important;
}

.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-selection-end .ac-price{
    position:relative!important;
    z-index:200!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 6px rgba(0,0,0,.32)!important;
}

/* v4.7.7 definitive reference-style selection colors.
   Based on the original reference image:
   - no borders
   - check-in day: original morning/top-left triangle + orange afternoon/bottom-right triangle
   - full nights: full orange square
   - check-out day: orange morning/top-left triangle + original afternoon/bottom-right triangle
   This block intentionally overrides all earlier experimental selection rules. */
:root{
    --ac-free:#5f9e3d;
    --ac-booked:#c44543;
    --ac-planned-fill:#e6a24a;
}

.ac-day.ac-planned-edge,
.ac-day.ac-selection-start,
.ac-day.ac-selection-end,
.ac-day.ac-planned-stay{
    outline:none!important;
    border:none!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.48)!important;
}
.ac-day.ac-planned-edge .ac-planned-border,
.ac-day.ac-selection-start .ac-planned-border,
.ac-day.ac-selection-end .ac-planned-border,
.ac-day.ac-planned-stay .ac-planned-border{
    display:none!important;
}

/* Middle selected nights: solid orange, no diagonal pseudo layers. */
.ac-day.ac-planned-stay{
    background:var(--ac-planned-fill)!important;
}
.ac-day.ac-planned-stay::before,
.ac-day.ac-planned-stay::after{
    content:none!important;
    display:none!important;
    background:transparent!important;
    clip-path:none!important;
}

/* Selected edge cells must use diagonal layers, not gradients, to avoid extra/broken triangles. */
.ac-day.ac-selection-start,
.ac-day.ac-selection-end{
    background:transparent!important;
}
.ac-day.ac-selection-start::before,
.ac-day.ac-selection-start::after,
.ac-day.ac-selection-end::before,
.ac-day.ac-selection-end::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    pointer-events:none!important;
    box-shadow:none!important;
}

/* Check-in / arrival selection: top-left keeps original morning; bottom-right is orange. */
.ac-day.ac-selection-start::before{
    clip-path:polygon(0 0,100% 0,0 100%)!important;
}
.ac-day.ac-selection-start::after{
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
    background:var(--ac-planned-fill)!important;
}
.ac-state-free.ac-selection-start::before,
.ac-state-arrival.ac-selection-start::before{
    background:var(--ac-free)!important;
}
.ac-state-booked.ac-selection-start::before,
.ac-state-departure.ac-selection-start::before{
    background:var(--ac-booked)!important;
}

/* Check-out / departure selection: top-left is orange; bottom-right keeps original afternoon. */
.ac-day.ac-selection-end::before{
    clip-path:polygon(0 0,100% 0,0 100%)!important;
    background:var(--ac-planned-fill)!important;
}
.ac-day.ac-selection-end::after{
    clip-path:polygon(100% 0,100% 100%,0 100%)!important;
}
.ac-state-free.ac-selection-end::after,
.ac-state-departure.ac-selection-end::after{
    background:var(--ac-free)!important;
}
.ac-state-booked.ac-selection-end::after,
.ac-state-arrival.ac-selection-end::after{
    background:var(--ac-booked)!important;
}

.ac-day.ac-planned-stay .ac-date,
.ac-day.ac-planned-stay .ac-price,
.ac-day.ac-selection-start .ac-date,
.ac-day.ac-selection-start .ac-price,
.ac-day.ac-selection-end .ac-date,
.ac-day.ac-selection-end .ac-price{
    position:relative!important;
    z-index:20!important;
    color:#fff!important;
    text-shadow:0 1px 2px rgba(0,0,0,.45),0 0 6px rgba(0,0,0,.28)!important;
}
