:root{--green:#00834d;--dark:#053e2a;--navy:#112f54;--ink:#152c45;--muted:#647587;--border:#dfebe9;--pale:#eaf6f0;--cream:#fff4d8;--shadow:0 5px 18px #11402811}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:14px}body{margin:0;background:#eff2ef;color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.46;font-size:13px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.58;cursor:not-allowed}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #60b9ff;outline-offset:2px}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}.booking-app{max-width:1400px;margin:0 auto;background:#fff;min-height:100vh}.hero{min-height:184px;color:white;background:linear-gradient(90deg,#04281fef,#0b3525c9 37%,#0a221352 80%),url('/images/booking-accordion/bg-rafting.webp') center 42%/cover}.site-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 28px 0}.brand img{width:129px;height:49px;object-fit:contain}.site-links{display:flex;gap:21px;align-items:center}.site-links a{font-size:11px;font-weight:800;text-decoration:none}.site-links a:hover{text-decoration:underline}.nav-actions{display:flex;align-items:center;gap:12px}.mobile-menu-toggle{display:none;background:#063b2b;border:1px solid #d6f4e3;border-radius:7px;color:#fff;padding:7px 11px;font-size:19px;font-weight:700}.mobile-site-menu{display:none}.mobile-site-menu[hidden]{display:none!important}
.contact-link{color:white;background:#00864b;text-decoration:none;border:1px solid #bbffdc;padding:8px 13px;border-radius:8px;font-weight:750}.hero-copy{padding:10px 30px 28px}.hero-copy h1{font:700 32px Fraunces,Georgia,serif;margin:0}.hero-copy p{margin:0;font-size:13px}.trust-points{display:flex;gap:22px;flex-wrap:wrap;margin-top:14px;font-size:11px;font-weight:600}.trust-points span{white-space:nowrap}.booking-surface{position:relative;background:#fff;margin-top:-12px;border-radius:15px 15px 0 0;padding:14px 24px 32px;box-shadow:0 -5px 15px #08391b10}.progress-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0 0 14px}.progress-item{border:0;background:transparent;min-width:0;text-align:left;color:#4a5b69;font-size:10px;font-weight:650;padding:0 8px}.progress-num{width:26px;height:26px;border-radius:50%;background:#e5e9ef;display:inline-grid;place-items:center;font-size:12px;font-weight:800;color:#384956}.progress-item.current .progress-num,.progress-item.done .progress-num{background:var(--green);color:white}.progress-label{display:block;margin-top:4px}.booking-columns{display:grid;grid-template-columns:minmax(0,1fr) 287px;gap:14px;align-items:start}.booking-main{min-width:0}.top-forms{display:grid;grid-template-columns:1.17fr 1fr;gap:12px}.form-panel{border:1px solid #e2e9e8;box-shadow:0 3px 14px #153a2020;border-radius:10px;padding:13px 14px;margin-bottom:12px;background:#fff;scroll-margin-top:14px}.panel-title{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px}.panel-index{color:#fff;background:var(--green);display:inline-grid;place-items:center;font-weight:800;width:27px;height:27px;border-radius:50%;flex-shrink:0;font-size:14px}.panel-title h2{font:700 17px Fraunces,Georgia,serif;color:#153358;margin:0}.panel-title p{color:#667687;font-size:10px;margin:0}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.full{grid-column:1/-1}.field label{font-weight:760;font-size:11px;color:#15324a}.field input,.field select,.field textarea,.form-panel>textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid #dae3e8;border-radius:7px;background:#fff;color:#263d56;min-height:39px;font-size:12px}.field textarea,.form-panel>textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:#009158}.field small{font-size:10px;color:#758494}.field .invalid{border-color:#be2626;background:#fff9f9}.product-heading{align-items:center}.product-heading>div{flex:1;min-width:0}#searchPackages{max-width:200px;padding:9px 10px;font-size:11px;border:1px solid #dae6ec;border-radius:6px}.categories{display:flex;gap:5px;overflow-x:auto;padding-bottom:6px;margin-bottom:9px;scrollbar-width:thin}.category{white-space:nowrap;border:1px solid #d6e2eb;border-radius:5px;padding:7px 12px;background:#f6f9fc;color:#24466e;font-size:10px;font-weight:800}.category.active{background:var(--green);color:#fff;border-color:var(--green)}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.catalog-message{padding:20px 12px;background:#f5f8f7;border-radius:7px;color:#5c7182;font-size:12px;grid-column:1/-1}.product-card{border:1px solid #d9e8e6;border-radius:8px;overflow:hidden;min-width:0;display:flex;flex-direction:column;background:white}.product-card.selected{border-color:#0a995a;box-shadow:0 0 0 1px #0a995a}.product-image{height:96px;width:100%;object-fit:cover;background:#daeae6}.image-placeholder{display:grid;place-items:center;color:#5f8879;font-size:11px;font-weight:800}.product-body{padding:9px;display:flex;flex:1;flex-direction:column;gap:4px}.product-body h3{font-size:12px;color:#0b3566;margin:0}.product-description{color:#607185;font-size:10px;line-height:1.4;margin:0;min-height:27px}.product-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:10px;color:#385275}.feature-caption{font-size:10px;font-weight:700}.feature-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1px 6px;font-size:9px;color:#546474}.feature-list li:before{content:'✓ ';color:#009956;font-weight:900}.detail-button{align-self:start;border:0;background:none;padding:3px 0;color:#087048;text-decoration:underline;font-size:10px;font-weight:700}.price-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:auto}.price-box{padding:5px 6px;background:#edf5fd;border-radius:5px;min-width:0}.price-box.active{background:#e0f4ea;border:1px solid #9fe1bc}.price-box small{display:block;font-size:9px;color:#355b8c}.price-box strong{display:block;white-space:nowrap;font-size:12px;color:#0c376e}.price-box span{color:#4f687e;font-size:9px}.product-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.quantity{display:flex;align-items:center;justify-content:space-between;border:1px solid #d6e3eb;border-radius:6px;min-width:0;height:33px}.quantity button{background:transparent;border:0;min-width:25px;height:31px;color:#144a78;font-size:17px;font-weight:800}.quantity output{font-size:12px;font-weight:800;color:#19456b}.pick-button{border:1px solid var(--green);background:var(--green);color:white;font-size:10px;font-weight:800;border-radius:6px;padding:7px 5px}.pick-button.selected{color:var(--green);background:#f4fff9}.addon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.addon-card{border:1px solid #d9e7de;background:#f7fdf9;border-radius:8px;padding:8px;min-width:0}.addon-header{display:flex;gap:8px}.addon-header img{width:58px;height:56px;object-fit:cover;border-radius:5px;background:#d9e8e3}.addon-name{font-size:11px;font-weight:800;color:#1b4c6f}.addon-description{font-size:9px;color:#607487;line-height:1.3}.addon-price{font-size:10px;color:#2d5174}.addon-card .quantity{margin-top:8px;max-width:130px;margin-left:auto}.booking-sidebar{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px}.trip-summary{background:linear-gradient(145deg,#003d27,#045d36 65%,#053b2a);padding:11px;border-radius:11px;color:#fff}.trip-head{padding:2px 5px 8px}.trip-head h2{font-size:14px;margin:0;font-weight:800}.trip-head p{font-size:10px;margin:0}.trip-inner{background:#fff;color:#193550;padding:12px;border-radius:8px}.summary-block{border-bottom:1px solid #e8eef0;padding:8px 0}.summary-block h3{font-size:11px;color:#0a693d;margin:0 0 6px}.summary-empty{padding:10px 6px;text-align:center;font-size:10px;color:#728292}.summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin:5px 0;font-size:10px}.summary-row strong{font-size:10px}.summary-row button{color:#087347;background:#fff;border:1px solid #69b48e;border-radius:5px;font-size:9px;padding:4px 6px}.summary-meta{font-size:10px;color:#536779;line-height:1.85}.estimate{background:linear-gradient(110deg,#fff8e8,#fff0c7);border:1px solid #f5dfae;border-radius:7px;margin-top:11px;padding:9px}.estimate span{font-size:11px;font-weight:800}.estimate strong{font-size:24px;color:#0c2b4d;display:block}.estimate small{font-size:9px;color:#617185}.deposit{display:flex;justify-content:space-between;align-items:center;gap:7px;background:#edf6ff;color:#174579;margin-top:8px;padding:9px;border-radius:7px;font-size:10px}.deposit strong{font-size:13px}.booking-terms{border:1px solid #dbe7e1;padding:13px;background:white;border-radius:10px}.booking-terms h2{font:700 15px Fraunces,Georgia,serif;color:#1b344d;margin:0 0 9px}.terms-caption{font-size:11px;font-weight:800;padding:8px;background:#eaf6ff;border-radius:6px;color:#22537b}.booking-terms ul{padding-left:20px;margin:8px 0;font-size:10px;color:#4c6170}.booking-terms li{margin-bottom:6px}.booking-terms li::marker{color:#0a9b5c}.terms-note{font-size:9px;color:#718291}.send-primary{border:0;width:100%;border-radius:7px;padding:12px;color:#fff;background:linear-gradient(90deg,#00793f,#009757);font-weight:800;font-size:12px;text-align:center;text-decoration:none;display:block}.integration-status{background:#eef8f1;color:#255d40;border-radius:7px;padding:11px;font-size:11px;margin-top:14px}.integration-status.error{background:#fff0f0;color:#9f2626}.order-review{font-size:12px}.review-row{display:flex;align-items:start;justify-content:space-between;gap:18px;padding:7px 0;border-bottom:1px solid #edf1f3}.review-row strong{color:#153d62;white-space:nowrap}.review-row.total{background:#fff4d9;padding:10px;border-radius:6px;font-weight:800}.booking-success{margin:12px 0;border:1px solid #9cddbf;padding:12px;border-radius:9px;background:#f0fff6;color:#174b35}.booking-success p{font-size:11px}.booking-success .reference{font-size:19px;font-weight:850;color:#005532;margin-bottom:11px}.booking-success[hidden],.modal-backdrop[hidden]{display:none!important}.booking-success .send-primary{max-width:280px}.send-main{margin-top:12px}.mobile-sticky{display:none}.modal-backdrop{position:fixed;inset:0;background:#061d15c9;display:grid;place-items:center;z-index:100;padding:16px}.product-modal{position:relative;width:min(560px,100%);max-height:85vh;overflow:auto;background:#fff;border-radius:12px;padding:22px;color:#163554;box-shadow:0 20px 90px #0005}.product-modal h2{font:700 21px Fraunces,Georgia,serif;margin:0 0 10px}.modal-close{float:right;border:1px solid #b9d2c7;background:#fff;color:#156443;border-radius:6px;padding:5px 9px;font-weight:800}.modal-facilities{padding-left:18px}.modal-facilities li::marker{color:#07995b}
@media(min-width:1300px){.booking-surface{padding-left:28px;padding-right:28px}.booking-columns{grid-template-columns:minmax(0,1fr) 298px}.product-image{height:109px}.product-body{padding:10px}}
@media(max-width:1000px){.booking-columns{grid-template-columns:minmax(0,1fr) 249px}.top-forms{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-links{gap:10px}}
@media(max-width:690px){body{padding-bottom:112px}.hero{min-height:250px;background-position:59% center}.site-nav{padding:11px 13px 0}.brand img{width:119px;height:51px}.site-links,.contact-link{display:none}.mobile-menu-toggle{display:block}.mobile-site-menu:not([hidden]){position:absolute;z-index:30;right:12px;top:62px;display:flex;flex-direction:column;background:#073723f4;color:white;padding:10px;box-shadow:0 7px 24px #061c1970;border:1px solid #57ac83;border-radius:9px;min-width:170px}.mobile-site-menu a{padding:8px 10px;text-decoration:none;font-weight:700}.hero-copy{padding:46px 17px 24px}.hero-copy h1{font-size:26px}.hero-copy p{font-size:12px}.trust-points{margin-top:11px;gap:10px;font-size:10px}.trust-points span:nth-child(n+3){display:none}.booking-surface{padding:12px 10px 20px}.progress-steps{gap:0;margin-bottom:12px}.progress-item{text-align:center;padding:0 2px}.progress-num{width:27px;height:27px}.progress-label{font-size:8px;line-height:1.15}.booking-columns{display:block}.top-forms{display:block}.form-panel{padding:12px 11px;margin-bottom:10px}.panel-title h2{font-size:18px}.panel-title p{font-size:10px}.field-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.field input,.field select,.field textarea,.form-panel>textarea{font-size:16px;min-height:44px}.product-heading{flex-wrap:wrap}.product-heading #searchPackages{width:100%;max-width:none;font-size:15px}.categories{scrollbar-width:none}.category{font-size:11px;padding:8px 12px}.product-grid,.addon-grid{grid-template-columns:1fr}.product-image{height:165px}.product-body{padding:11px}.product-body h3{font-size:16px}.product-description{font-size:12px;min-height:0}.product-meta,.feature-caption{font-size:12px}.feature-list{font-size:11px}.price-box{padding:8px}.price-box small{font-size:11px}.price-box strong{font-size:17px}.price-box span{font-size:11px}.product-actions .quantity{height:40px}.quantity button{min-width:40px;min-height:39px}.pick-button{font-size:12px}.booking-sidebar{position:static}.trip-summary{display:none}.booking-terms{margin-top:9px}.mobile-sticky{display:block;position:fixed;z-index:50;bottom:0;left:0;right:0;background:#fffcf5;padding:8px 13px calc(9px + env(safe-area-inset-bottom));border-top:1px solid #e4dcbf;box-shadow:0 -5px 20px #061b1329}.mobile-line{display:flex;align-items:center;justify-content:space-between;font-size:12px}.mobile-line strong{font-size:19px}.mobile-line.deposit-line{font-size:11px;color:#184985;font-weight:800}.mobile-line.deposit-line strong{font-size:12px}.mobile-sticky .send-primary{margin-top:6px}.send-main{display:none}}

/* Compact owner-approved booking v1.1 accordion hierarchy and mixed tariff steppers */
.profile-info{border:1px solid #cfe8df;background:#edf9f2;color:#14553d;border-radius:7px;padding:10px;font-size:11px;min-height:39px}
.package-accordions,.addon-accordions{display:flex;flex-direction:column;gap:9px;min-width:0}
.package-group,.addon-group{border:1px solid #d7e6e4;border-radius:10px;overflow:hidden;background:#fff}
.group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;border:0;background:#f7fbfa;padding:12px 13px;text-align:left;min-height:59px;color:#15334d}
.group-toggle:hover{background:#eff9f3}
.group-toggle[aria-expanded="true"]{background:linear-gradient(100deg,#e9f9ee,#f9fcfb);border-bottom:1px solid #d6e8df}
.group-name{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:850}
.group-symbol{width:30px;height:30px;border-radius:9px;background:#d9f3e5;color:#007b47;display:inline-grid;place-items:center;font-size:15px}
.group-meta{display:block;font-size:10px;color:#668078;margin-top:2px;font-weight:500}
.group-tail{display:flex;gap:12px;align-items:center;flex-shrink:0}
.group-subtotal{text-align:right;font-size:10px;color:#5b7182}
.group-subtotal strong{display:block;font-size:14px;color:#074c39;white-space:nowrap}
.group-caret{display:inline-block;transition:transform .18s;font-size:18px;color:#116c51}
.group-toggle[aria-expanded="true"] .group-caret{transform:rotate(180deg)}
.group-content{padding:11px}
.group-content[hidden]{display:none!important}
.group-selected{border-radius:12px;background:#e4f5eb;color:#006b43;padding:3px 7px;white-space:nowrap;font-size:10px;font-weight:800}
.product-card .price-pair{grid-template-columns:1fr 1fr;gap:7px}
.tariff-column{display:flex;flex-direction:column;gap:5px;min-width:0;background:#f1f7fd;border-radius:7px;padding:6px}
.tariff-column .price-box{padding:3px 2px;background:transparent;border:0;min-width:0}
.tariff-column .quantity{background:#fff;border:1px solid #d3e2ee;margin:0}
.tariff-column .quantity button{min-width:28px}
.tariff-column.wna{background:#edf2fe}
.tariff-column.wni{background:#e9f7f0}
.tariff-column .price-box.active{border:0;background:transparent}
.line-subtotal{background:#fff8df;border:1px solid #eedeb2;border-radius:6px;padding:7px 9px;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:10px;color:#785c12}
.line-subtotal strong{font-size:13px;color:#193d5a;white-space:nowrap}
.product-actions{grid-template-columns:1fr}
.product-actions .pick-button{width:100%;min-height:34px}
.addon-subtotal{font-weight:750;font-size:11px;color:#174b3c;display:flex;justify-content:space-between;margin-top:7px;border-top:1px solid #dceadf;padding-top:7px}
.booking-sidebar .summary-profile{color:#4e6580;font-size:10px}
.selected-breakdown{font-size:10px;line-height:1.6;color:#51677b}
.order-breakdown{font-size:11px;padding:7px 0;border-bottom:1px solid #edf1f3}
.order-breakdown strong{color:#14466b}
.order-breakdown .breakdown-lines{color:#637688;padding-left:10px}
@media(max-width:690px){
 .profile-info{font-size:12px;min-height:44px}
 .package-accordions,.addon-accordions{gap:9px}
 .group-toggle{min-height:62px;padding:10px 11px}
 .group-name{font-size:13px}
 .group-subtotal strong{font-size:13px}
 .group-tail{gap:7px}
 .group-selected{font-size:9px}
 .group-content{padding:9px}
 .product-card .price-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tariff-column{padding:6px}
 .tariff-column .price-box strong{font-size:15px}
 .tariff-column .quantity button{min-width:39px}
 .line-subtotal strong{font-size:14px}
 .product-image{height:154px}
}

/* Owner UAT: photographic category headers and editable quantity fields. */
.group-toggle.with-group-image{position:relative;isolation:isolate;background-image:linear-gradient(90deg,rgba(4,47,35,.91),rgba(4,47,35,.64)),var(--group-image,none);background-position:center;background-size:cover;color:#fff;min-height:68px}
.group-toggle.with-group-image:hover,.group-toggle.with-group-image[aria-expanded="true"]{background-image:linear-gradient(90deg,rgba(4,70,45,.88),rgba(4,70,45,.55)),var(--group-image,none);color:#fff}
.with-group-image .group-meta,.with-group-image .group-subtotal,.with-group-image .group-subtotal strong,.with-group-image .group-caret{color:#fff}
.with-group-image .group-symbol{background:rgba(255,255,255,.18);color:#fff}
.with-group-image .group-selected{background:#f3fff1;color:#075436}
.quantity .quantity-input{width:100%;min-width:0;text-align:center;border:0;background:transparent;color:#123e33;font:inherit;font-weight:750;outline-offset:-2px;padding:4px 0;appearance:textfield;-moz-appearance:textfield}
.quantity .quantity-input::-webkit-inner-spin-button,.quantity .quantity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:690px){.quantity .quantity-input{font-size:14px;min-width:32px}.group-toggle.with-group-image{min-height:72px}}

.submit-feedback{font-size:12px;line-height:1.5;color:#176145;margin:8px 0;min-height:0}
.submit-feedback:empty{display:none}
.submit-feedback.error{color:#a12525;background:#fff1f1;border:1px solid #efc9c9;border-radius:7px;padding:9px 11px}

/* Owner UAT v1.1.1 — clean categories, prominent input surfaces, DP and payment terms. */
.group-name{gap:0}
#bookingStep1 .field input:not([type=hidden]),#bookingStep1 .field select,#bookingStep2 .field input,#bookingStep2 .field select{background:#f3f5f6;border-color:#cfd8dc}
#bookingStep1 .field input:focus,#bookingStep1 .field select:focus,#bookingStep2 .field input:focus{background:#fff;border-color:#00834d}
.rupiah-input{display:flex;align-items:center;border:1px solid #d4dfda;border-radius:8px;background:#f3f5f6;overflow:hidden}
.rupiah-input>span{padding:0 10px;font-weight:800;color:#075b39}
.rupiah-input input{border:0!important;flex:1;background:transparent!important;min-width:0}
.dp-payment-method{display:flex;flex-wrap:wrap;gap:8px 16px;margin:12px 0;border:1px solid #dbe4df;border-radius:8px;padding:10px 12px}
.dp-payment-method legend{font-size:12px;font-weight:800;padding:0 5px}.dp-payment-method label{font-size:12px;font-weight:700;display:inline-flex;gap:6px;align-items:center}
.booking-terms{background:#14271e;color:#f5f6ee;padding:18px}.booking-terms h2{font:800 16px Inter,Arial,sans-serif;color:#fff}.booking-terms p{color:#f0f4ec}.booking-terms ul{font-size:12px;line-height:1.65;color:#f0f5ee;padding-left:20px}.booking-terms li::marker{color:#efeee5}
.payment-account{padding:12px 14px;border-radius:8px;background:#253a31;border-left:3px solid #d7b16a;display:flex;flex-direction:column;gap:4px;overflow-wrap:anywhere;font-size:12px;color:#fff}.payment-account strong{font-size:15px}
@media(max-width:690px){.booking-terms{padding:17px}.booking-terms ul{font-size:13px}.dp-payment-method label{min-height:36px}}

.integration-status:empty{display:none}

/* Booking v1.1.1: category title readability and one success notification. */
.group-name{font-size:16px;line-height:1.3;font-weight:850}
@media(max-width:690px){.group-name{font-size:17px;line-height:1.3}}
.booking-sent-notice{margin:12px 16px 14px;padding:14px 16px;background:#e8f7ed;border:1px solid #a9dec2;border-radius:12px;color:#075238;box-shadow:0 5px 18px rgba(4,52,32,.08);line-height:1.5}
.booking-sent-notice[hidden],.booking-sent-notice a[hidden]{display:none!important}
.booking-sent-notice strong{display:block;font-weight:850;font-size:16px}
.booking-sent-notice p{font-size:13px;margin:7px 0 0;color:#245b43}
.booking-sent-notice p b{font-weight:800}
.booking-sent-notice a{display:inline-block;margin-top:10px;color:#076e43;text-decoration:underline;font-size:13px;font-weight:800}
@media(max-width:690px){.booking-sent-notice{margin:10px 12px 14px;padding:13px 14px}.booking-sent-notice strong{font-size:15px}}

/* Mobile has one primary CTA: sticky bottom; desktop retains the inline button. */
@media(max-width:690px){#submitBooking{display:none}}

/* Owner-approved quantity-first selection: the WNI/WNA and Add-on steppers
   are the ONLY selection controls; status is non-clickable and never destructive. */
.product-body .card-title-row,.addon-title-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;min-width:0}
.card-title-row h3,.addon-title-row .addon-name{flex:1 1 125px;min-width:0}
.selection-badge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:23px;border:1px solid #b0dfc6;background:#e8f7ed;color:#087446;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:850;white-space:nowrap}
.choice-feedback{min-height:18px;margin:0;padding:5px 0 0;text-align:center;color:#637b76;font-size:10px;line-height:1.45}
.choice-feedback.is-selected{color:#087446;font-weight:750}
.addon-card.selected{border-color:#0a995a;background:#f5fff9;box-shadow:0 0 0 1px #0a995a}
.addon-card .addon-title-row{align-items:flex-start}
.addon-card .selection-badge{font-size:9px;min-height:20px;padding:2px 6px}
.addon-card .choice-feedback{text-align:right}
@media(max-width:690px){.selection-badge{font-size:11px}.choice-feedback{font-size:11px}.addon-card .choice-feedback{font-size:10px}}

/* Booking v1.2: clear inline errors, invisible anti-bot trap and gentle fallback. */
.field .invalid,.field input.invalid,.field select.invalid,.field textarea.invalid,.form-panel.invalid{
  border-color:#bf2d2d!important;box-shadow:0 0 0 2px rgba(191,45,45,.12);
}
.field-error{font-size:12px;font-weight:700;line-height:1.45;color:#aa2323;margin:5px 0 0}
.form-panel .panel-title .field-error{flex:1 1 100%}
.anti-spam-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;pointer-events:none}
.security-fallback{font-size:12px;line-height:1.55;margin:12px 0;border:1px solid #ddc59c;padding:11px;border-radius:8px;background:#fff8e7;color:#69470b}
.security-fallback[hidden],.turnstile-widget[hidden]{display:none!important}
.security-fallback a{display:inline-block;color:#075b39;font-weight:800;text-decoration:underline}
@media(max-width:690px){.field-error{font-size:13px}.security-fallback{font-size:13px}}


/* Booking locale dropdown: the label always represents the currently selected language.
   The native select handles keyboard, touch-screen picker, and screen readers. */
.language-picker{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:40px;padding:4px 9px;border:1px solid rgba(233,255,243,.8);
  background:rgba(3,64,46,.94);border-radius:9px;color:#fff;white-space:nowrap;
  cursor:pointer;flex-shrink:0;
}
.language-picker:focus-within{outline:3px solid #60b9ff;outline-offset:2px}
.locale-symbol{display:inline-flex;align-items:center;justify-content:center;width:23px;height:20px;flex-shrink:0}
.locale-flag{
  display:inline-block;width:22px;height:14px;border:1px solid rgba(255,255,255,.5);
  border-radius:2px;background:linear-gradient(to bottom,#ed1c24 0%,#ed1c24 50%,#fff 50%,#fff 100%);
  box-shadow:0 1px 3px rgba(0,0,0,.22);
}
.locale-globe{font-size:21px;line-height:1}
.locale-flag[hidden],.locale-globe[hidden]{display:none!important}
.language-picker select{
  width:51px;min-height:32px;appearance:none;-webkit-appearance:none;
  background:transparent!important;color:#fff;border:0;outline:0;
  font-size:13px;font-weight:800;letter-spacing:.02em;cursor:pointer;
  padding:0;margin:0;
}
.language-picker select option{color:#18394c;background:#fff}
.language-picker select:focus-visible{outline:none}
.language-picker select:disabled{opacity:.7;cursor:wait}
.locale-chevron{font-size:15px;font-weight:900;line-height:1;margin-left:-5px;pointer-events:none}
@media(max-width:690px){
  .nav-actions{gap:9px}
  .nav-actions .language-picker{order:1;min-height:40px;padding:4px 8px}
  .nav-actions .mobile-menu-toggle{order:2;min-width:40px;min-height:40px}
  .language-picker select{width:48px}
}


/* Kalisawah Add-on Card Readability Standard v1.0.
   Same reading hierarchy as packages; Add-on layout remains intentionally compact. */
.addon-grid .addon-card{
  padding:11px;
  border-radius:10px;
}
.addon-card .addon-header{display:flex;gap:10px;align-items:flex-start;min-width:0}
.addon-card .addon-header img{
  width:64px;height:64px;flex:0 0 64px;object-fit:cover;
  border-radius:7px;
}
.addon-card .addon-main{min-width:0;flex:1}
.addon-card .addon-name{
  font-size:17px;font-weight:800;line-height:1.3;color:#163e67;
  overflow-wrap:anywhere;
}
.addon-card .addon-description{
  font-size:14px;font-weight:400;line-height:1.5;
  color:#4f6577;margin:5px 0 0;white-space:pre-line;
  overflow-wrap:break-word;word-break:normal;hyphens:auto;
}
.addon-card .addon-price{
  display:flex;align-items:baseline;gap:4px;flex-wrap:wrap;
  margin-top:5px;line-height:1.35;color:#163e67;
}
.addon-card .addon-price strong{
  font-size:17px;font-weight:850;color:#103e65;
}
.addon-card .addon-price span{
  font-size:14px;font-weight:500;color:#516b80;
}
.addon-card .quantity{
  margin-top:10px;height:42px;max-width:164px;margin-left:auto;
}
.addon-card .quantity button{min-width:40px;min-height:40px}
.addon-card .quantity .quantity-input{
  font-size:18px;font-weight:850;color:#143f35;
}
.addon-card .addon-subtotal{
  margin-top:10px;padding-top:9px;
  display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  font-size:14px;font-weight:700;line-height:1.35;
}
.addon-card .addon-subtotal strong{
  font-size:15px;font-weight:850;white-space:nowrap;color:#104835;
}
@media(max-width:690px){
  .addon-grid .addon-card{padding:12px}
  .addon-card .addon-name{font-size:18px}
  .addon-card .addon-price strong{font-size:17px}
  .addon-card .quantity{height:44px;max-width:164px}
  .addon-card .quantity button{min-width:44px;min-height:42px}
  .addon-card .quantity .quantity-input{font-size:18px}
  .addon-card .addon-subtotal{font-size:14px}
  .addon-card .addon-subtotal strong{font-size:15px}
}


/* Booking v1.3 — Owner UAT: tablet-first form and complete booking review.
   >=1200px retains approved desktop sidebar; <=690px retains sticky mobile CTA. */
@media(min-width:691px) and (max-width:1199px){
  body{font-size:14px}
  .booking-app{width:100%;max-width:none}
  .booking-surface{padding:18px clamp(16px,3.25vw,32px) 28px}
  .booking-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
  .booking-main{width:100%;min-width:0}
  .top-forms{grid-template-columns:1fr;gap:0}
  .form-panel{padding:17px 18px;margin-bottom:14px}
  .panel-title h2{font-size:20px}
  .panel-title p{font-size:13px;line-height:1.5}
  .field label{font-size:13px}
  .field input,.field select,.field textarea,.form-panel>textarea{font-size:16px;min-height:44px}
  .field-grid{gap:13px 14px}
  .product-grid,.addon-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .product-card{min-width:0}
  .product-body h3{font-size:16px}
  .product-description{font-size:13px;min-height:0}
  .product-image{height:145px}
  .price-box strong{font-size:16px}
  .category{font-size:12px;padding:9px 13px}
  /* Large, readable tablet accordion targets. */
  .group-toggle{min-height:82px;padding:14px 16px;gap:14px}
  .group-toggle.with-group-image{min-height:88px}
  .group-name{font-size:19px;line-height:1.35}
  .group-symbol{width:40px;height:40px;font-size:19px;flex-shrink:0}
  .group-meta{font-size:13px;line-height:1.4}
  .group-subtotal{font-size:12px}
  .group-subtotal strong{font-size:17px}
  .group-caret{font-size:21px}
  .booking-sidebar{position:static;top:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
  /* Step 6 is canonical on tablets; hide only duplicate summary, not the terms. */
  .trip-summary{display:none!important}
  .booking-terms{width:100%;min-width:0;margin-top:0}
  .trip-summary,.booking-terms{min-width:0}
  .trip-head h2{font-size:17px}
  .trip-inner{padding:16px}
  .booking-terms ul{font-size:13px;line-height:1.7}
  .order-review{font-size:14px}
  .send-main{font-size:15px;min-height:48px}
  .mobile-sticky{display:none}
}
@media(min-width:1000px) and (max-width:1199px){
  /* Landscape tablet still uses full-width Data Pemesan and Jadwal Kegiatan. */
  .top-forms{grid-template-columns:minmax(0,1fr);gap:0}
  .booking-sidebar{grid-template-columns:minmax(0,1fr)}
}
@media(min-width:691px) and (max-width:850px){
  .site-nav{padding:13px 17px 0}
  .site-links,.contact-link{display:none}
  .mobile-menu-toggle{display:block;min-width:44px;min-height:44px}
  .mobile-site-menu:not([hidden]){position:absolute;z-index:30;right:17px;top:69px;display:flex;flex-direction:column;gap:2px;min-width:200px;padding:11px;background:#073723f4;color:#fff;border:1px solid #57ac83;border-radius:10px;box-shadow:0 8px 24px #061c1970}
  .mobile-site-menu a{padding:10px 12px;text-decoration:none;font-weight:750}
  .progress-label{font-size:12px;line-height:1.3}
  .form-panel{padding:15px}
  .group-name{font-size:18px}
  .group-toggle{min-width:0}
  .booking-sidebar{grid-template-columns:1fr}
}

/* One concise, readable hierarchy for booking review on all devices. */
#bookingStep6 .order-review{display:block;font-size:14px;line-height:1.45}
.review-section{padding:0 0 13px;margin-bottom:15px;border-bottom:1px solid #e2e9ec}
.review-section:last-child{border-bottom:0;margin-bottom:3px}
.review-section h3{font-size:15px;font-weight:850;color:#123d54;margin:0 0 11px;letter-spacing:.01em}
.review-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.review-detail{display:flex;flex-direction:column;gap:3px;min-width:0}
.review-detail span{font-size:12px;font-weight:700;color:#65788b}
.review-detail strong{font-size:14px;line-height:1.45;font-weight:750;color:#17354d;overflow-wrap:anywhere;white-space:normal}
.review-section .order-breakdown{padding:9px 0;border-bottom:1px solid #e7eef0}
.review-section .order-breakdown>strong{font-size:15px;color:#163f67}
.review-section .breakdown-lines{font-size:13px;color:#4f657b;margin-top:4px;overflow-wrap:anywhere}
.review-section .breakdown-subtotal{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:6px;font-size:13px;color:#567082}
.review-section .breakdown-subtotal strong{font-size:14px;color:#133c60}
.review-costs .review-row{font-size:13px}
.review-costs .review-row.total{font-size:15px}
.review-empty{color:#728292;font-size:13px}
.sidebar-review-details{display:grid;gap:7px}
.sidebar-review-details .review-detail span{font-size:10px;color:#617285}
.sidebar-review-details .review-detail strong{font-size:11px;color:#193e58}
@media(max-width:690px){
  .review-detail-grid{grid-template-columns:1fr;gap:10px}
  .review-section h3{font-size:15px}
  .review-detail strong{font-size:14px}
  .review-section .order-breakdown>strong{font-size:15px}
}

/* Owner-approved tablet visual contract v1.3.1 — legibility without zoom.
   Tablet only: desktop >=1200 and mobile <=690 retain approved geometry. */
@media (min-width:691px) and (max-width:1199px){
  .booking-main,.booking-surface,.top-forms,#bookingStep1,#bookingStep2{min-width:0}
  .top-forms{grid-template-columns:minmax(0,1fr)}
  .panel-title h2{font-size:22px;line-height:1.3}
  .panel-title p{font-size:15px;line-height:1.5}
  .panel-title{gap:12px;margin-bottom:17px}
  .panel-index{width:34px;height:34px;font-size:17px}
  .form-panel{padding:20px 21px;margin-bottom:16px}
  .field-grid{gap:15px 17px}
  #bookingStep1 .address-field{grid-column:1/-1}
  .field{gap:7px}
  .field label,#bookingStep6>.field>label{font-size:16px;line-height:1.4;font-weight:750}
  .field input,.field select,.field textarea,.form-panel>textarea,.rupiah-input input{
    font-size:17px;line-height:1.45;min-height:49px;padding:11px 13px
  }
  .field small,#bookingStep6>.field>small{font-size:14px;line-height:1.55}
  .category{font-size:14px;min-height:42px;padding:10px 13px}
  #searchPackages{font-size:16px;min-height:45px;max-width:260px}
  .group-toggle{min-height:91px;padding:15px 17px}
  .group-toggle.with-group-image{min-height:95px}
  .group-name{font-size:20px;line-height:1.35}
  .group-meta{font-size:15px;line-height:1.5}
  .group-subtotal{font-size:14px;line-height:1.35}
  .group-subtotal strong{font-size:18px}
  .group-selected{font-size:12px}
  .group-symbol{width:42px;height:42px;font-size:20px}
  .group-caret{font-size:23px}
  .product-body h3{font-size:18px;line-height:1.4}
  .product-description{font-size:15px;line-height:1.55}
  .product-meta,.feature-caption,.feature-list{font-size:14px;line-height:1.5}
  .price-box small,.price-box span{font-size:13px}
  .price-box strong{font-size:17px}
  .line-subtotal{font-size:15px;line-height:1.45}
  .addon-card .addon-name{font-size:18px}
  .addon-card .addon-description{font-size:15px;line-height:1.5}
  #bookingStep6 .order-review{font-size:16px}
  .review-section h3{font-size:18px;line-height:1.4}
  .review-detail span{font-size:15px;line-height:1.45}
  .review-detail strong{font-size:16px;line-height:1.55}
  .review-section .order-breakdown>strong{font-size:17px}
  .review-section .breakdown-lines,.review-section .breakdown-subtotal,
  .review-costs .review-row,.review-empty{font-size:15px;line-height:1.55}
  .review-section .breakdown-subtotal strong{font-size:16px}
  .review-costs .review-row.total{font-size:18px}
  .booking-terms{padding:20px 22px}
  .booking-terms h2{font-size:19px;line-height:1.4}
  .booking-terms p,.booking-terms ul,.booking-terms li,.payment-account{
    font-size:15px;line-height:1.65
  }
  .payment-account strong{font-size:17px}
  .dp-payment-method legend,.dp-payment-method label{font-size:15px}
  .dp-payment-method label{min-height:44px}
  .send-main{font-size:17px;min-height:53px}
  .progress-label{font-size:13px;line-height:1.35}
}
@media (min-width:691px) and (max-width:780px){
  .booking-surface{padding-left:14px;padding-right:14px}
  .form-panel{padding:18px 16px}
  .product-grid,.addon-grid{grid-template-columns:minmax(0,1fr)}
  .field-grid{gap:13px}
}


/* Package inclusions v1.4 — never truncate or squeeze contractual facilities. */
#bookingStep3 .feature-list{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:5px;
  min-width:0;
  font-size:13px;
  line-height:1.5;
}
#bookingStep3 .feature-list li,
#productModal .modal-facilities li{
  min-width:0;
  white-space:pre-line;
  overflow-wrap:break-word;
  word-break:normal;
}
#productModal .modal-facilities{
  display:grid;
  gap:7px;
  padding-left:22px;
  line-height:1.55;
}
#productModal #modalContent > p:first-child{
  white-space:pre-line;
  overflow-wrap:break-word;
}
@media (max-width:690px){
  #bookingStep3 .feature-list{font-size:14px;line-height:1.5;gap:6px}
  #productModal .modal-facilities{font-size:15px;line-height:1.55}
}

/* Booking Package Card Summary v1.5 — compact preview; full copy remains in Detail modal. */
#bookingStep3 .product-card .product-description{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  overflow:hidden;
  overflow-wrap:break-word;
  white-space:normal;
}
/* Do not clamp the popup, nor any Add-on description. */
#productModal #modalContent > p:first-child{
  display:block;
  overflow:visible;
  white-space:pre-line;
  -webkit-line-clamp:unset;
  line-clamp:unset;
}


/* Owner-approved Add-on Vertical Card v1.6 — webdev UAT only.
   Mirrors the Paket Wisata reading hierarchy without altering booking logic. */
#bookingStep4 .addon-grid .addon-card,
.addon-grid .addon-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:14px;
  background:#fff;
  border:1px solid #d1e5db;
  border-radius:16px;
  box-shadow:0 2px 9px rgba(5,62,42,.045);
  overflow:hidden;
}
.addon-card .addon-media{
  width:100%;
  min-width:0;
  margin:0 0 16px;
}
.addon-card .addon-thumbnail{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4 / 3;
  object-fit:cover;
  object-position:center;
  border-radius:11px;
  background:#e5f0e9;
}
.addon-card .addon-thumbnail-placeholder{
  display:grid;
  place-items:center;
  padding:20px;
  text-align:center;
  color:#597e73;
  font-size:14px;
  font-weight:650;
  border:1px dashed #bfd9cc;
}
.addon-card .addon-main{
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
  flex:1 0 auto;
}
.addon-card .addon-title-row{
  display:flex;
  gap:10px;
  align-items:flex-start;
  justify-content:space-between;
}
.addon-card .addon-name{
  font-size:19px;
  font-weight:800;
  line-height:1.32;
  color:#10385e;
  overflow-wrap:break-word;
}
.addon-card .addon-description{
  margin:12px 0 0;
  font-size:15px;
  line-height:1.62;
  font-weight:400;
  color:#566c82;
  white-space:pre-line;
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
  display:block;
  max-height:none;
  -webkit-line-clamp:unset;
  line-clamp:unset;
}
.addon-card .addon-price{
  margin-top:17px;
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:5px;
  line-height:1.4;
}
.addon-card .addon-price strong{
  font-size:21px;
  font-weight:850;
  color:#0c3d69;
  white-space:nowrap;
}
.addon-card .addon-price span{
  font-size:15px;
  font-weight:500;
  color:#5d7188;
}
.addon-card .addon-actions{
  display:flex;
  align-items:center;
  width:100%;
  margin:16px 0 0;
}
.addon-card .addon-actions .quantity{
  display:grid;
  grid-template-columns:minmax(44px,1fr) minmax(46px,1fr) minmax(44px,1fr);
  align-items:center;
  width:100%;
  max-width:none;
  height:50px;
  min-width:0;
  margin:0;
  border:1px solid #d4e6e5;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
.addon-card .addon-actions .quantity button{
  display:grid;
  place-items:center;
  width:100%;
  min-width:44px;
  height:48px;
  min-height:48px;
  border:0;
  border-radius:0;
  font-size:24px;
  color:#174f8a;
}
.addon-card .addon-actions .quantity .quantity-input{
  width:100%;
  min-width:0;
  height:34px;
  padding:0 3px;
  border-left:1px solid #dce8e8;
  border-right:1px solid #dce8e8;
  border-top:0;
  border-bottom:0;
  border-radius:0;
  background:transparent;
  color:#064432;
  font-size:20px;
  font-weight:850;
  text-align:center;
}
.addon-card .addon-subtotal{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
  margin-top:19px;
  padding-top:15px;
  border-top:1px solid #dbe8e4;
  color:#084a37;
  font-size:14px;
  font-weight:750;
  line-height:1.45;
}
.addon-card .addon-subtotal span{min-width:0;overflow-wrap:break-word}
.addon-card .addon-subtotal strong{
  flex-shrink:0;
  font-size:18px;
  color:#074734;
  font-weight:850;
  white-space:nowrap;
}
@media (max-width:690px){
  .addon-grid .addon-card{padding:13px}
  .addon-card .addon-media{margin-bottom:15px}
  .addon-card .addon-name{font-size:19px}
  .addon-card .addon-description{font-size:15px;line-height:1.6}
  .addon-card .addon-price strong{font-size:21px}
  .addon-card .addon-actions .quantity{height:50px;max-width:none}
  .addon-card .addon-actions .quantity button{min-height:48px;min-width:44px}
  .addon-card .addon-actions .quantity .quantity-input{font-size:20px}
  .addon-card .addon-subtotal{font-size:14px}
  .addon-card .addon-subtotal strong{font-size:18px}
}


/* Booking media parity v1.7 — same image frame height for Paket Wisata and
   Add-on, and preserve the entire uploaded thumbnail without cropping/stretching.
   Keep existing package-card content, price, accordion and quantities unchanged. */
:root{
  --booking-card-image-height:96px;
}
@media (min-width:1300px){
  :root{--booking-card-image-height:109px;}
}
@media (min-width:691px) and (max-width:1199px){
  :root{--booking-card-image-height:145px;}
}
@media (max-width:690px){
  :root{--booking-card-image-height:154px;}
}
.product-card .product-image,
.addon-card .addon-thumbnail{
  display:block;
  width:100%;
  height:var(--booking-card-image-height);
  aspect-ratio:auto;
  background:#f5f8f6;
}
.product-card img.product-image,
.addon-card img.addon-thumbnail{
  object-fit:contain;
  object-position:center;
}
/* Keep the same frame even when no image is uploaded. */
.product-card .image-placeholder,
.addon-card .addon-thumbnail-placeholder{
  display:grid;
  place-items:center;
  width:100%;
  height:var(--booking-card-image-height);
  min-height:0;
  box-sizing:border-box;
}


/* FORM BOOKING v1.8 — FINAL OWNER-APPROVED CLEAN CARD
   VISUAL ONLY; no booking total, taxonomy, rate or API changes.
   Mobile-first, with popup Detail showing the complete CMS copy. */
:root{
  --booking-v18-ink:#073c30;
  --booking-v18-copy:#61758c;
  --booking-v18-accent:#008853;
  --booking-v18-radius:17px;
  --booking-v18-elevation:0 7px 22px rgba(15,62,50,.085);
}
#bookingStep3 .package-group,
#bookingStep4 .addon-group{
  border:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  margin-bottom:12px;
  overflow:visible;
}
#bookingStep3 .group-content,
#bookingStep4 .group-content{
  padding:8px 0 0;
  border:0;
  background:transparent;
}
#bookingStep3 .group-toggle.with-group-image,
#bookingStep4 .group-toggle.with-group-image{
  border:0;
  border-radius:13px;
  overflow:hidden;
  color:#fff;
  background-image:
    linear-gradient(90deg,rgba(2,44,31,.76),rgba(1,55,39,.63)),
    var(--group-image,none);
  background-position:center;
  background-size:cover;
  transition:background-color .2s ease,filter .2s ease,box-shadow .2s ease;
}
#bookingStep3 .group-toggle.with-group-image[aria-expanded="true"],
#bookingStep4 .group-toggle.with-group-image[aria-expanded="true"],
#bookingStep3 .group-toggle.with-group-image[aria-expanded="true"]:hover,
#bookingStep4 .group-toggle.with-group-image[aria-expanded="true"]:hover{
  background-image:
    linear-gradient(90deg,rgba(2,44,31,.49),rgba(1,55,39,.36)),
    var(--group-image,none);
  box-shadow:0 5px 13px rgba(12,55,40,.10);
}
#bookingStep3 .group-toggle.with-group-image[aria-expanded="false"]:hover,
#bookingStep4 .group-toggle.with-group-image[aria-expanded="false"]:hover{
  background-image:
    linear-gradient(90deg,rgba(2,44,31,.69),rgba(1,55,39,.57)),
    var(--group-image,none);
}
#bookingStep3 .group-name,
#bookingStep4 .group-name{
  color:#fff;
  font-weight:850;
  letter-spacing:-.015em;
}
#bookingStep3 .group-meta,
#bookingStep4 .group-meta,
#bookingStep3 .group-subtotal,
#bookingStep4 .group-subtotal,
#bookingStep3 .group-subtotal strong,
#bookingStep4 .group-subtotal strong,
#bookingStep3 .group-caret,
#bookingStep4 .group-caret{color:#fff}
#bookingStep3 .group-symbol,
#bookingStep4 .group-symbol{display:none!important}
#bookingStep3 .product-card,
#bookingStep4 .addon-card{
  min-width:0;
  border:1px solid rgba(37,106,74,.065);
  border-radius:var(--booking-v18-radius);
  background:#fff;
  box-shadow:var(--booking-v18-elevation);
  overflow:hidden;
}
#bookingStep3 .product-card.selected,
#bookingStep4 .addon-card.selected{
  background:#fff;
  border-color:#62c297;
  box-shadow:0 4px 18px rgba(0,105,65,.14);
}
#bookingStep3 .product-card .product-image{
  width:100%;
  height:var(--booking-card-image-height);
  object-fit:cover;
  object-position:center;
  aspect-ratio:auto;
  background:#edf5f0;
}
#bookingStep4 .addon-card .addon-thumbnail{
  width:100%;
  height:var(--booking-card-image-height);
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
  border-radius:11px;
  background:#f5f8f6;
}
#bookingStep3 .product-card .product-body{padding:14px;gap:8px}
#bookingStep3 .product-body h3,
#bookingStep4 .addon-card .addon-name{
  font-size:19px;
  font-weight:850;
  line-height:1.3;
  color:var(--booking-v18-ink);
}
#bookingStep3 .product-card .product-description,
#bookingStep4 .addon-card .addon-description{
  font-size:16px;
  line-height:1.6;
  font-weight:400;
  color:var(--booking-v18-copy);
  margin:0;
  overflow-wrap:break-word;
  word-break:normal;
}
#bookingStep3 .product-card .product-description,
#bookingStep4 .addon-card .addon-description{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  max-height:4.8em;
  overflow:hidden;
  white-space:normal;
}
#bookingStep3 .product-card .product-meta{font-size:13px;gap:12px;color:#516780}
#bookingStep3 .product-card .feature-caption{font-size:13px;font-weight:800;color:#153b3a}
#bookingStep3 .product-card .feature-list{font-size:12.5px;line-height:1.55;gap:6px 12px}
#bookingStep3 .product-card .detail-button,
#bookingStep4 .addon-card .addon-detail-button{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  align-self:flex-start;
  width:auto;
  min-height:34px;
  padding:5px 0;
  border:0;
  border-radius:0;
  background:none;
  color:var(--booking-v18-accent);
  text-decoration:underline;
  text-underline-offset:2px;
  font-size:15px;
  font-weight:800;
  cursor:pointer;
}
#bookingStep4 .addon-card .addon-detail-button > span{
  font-size:24px;
  line-height:14px;
  text-decoration:none;
}
#bookingStep3 .product-card .price-pair{gap:9px}
#bookingStep3 .product-card .tariff-column{
  border:0;
  border-radius:12px;
  padding:10px;
  background:#edf6f2;
  min-width:0;
}
#bookingStep3 .product-card .price-box{
  border:0;
  background:transparent;
  padding:0;
}
#bookingStep3 .product-card .price-box small{color:#4f657a;font-size:12px}
#bookingStep3 .product-card .price-box strong{color:var(--booking-v18-ink);font-size:18px}
#bookingStep3 .product-card .quantity,
#bookingStep4 .addon-card .quantity{
  background:#fff;
  border-color:#d9e7e4;
}
#bookingStep3 .product-card .quantity button,
#bookingStep4 .addon-card .quantity button{color:var(--booking-v18-accent)}
#bookingStep3 .product-card .line-subtotal{
  background:#eff7f3;
  border:0;
  border-radius:11px;
  padding:12px;
  margin-top:4px;
  color:var(--booking-v18-ink);
}
#bookingStep3 .product-card .line-subtotal strong{color:var(--booking-v18-accent)}
/* Add-on inherits the already working v1.6 selection and numeric controls. */
#bookingStep4 .addon-card{padding:13px;gap:0}
#bookingStep4 .addon-card .addon-media{width:100%;margin-bottom:11px}
#bookingStep4 .addon-card .addon-main{width:100%;min-width:0}
#bookingStep4 .addon-card .addon-description{margin:9px 0 0}
#bookingStep4 .addon-card .addon-detail-button{margin-top:6px}
#bookingStep4 .addon-card .addon-price{margin-top:6px}
#bookingStep4 .addon-card .addon-price strong{font-size:20px;color:var(--booking-v18-ink)}
#bookingStep4 .addon-card .addon-price span{font-size:14px}
#bookingStep4 .addon-card .addon-actions{margin:10px 0 0}
#bookingStep4 .addon-card .addon-subtotal{
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e3ede8;
  color:var(--booking-v18-ink);
}
#bookingStep4 .addon-card .addon-subtotal strong{color:var(--booking-v18-accent)}
#productModal .product-modal{max-height:min(85vh,750px);overflow:auto}
#productModal .modal-description,
#productModal #modalContent > p:first-child{
  display:block;
  max-height:none;
  overflow:visible;
  white-space:pre-line;
  line-height:1.65;
  font-size:16px;
  overflow-wrap:break-word;
  word-break:normal;
  -webkit-line-clamp:unset;
  line-clamp:unset;
}
#productModal .modal-addon-image{
  width:100%;
  max-height:275px;
  object-fit:contain;
  object-position:center;
  border-radius:10px;
  background:#f4f8f5;
  margin-bottom:14px;
}
#productModal .modal-addon-price{font-size:17px;color:var(--booking-v18-ink)}
@media (max-width:690px){
  :root{--booking-card-image-height:clamp(165px,48vw,220px)}
  #bookingStep3 .product-card .product-body{padding:13px;gap:9px}
  #bookingStep3 .product-body h3,
  #bookingStep4 .addon-card .addon-name{font-size:20px}
  #bookingStep3 .product-card .product-description,
  #bookingStep4 .addon-card .addon-description{font-size:16px;line-height:1.6}
  #bookingStep3 .product-card .feature-list{
    grid-template-columns:minmax(0,1fr);
    font-size:13px;
  }
  #bookingStep3 .product-card .price-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
  #bookingStep3 .product-card .price-box strong{font-size:17px}
  #bookingStep4 .addon-card .addon-thumbnail{border-radius:10px}
  #bookingStep4 .addon-card .addon-actions .quantity{height:48px}
  #bookingStep4 .addon-card .addon-actions .quantity button{min-height:46px}
  #bookingStep3 .group-toggle.with-group-image,
  #bookingStep4 .group-toggle.with-group-image{min-height:72px}
}
/* On sufficiently wide cards the approved mockup uses a side-by-side Add-on
   image and copy. On narrow phones retain the stacked layout for readability. */
@media (min-width:520px){
  #bookingStep4 .addon-grid .addon-card{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    column-gap:14px;
    align-items:start;
  }
  #bookingStep4 .addon-card .addon-media{
    grid-column:1;
    grid-row:1 / span 3;
    align-self:stretch;
    margin:0;
  }
  #bookingStep4 .addon-card .addon-thumbnail{height:100%;min-height:195px;max-height:330px}
  #bookingStep4 .addon-card .addon-main{grid-column:2;grid-row:1}
  #bookingStep4 .addon-card .addon-actions{grid-column:2;grid-row:2}
  #bookingStep4 .addon-card .addon-subtotal{grid-column:2;grid-row:3;margin-top:12px}
}
@media (min-width:691px) and (max-width:1199px){
  #bookingStep3 .product-card .product-description,
  #bookingStep4 .addon-card .addon-description{font-size:16px;line-height:1.6}
  #bookingStep3 .product-grid,
  #bookingStep4 .addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1200px){
  #bookingStep3 .product-grid,
  #bookingStep4 .addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #bookingStep3 .product-card .product-description,
  #bookingStep4 .addon-card .addon-description{font-size:16px;line-height:1.6}
}
