/* CALENDULA reservation and compact privacy controls. */
.cgl-catalog-selected{margin:0 0 8px;font-size:14px;font-weight:600}
.cgl-catalog-footer button:disabled{opacity:.5;cursor:default}
.cgl-trip-actions{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.cgl-trip-actions[hidden],.cgl-reservation [hidden]{display:none!important}
.cgl-res-submit.is-added{background:#e3eee8;color:#285341;box-shadow:inset 0 0 0 1px #a5c0b0}
.cgl-trip-catalog{box-sizing:border-box;width:min(820px,calc(100vw - 28px));max-height:88dvh;border:1px solid white;border-radius:24px;padding:22px;background:linear-gradient(135deg,#f1f8fa,#fff6f0);color:#204d60;box-shadow:0 18px 80px #15364544}
.cgl-trip-catalog[open]{display:flex;flex-direction:column;gap:14px}
.cgl-trip-catalog::backdrop{background:#173c5080;backdrop-filter:blur(5px)}
/* One scroll owner: nested overflow containment trapped the mouse wheel. */
.cgl-trip-catalog .cgl-catalog-body{flex:1 1 auto;min-height:0;overflow-y:auto;touch-action:pan-y}
.cgl-trip-catalog .cgl-catalog-body .cgl-res-other{max-height:none;overflow:visible;overscroll-behavior:auto}
.cgl-trip-durations .cgl-next{display:inline-flex;flex-direction:column;align-items:center;gap:5px;padding:12px 17px}
.cgl-trip-durations .cgl-tab-price{display:block;font-size:12px;font-weight:400;line-height:1.4}
.cgl-catalog-head{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0}
.cgl-catalog-head h2{font-size:28px;margin:0}
.cgl-catalog-close{border:1px solid #c7d9de;background:#fff;border-radius:50%;font-size:25px;color:#214f61;width:38px;height:38px;flex:none;cursor:pointer}
.cgl-catalog-body{overflow:auto;min-height:80px;overscroll-behavior:contain;padding:4px}
.cgl-catalog-footer{border-top:1px solid #d5e1e4;padding-top:14px;flex-shrink:0}
.cgl-catalog-footer .cgl-res-fields{margin-bottom:12px}
.cgl-catalog-footer>.cgl-next{margin:5px 0 0 8px}
.cgl-catalog-footer [role=status]:empty{display:none}
.cgl-catalog-footer [role=status]{margin:8px 0}
.cgl-catalog-body .cgl-res-other{max-height:none}
.cgl-catalog-body .cgl-res-feature img,.cgl-catalog-body .cgl-res-feature:nth-child(-n+2) img{height:88px}
.cgl-catalog-open{margin-top:12px}
.cgl-trip-row-status{font-size:12px;color:#8b3939;grid-column:1/-1}
.cgl-trip-row-status:empty{display:none}
.cgl-trip-add{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.cgl-trip-add label{font-size:12px}
.cgl-trip-add select{padding:8px;border:1px solid #c7d9de;border-radius:9px;color:#214e60;background:white;max-width:100%}
.cgl-trip-add .cgl-res-submit{min-height:38px;padding:10px 16px;font-size:13px}
.cgl-trip-add [role=status]{font-size:12px;flex-basis:100%}
.cgl-trip-list{margin-top:20px}
.cgl-trip-row{display:grid;grid-template-columns:minmax(0,1fr) 150px auto;gap:10px;align-items:center;border-top:1px solid #d5e1e4;padding:14px 0}
.cgl-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0}
.cgl-cookie-panel{position:fixed;z-index:20000;bottom:12px;left:12px;max-width:660px;padding:12px 16px;border:1px solid #d6e3e6;border-radius:14px;background:#f8fcfdf5;color:#214e60;box-shadow:0 4px 24px #234b5a22;font:12px/1.5 Arial,sans-serif}
.cgl-cookie-panel[hidden],.cgl-cookie-toggle[hidden],.cgl-cookie-options[hidden]{display:none}
.cgl-cookie-panel>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.cgl-cookie-panel button,.cgl-cookie-toggle{cursor:pointer;border:1px solid #bacfd6;border-radius:8px;background:white;color:#214e60;padding:8px 12px;font:12px Arial;min-height:34px}
.cgl-cookie-panel .cgl-cookie-options{display:block}
.cgl-cookie-toggle{position:fixed;bottom:8px;left:8px;z-index:19000;font-size:11px;padding:6px 10px}
.cgl-cookie-panel input{accent-color:#214e60}
.cgl-cookie-panel button:focus-visible{outline:3px solid #497c91}
.cgl-page-about .cgl-editorial-copy>p{max-width:36em}
.cgl-cookie-panel .cgl-cookie-options[hidden]{display:none}
@media(max-width:600px){
.cgl-trip-row{grid-template-columns:1fr auto}
.cgl-trip-row>div{grid-column:1/-1}
.cgl-cookie-panel{right:12px;max-width:none}
.cgl-trip-add{align-items:stretch}}
.cgl-res-second[hidden]{display:none}
.cgl-res-second{margin-top:22px;padding:20px;background:#edf4f5;border-radius:16px}
.cgl-res-second h3{margin-bottom:15px}
.cgl-reservation details{margin:20px 0}
.cgl-reservation details>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;padding:17px 20px;border:1px solid #bacfd6;border-radius:14px;background:linear-gradient(110deg,#e8f2f5,#fff8f2);font-size:17px;font-weight:500;cursor:pointer;min-height:55px;box-sizing:border-box}
.cgl-reservation details>summary::-webkit-details-marker{display:none}
.cgl-reservation details>summary::after{content:'+';font:26px Georgia;flex:none}
.cgl-reservation details[open]>summary::after{content:'−'}
.calendula-glass .cgl-next:hover{background:#f5ded0;transform:translateY(-1px)}
.calendula-glass .cgl-next{display:inline-flex;align-items:center;justify-content:center;border:1px solid #41677755;color:#204d60;font:500 14px/1.2 Arial,sans-serif;transition:background .2s,transform .2s;white-space:nowrap;width:auto;height:auto;min-height:30px;padding:7px 15px;border-radius:9px;font-size:12px;letter-spacing:.025em;box-shadow:none;background:#ffffffc9;border-color:#62818b40}
.calendula-glass a:focus-visible,.calendula-glass button:focus-visible,.cgl-reservation input:focus-visible,.cgl-reservation select:focus-visible{outline:3px solid #497c91;outline-offset:4px}
.cgl-reservation{max-width:1240px;margin:50px auto 90px;padding:0 24px;color:#204d60;font:15px/1.6 Arial,sans-serif}
.cgl-reservation h1,.cgl-reservation h2,.cgl-reservation h3{font-family:Georgia,serif;font-weight:400;line-height:1.16}
.cgl-reservation h1{font-size:clamp(36px,5vw,60px);margin:12px 0}
.cgl-reservation h2{font-size:30px;margin:0 0 12px}
.cgl-reservation h3{font-size:21px;margin:0}
.cgl-res-intro{max-width:700px;margin-bottom:32px}
.cgl-res-kicker{letter-spacing:.18em;font-size:11px;text-transform:uppercase}
.cgl-res-steps{display:flex;gap:8px;flex-wrap:wrap;margin:25px 0}
.cgl-res-steps a{padding:9px 15px;border:1px solid #d5e1e4;border-radius:30px;text-decoration:none;color:inherit;background:#fff9}
.cgl-res-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:start}
.cgl-res-main{min-width:0}
.cgl-res-section{background:#ffffffa6;border:1px solid white;border-radius:24px;padding:28px;margin-bottom:22px;scroll-margin-top:120px}
.cgl-res-section legend{font-size:13px;color:#617d8b;padding:0 10px}
.cgl-res-features{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.cgl-res-feature{grid-column:span 2;position:relative;overflow:hidden;border:1px solid #d6e3e6;border-radius:17px;background:#edf5f5;cursor:pointer}
.cgl-res-feature:nth-child(-n+2){grid-column:span 3}
.cgl-res-feature img{width:100%;height:105px;object-fit:cover;display:block}
.cgl-res-feature:nth-child(-n+2) img{height:145px}
.cgl-res-feature label{display:flex;align-items:start;gap:8px;padding:12px;cursor:pointer;line-height:1.3;font-size:14px}
.cgl-res-feature:has(input:checked){outline:2px solid #4c798a;background:#f2e4db}
.cgl-reservation input[type=radio],.cgl-reservation input[type=checkbox]{accent-color:#37677a;width:20px;height:20px;flex:none;margin:0}
.cgl-res-other{max-height:255px;overflow:auto;overscroll-behavior:contain;border-block:1px solid #d6e3e6;margin:15px 0;scrollbar-gutter:stable}
.cgl-res-other label{display:flex;gap:12px;padding:14px 5px;border-bottom:1px solid #e3ecee;cursor:pointer;line-height:1.35}
.cgl-res-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cgl-res-fields label{display:grid;gap:5px;font-size:13px}
.cgl-reservation select,.cgl-reservation input:not([type=radio]):not([type=checkbox]),.cgl-reservation textarea{box-sizing:border-box;width:100%;padding:12px;border:1px solid #c7d9de;border-radius:10px;background:#fff;color:#214e60;font:16px Arial,sans-serif;min-height:46px}
.cgl-reservation textarea{min-height:90px}
.cgl-res-wide{grid-column:1/-1}
.cgl-res-note{font-size:12px;color:#5b7783;line-height:1.6}
.cgl-res-room-photo{width:100%;height:190px;object-fit:cover;border-radius:15px;margin:15px 0}
.cgl-res-extra{display:flex;align-items:start;gap:12px;margin:15px 0}
.cgl-res-summary{position:sticky;top:105px;background:linear-gradient(145deg,#e8f3f6,#fbebe1);border:4px solid white;border-radius:25px;padding:24px}
.cgl-res-summary h2{font-size:26px}
.cgl-res-total{font:32px Georgia,serif;margin:20px 0 8px}
.cgl-res-summary dl{margin:20px 0}
.cgl-res-summary dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#65808c;margin-top:16px}
.cgl-res-summary dd{margin:4px 0;font-size:14px}
.cgl-res-submit{border:0;border-radius:14px;background:#214f61;color:white;padding:15px 23px;font:15px Arial;cursor:pointer;min-height:48px}
.cgl-res-status{padding:15px;background:#edf5ee;border-radius:12px;margin-top:15px}
.cgl-tab-price{display:block;font:12px/1.5 Arial,sans-serif;margin-top:5px;color:#476d7b}
.cgl-course-prices{display:flex;gap:12px;flex-wrap:wrap;padding:20px 0}
.cgl-course-prices a{padding:12px 18px;border:1px solid #d4e1e5;border-radius:12px;text-decoration:none;color:#214e60;background:#fff}
@media(max-width:850px){
.cgl-res-grid{grid-template-columns:1fr}
.cgl-res-summary{position:static}
.cgl-res-section{padding:20px}
.cgl-reservation{padding:0 14px;margin-top:25px}
.cgl-header .cgl-nav{overflow-x:auto;max-width:100%}}
@media(max-width:480px){
.cgl-res-features{grid-template-columns:1fr 1fr}
.cgl-res-feature,.cgl-res-feature:nth-child(-n+2){grid-column:span 1}
.cgl-res-feature:nth-child(5){grid-column:1/-1;display:grid;grid-template-columns:100px 1fr}
.cgl-res-feature img,.cgl-res-feature:nth-child(-n+2) img{height:110px}
.cgl-res-fields{grid-template-columns:1fr}
.cgl-res-section h2{font-size:26px}
.cgl-res-steps a{font-size:12px;padding:7px 11px}}
.cgl-program-page .cgl-price[hidden],.cgl-trip-add [hidden]{display:none!important}
.cgl-trip-durations{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.cgl-trip-durations button[aria-pressed=true]{background:#dcecf1;border-color:#7da5b3}
#programs .cgl-card-copy .cgl-card-caption,#services .cgl-card-copy .cgl-card-caption{display:block!important;font:12px/1.35 Arial,sans-serif;margin:7px 0 9px;max-width:220px;color:#315e71}
@media(max-width:600px){
#programs .cgl-card-copy .cgl-card-caption,#services .cgl-card-copy .cgl-card-caption{font-size:11px;max-width:190px;margin:5px 0}}
.cgl-reservation .cgl-trip-row{grid-template-columns:minmax(0,1fr) 125px 100px;gap:10px}
.cgl-trip-name{font-weight:500}
.cgl-trip-item-price{grid-column:1/3;font-size:12px;color:#547382}
.cgl-reservation .cgl-trip-row select{font-size:13px;padding:8px;min-height:38px}
.cgl-reservation .cgl-trip-row>.cgl-next{grid-column:3}
.cgl-reservation .cgl-trip-row>.cgl-trip-name{grid-column:auto}
@media(max-width:600px){
.cgl-trip-catalog{padding:16px;border-radius:18px;max-height:92dvh}
.cgl-catalog-head h2{font-size:24px}
.cgl-catalog-footer .cgl-res-fields{grid-template-columns:1fr 1fr;gap:8px}
.cgl-catalog-footer>.cgl-next{margin-left:0}
.cgl-reservation .cgl-trip-row{grid-template-columns:minmax(0,1fr) 105px}
.cgl-reservation .cgl-trip-row>.cgl-trip-name{grid-column:1/-1}
.cgl-trip-item-price{grid-column:1}
.cgl-reservation .cgl-trip-row>.cgl-next{grid-column:2}
.cgl-catalog-body .cgl-res-feature img{height:65px!important}}

