/* High-level release: V6.0 */
:root{--bg:#f5f7f8;--surface:#fff;--text:#14211f;--muted:#687673;--line:#e6ecea;--brand:#087d76;--brand-dark:#055f59;--brand-soft:#eaf5f3;--good:#188762;--warn:#c97818;--danger:#c73c3c;--shadow:0 14px 38px rgba(18,49,45,.07);--radius-xl:24px;--radius-lg:20px;--radius-md:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",system-ui,sans-serif;padding-bottom:92px}button,input,textarea{font:inherit}.hidden{display:none!important}button{color:inherit}.app-header{position:sticky;top:0;z-index:40;height:68px;display:flex;align-items:center;justify-content:space-between;padding:8px max(16px,calc((100vw - 1120px)/2));background:rgba(245,247,248,.92);backdrop-filter:blur(20px);border-bottom:1px solid rgba(230,236,234,.86)}.brand-button{display:flex;align-items:center;gap:10px;border:0;background:transparent;padding:0;text-align:left}.brand-button img{width:44px;height:44px;border-radius:50%;object-fit:cover}.brand-button span{display:grid;gap:2px}.brand-button strong{font-size:16px}.brand-button small{font-size:11px;color:var(--muted)}.butler-link{text-decoration:none;color:var(--brand);background:var(--brand-soft);font-weight:800;font-size:13px;padding:10px 13px;border-radius:999px}.app-shell{max-width:1120px;margin:auto;padding:22px 16px 42px}.app-panel{display:none}.app-panel.active{display:block}.today-hero{display:grid;grid-template-columns:1.4fr .8fr;gap:18px;background:linear-gradient(145deg,#064e4a,#0b8880);border-radius:30px;color:#fff;padding:38px;box-shadow:0 22px 58px rgba(8,125,118,.18)}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:900;color:var(--brand)}.today-hero .eyebrow{color:#b8eee8}.hero-copy h1,.panel-heading h1{font-size:clamp(34px,6vw,62px);line-height:1.05;margin:12px 0 14px;letter-spacing:-.035em}.hero-copy h1 em{font-style:normal;color:#c5f4ef}.hero-copy p,.panel-heading p{margin:0;color:#d9efed;line-height:1.7;font-size:16px}.trust-card{align-self:end;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:18px}.trust-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.trust-head strong{font-size:15px}.trust-head small{margin-left:auto;color:#cbe9e6}.status-dot{width:9px;height:9px;border-radius:50%;background:#5cd19b;box-shadow:0 0 0 5px rgba(92,209,155,.15)}.trust-card p{color:#e3f3f1;font-size:13px;line-height:1.65}.text-button,.link-button{border:0;background:transparent;color:inherit;font-weight:850;padding:0;cursor:pointer}.text-button{color:#fff}.section-block{margin-top:30px}.compact-block{margin-top:24px}.section-title{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:14px}.section-title span{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--brand)}.section-title h2{font-size:23px;letter-spacing:-.02em;margin:4px 0 0}.row-title{align-items:center}.link-button{color:var(--brand);font-size:13px}.status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.status-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:16px;text-align:left;min-height:132px;display:grid;align-content:start;gap:5px;box-shadow:0 7px 22px rgba(18,49,45,.035);cursor:pointer}.status-card>span{font-size:24px}.status-card b{font-size:16px}.status-card small{font-size:12px;color:var(--muted);line-height:1.35}.status-card em{font-style:normal;color:var(--brand);font-size:11px;font-weight:900;margin-top:5px}.need-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.need-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:15px 16px;display:grid;grid-template-columns:38px 1fr 18px;align-items:center;gap:10px;text-align:left;cursor:pointer}.need-card i{font-style:normal;font-size:25px}.need-card span{display:grid;gap:3px}.need-card b{font-size:16px}.need-card small{color:var(--muted);font-size:12px}.need-card u{text-decoration:none;font-size:24px;color:#a8b3b0}.accent-need{background:#edf8f6;border-color:#cce9e5}.recommendation-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,30%);gap:12px;overflow:auto;padding:2px 2px 10px;scroll-snap-type:x mandatory;scrollbar-width:none}.recommendation-rail::-webkit-scrollbar{display:none}.recommend-card{scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.rec-image{display:block;width:100%;aspect-ratio:16/10;border:0;padding:0;background:#e9f0ee;overflow:hidden}.rec-image img{width:100%;height:100%;object-fit:cover}.rec-placeholder{height:100%;display:grid;place-items:center;font-size:48px}.rec-body{padding:14px}.rec-body>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.rec-body small{font-size:10px;color:var(--muted);font-weight:800}.rec-body h3{font-size:17px;margin:3px 0 0}.rec-body>strong{display:block;color:var(--brand);font-size:20px;margin-top:8px}.rec-body p{color:var(--muted);font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:37px}.rec-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}.rec-actions button{height:39px;border-radius:11px;font-size:12px;font-weight:850;cursor:pointer}.rec-more{background:#fff;border:1px solid var(--line)}.rec-arrange{background:var(--brand);color:#fff;border:0}.my-today-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px}.empty-day{display:flex;align-items:flex-start;gap:12px;padding:10px 0 18px}.empty-icon{width:46px;height:46px;border-radius:14px;background:var(--brand-soft);display:grid;place-items:center;font-size:23px}.empty-day b{font-size:16px}.empty-day p{font-size:13px;color:var(--muted);line-height:1.55;margin:5px 0 0}.my-day-summary{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--brand-soft);padding:14px;border-radius:15px;margin-bottom:14px}.my-day-summary span{color:var(--brand);font-weight:850}.my-day-summary button{border:0;background:transparent;color:var(--brand);font-weight:900}.secondary-button,.primary-button,.ghost-button{height:48px;border-radius:14px;font-weight:900;cursor:pointer}.secondary-button{background:#fff;border:1px solid var(--line);color:var(--text)}.primary-button{border:0;background:var(--brand);color:#fff}.ghost-button{border:1px solid var(--line);background:#fff}.full{width:100%}.quick-services{display:grid;grid-template-columns:repeat(6,1fr);gap:9px}.quick-services button{border:1px solid var(--line);background:#fff;border-radius:16px;padding:15px 8px;display:grid;gap:7px;place-items:center;font-size:23px;cursor:pointer}.quick-services span{font-size:11px;font-weight:800}.panel-heading{background:linear-gradient(145deg,#074b47,#0b8179);color:#fff;border-radius:28px;padding:30px;display:grid;grid-template-columns:1fr minmax(220px,300px);gap:20px;align-items:end}.panel-heading .eyebrow{color:#bceee9}.panel-heading h1{font-size:clamp(31px,5vw,50px);grid-column:1}.panel-heading p{grid-column:1}.guest-card{grid-column:2;grid-row:1/4;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:16px}.guest-card label{font-size:12px;font-weight:850}.guest-card small{display:block;margin-top:8px;color:#d5efec}.stepper{display:grid;grid-template-columns:42px 1fr 42px;gap:7px;margin-top:8px}.stepper button,.stepper input{height:42px;border:0;border-radius:12px;text-align:center;font-weight:900}.stepper button{background:#fff;color:var(--brand)}.stepper input{width:100%}.simple-heading{display:block}.simple-heading h1,.simple-heading p{grid-column:auto}.discover-tools{position:sticky;top:78px;z-index:25;margin:16px 0;padding:10px;background:rgba(245,247,248,.92);backdrop-filter:blur(15px);border-radius:16px}.search-box{height:47px;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 14px}.search-box span{font-size:21px;color:var(--muted)}.search-box input{border:0;outline:0;width:100%;background:transparent}.category-tabs{display:flex;gap:7px;overflow:auto;padding-top:9px;scrollbar-width:none}.category-tabs::-webkit-scrollbar{display:none}.category-tab{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-size:12px;font-weight:850}.category-tab.active{background:var(--brand);border-color:var(--brand);color:#fff}.catalog{display:grid;gap:13px}.catalog-section{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.category-header{width:100%;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:17px 18px;text-align:left}.category-header div{display:flex;align-items:center;gap:11px}.category-icon{width:40px;height:40px;border-radius:13px;background:var(--brand-soft);display:grid;place-items:center;font-size:20px}.category-header h2{font-size:19px;margin:0}.category-header small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.category-chevron{font-size:20px}.catalog-section.collapsed .category-chevron{transform:rotate(-90deg)}.category-products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0 14px 16px}.catalog-section.collapsed .category-products{display:none}.product-card{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:#fff}.product-card.selected{border-color:var(--brand);box-shadow:0 0 0 2px rgba(8,125,118,.12)}.product-image{position:relative;aspect-ratio:16/10;background:#edf3f2;overflow:hidden}.product-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{height:100%;display:grid;place-items:center;font-size:48px}.detail-chip{position:absolute;right:8px;top:8px;border:0;background:rgba(255,255,255,.92);border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900}.product-body{padding:13px}.product-title-line{display:flex;justify-content:space-between;gap:8px}.product-title-line h3{font-size:16px;margin:0;line-height:1.35}.product-price{font-size:19px;font-weight:950;color:var(--brand);white-space:nowrap}.product-price small{font-size:9px;color:var(--muted)}.badges{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.badge{font-size:9px;font-weight:900;color:#6d5100;background:#fff2c9;border-radius:999px;padding:4px 7px}.product-teaser{font-size:12px;color:var(--muted);line-height:1.5;margin:7px 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}.card-actions{display:grid;grid-template-columns:1fr auto;gap:7px}.select-button,.details-button{height:38px;border-radius:10px;font-size:12px;font-weight:900}.select-button{border:0;background:var(--brand-soft);color:var(--brand)}.product-card.selected .select-button{background:var(--brand);color:#fff}.details-button{border:1px solid var(--line);background:#fff}.compact-controls{display:none;margin-top:9px;padding-top:9px;border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.product-card.selected .compact-controls{display:grid}.compact-controls.single{grid-template-columns:1fr}.compact-controls label{font-size:10px;color:var(--muted)}.compact-controls input{width:100%;height:36px;margin-top:4px;border:1px solid var(--line);border-radius:9px;padding:0 9px}.service-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.service-group{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px}.service-group header{display:flex;gap:12px}.service-group header>span{font-size:27px}.service-group h2{font-size:18px;margin:0}.service-group p{font-size:12px;color:var(--muted);line-height:1.55;margin:5px 0 14px}.service-group a{display:inline-flex;text-decoration:none;color:var(--brand);font-size:12px;font-weight:900;background:var(--brand-soft);padding:9px 12px;border-radius:10px}.trip-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.trip-stat{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:5px}.trip-stat span{font-size:11px;color:var(--muted)}.trip-stat strong{font-size:24px}.trip-detail-card,.brand-promise{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;margin-top:12px}.trip-detail-card h2,.brand-promise h2{font-size:19px;margin:0 0 12px}.trip-line{display:flex;justify-content:space-between;gap:8px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.trip-line:last-child{border-bottom:0}.muted-copy{color:var(--muted);font-size:13px;line-height:1.6}.trip-detail-card .primary-button{margin-top:14px}.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.contact-card{text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:18px;padding:18px;text-align:left;display:grid;gap:5px;color:var(--text)}.contact-card span,.contact-card small{font-size:11px;color:var(--muted)}.contact-card strong{font-size:19px}.brand-promise p{color:var(--muted);line-height:1.7;margin:0}.sheet-backdrop{position:fixed;inset:0;z-index:80;background:rgba(10,26,24,.45);display:grid;place-items:end center;padding-top:40px}.product-sheet,.quote-sheet,.help-sheet{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:26px 26px 0 0;position:relative}.product-sheet,.quote-sheet{padding-bottom:max(20px,env(safe-area-inset-bottom))}.sheet-close{position:absolute;right:14px;top:14px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.94);font-size:23px}.modal-hero{aspect-ratio:16/9;background:#edf3f2;overflow:hidden}.modal-hero img{width:100%;height:100%;object-fit:cover}.modal-content{padding:20px}.modal-content h2{font-size:27px;margin:7px 0}.modal-price{font-size:23px;font-weight:950;color:var(--brand)}.modal-price small{font-size:11px;color:var(--muted)}.modal-thumbs{display:flex;gap:7px;overflow:auto;margin:12px 0}.modal-thumbs button{width:74px;height:58px;padding:0;border:0;border-radius:10px;overflow:hidden;flex:0 0 auto}.modal-thumbs img{width:100%;height:100%;object-fit:cover}.modal-description{color:var(--muted);line-height:1.72}.modal-select button{width:100%;height:48px;border:0;border-radius:13px;background:var(--brand);color:#fff;font-weight:900}.quote-sheet{padding:20px}.quote-sheet header{display:flex;justify-content:space-between}.quote-sheet header h2{margin:3px 0 0}.quote-items{margin:18px 0}.quote-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.quote-row div{display:grid}.quote-row small{color:var(--muted);margin-top:3px}.summary{background:#f7f9f8;border-radius:16px;padding:14px}.summary>div{display:flex;justify-content:space-between;padding:6px 0}.summary .grand-total{font-size:18px;color:var(--brand)}.policy-note{color:var(--muted);font-size:12px;line-height:1.55}.notes-label{display:grid;gap:6px;font-size:12px;font-weight:850}.notes-label textarea{border:1px solid var(--line);border-radius:12px;padding:10px;resize:vertical}.agree{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:var(--muted);margin:12px 0}.drawer-actions{display:grid;grid-template-columns:.8fr 1.2fr;gap:8px}.gift,.success,.error{border-radius:12px;padding:11px;font-size:12px}.gift{background:#fff5d8}.success{background:#e9f7f2;color:#166b50}.error{background:#fff0f0;color:#a72d2d}.help-sheet{padding:24px 20px max(30px,env(safe-area-inset-bottom))}.help-sheet h2{font-size:25px;margin:8px 0}.help-sheet>p{color:var(--muted);font-size:13px}.help-options{display:grid;gap:8px;margin-top:16px}.help-options a,.help-options button{text-decoration:none;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;text-align:left;color:var(--text);font-weight:800}.gallery-modal{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.92);display:grid;place-items:center}.gallery-modal img{max-width:100%;max-height:84vh;object-fit:contain}.gallery-close,.gallery-nav{position:absolute;border:0;background:rgba(255,255,255,.92);border-radius:50%}.gallery-close{right:16px;top:16px;width:40px;height:40px;font-size:24px}.gallery-nav{top:50%;width:42px;height:42px;font-size:28px}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-counter{position:absolute;bottom:22px;color:#fff;background:rgba(0,0,0,.5);padding:7px 11px;border-radius:999px}.app-bottom-nav{position:fixed;z-index:55;left:50%;bottom:0;transform:translateX(-50%);width:min(700px,100%);height:76px;padding-bottom:env(safe-area-inset-bottom);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:rgba(255,255,255,.96);backdrop-filter:blur(20px);border:1px solid var(--line);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:0 -10px 30px rgba(13,42,38,.08)}.nav-item{border:0;background:transparent;display:grid;place-items:center;align-content:center;gap:2px;color:#7b8885}.nav-item span{font-size:20px}.nav-item b{font-size:10px}.nav-item.active{color:var(--brand)}.floating-help{position:fixed;z-index:56;right:max(14px,calc((100vw - 700px)/2 + 14px));bottom:82px;border:1px solid #d5e9e5;background:#fff;border-radius:999px;padding:9px 12px;box-shadow:0 10px 28px rgba(13,42,38,.14);font-size:13px;font-weight:900}.floating-help span{margin-left:4px}
@media(max-width:760px){body{padding-bottom:88px}.app-bottom-nav{left:0;right:0;transform:none;width:100vw;max-width:none;height:78px;border-left:0;border-right:0;border-radius:18px 18px 0 0}.nav-item{min-width:0}.nav-item b{white-space:nowrap;font-size:10px}.app-shell{padding:14px 12px 30px}.app-header{height:62px;padding:7px 12px}.brand-button img{width:40px;height:40px}.brand-button strong{font-size:15px}.brand-button small{font-size:10px}.butler-link{font-size:11px;padding:8px 10px}.today-hero{display:block;padding:25px 20px;border-radius:24px}.hero-copy h1{font-size:35px;margin-top:10px}.hero-copy p{font-size:14px}.trust-card{margin-top:22px}.trust-head small{width:100%;margin-left:17px}.section-block{margin-top:25px}.section-title h2{font-size:21px}.status-grid{grid-template-columns:repeat(2,1fr)}.status-card{min-height:119px;padding:14px}.need-grid{grid-template-columns:1fr 1fr}.need-card{grid-template-columns:32px 1fr 14px;padding:13px 12px}.need-card i{font-size:21px}.need-card b{font-size:14px}.need-card small{font-size:10px}.recommendation-rail{grid-auto-columns:78%}.quick-services{grid-template-columns:repeat(3,1fr)}.panel-heading{display:block;padding:23px 18px;border-radius:23px}.panel-heading h1{font-size:31px;margin:8px 0 10px}.panel-heading p{font-size:13px}.guest-card{margin-top:20px}.discover-tools{top:70px;margin:12px -4px;padding:7px}.category-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;overflow:visible;padding:0 10px 12px}.category-products .product-card{min-width:0;scroll-snap-align:none}.category-products .product-card.wide-last-card{grid-column:1/-1;width:100%}.category-products .product-card.wide-last-card .product-image{aspect-ratio:16/9}.service-directory{grid-template-columns:1fr}.contact-cards{grid-template-columns:1fr}.app-bottom-nav{height:66px;border-radius:16px 16px 0 0}.floating-help{right:12px;bottom:74px}.sheet-backdrop{padding-top:22px}.product-sheet,.quote-sheet,.help-sheet{border-radius:22px 22px 0 0}.my-day-summary{align-items:flex-start;flex-wrap:wrap}.my-day-summary button{width:100%;text-align:left;padding:0}}
@media(min-width:761px){.floating-help{bottom:82px}}

/* V4.0 Alpha 2 polish */
.boat-sheet{width:min(680px,calc(100vw - 24px));max-height:min(82vh,820px);overflow:auto;background:#fff;border-radius:24px;padding:24px;position:relative}.boat-sheet h2{font-size:25px;margin:6px 0 8px}.boat-intro{color:var(--muted);font-size:13px;line-height:1.6}.boat-intro strong{color:var(--brand)}.boat-table{border:1px solid var(--line);border-radius:16px;overflow:hidden;margin-top:16px}.boat-row{display:grid;grid-template-columns:1.25fr 1fr 1fr;border-top:1px solid var(--line)}.boat-row:first-child{border-top:0}.boat-row>*{padding:12px 10px;font-size:13px;line-height:1.75}.boat-row>*+*{border-left:1px solid var(--line)}.boat-head{background:var(--brand-soft);color:var(--brand)}.boat-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.recommend-empty{min-width:100%;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:24px;color:var(--muted);font-size:13px}.app-bottom-nav .nav-item>span{font-size:19px;line-height:1;filter:saturate(.55)}
@media(max-width:700px){.app-shell{padding-top:14px}.today-hero{padding:24px 20px;border-radius:24px}.hero-copy h1{font-size:36px;line-height:1.08;margin-top:10px}.hero-copy p{font-size:14px}.trust-card{margin-top:2px}.section-block{margin-top:24px}.section-title h2{font-size:21px}.recommendation-rail{grid-auto-columns:min(82vw,320px)}.boat-sheet{padding:20px}.boat-row{grid-template-columns:1.15fr 1fr 1fr}.boat-row>*{padding:10px 8px;font-size:12px}}

/* V4.0 Alpha 3: compact recommendation cards + smart boat assistant + unified line icons */
.nav-icon{width:22px;height:22px;display:grid;place-items:center}.nav-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.app-bottom-nav .nav-item>span.nav-icon{font-size:0;filter:none}.nav-item.active .nav-icon svg{stroke-width:2.1}
.boat-direction{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;padding:4px;background:#f2f6f5;border-radius:14px}.boat-direction-btn{height:42px;border:0;border-radius:11px;background:transparent;color:var(--muted);font-size:12px;font-weight:900}.boat-direction-btn.active{background:#fff;color:var(--brand);box-shadow:0 4px 16px rgba(18,49,45,.07)}.next-boat-card{margin-top:14px;background:linear-gradient(145deg,#0a7770,#0c948a);color:#fff;border-radius:18px;padding:17px}.next-boat-card .next-label{font-size:10px;letter-spacing:.12em;font-weight:900;color:#bceee9}.next-boat-card .next-main{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-top:6px}.next-boat-card .next-time{font-size:32px;line-height:1;font-weight:950;letter-spacing:-.03em}.next-boat-card .next-company{font-size:15px;font-weight:900;text-align:right}.next-boat-card p{font-size:11px;line-height:1.5;color:#dbf2ef;margin:8px 0 0}.next-boat-card.ended{background:#f4f7f6;color:var(--text);border:1px solid var(--line)}.next-boat-card.ended .next-label,.next-boat-card.ended p{color:var(--muted)}.boat-list-head{display:flex;align-items:center;justify-content:space-between;margin:18px 2px 8px}.boat-list-head b{font-size:14px}.boat-list-head button{border:0;background:transparent;color:var(--brand);font-size:11px;font-weight:900}.boat-smart-list{border:1px solid var(--line);border-radius:15px;overflow:hidden}.smart-boat-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:11px 13px;border-top:1px solid var(--line);background:#fff}.smart-boat-row:first-child{border-top:0}.smart-boat-row strong{font-size:13px}.smart-boat-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.smart-boat-row time{font-weight:950;color:var(--text);font-size:15px}.smart-boat-row.next{background:var(--brand-soft)}.smart-boat-row.next time,.smart-boat-row.next strong{color:var(--brand)}.smart-boat-row.past{opacity:.5}.boat-table{margin-top:10px}
@media(max-width:700px){.recommendation-rail{grid-auto-columns:min(66vw,260px);gap:10px}.recommend-card{border-radius:18px}.rec-image{aspect-ratio:16/9}.rec-body{padding:11px}.rec-body h3{font-size:15px}.rec-body>strong{font-size:18px;margin-top:5px}.rec-body p{font-size:11px;line-height:1.45;min-height:31px;margin:7px 0}.rec-actions{gap:6px}.rec-actions button{height:36px;border-radius:10px;font-size:11px}.app-bottom-nav{height:66px}.nav-item{gap:3px}.nav-item b{font-size:10px}.nav-icon{width:21px;height:21px}.nav-icon svg{width:20px;height:20px}.boat-sheet{max-height:88vh}.next-boat-card .next-time{font-size:30px}}
/* V4.0 Alpha 4: weather + next-boat assistant */
.weather-status-card #weatherTitle{line-height:1.2}.weather-sheet{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:26px 26px 0 0;position:relative;padding:24px 20px max(30px,env(safe-area-inset-bottom))}.weather-sheet h2{font-size:28px;margin:8px 0 18px}.weather-now{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;background:linear-gradient(145deg,#edf8f6,#f8fbfa);border:1px solid var(--line);border-radius:20px;padding:18px}.weather-now>div:first-child{display:flex;align-items:center;gap:8px}.weather-now>div:first-child span{font-size:38px}.weather-now>div:first-child strong{font-size:42px;letter-spacing:-.04em}.weather-now>div:last-child{display:grid;gap:4px}.weather-now b{font-size:17px}.weather-now small{color:var(--muted);font-size:12px}.weather-key{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 20px}.weather-key>div{background:#f7f9f8;border:1px solid var(--line);border-radius:16px;padding:14px;display:grid;gap:5px}.weather-key span{font-size:11px;color:var(--muted)}.weather-key b{font-size:20px;color:var(--brand)}.weather-sheet h3{font-size:16px;margin:0 0 10px}.weather-days{display:grid;gap:8px}.weather-days>div{display:grid;grid-template-columns:54px 1.4fr .7fr 1fr;gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px}.weather-days span{font-weight:900}.weather-days strong{font-size:13px}.weather-days small{font-size:11px;color:var(--muted)}.weather-safety-note{margin:18px 0 8px;background:#fff8e8;border:1px solid #f1dfb1;border-radius:14px;padding:12px;color:#6b5a2e;font-size:12px;line-height:1.6}.weather-provider{font-size:11px;color:var(--muted)}.weather-unavailable{padding:20px;background:#f7f9f8;border:1px solid var(--line);border-radius:16px}.weather-unavailable p{color:var(--muted);margin-bottom:0}.ended-actions{display:flex;gap:8px;margin-top:14px}.ended-actions button{border:1px solid var(--line);background:#fff;border-radius:11px;padding:9px 12px;font-weight:850;color:var(--brand)}
@media(max-width:700px){.weather-sheet{border-radius:22px 22px 0 0}.weather-now{grid-template-columns:1fr}.weather-days>div{grid-template-columns:48px 1fr}.weather-days small{grid-column:2}.weather-key{grid-template-columns:1fr 1fr}}
/* V4.0 Alpha 5: Today Engine + marine + tides */
.today-butler-sub{margin-top:-4px!important;color:#cfeae7!important}.marine-now{display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:stretch;margin-bottom:18px}.marine-wave{display:grid;place-items:center;align-content:center;gap:4px;background:linear-gradient(145deg,#e9f7f5,#f7fbfa);border:1px solid var(--line);border-radius:20px;padding:18px}.marine-wave span{font-size:34px}.marine-wave strong{font-size:30px;color:var(--brand)}.marine-wave small{font-size:11px;color:var(--muted)}.marine-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.marine-facts>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.marine-facts span{font-size:10px;color:var(--muted)}.marine-facts b{font-size:15px}.marine-trend{display:grid;gap:7px}.marine-trend>div{display:grid;grid-template-columns:56px repeat(3,1fr);gap:8px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:13px}.marine-trend time{font-weight:900}.marine-trend span{font-size:11px;color:var(--muted)}.tide-now{display:grid;gap:7px;background:linear-gradient(145deg,#eaf7f5,#f8fbfa);border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:18px}.tide-state{font-size:11px;font-weight:900;color:var(--brand);letter-spacing:.08em}.tide-now strong{font-size:24px}.tide-now small{color:var(--muted)}.tide-list{display:grid;gap:8px}.tide-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px}.tide-row>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:950}.tide-row.low>span{background:#eef4fb;color:#3f6f9d}.tide-row div{display:grid;gap:2px}.tide-row b{font-size:13px}.tide-row small{font-size:11px;color:var(--muted)}.tide-row>strong{font-size:15px}.tide-tip{font-size:12px;line-height:1.6;color:var(--muted);background:#f7f9f8;border-radius:13px;padding:12px;margin-top:12px}
@media(max-width:700px){.marine-now{grid-template-columns:1fr}.marine-facts{grid-template-columns:repeat(2,1fr)}.marine-trend>div{grid-template-columns:46px 1fr 1fr}.marine-trend>div span:last-child{display:none}.today-butler-sub{font-size:12px!important}}

/* Alpha 6: translate marine numbers into plain-language references */
.sea-level{display:inline-flex;align-items:center;vertical-align:middle;margin-left:5px;padding:3px 7px;border-radius:999px;font-size:10px!important;font-style:normal;font-weight:900;line-height:1.2;white-space:nowrap}.sea-level.good{background:#e6f7ed;color:#177744}.sea-level.warn{background:#fff2cf;color:#9a6500}.sea-level.bad{background:#ffe8e4;color:#b43628}.sea-level.neutral{background:#eef2f1;color:#697673}.marine-assessment{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:18px;padding:15px 16px;margin-bottom:14px;background:#f7faf9}.marine-assessment>div{display:grid;gap:4px}.marine-assessment span:first-child{font-size:10px;color:var(--muted);font-weight:900;letter-spacing:.07em}.marine-assessment strong{font-size:20px}.marine-assessment small{font-size:11px;line-height:1.55;color:var(--muted)}.marine-assessment.good{background:#eef9f2;border-color:#d3eedc}.marine-assessment.warn{background:#fff9e9;border-color:#f1dfaa}.marine-assessment.bad{background:#fff0ed;border-color:#efc7c0}.assessment-dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;background:#9ba7a4}.marine-assessment.good .assessment-dot{background:#34ad68}.marine-assessment.warn .assessment-dot{background:#e0a41b}.marine-assessment.bad .assessment-dot{background:#db5948}.assessment-text.good{color:#177744}.assessment-text.warn{color:#9a6500}.assessment-text.bad{color:#b43628}.sea-howto{margin:14px 0 18px;padding:15px;border:1px solid var(--line);border-radius:17px;background:#fff}.sea-howto h3{margin:0 0 10px}.sea-howto>div{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.sea-howto>div:first-of-type{border-top:0}.sea-howto b{font-size:12px}.sea-howto span{font-size:11px;line-height:1.55;color:var(--muted)}
@media(max-width:700px){.sea-howto>div{grid-template-columns:1fr;gap:3px}.marine-facts .sea-level{margin-left:0;width:max-content}}

/* V6.2: restore real-time package savings on Explore */
.package-discount-badge{display:none;font-size:9px;font-weight:900;color:#087d76;background:#e6f7f3;border-radius:999px;padding:4px 7px}.product-card.selected .package-discount-badge{display:inline-flex}.explore-quote-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:76px;z-index:54;width:min(676px,calc(100% - 24px));margin:0;padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;background:rgba(255,255,255,.98);backdrop-filter:blur(18px);border:1px solid #cfe3df;border-radius:18px;box-shadow:0 12px 32px rgba(13,42,38,.16)}.explore-quote-bar.hidden{display:none}.explore-quote-copy{min-width:0}.explore-quote-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.explore-quote-top b{font-size:12px}.explore-quote-top span{font-size:10px;color:var(--muted)}.explore-quote-top del{text-decoration-thickness:1px}.explore-quote-main{display:flex;align-items:baseline;gap:10px;margin-top:3px}.explore-quote-main span{font-size:11px;color:var(--muted)}.explore-quote-main span strong{color:#8a6b18}.explore-quote-main>b{font-size:23px;color:var(--brand);letter-spacing:-.03em}.explore-quote-copy>small{display:block;margin-top:1px;font-size:10px;color:var(--muted)}.explore-quote-bar.has-saving .explore-quote-main span strong{color:#b56d00}.explore-quote-bar>button{height:46px;border:0;border-radius:13px;background:var(--brand);color:#fff;padding:0 15px;font-size:12px;font-weight:900;white-space:nowrap}.trip-stat #tripTotal{display:grid;gap:1px}.trip-stat #tripTotal small{font-size:9px;font-weight:700;color:var(--muted);text-decoration:line-through}.trip-stat #tripTotal span{font-size:24px}.trip-stat #tripTotal em{font-size:9px;font-style:normal;color:#b56d00}.trip-line>span{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.trip-discount-tag{font-size:8px;color:var(--brand);background:var(--brand-soft);padding:3px 5px;border-radius:999px}
@media(max-width:700px){.explore-quote-bar{bottom:70px;margin:10px 0 4px;padding:10px 11px;gap:9px;border-radius:16px}.explore-quote-main>b{font-size:20px}.explore-quote-bar>button{height:42px;padding:0 11px;font-size:11px}.explore-quote-top{gap:7px}.explore-quote-main{gap:7px}}

.panel-explore-active [data-panel="explore"]{padding-bottom:110px}.panel-explore-active .floating-help{bottom:166px}.trip-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.trip-detail-head h2{margin:0}.trip-detail-head small{max-width:280px;text-align:right;color:var(--muted);font-size:10px;line-height:1.45}.trip-stat #tripTotal em{display:block}
@media(max-width:700px){.explore-quote-bar{bottom:70px;width:calc(100% - 20px);padding:10px 11px}.panel-explore-active .floating-help{bottom:158px}.trip-detail-head{display:block}.trip-detail-head small{display:block;max-width:none;text-align:left;margin-top:-5px;margin-bottom:10px}}

/* V6.5 mobile quantity controls: prevent iOS focus zoom and make quantity changes one-tap. */
.compact-controls input[type=number]{font-size:16px!important;line-height:1.2;-webkit-text-size-adjust:100%;touch-action:manipulation}
.inline-stepper{display:grid;grid-template-columns:44px minmax(64px,1fr) 44px;gap:6px;align-items:center;margin-top:4px}
.inline-stepper input{margin-top:0!important;text-align:center;font-weight:850;padding:0 4px!important;-moz-appearance:textfield}
.inline-stepper input::-webkit-outer-spin-button,.inline-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.step-btn{height:40px;border:1px solid var(--line);border-radius:10px;background:var(--brand-soft);color:var(--brand);font-size:22px;font-weight:900;line-height:1;touch-action:manipulation}
.step-btn:active{transform:scale(.97);background:#dcefeb}
@media(max-width:520px){.compact-controls{gap:10px}.compact-controls label{font-size:12px}.inline-stepper{grid-template-columns:42px minmax(56px,1fr) 42px}.inline-stepper input,.step-btn{height:44px}}


/* V6.8 Dynamic Weather Theme — lightweight CSS only */
.today-hero{position:relative;isolation:isolate;overflow:hidden;transition:background 1.1s ease,color .6s ease;min-height:430px}
.today-hero>.hero-copy,.today-hero>.trust-card{position:relative;z-index:4}
.weather-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.weather-scene>*{position:absolute;pointer-events:none}
.weather-sun{width:116px;height:116px;border-radius:50%;right:8%;top:8%;opacity:0;background:radial-gradient(circle,#fff8c9 0 24%,#ffd87a 43%,rgba(255,211,112,.18) 66%,transparent 70%);filter:blur(.2px);transition:opacity .8s ease,transform 1.2s ease}
.weather-clouds{inset:0;opacity:0;transition:opacity .8s ease}
.cloud{position:absolute;width:124px;height:39px;border-radius:50px;background:rgba(255,255,255,.55);filter:blur(.4px);box-shadow:35px -18px 0 -4px rgba(255,255,255,.55),70px -4px 0 -9px rgba(255,255,255,.48)}
.cloud-a{top:16%;left:-28%;animation:krCloud 28s linear infinite}
.cloud-b{top:31%;left:-38%;opacity:.58;transform:scale(.72);animation:krCloud 38s linear -12s infinite}
.cloud-c{top:9%;left:-45%;opacity:.38;transform:scale(.5);animation:krCloud 45s linear -28s infinite}
.weather-rain{inset:0;opacity:0;transition:opacity .5s ease}
.weather-rain i{position:absolute;top:-12%;width:1.5px;height:38px;background:linear-gradient(to bottom,transparent,rgba(230,247,255,.7));transform:rotate(9deg);animation:krRain 1.05s linear infinite}
.weather-rain i:nth-child(1){left:7%;animation-delay:-.2s}.weather-rain i:nth-child(2){left:16%;animation-delay:-.8s}.weather-rain i:nth-child(3){left:26%;animation-delay:-.45s}.weather-rain i:nth-child(4){left:34%;animation-delay:-.95s}.weather-rain i:nth-child(5){left:43%;animation-delay:-.6s}.weather-rain i:nth-child(6){left:52%;animation-delay:-.1s}.weather-rain i:nth-child(7){left:61%;animation-delay:-.7s}.weather-rain i:nth-child(8){left:68%;animation-delay:-.35s}.weather-rain i:nth-child(9){left:76%;animation-delay:-.9s}.weather-rain i:nth-child(10){left:84%;animation-delay:-.52s}.weather-rain i:nth-child(11){left:91%;animation-delay:-.15s}.weather-rain i:nth-child(12){left:97%;animation-delay:-.75s}
.weather-wind{inset:0;opacity:0;transition:opacity .5s ease}
.weather-wind i{position:absolute;left:-34%;width:31%;height:2px;border-radius:9px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:krWind 2.9s linear infinite}
.weather-wind i:nth-child(1){top:26%}.weather-wind i:nth-child(2){top:41%;animation-delay:-1.1s;width:42%}.weather-wind i:nth-child(3){top:58%;animation-delay:-2.05s;width:25%}
.weather-ocean{left:-6%;right:-6%;bottom:-34px;height:145px;opacity:.5;transition:opacity .6s ease}
.weather-ocean i{position:absolute;left:-5%;width:110%;height:75px;border-radius:48% 52% 0 0/45% 45% 0 0;background:rgba(190,247,239,.18);transform-origin:center bottom;animation:krWave 6.6s ease-in-out infinite}
.weather-ocean i:nth-child(1){bottom:0}.weather-ocean i:nth-child(2){bottom:18px;opacity:.55;animation-delay:-2.1s;animation-duration:7.8s}.weather-ocean i:nth-child(3){bottom:36px;opacity:.28;animation-delay:-4.4s;animation-duration:9s}

.today-hero.theme-sunny{background:linear-gradient(155deg,#087d76 0%,#15a89b 56%,#6ed9ca 100%)}
.today-hero.theme-sunny .weather-sun{opacity:.84}.today-hero.theme-sunny .weather-clouds{opacity:.28}
.today-hero.theme-cloudy{background:linear-gradient(155deg,#276e72 0%,#4d9294 55%,#93bdba 100%)}
.today-hero.theme-cloudy .weather-clouds{opacity:.72}
.today-hero.theme-rain{background:linear-gradient(155deg,#31545d 0%,#3f747c 58%,#6c9699 100%)}
.today-hero.theme-rain .weather-clouds{opacity:.82}.today-hero.theme-rain .weather-rain{opacity:.88}
.today-hero.theme-sunset{background:linear-gradient(155deg,#245b63 0%,#c57f61 54%,#e7ad75 100%)}
.today-hero.theme-sunset .weather-sun{opacity:.72;transform:translateY(105px) scale(1.18)}.today-hero.theme-sunset .weather-clouds{opacity:.38}
.today-hero.theme-night{background:linear-gradient(160deg,#052f43 0%,#074e60 52%,#0b6a6e 100%)}
.today-hero.theme-night:after{content:"";position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 78% 15%,rgba(216,245,255,.13),transparent 18%),radial-gradient(circle at 18% 22%,rgba(255,255,255,.15) 0 1px,transparent 1.6px),radial-gradient(circle at 62% 34%,rgba(255,255,255,.12) 0 1px,transparent 1.6px);background-size:auto,110px 95px,145px 120px}
.today-hero.theme-night .weather-clouds{opacity:.18}
.today-hero.fx-wind .weather-wind{opacity:.82}.today-hero.fx-wind .cloud{animation-duration:12s}
.today-hero.fx-rough .weather-ocean{opacity:.9}.today-hero.fx-rough .weather-ocean i{animation-duration:3.1s;transform:scaleY(1.18)}
.today-hero.fx-rough .weather-ocean i:nth-child(2){animation-duration:3.8s}.today-hero.fx-rough .weather-ocean i:nth-child(3){animation-duration:4.4s}
.today-hero.fx-storm{background:linear-gradient(155deg,#24333b 0%,#354d57 55%,#526b72 100%)}.today-hero.fx-storm .weather-rain{opacity:1}.today-hero.fx-storm .weather-clouds{opacity:.92}.today-hero.fx-storm .weather-wind{opacity:.9}
.today-hero .trust-card{background:rgba(18,105,99,.48);backdrop-filter:blur(7px);border-color:rgba(255,255,255,.24)}
.today-hero.theme-rain .trust-card,.today-hero.theme-night .trust-card,.today-hero.fx-storm .trust-card{background:rgba(5,46,52,.45)}
.weather-theme-label{display:inline-flex;align-items:center;gap:5px;margin-left:7px;font-size:10px;font-style:normal;font-weight:800;color:#d9f7f2;opacity:.9}
@keyframes krCloud{from{transform:translateX(0)}to{transform:translateX(150vw)}}
@keyframes krRain{0%{transform:translate3d(0,-12vh,0) rotate(9deg)}100%{transform:translate3d(-22px,125vh,0) rotate(9deg)}}
@keyframes krWind{0%{transform:translateX(0);opacity:0}12%{opacity:1}80%{opacity:.7}100%{transform:translateX(455%);opacity:0}}
@keyframes krWave{0%,100%{transform:translateX(-1.5%) scaleY(.82) rotate(-1deg)}50%{transform:translateX(1.5%) scaleY(1.08) rotate(1deg)}}
@media(max-width:700px){.today-hero{min-height:0}.weather-sun{width:88px;height:88px;right:3%;top:5%}.weather-ocean{height:110px;bottom:-31px}.cloud{transform:scale(.78)}}
@media(prefers-reduced-motion:reduce){.weather-scene *{animation:none!important}.today-hero{transition:none}.weather-rain{opacity:.3!important}.weather-wind{display:none}}

/* V6.12.1 Dual-source observation */
.source-inline{font-size:.92em;line-height:1.55}
.source-compare{margin:18px 0;padding:18px;border:1px solid #dbe8e5;border-radius:20px;background:#f7fbfa}
.source-compare h3{margin:0 0 12px}
.source-row{display:grid;grid-template-columns:130px 1fr;gap:4px 14px;padding:13px 0;border-bottom:1px solid #e2ebe9}
.source-row:last-of-type{border-bottom:0}
.source-row b{grid-row:1/3;font-size:15px}
.source-row span{font-weight:800}
.source-row small{color:#667673;font-size:13px}
.source-compare>p{margin:12px 0 0;color:#667673;font-size:13px;line-height:1.55}
.source-diff{display:grid;grid-template-columns:1fr auto 1fr auto;gap:8px 12px;margin-top:14px;padding:12px;border-radius:14px;background:#eef6f4;align-items:center}
.source-diff span{color:#687875;font-size:12px}.source-diff b{font-size:16px}
.observation-facts{margin-top:16px}
@media(max-width:560px){.source-row{grid-template-columns:1fr}.source-row b{grid-row:auto}.source-diff{grid-template-columns:1fr auto}}

/* V6.12.2 boat control reliability */
.boat-direction,.boat-direction-btn,.boat-list-head,#toggleFullBoatTable{position:relative;z-index:3}.boat-direction-btn,#toggleFullBoatTable{pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.boat-direction-btn{cursor:pointer}.boat-table .boat-head b{line-height:1.35}

/* V6.14 accommodation browser: hotel -> room */
.accommodation-section .hotel-browser{padding:0 14px 16px}.accommodation-section.collapsed .hotel-browser{display:none}
.hotel-tabs{display:flex;gap:8px;overflow-x:auto;padding:0 0 13px;scrollbar-width:none}.hotel-tabs::-webkit-scrollbar{display:none}
.hotel-tab{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:850;cursor:pointer}.hotel-tab small{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:9px}.hotel-tab.active{background:var(--brand);border-color:var(--brand);color:#fff}.hotel-tab.active small{background:rgba(255,255,255,.18);color:#fff}
.hotel-panels{display:grid;gap:18px}.hotel-panel{display:grid;gap:10px}.hotel-panel-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 0}.hotel-panel-title{display:grid;gap:2px;min-width:0}.hotel-panel-head h3{margin:0;font-size:16px;line-height:1.25;letter-spacing:-.01em}.hotel-panel-head small{display:block;color:var(--muted);font-size:10px;line-height:1.3}
.room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.room-card{min-width:0;overflow:hidden}.room-image{position:relative;display:block;width:100%;padding:0;border:0;background:#edf3f2;aspect-ratio:4/3;overflow:hidden;cursor:pointer}.room-image img{width:100%;height:100%;object-fit:cover}.room-image>span{position:absolute;right:7px;top:7px;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.92);font-size:9px;font-weight:900}.room-card-body{padding:11px}.room-hotel{display:block;color:var(--brand);font-size:9px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-card h3{font-size:16px;line-height:1.25;margin:4px 0 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:40px}.room-price{font-size:20px;font-weight:900;color:var(--brand);white-space:nowrap}.room-price small{font-size:9px;color:var(--muted);font-weight:700}.room-tags{display:flex;gap:5px;overflow:hidden;min-height:22px;margin:7px 0}.room-tag{display:inline-flex;align-items:center;white-space:nowrap;background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;padding:4px 6px;font-size:8px;font-weight:800}.room-actions{display:grid;grid-template-columns:1fr auto;gap:6px}.room-actions button{height:38px;border-radius:11px;font-size:11px;font-weight:900}.room-card .details-button{padding:0 12px}.room-selection-controls{display:none;padding-top:9px}.room-card.selected .room-selection-controls{display:block}.room-card.selected .room-actions{margin-bottom:0}.room-card .compact-controls{grid-template-columns:1fr;gap:7px}.room-card .inline-stepper{grid-template-columns:34px minmax(40px,1fr) 34px}.room-card .inline-stepper input,.room-card .step-btn{height:36px}.room-card .compact-controls label{font-size:10px}
@media(max-width:700px){.accommodation-section .hotel-browser{padding:0 10px 12px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.room-card{border-radius:15px}.room-card-body{padding:9px}.room-card h3{font-size:14px;min-height:35px}.room-price{font-size:18px}.room-actions button{height:36px}.hotel-panel-head h3{font-size:15px}.hotel-tabs{margin:0 -1px}.room-card .inline-stepper{grid-template-columns:32px minmax(34px,1fr) 32px}.room-card .inline-stepper input,.room-card .step-btn{height:34px;font-size:12px}}
@media(max-width:370px){.room-grid{gap:7px}.room-card-body{padding:8px}.room-card h3{font-size:13px}.room-price{font-size:17px}.room-actions{grid-template-columns:1fr}.room-actions .details-button{height:32px}.room-tags{display:none}}

/* V6.14.4 — single-room hotel layout */
@media(max-width:700px){
  .room-grid.single-room-grid .room-card{
    grid-column:1 / -1;
    width:100%;
  }
  .room-grid.single-room-grid .room-image{
    aspect-ratio:16 / 9;
  }
  .room-grid.single-room-grid .room-card h3{
    min-height:0;
  }
}

/* V6.15 — submitted order lifecycle in My Trip */
.submitted-orders{margin-bottom:18px;padding:20px;border:1px solid #dce8e5;border-radius:24px;background:#fff}
.submitted-orders.hidden{display:none}.submitted-orders .trip-detail-head{margin-bottom:14px}.submitted-orders .eyebrow{display:block;margin-bottom:4px;color:#0a887a;font-size:11px;letter-spacing:.16em;font-weight:800}
#submittedOrders{display:grid;gap:14px}.order-sync-loading{padding:18px;border-radius:16px;background:#f5f9f8;color:#667875}
.submitted-order-card{border:1px solid #dce8e5;border-radius:20px;padding:16px;background:#fbfdfc}.submitted-order-card.cancelled{opacity:.72;background:#f6f6f6}
.submitted-order-card>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.submitted-order-card header small{color:#6c7c79}.submitted-order-card h3{margin:3px 0 0;font-size:22px}.submitted-order-card header>strong{font-size:24px;color:#07877a;white-space:nowrap}
.order-status-copy{margin:10px 0 14px;color:#667875;line-height:1.55}.order-progress{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin:12px 0 14px;width:100%;min-width:0}.order-progress-step{position:relative;text-align:center;color:#9ba8a5;font-size:10px;padding-top:20px}.order-progress-step:before{content:'';position:absolute;top:6px;left:0;right:0;height:3px;background:#e3ecea}.order-progress-step:first-child:before{left:50%}.order-progress-step:last-child:before{right:50%}.order-progress-step i{position:absolute;z-index:1;top:1px;left:50%;width:13px;height:13px;border-radius:50%;transform:translateX(-50%);background:#dfe8e6;border:2px solid #fff;box-shadow:0 0 0 1px #dfe8e6}.order-progress-step.done{color:#257e73;font-weight:700}.order-progress-step.done:before{background:#7dc9ba}.order-progress-step.done i{background:#0a8c7d;box-shadow:0 0 0 1px #0a8c7d}.order-progress-step.current i{width:16px;height:16px;top:0}
.order-cancelled-note{padding:10px 12px;border-radius:12px;background:#f4e5e5;color:#a54b4b;font-weight:700}.submitted-order-meta{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px}.submitted-order-meta span{padding:5px 9px;border-radius:999px;background:#eff6f4;color:#5d706c;font-size:11px}.submitted-order-card details{margin-top:10px;border-top:1px solid #e4ecea;padding-top:10px}.submitted-order-card summary{cursor:pointer;color:#087f72;font-weight:700}.submitted-order-lines{margin-top:10px}.submitted-order-line{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #eef3f2}.submitted-order-line:last-child{border-bottom:0}.submitted-order-gifts{margin-top:10px;padding:10px;border-radius:12px;background:#fff5cf;color:#765b17;font-size:12px}
@media(max-width:700px){.submitted-orders{padding:16px}.order-progress-step span{font-size:9px}.submitted-order-card h3{font-size:20px}.submitted-order-card header>strong{font-size:21px}}

/* V6.17 — submitted order snapshot quote */
.submitted-order-actions{margin:10px 0 2px}.submitted-order-actions button{width:100%;height:42px;border:1px solid #cfe4df;border-radius:12px;background:#edf8f5;color:#087d76;font-weight:850;cursor:pointer}
#tripOpenQuote:disabled{background:#edf1f0;color:#8b9895;cursor:not-allowed}

/* V6.17 daily itinerary + offline payment */
.order-progress-wrap{width:100%;max-width:100%;overflow:hidden}.order-progress{width:100%;min-width:0}
.payment-pill{background:#fff2d8!important;color:#8b6314!important;font-weight:800}.payment-pill.paid{background:#e6f7ef!important;color:#167a5d!important}
.customer-itinerary{margin:14px 0;padding:13px;border-radius:16px;background:#f3faf8;border:1px solid #d9ebe7}.customer-itinerary-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:10px}.customer-itinerary-head b{font-size:16px;color:#087f72}.customer-itinerary-head small{color:#687a76;font-size:11px}.trip-day{margin-top:10px;border-radius:14px;background:#fff;border:1px solid #e1ece9;overflow:hidden}.trip-day>header{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#eaf7f4;color:#14796d}.trip-day.pending>header{background:#f5f3e9;color:#7d6d36}.trip-day>header strong{font-size:14px}.trip-day>header span{font-size:12px}.trip-day-lines{padding:2px 12px}.trip-schedule-line{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:10px;padding:10px 0;border-bottom:1px solid #edf3f1}.trip-schedule-line:last-child{border-bottom:0}.trip-schedule-line time{font-weight:900;color:#0b8376}.trip-schedule-line div{display:grid;gap:3px}.trip-schedule-line b{font-size:14px}.trip-schedule-line small{color:#687a76;font-size:11px;line-height:1.4}
@media(max-width:430px){.customer-itinerary{padding:10px}.customer-itinerary-head{align-items:flex-start;flex-direction:column;gap:3px}.trip-schedule-line{grid-template-columns:52px minmax(0,1fr) auto}.order-progress{min-width:0}.order-progress-step{font-size:8px;padding-top:18px}.order-progress-step span{font-size:8px;white-space:nowrap}.order-progress-step i{width:11px;height:11px}.order-progress-step.current i{width:14px;height:14px}}

/* V6.17.1 — compact 7-step lifecycle + mobile containment */
#page-mytrip,.submitted-orders,#submittedOrders,.submitted-order-card{min-width:0;max-width:100%;box-sizing:border-box}
.submitted-orders,.submitted-order-card{overflow:hidden}
.submitted-order-card>header{min-width:0}
.submitted-order-card>header>div{min-width:0}
.submitted-order-card>header small,.submitted-order-card h3,.order-status-copy{overflow-wrap:anywhere}
.order-progress-step{min-width:0}
.order-progress-step span{display:block;line-height:1.2}
.trip-schedule-line>div{min-width:0}
.trip-schedule-line b,.trip-schedule-line small{overflow-wrap:anywhere}
.trip-kind{display:inline-flex;align-items:center;width:max-content;max-width:100%;margin-bottom:2px;padding:2px 6px;border-radius:999px;background:#eef7f5;color:#177a6f;font-size:10px;font-weight:800}
.trip-schedule-line.lodging{background:linear-gradient(90deg,rgba(232,247,244,.55),transparent)}
@media(max-width:700px){
  .submitted-orders{padding:12px}
  .submitted-order-card{padding:13px}
  .order-progress{grid-template-columns:repeat(7,minmax(0,1fr));}
  .order-progress-step{font-size:8.5px;padding-top:19px}
  .order-progress-step span{font-size:8.5px;white-space:nowrap;letter-spacing:-.04em}
  .order-progress-step:before{top:5px;height:2px}
  .order-progress-step i{top:0;width:11px;height:11px}
  .order-progress-step.current i{width:14px;height:14px;top:-1px}
}
@media(max-width:360px){
  .order-progress-step span{font-size:7.5px}
}

/* V6.17 — customer trip notifications */
.trip-notification-center{margin-bottom:16px;padding:16px;border:1px solid #dce8e5;border-radius:22px;background:#fff}.trip-notification-center.hidden{display:none}.trip-notification-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:12px}.trip-notification-head h2{margin:2px 0 0}.trip-notification-head>div:last-child{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.trip-notification-head button{border:1px solid #cfe4df;border-radius:999px;background:#edf8f5;color:#087d76;padding:7px 10px;font-size:11px;font-weight:800}.trip-notice{display:grid;grid-template-columns:10px minmax(0,1fr);gap:10px;padding:11px 0;border-bottom:1px solid #edf2f1}.trip-notice:last-child{border-bottom:0}.trip-notice i{width:7px;height:7px;border-radius:50%;background:#c7d5d2;margin-top:6px}.trip-notice.unread i{background:#079285;box-shadow:0 0 0 4px rgba(7,146,133,.12)}.trip-notice b{font-size:14px}.trip-notice p{margin:4px 0;color:#526762;font-size:12px;line-height:1.55}.trip-notice small{color:#899793;font-size:10px}.nav-item{position:relative}.nav-reminder-badge{position:absolute;top:3px;left:calc(50% + 9px);z-index:2;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#e54848;color:#fff;font-size:9px;font-weight:900;line-height:17px;text-align:center}.nav-reminder-badge.hidden{display:none}@media(max-width:430px){.trip-notification-head{align-items:flex-start;flex-direction:column}.trip-notification-head>div:last-child{justify-content:flex-start}}

/* V6.19 — 客人变更 / 取消申请 */
.customer-change-list{margin:14px 0;padding:12px;border:1px solid #dce9e6;border-radius:16px;background:#f8fbfa}.customer-change-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.customer-change-head b{font-size:14px}.customer-change-head small{color:#758c88}.customer-change-item{padding:10px 11px;border-radius:12px;background:#fff;border:1px solid #e1ebe8;margin-top:8px}.customer-change-item>div{display:flex;justify-content:space-between;gap:8px;align-items:center}.customer-change-item>div b{font-size:13px}.customer-change-item>div span{font-size:11px;font-weight:800;padding:3px 7px;border-radius:99px;background:#eff4f3;color:#617672}.customer-change-item.pending{border-color:#b7d9ec;background:#f8fcff}.customer-change-item.pending>div span{background:#e3f3ff;color:#176f9e}.customer-change-item.approved{border-color:#bfe1d2;background:#f8fdf9}.customer-change-item.approved>div span{background:#e5f5ec;color:#19704f}.customer-change-item.rejected{opacity:.78}.customer-change-item p{margin:7px 0 4px;font-size:13px;color:#294b47;white-space:pre-wrap}.customer-change-item small{display:block;margin-top:3px;color:#718783}.customer-change-result{font-weight:700;color:#235d51!important}.submitted-order-actions .change-action{background:#eef8ff;color:#176d9d;border-color:#c7e3f4}.submitted-order-actions .cancel-action{background:#fff6f5;color:#a8433d;border-color:#efcbc8}.order-change-sheet{position:relative;width:min(94vw,560px);max-height:88vh;overflow:auto;background:#fff;border-radius:24px;padding:22px;box-shadow:0 24px 80px rgba(20,52,49,.25)}.order-change-sheet h2{margin:4px 0 6px}.order-change-intro{margin:0 0 16px;color:#667e79;font-size:13px}.order-change-sheet form{display:grid;gap:13px}.order-change-sheet label{display:grid;gap:6px;font-size:13px;font-weight:700;color:#2a4a46}.order-change-sheet select,.order-change-sheet input,.order-change-sheet textarea{width:100%;border:1px solid #d6e4e0;border-radius:12px;padding:11px 12px;background:#fff;font:inherit;color:#203e3a}.order-change-sheet textarea{resize:vertical}.order-change-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.order-change-hint,.order-change-warning{margin:0;padding:10px 11px;border-radius:11px;background:#f5faf8;color:#5b746f;font-size:12px}.order-change-warning{background:#fff7ef;color:#835224}.order-change-actions{display:flex;gap:9px;justify-content:flex-end}.order-change-result:empty{display:none}.order-change-result p{margin:0}.order-change-result .success{padding:11px;border-radius:12px;background:#edf9f4;color:#245d50}.order-change-result .error{padding:11px;border-radius:12px;background:#fff1f0;color:#a8423b}@media(max-width:600px){.order-change-sheet{width:100%;max-height:92vh;border-radius:22px 22px 0 0;margin-top:auto}.order-change-grid{grid-template-columns:1fr}.order-change-actions button{flex:1}}

#confirmOrderButton:disabled{background:#cfd7d5!important;color:#71817d!important;cursor:not-allowed!important;box-shadow:none!important;opacity:.88}


/* V6.19.3 — 行程提醒已读/未读强区分 + 已取消订单收起/隐藏 */
.trip-notice{position:relative;border:1px solid transparent;border-radius:15px;margin:7px 0;padding:12px 12px;transition:.16s ease;background:#f7f9f8}.trip-notice:last-child{border-bottom:1px solid transparent}.trip-notice.unread{background:#eaf8f5;border-color:#9bd8cf;box-shadow:0 5px 16px rgba(7,146,133,.08);cursor:pointer}.trip-notice.read{background:#f7f8f8;border-color:#edf1f0;opacity:.67}.trip-notice.read i{background:#c5cfcd}.trip-notice.unread i{background:#078f83;box-shadow:0 0 0 5px rgba(7,143,131,.13)}.trip-notice-body{min-width:0}.trip-notice-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.trip-notice-title b{font-size:14px}.trip-notice.unread .trip-notice-title b{font-weight:900;color:#075f57}.trip-notice-state{flex:0 0 auto;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:900}.trip-notice.unread .trip-notice-state{background:#087f72;color:#fff}.trip-notice.read .trip-notice-state{background:#e6eae9;color:#87938f}.trip-notice.unread:after{content:'点击后标为已读';display:block;position:absolute;right:12px;bottom:9px;color:#4f8c84;font-size:9px;font-weight:700}.trip-notice.unread small{padding-right:74px;display:block}
.cancelled-orders-group{margin-top:12px;border:1px solid #e3e8e7;border-radius:16px;background:#fafbfb;overflow:hidden}.cancelled-orders-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}.cancelled-orders-group>summary::-webkit-details-marker{display:none}.cancelled-orders-group>summary span{display:grid;gap:2px}.cancelled-orders-group>summary b{font-size:13px;color:#68746f}.cancelled-orders-group>summary small{font-size:10px;color:#9aa29f}.cancelled-orders-group>summary em{font-style:normal;font-size:11px;font-weight:800;color:#8a9692}.cancelled-orders-group[open]>summary{border-bottom:1px solid #e9eeec}.cancelled-orders-list{padding:6px 10px 10px}.cancelled-order-compact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid #edf0ef}.cancelled-order-compact:last-child{border-bottom:0}.cancelled-order-compact>div{min-width:0;display:grid;gap:3px}.cancelled-order-title{display:flex;align-items:center;gap:7px}.cancelled-order-title b{font-size:12px;color:#596863;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cancelled-order-title span{padding:2px 6px;border-radius:999px;background:#eee;color:#777;font-size:9px;font-weight:800}.cancelled-order-compact small{color:#8c9894;font-size:10px}.cancelled-order-compact em{font-style:normal;color:#7b8783;font-size:10px}.cancelled-order-compact button{flex:0 0 auto;border:0;background:transparent;color:#a2544d;font-size:11px;font-weight:800;padding:7px 4px}
@media(max-width:430px){.trip-notice{padding:11px 10px}.cancelled-order-compact{align-items:flex-start}.cancelled-order-compact button{padding-top:2px}}

/* V6.19.5 - 主屏“我的今天”复用正式订单行程 */
.my-day-summary.has-order-itinerary{display:block;background:#f1f8f7;padding:0;overflow:hidden}
.my-today-order-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 15px;border-bottom:1px solid #dbeae7}
.my-today-order-head>div{display:grid;gap:3px}.my-today-order-head b{font-size:16px}.my-today-order-head span{font-size:11px;color:var(--muted);font-weight:700}.my-today-order-head button{white-space:nowrap}
.my-today-lines{display:grid}.my-today-line{display:grid;grid-template-columns:74px 1fr;gap:11px;padding:12px 15px;border-bottom:1px solid #e1eeeb}.my-today-line:last-child{border-bottom:0}.my-today-line time{font-size:13px;font-weight:950;color:var(--brand);padding-top:1px}.my-today-line>div{display:grid;gap:3px}.my-today-line b{font-size:14px}.my-today-line small{font-size:11px;color:var(--muted);line-height:1.4}
@media(max-width:760px){.my-today-order-head{align-items:flex-start}.my-today-order-head button{width:auto;text-align:right}.my-today-line{grid-template-columns:68px 1fr;padding:11px 13px}}

/* V6.19.6 - mobile bottom navigation: five equal full-width tabs */


/* V6.20.2 - 行程提醒压缩：未读保留正文，已读默认收起并仅显示标题+时间 */
.trip-notification-center{padding:13px 14px;margin-bottom:12px;border-radius:18px}
.trip-notification-head{margin-bottom:8px;align-items:center}
.trip-notification-head h2{font-size:18px}
.trip-notification-head button{padding:6px 9px;font-size:10px}
.trip-notification-head button.hidden{display:none}
.trip-notice{margin:5px 0;padding:10px 10px;border-radius:13px;grid-template-columns:8px minmax(0,1fr);gap:8px}
.trip-notice.unread p{margin:5px 0 4px;font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.trip-notice.unread small{font-size:9px;padding-right:68px}
.trip-notice.unread:after{right:10px;bottom:8px;font-size:8px;content:'点此已读'}
.trip-notice-title b{font-size:13px}
.trip-notice-state{padding:2px 7px;font-size:9px}
.trip-all-read{padding:7px 2px 5px;color:#81908c;font-size:11px;font-weight:700}
.trip-read-group{margin-top:5px;border-top:1px solid #edf1f0}
.trip-read-group>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;list-style:none;cursor:pointer;padding:8px 2px 5px;color:#899591;font-size:11px;font-weight:800}
.trip-read-group>summary::-webkit-details-marker{display:none}
.trip-read-group>summary:after{content:'⌄';font-size:12px;color:#a0aaa7;margin-left:3px}
.trip-read-group[open]>summary:after{content:'⌃'}
.trip-read-group>summary b{margin-left:auto;font-size:10px;color:#9aa4a1}
.trip-read-list{padding:0 1px 2px}
.trip-read-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 1px;border-top:1px solid #f0f3f2;color:#8b9692;min-width:0}
.trip-read-row b{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.trip-read-row time{flex:0 0 auto;font-size:9px;color:#a6afac}
@media(max-width:430px){.trip-notification-center{padding:12px}.trip-notification-head{align-items:center}.trip-notification-head>div:last-child{gap:4px}.trip-notification-head button{padding:5px 7px}.trip-notice{padding:9px}.trip-read-row{padding:5px 1px}}


/* V6.21.1 — My Trip mobile heading/subcopy spacing */
@media(max-width:700px){
  [data-panel="trip"] .submitted-orders .trip-detail-head small,
  [data-panel="trip"] .trip-detail-card .trip-detail-head small{
    margin-top:8px;
    margin-bottom:12px;
    line-height:1.55;
  }
}

/* V6.24 current-trip append */
.append-current-trip{margin:12px 0;padding:11px 12px;border:1px solid #b9ded7;background:#effaf7;border-radius:13px}.append-current-trip.hidden{display:none}.append-current-trip label{display:flex;align-items:flex-start;gap:9px}.append-current-trip input{width:20px;height:20px;margin-top:1px;flex:0 0 auto}.append-current-trip b,.append-current-trip small{display:block}.append-current-trip small{margin-top:3px;color:#61736f;line-height:1.45}

/* V6.24.3 — smart home ordering + campaign announcement merged into hero */
.home-hero-announcement{grid-column:1/-1;position:relative;z-index:5;margin-top:2px}
.home-announcement-card{display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;border-radius:20px;background:rgba(2,49,53,.30);border:1px solid rgba(255,255,255,.24);box-shadow:0 12px 34px rgba(0,31,35,.14);backdrop-filter:blur(8px)}
.home-announcement-image{max-height:150px;overflow:hidden}.home-announcement-image img{display:block;width:100%;height:100%;max-height:150px;object-fit:cover}
.home-announcement-copy{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:15px 17px;color:#fff}
.home-announcement-copy>span{display:inline-flex;align-items:center;justify-content:center;align-self:start;padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);color:#effffc;font-size:11px;font-weight:900;letter-spacing:.08em;white-space:nowrap}
.home-announcement-text{min-width:0}.home-announcement-copy h2{margin:0;font-size:19px;line-height:1.25;color:#fff}.home-announcement-copy p{margin:4px 0 0;color:#dff4f1;line-height:1.45;font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-announcement-period{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px;color:#e8fffb;font-size:12px;line-height:1.2}.home-announcement-period b{font-size:11px;letter-spacing:.04em;color:#bfe9e2}.home-announcement-period time{font-weight:850;color:#fff}.home-announcement-period em{font-style:normal;color:#a7d7d0}
.home-announcement-action{border:0;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);color:#fff;font-weight:900;padding:9px 12px;font-size:13px;white-space:nowrap;cursor:pointer}
.home-announcement-action:active{transform:translateY(1px)}
.home-reminder-section{margin:14px 0}.home-reminder-section>button{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px 12px;align-items:center;text-align:left;padding:14px 16px;border:1px solid #a9d8d0;border-radius:18px;background:#eff9f7;color:var(--text)}.home-reminder-section span{grid-row:1/3;padding:5px 8px;border-radius:999px;background:#087d76;color:white;font-size:11px;font-weight:900}.home-reminder-section b{font-size:14px}.home-reminder-section small{color:var(--muted)}.home-reminder-section em{grid-column:3;grid-row:1/3;color:var(--brand);font-style:normal;font-weight:900}.home-booked-mode #homeMyTodaySection{margin-top:0;border:2px solid #b9ddd7;box-shadow:0 16px 40px rgba(8,125,118,.08)}.home-booked-mode #todayHero{margin-top:18px}.home-prospect-mode #homeReminderSection{display:none!important}
@media(min-width:760px){.home-announcement-card:has(.home-announcement-image){grid-template-columns:180px minmax(0,1fr)}.home-announcement-image{max-height:none}.home-announcement-image img{max-height:none;height:100%;min-height:96px}.home-announcement-card:has(.home-announcement-image) .home-announcement-copy{padding:14px 17px}}
@media(max-width:700px){.home-hero-announcement{margin-top:0}.home-announcement-copy{grid-template-columns:auto minmax(0,1fr);padding:13px 14px;gap:8px 10px}.home-announcement-copy h2{font-size:17px}.home-announcement-copy p{font-size:12px;-webkit-line-clamp:2}.home-announcement-action{grid-column:2;justify-self:start;padding:7px 10px}.home-announcement-image{max-height:118px}.home-booked-mode #todayHero{margin-top:14px}}

/* V6.24.5: 公告联动的房型 / 项目活动标志 */
.activity-promo-badge{position:absolute;z-index:4;left:8px;top:8px;display:inline-flex;align-items:center;justify-content:center;min-height:25px;padding:5px 9px;border-radius:999px;background:#e64b3c;color:#fff!important;border:1px solid rgba(255,255,255,.72);box-shadow:0 6px 16px rgba(110,29,22,.2);font-size:10px!important;line-height:1!important;font-weight:950!important;letter-spacing:.04em;white-space:nowrap}
.room-image>.activity-promo-badge{left:7px;right:auto;top:7px;background:#e64b3c;color:#fff!important;padding:5px 8px;border-radius:999px;font-size:9px!important}
.room-image>.room-photo-count{position:absolute;right:7px;left:auto;top:7px;padding:5px 7px;border-radius:999px;background:rgba(255,255,255,.92);color:inherit;font-size:9px;font-weight:900}
.rec-image{position:relative}.rec-image .activity-promo-badge{left:8px;top:8px}
.activity-promo-inline{display:inline-flex;margin-left:7px;vertical-align:middle;align-items:center;padding:5px 8px;border-radius:999px;background:#e64b3c;color:#fff;font-size:10px;font-weight:950;letter-spacing:.04em}
@media(max-width:700px){.activity-promo-badge{min-height:23px;padding:4px 8px;font-size:9px!important}.activity-promo-inline{padding:4px 7px;font-size:9px}}

/* V6.24.7 活动价：原价划线 + 活动价突出；活动价默认不二次叠加套餐优惠。 */
.original-price,.quote-original-price{display:inline-block;margin-right:7px;color:#8b9693!important;text-decoration:line-through;text-decoration-thickness:1.5px;font-size:.72em;font-weight:750}
.activity-price,.quote-activity-price{display:inline-block;color:#e14a3b!important;font-weight:950}
.room-price .activity-price,.product-price .activity-price,.modal-price .activity-price,.rec-body>strong .activity-price{font-size:1em}
.package-discount-badge.activity-fixed{color:#b54735;background:#fff0ed}
.modal-package-note{margin:7px 0 4px}.modal-package-note .package-discount-badge{display:inline-flex}
.quote-row strong{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;flex-wrap:wrap}
.quote-row .quote-original-price{font-size:11px}.quote-row .quote-activity-price{font-size:15px}
.trip-line b .quote-original-price{font-size:9px}.trip-line b .quote-activity-price{font-size:13px}
.trip-discount-tag.activity{color:#b54735;background:#fff0ed}
@media(max-width:700px){.original-price{margin-right:5px}.room-price .original-price,.product-price .original-price{font-size:.62em}.activity-price{font-size:.96em}}

/* V6.26 trip recovery */
.trip-heading-with-recovery{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.trip-heading-with-recovery>div{min-width:0}.trip-recovery-button{flex:0 0 auto;border:1px solid #b7d8d3;background:#fff;color:#087d76;border-radius:999px;padding:10px 13px;font-weight:800;font-size:13px}.trip-recovery-sheet{position:relative;width:min(92vw,460px);max-height:86vh;overflow:auto;background:#fff;border-radius:24px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.trip-recovery-sheet h2{margin:5px 0 8px}.trip-recovery-intro,.trip-recovery-help{color:#647874;line-height:1.6}.trip-recovery-sheet form{display:grid;gap:14px;margin-top:18px}.trip-recovery-sheet label{display:grid;gap:7px;font-weight:800}.trip-recovery-sheet input{width:100%;box-sizing:border-box;border:1px solid #cddfdc;border-radius:14px;padding:13px 14px;font-size:16px}.trip-recovery-result:empty{display:none}.trip-recovery-result{min-height:0}.recovered-order-highlight{outline:3px solid #1ba99d;outline-offset:3px;box-shadow:0 0 0 7px rgba(27,169,157,.12)}.travel-save-card{margin:12px 0;padding:12px 14px;border:1px solid #a8d6ce;border-radius:14px;background:#f2fbf8;display:grid;gap:4px}.travel-save-card span{font-size:12px;color:#52706a}.travel-save-card strong{font-size:16px;color:#075f59}.trip-recovery-code-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:12px;background:#f4faf8}.trip-recovery-code-row span{font-size:12px;color:#687d78}.trip-recovery-code-row b{letter-spacing:1.5px;color:#075f59}.trip-recovery-code-row button{margin-left:auto;border:0;background:#e4f5f1;color:#087d76;border-radius:999px;padding:7px 10px;font-weight:800;font-size:12px}@media(max-width:520px){.trip-heading-with-recovery{align-items:center}.trip-heading-with-recovery p{max-width:230px}.trip-recovery-button{padding:9px 10px;font-size:12px}.trip-recovery-code-row button{margin-left:0}}

/* V6.27 island practical services */
.service-group button{display:inline-flex;border:0;color:var(--brand);font-size:12px;font-weight:900;background:var(--brand-soft);padding:9px 12px;border-radius:10px}
.service-detail-sheet{width:min(680px,100%)}
.service-detail-grid{display:grid;gap:10px;margin-top:16px}
.service-info-card{display:grid;grid-template-columns:36px 1fr;gap:11px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fbfa}
.service-info-card>span{font-size:25px;line-height:1.2}
.service-info-card b{font-size:15px}
.service-info-card p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.service-detail-actions{display:grid;grid-template-columns:.9fr 1.1fr;gap:9px;margin-top:16px}
.service-detail-actions a{text-decoration:none;display:flex;align-items:center;justify-content:center}
.return-boat-guide{margin:12px 0;padding:13px 14px;border-radius:14px;background:#eef8f6;border:1px solid #d4ebe6}
.return-boat-guide b{color:var(--brand);font-size:14px}
.return-boat-guide p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.55}
.help-medical-note{margin-top:13px!important;padding:10px 12px;border-radius:12px;background:#fff8e6;color:#7a5b10!important}
@media(max-width:700px){.service-detail-actions{grid-template-columns:1fr}.service-detail-sheet{max-height:90vh;overflow:auto}}

/* V6.28 service-content phase 2 */
.service-copy-note{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:#f1f7f6;color:var(--muted);font-size:11px;line-height:1.55}
.service-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.service-choice-card{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;text-align:left;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;cursor:pointer}
.service-choice-card>span{font-size:25px;grid-row:1/3;align-self:start}.service-choice-card>b{font-size:14px}.service-choice-card>small{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.55}.service-choice-card:active{transform:translateY(1px)}
.land-service-sheet{width:min(720px,100%)}.land-form-block{margin-top:16px}.land-form-block>label,.land-note-label{display:block;font-size:12px;font-weight:900;color:var(--text);margin-bottom:8px}
.land-choice-row{display:flex;gap:8px;flex-wrap:wrap}.land-choice-row button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-size:12px;font-weight:850;cursor:pointer}.land-choice-row button.active{background:var(--brand);border-color:var(--brand);color:#fff}
.land-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.land-mini-grid label{display:grid;gap:7px;font-size:12px;font-weight:850}.land-mini-grid input,.land-note-label textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;padding:11px 12px;color:var(--text);outline:none}.land-mini-grid input:focus,.land-note-label textarea:focus{border-color:#79bdb7;box-shadow:0 0 0 3px rgba(8,125,118,.08)}.land-note-label{margin-top:14px}.land-note-label textarea{margin-top:7px;resize:vertical;font-weight:500}
.land-summary-preview{white-space:pre-line;margin-top:14px;border:1px dashed #b9d8d4;background:#f4faf9;border-radius:14px;padding:12px;font-size:12px;line-height:1.65;color:#4f6662}
@media(max-width:700px){.service-choice-grid,.land-mini-grid{grid-template-columns:1fr}.service-choice-card{grid-template-columns:32px 1fr}.land-service-sheet{max-height:92vh;overflow:auto}}

/* V6.28.2 — 快艇按房型卡片结构排列；后台固定计价规则不在客人端做“不打折”标签展示。 */
.transport-category-section .catalog-subhead,.yacht-category-section .catalog-subhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 15px 10px}.transport-category-section .catalog-subhead>div,.yacht-category-section .catalog-subhead>div{display:grid;gap:2px}.transport-category-section .catalog-subhead b,.yacht-category-section .catalog-subhead b{font-size:14px;color:var(--text)}.transport-category-section .catalog-subhead small,.yacht-category-section .catalog-subhead small{font-size:10px;color:var(--muted)}.fastboat-subsection{padding-top:2px}.fastboat-grid{padding:0 14px 14px}.standard-project-subsection{border-top:1px solid #eef2f1;padding-top:12px}.fastboat-card .room-hotel{color:var(--brand)}.fastboat-card .room-image{aspect-ratio:4/3}.catalog-section.collapsed .fastboat-subsection,.catalog-section.collapsed .standard-project-subsection{display:none!important}
@media(max-width:700px){.fastboat-grid{padding:0 10px 12px;gap:9px}.transport-category-section .catalog-subhead,.yacht-category-section .catalog-subhead{padding:2px 11px 9px}.fastboat-card .room-card-body{padding:9px}.fastboat-card h3{font-size:14px}.fastboat-card .room-price{font-size:18px}}


/* V6.28.3 — yacht browser uses the same room-type card structure */
.yacht-subsection{border-top:1px solid #eef2f1;padding-top:12px}.yacht-browser{padding:0 14px 16px}.yacht-tabs{padding-bottom:12px}.yacht-panels{display:grid;gap:14px}.yacht-panel{display:grid;gap:10px}.yacht-grid{padding:0}.yacht-card .room-hotel{color:var(--brand)}.yacht-card .room-image{aspect-ratio:4/3}.yacht-panel-head{padding:0 2px 2px}.yacht-category-section.collapsed .yacht-subsection{display:none!important}
@media(max-width:700px){.yacht-browser{padding:0 10px 12px}.yacht-tabs{margin:0 -1px;padding-bottom:10px}.yacht-grid{gap:9px}.yacht-card .room-card-body{padding:9px}.yacht-card h3{font-size:14px}.yacht-card .room-price{font-size:18px}}

/* V6.28.4 — 快艇归交通；游艇独立分类并包含增值服务 */
.yacht-addon-subsection{border-top:1px solid #eef2f1;padding-top:12px}.yacht-addon-products{padding-bottom:14px}.catalog-section.collapsed .yacht-addon-subsection{display:none!important}.transport-category-section .standard-project-subsection{border-top:0;padding-top:0}.transport-category-section .fastboat-subsection{border-top:1px solid #eef2f1;padding-top:12px}


/* V6.28.6 — mobile card-grid consistency: odd last card expands; yacht add-ons stack vertically; recommendation excludes service/transport via JS. */
.yacht-addon-grid{padding:0 14px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.yacht-addon-card .room-hotel{color:var(--brand)}
@media(max-width:700px){.room-grid .room-card.wide-last-card{grid-column:1 / -1;width:100%}.room-grid .room-card.wide-last-card .room-image{aspect-ratio:16 / 9}.room-grid .room-card.wide-last-card h3{min-height:0}.yacht-addon-grid{display:grid!important;grid-auto-flow:row!important;grid-template-columns:1fr!important;overflow:visible!important;padding:0 10px 12px;gap:10px}.yacht-addon-grid .yacht-addon-card{width:100%;scroll-snap-align:none}.yacht-addon-grid .yacht-addon-card .room-image{aspect-ratio:16/9}}


/* V6.28.9 — 岛上服务前三项拆分：租地 / 买地 / 合作开发。10项宽屏5列、手机2列。 */
.quick-services{grid-template-columns:repeat(5,minmax(0,1fr));}
.quick-services button{min-width:0;min-height:96px;}
.land-service-entry-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.land-service-entry-row button{border:1px solid #dbe9e6;background:#fff;color:var(--text);border-radius:12px;padding:10px 8px;font-weight:850;cursor:pointer}
.land-service-entry-row button:hover{border-color:#86c9c0;background:#f2faf8}
@media(max-width:760px){
  .quick-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .quick-services button{min-height:94px;padding:15px 10px;border-radius:18px;}
  .quick-services span{font-size:12px;}
  .land-service-entry-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .land-service-entry-row button{font-size:12px;padding:10px 4px}
}


/* V6.29 — 探索统一双列排版、游艇规格强化、餐饮商家图库 */
@media(max-width:760px){
  .category-products .product-body{padding:9px}.category-products .product-title-line{display:grid;gap:4px}.category-products .product-title-line h3{font-size:14px}.category-products .product-price{font-size:17px}.category-products .product-teaser{font-size:11px;min-height:33px}.category-products .card-actions{grid-template-columns:1fr auto}.category-products .select-button,.category-products .details-button{height:36px;font-size:11px}
  .category-products .product-card.wide-last-card .product-title-line{display:flex}.category-products .product-card.wide-last-card .product-teaser{min-height:0}
}
.yacht-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;overflow:visible!important;padding:0 0 13px!important}
.yacht-tab{min-width:0!important;white-space:normal!important;display:grid!important;place-items:center;gap:2px!important;padding:12px 8px!important;border:2px solid #cfe5e1!important;border-radius:16px!important;background:linear-gradient(180deg,#fff,#f6fbfa)!important;box-shadow:0 5px 15px rgba(8,72,66,.05);transition:.18s ease}
.yacht-tab strong{font-size:19px;line-height:1;color:#174d48}.yacht-tab span{font-size:10px;font-weight:850;color:#657d79}.yacht-tab small{height:auto!important;min-width:0!important;background:transparent!important;color:#78908c!important;font-size:9px!important}
.yacht-tab.active{background:linear-gradient(145deg,#087d76,#075f59)!important;border-color:#087d76!important;box-shadow:0 8px 20px rgba(8,125,118,.24);transform:translateY(-1px)}
.yacht-tab.active strong,.yacht-tab.active span,.yacht-tab.active small{color:#fff!important}
@media(max-width:420px){.yacht-tabs{gap:6px}.yacht-tab{padding:11px 4px!important;border-radius:13px!important}.yacht-tab strong{font-size:17px}.yacht-tab span{font-size:9px}}
.food-basics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:15px}.food-merchant-head{display:flex;justify-content:space-between;align-items:end;margin:20px 0 10px}.food-merchant-head b{display:block;font-size:17px}.food-merchant-head small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.food-merchant-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.food-merchant-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;min-width:0}.food-merchant-card:only-child{grid-column:1/-1}.food-merchant-image{position:relative;width:100%;aspect-ratio:16/10;border:0;padding:0;background:#edf3f2;overflow:hidden;cursor:pointer}.food-merchant-image img{width:100%;height:100%;object-fit:cover}.food-merchant-placeholder{height:100%;display:grid;place-items:center;font-size:46px}.food-merchant-image em{position:absolute;right:8px;top:8px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.92);font-size:9px;font-style:normal;font-weight:900}.food-merchant-body{padding:13px}.food-merchant-type{font-size:10px;color:var(--brand);font-weight:900}.food-merchant-body h3{margin:4px 0 7px;font-size:18px}.food-merchant-body p{margin:8px 0;color:var(--muted);font-size:12px;line-height:1.55}.food-merchant-tags{display:flex;gap:5px;flex-wrap:wrap}.food-merchant-tags span{padding:4px 7px;border-radius:999px;background:var(--brand-soft);color:var(--brand-dark);font-size:9px;font-weight:850}.food-merchant-facts{display:grid;gap:3px}.food-merchant-facts small{font-size:10px;color:#60736f}.food-merchant-promo{margin-top:8px;padding:8px 9px;border-radius:10px;background:#fff6dd;color:#7c5a0b;font-size:11px;font-weight:850}.food-photo-button{width:100%;height:36px;margin-top:9px;border:1px solid #bcded8;border-radius:10px;background:#eff9f7;color:var(--brand);font-size:11px;font-weight:900}.food-merchant-empty{grid-column:1/-1;padding:18px;border:1px dashed #cfdedb;border-radius:14px;color:var(--muted);text-align:center;font-size:12px}
@media(max-width:560px){.food-basics-grid{grid-template-columns:1fr}.food-merchant-grid{grid-template-columns:1fr}.food-merchant-card:only-child{grid-column:auto}.food-merchant-image{aspect-ratio:16/9}}

/* V6.31：绑定活动项目/房型的首页通告，整卡可点击直达对应卡片。 */
.home-announcement-card.is-clickable{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.home-announcement-card.is-clickable:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(3,54,49,.18)}.home-announcement-card.is-clickable:active{transform:translateY(0)}.home-announcement-card.is-clickable:focus-visible{outline:3px solid rgba(255,211,106,.9);outline-offset:3px}

/* V6.32：首页从“展示原始数据”改为“替客人做判断”。 */
.today-decision-card{display:grid;gap:12px}.today-decision-card .trust-head{margin-bottom:0}.today-verdict{margin:0!important;padding:11px 13px;border-radius:13px;font-size:15px!important;font-weight:900!important;line-height:1.45!important;border:1px solid rgba(255,255,255,.18)}.today-verdict.good{background:rgba(62,202,142,.16);color:#eafff6!important}.today-verdict.warn{background:rgba(255,190,91,.16);color:#fff4d8!important}.today-verdict.bad{background:rgba(255,118,118,.17);color:#fff0f0!important}.today-verdict.neutral{background:rgba(255,255,255,.08);color:#e9f6f4!important}.today-advice-list{display:grid;gap:8px}.today-advice-line{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:flex-start;padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)}.today-advice-line>i{font-style:normal;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.12);font-size:18px}.today-advice-line>div{min-width:0;display:grid;gap:2px}.today-advice-line span{font-size:9px;font-weight:900;letter-spacing:.09em;color:#c8eae6}.today-advice-line b{font-size:13px;line-height:1.35;color:#fff}.today-advice-line small{font-size:10px;line-height:1.45;color:#d5ece9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.today-advice-line.good{border-color:rgba(89,222,163,.26)}.today-advice-line.warn{border-color:rgba(255,199,100,.34)}.today-advice-line.bad{border-color:rgba(255,129,129,.4);background:rgba(116,38,45,.18)}.today-advice-line.boat{background:rgba(255,255,255,.1)}.home-detail-bar{margin-top:14px!important}.today-detail-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.today-detail-actions button{min-height:54px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:10px 12px;display:flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 6px 18px rgba(18,49,45,.035);cursor:pointer}.today-detail-actions span{font-size:20px}.today-detail-actions b{font-size:12px;color:var(--brand)}.tide-play-advice{display:grid;gap:5px;margin:14px 0 18px;padding:15px;border-radius:16px;border:1px solid var(--line);background:#f7faf9}.tide-play-advice>span{font-size:10px;letter-spacing:.08em;font-weight:900;color:var(--muted)}.tide-play-advice>strong{font-size:18px}.tide-play-advice>small{font-size:12px;line-height:1.6;color:var(--muted)}.tide-play-advice.good{background:#edf8f3;border-color:#cdebdc}.tide-play-advice.warn{background:#fff8eb;border-color:#f3ddb8}.tide-play-advice.bad{background:#fff1f1;border-color:#efcaca}.compact-tide-list{margin-bottom:18px}
@media(max-width:700px){.today-decision-card{gap:10px}.today-verdict{font-size:14px!important}.today-advice-line{grid-template-columns:30px 1fr;padding:9px 10px}.today-advice-line>i{width:29px;height:29px;font-size:16px}.today-advice-line b{font-size:12px}.today-advice-line small{font-size:9.5px;-webkit-line-clamp:2}.today-detail-actions{gap:7px}.today-detail-actions button{min-height:50px;padding:8px 6px}.today-detail-actions span{font-size:18px}.today-detail-actions b{font-size:11px}}

/* V6.32.1 — 只弱化首页第一屏绿色 Hero 内的框感，其它首页结构保持 V6.32。 */
.today-hero .today-decision-card{background:transparent!important;border:0!important;border-radius:0;padding:0;box-shadow:none;backdrop-filter:none!important}
.today-hero .today-decision-card .trust-head{padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.10)}
.today-hero .today-verdict{padding:5px 0 8px!important;border:0!important;border-radius:0!important;background:transparent!important}
.today-hero .today-advice-list{gap:0}
.today-hero .today-advice-line{padding:10px 0;background:transparent!important;border:0!important;border-radius:0!important}
.today-hero .today-advice-line+.today-advice-line{border-top:1px solid rgba(255,255,255,.09)!important}
.today-hero .today-advice-line>i{background:rgba(255,255,255,.075);border-radius:999px}
@media(max-width:700px){.today-hero .today-decision-card{gap:8px}.today-hero .today-advice-line{padding:9px 0}}

/* V6.32.2 — 首页第一屏改为“日期 + 今日结论 + 潮汐/海况/天气/双向船班”四行。 */
.today-hero-heading h1{margin:0 0 9px;font-size:clamp(38px,6vw,62px);line-height:1.03;letter-spacing:-.04em}
.today-hero-heading p{font-size:15px;font-weight:800;color:rgba(239,255,252,.86);letter-spacing:.01em}
.today-hero .today-verdict{font-size:20px!important;line-height:1.35!important;font-weight:950!important;padding:2px 0 12px!important;color:#fff!important}
.today-hero .today-advice-line{grid-template-columns:32px minmax(0,1fr);align-items:center;gap:11px}
.today-hero .today-advice-line>div{display:block}
.today-hero .today-advice-line b{display:block;font-size:14px;line-height:1.5;font-weight:850;color:#fff}
.today-hero .today-advice-line>i{width:30px;height:30px;font-size:16px}
@media(max-width:700px){
  .today-hero-heading h1{font-size:36px;margin-bottom:7px}
  .today-hero-heading p{font-size:13px}
  .today-hero .today-verdict{font-size:18px!important;padding:2px 0 10px!important}
  .today-hero .today-advice-line{grid-template-columns:30px minmax(0,1fr);gap:10px;padding:10px 0}
  .today-hero .today-advice-line b{font-size:13px;line-height:1.45}
}


/* V6.32.3 — 主屏船班整行可点；潮汐增加钓鱼鱼口与较佳开口期。 */
#todayButlerBoat{width:100%;appearance:none;-webkit-appearance:none;text-align:left;font:inherit;color:inherit;cursor:pointer}
#todayButlerBoat:focus-visible{outline:2px solid rgba(255,255,255,.72);outline-offset:4px;border-radius:10px!important}
.fishing-bite-advice{display:grid;gap:5px;margin:14px 0 10px;padding:15px;border-radius:16px;border:1px solid var(--line);background:#f7faf9}
.fishing-bite-advice>span{font-size:10px;letter-spacing:.08em;font-weight:900;color:var(--muted)}
.fishing-bite-advice>strong{font-size:18px}.fishing-bite-advice>small{font-size:12px;line-height:1.6;color:var(--muted)}
.fishing-bite-advice.good{background:#edf8f3;border-color:#cdebdc}.fishing-bite-advice.warn{background:#fff8eb;border-color:#f3ddb8}.fishing-bite-advice.bad{background:#fff1f1;border-color:#efcaca}
.fishing-window-list{display:grid;gap:7px;margin:0 0 18px}.fishing-window-row{display:grid;grid-template-columns:32px 1fr;gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:#fff}
.fishing-window-row>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#f3f8f6}.fishing-window-row>div{display:grid;gap:2px}.fishing-window-row b{font-size:12px}.fishing-window-row small{font-size:11px;color:var(--muted);font-weight:800}

/* V6.33 - 首页状态化：出发前 / 在岛 / 离岛当天 / 行程待确认 */
.home-trip-pretrip,.home-trip-on_island,.home-trip-departure,.home-trip-pending{border:1px solid #b9ddd7;box-shadow:0 16px 40px rgba(8,125,118,.07)}
.home-trip-departure{border-color:#efc98f}.home-trip-departure.stage-soon{border-color:#e7ac50;box-shadow:0 14px 34px rgba(201,120,24,.11)}.home-trip-departure.stage-urgent,.home-trip-on_island.stage-urgent{border-color:#e49e9e;box-shadow:0 14px 34px rgba(199,60,60,.10)}
.home-stage-lead{display:grid;gap:5px;padding:17px 17px 15px;background:linear-gradient(145deg,#eff9f7,#f8fcfb);border-bottom:1px solid #dcebe8}.home-stage-lead>span{font-size:11px;font-weight:950;letter-spacing:.08em;color:var(--brand)}.home-stage-lead>strong{font-size:20px;line-height:1.35;color:var(--text)}.home-stage-lead>small{font-size:12px;line-height:1.55;color:var(--muted)}
.home-stage-lead.departure{background:linear-gradient(145deg,#fff8ea,#fffdf9)}.stage-urgent .home-stage-lead{background:linear-gradient(145deg,#fff0f0,#fffafa)}.stage-urgent .home-stage-lead>span,.stage-urgent .home-stage-lead>strong{color:#a72d2d}.stage-soon .home-stage-lead>span{color:#a96412}
.home-stage-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#dcebe8}.home-stage-facts>div{background:#fff;display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:13px}.home-stage-facts i{font-style:normal;font-size:18px}.home-stage-facts span{display:grid;gap:3px}.home-stage-facts b{font-size:13px}.home-stage-facts small{font-size:10px;line-height:1.45;color:var(--muted)}
.home-stage-preview,.home-stage-itinerary{padding:14px 16px;background:#fff;display:grid;gap:9px;border-top:1px solid #e3eeeb}.home-stage-preview>strong,.home-stage-itinerary>strong{font-size:12px;color:var(--brand);letter-spacing:.02em}.home-stage-day{display:grid;grid-template-columns:88px minmax(0,1fr);gap:4px 10px;padding:8px 0;border-top:1px solid #eef3f2}.home-stage-day>b{grid-row:1/span 3;font-size:12px;color:#50615d}.home-stage-day>span{font-size:12px;line-height:1.4;color:var(--text)}.home-stage-preview>button{justify-self:start;border:0;background:transparent;padding:4px 0;color:var(--brand);font-size:11px;font-weight:900}
.home-stage-itinerary-row{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid #eef3f2}.home-stage-itinerary-row time{font-size:12px;font-weight:950;color:var(--brand)}.home-stage-itinerary-row div{display:grid;gap:2px}.home-stage-itinerary-row b{font-size:13px}.home-stage-itinerary-row small{font-size:10px;color:var(--muted)}
.home-stage-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:13px 15px;background:#fff;border-top:1px solid #e8efed}.home-stage-actions:has(>button:only-child){grid-template-columns:1fr}.home-stage-actions button{min-height:42px;border-radius:12px;border:1px solid #cfe2de;background:#fff;color:var(--brand);font-size:12px;font-weight:900;padding:9px 12px}.home-stage-actions button:first-child{background:var(--brand);border-color:var(--brand);color:#fff}
.stage-recommend-note{grid-column:1/-1;width:100%;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;color:var(--muted);font-size:13px;line-height:1.6}
.home-stage-ended #homeMyTodaySection{opacity:.88}.home-stage-departure #homeNeedsSection .need-card[data-return-open]{background:#fff8e9;border-color:#efcc99}
@media(max-width:700px){.home-stage-facts{grid-template-columns:1fr}.home-stage-day{grid-template-columns:74px minmax(0,1fr)}.home-stage-lead{padding:15px 14px 13px}.home-stage-lead>strong{font-size:18px}.home-stage-actions{padding:11px 12px}.home-stage-itinerary,.home-stage-preview{padding:13px}.home-stage-itinerary-row{grid-template-columns:62px minmax(0,1fr)}}

/* V6.33: 单按钮不依赖 :has() 也能占满整行 */
.home-stage-actions button:only-child{grid-column:1/-1}

/* V6.33.1 - 我的旅行：已完成订单精简为历史旅行卡 */
.completed-trips-section{margin-top:14px;padding-top:14px;border-top:1px solid #e6eeec}.completed-trips-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.completed-trips-head>div{display:grid;gap:2px}.completed-trips-head b{font-size:14px;color:#49635e}.completed-trips-head small{font-size:10px;color:#91a09c}.completed-trips-head>span{padding:4px 8px;border-radius:999px;background:#f0f5f3;color:#74857f;font-size:10px;font-weight:800}.completed-trip-card{border:1px solid #e2eae8;border-radius:16px;background:#fafcfb;padding:12px 13px;margin-top:9px}.completed-trip-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.completed-trip-main{min-width:0;display:grid;gap:4px}.completed-trip-title{display:flex;align-items:center;gap:7px}.completed-trip-title b{font-size:14px;color:#425d57}.completed-trip-title span{padding:2px 7px;border-radius:999px;background:#e9f2ef;color:#66817a;font-size:9px;font-weight:850}.completed-trip-main>small{font-size:11px;color:#7f918c}.completed-trip-meta{display:flex;flex-wrap:wrap;gap:7px}.completed-trip-meta span{font-size:10px;color:#899793}.completed-trip-summary>strong{flex:0 0 auto;font-size:12px;color:#526e67}.completed-trip-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.completed-trip-actions>button,.completed-trip-details>summary{display:flex;align-items:center;justify-content:center;min-height:38px;border-radius:11px;font-size:12px;font-weight:850;cursor:pointer;box-sizing:border-box}.completed-trip-details{margin:0!important;padding:0!important;border:0!important}.completed-trip-details>summary{list-style:none;border:1px solid #d6e5e1;background:#fff;color:#50756d}.completed-trip-details>summary::-webkit-details-marker{display:none}.completed-rebook-button{border:0;background:#edf7f4;color:#0b7e70}.completed-trip-details[open]{grid-column:1/-1}.completed-trip-details[open]>summary{margin-bottom:9px;background:#f2f8f6}.completed-trip-detail-body{grid-column:1/-1;padding:11px;border:1px solid #e2eae8;border-radius:13px;background:#fff}.completed-trip-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.completed-trip-detail-head span{font-size:11px;color:#81928d}.completed-trip-detail-head strong{font-size:14px;color:#4c6861}.completed-cost-button{width:100%;height:38px;margin-top:9px;border:1px solid #d5e5e1;border-radius:10px;background:#f5faf8;color:#27786d;font-weight:800}.completed-order-content{margin-top:9px!important}.completed-order-content>summary{font-size:12px}.older-completed-trips{margin-top:10px;border:1px solid #e5ebe9;border-radius:14px;background:#fbfcfc;overflow:hidden}.older-completed-trips>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;cursor:pointer;list-style:none}.older-completed-trips>summary::-webkit-details-marker{display:none}.older-completed-trips>summary span{display:grid;gap:2px}.older-completed-trips>summary b{font-size:12px;color:#65756f}.older-completed-trips>summary small{font-size:9px;color:#9aa5a1}.older-completed-trips>summary em{font-style:normal;font-size:10px;font-weight:800;color:#85918d}.older-completed-list{padding:0 8px 9px}.older-completed-list .completed-trip-card{margin-top:8px;background:#fff}.completed-trip-card .customer-itinerary{margin-top:10px}
@media(max-width:600px){.completed-trip-summary{gap:8px}.completed-trip-summary>strong{font-size:11px}.completed-trip-actions{grid-template-columns:1fr 1fr}.completed-trip-detail-body{padding:9px}}
/* V6.33.4: a single featured recommendation becomes a full-width editorial card. */
.recommendation-rail.single-recommendation{display:block;overflow:visible;padding:2px 0 4px}
.recommendation-rail.single-recommendation .recommend-card{width:100%;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);align-items:stretch;scroll-snap-align:none}
.recommendation-rail.single-recommendation .rec-image{height:100%;min-height:300px;aspect-ratio:auto}
.recommendation-rail.single-recommendation .rec-body{padding:24px;display:flex;flex-direction:column;justify-content:center}
.recommendation-rail.single-recommendation .rec-body p{min-height:0;margin:10px 0 16px}
@media(max-width:760px){.recommendation-rail.single-recommendation{padding-bottom:2px}.recommendation-rail.single-recommendation .recommend-card{display:block;width:100%}.recommendation-rail.single-recommendation .rec-image{height:auto;min-height:0;aspect-ratio:16/9}.recommendation-rail.single-recommendation .rec-body{padding:15px}.recommendation-rail.single-recommendation .rec-body p{margin:8px 0 12px}}

/* V6.34 — 我的旅行、船班/码头、潮汐海况详情收口 */
.your-boat-card{margin-top:12px;padding:13px 15px;border:1px solid #cfe4df;border-radius:15px;background:#f2faf7;display:grid;gap:4px}.your-boat-card>span{font-size:10px;font-weight:900;letter-spacing:.08em;color:#66817b}.your-boat-card>strong{font-size:17px;color:#176f64}.your-boat-card>small{font-size:11px;color:#637a75}.your-boat-card>div{margin-top:4px}.pier-map-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border-radius:10px;background:#edf7f4;color:#0b7b6e;text-decoration:none;font-size:11px;font-weight:850}.next-pier-map{margin-top:9px}.next-boat-card .next-pier-map .pier-map-link{background:rgba(255,255,255,.16);color:#fff}.boat-pier-guide{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.pier-guide-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:8px}.pier-guide-head b{font-size:14px}.pier-guide-head small{font-size:10px;color:var(--muted)}.pier-guide-list{display:grid;gap:7px}.pier-guide-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid #e1ebe8;border-radius:13px;background:#fff}.pier-guide-item>div{display:grid;gap:2px}.pier-guide-item b{font-size:12px}.pier-guide-item small{font-size:10px;line-height:1.45;color:var(--muted)}.pier-guide-item.temporary{background:#fffaf0;border-color:#f0dfb9}.pier-guide-item.repair{background:#f8f8f8}.pier-guide-item.seasonal{background:#f5f8fb}.boat-past-head{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;background:#f5f7f6}.boat-past-head small,.boat-past-empty{font-size:10px;color:var(--muted)}.boat-past-empty{padding:13px}
.marine-conclusion-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:17px}.marine-conclusion{min-width:0;padding:13px;border:1px solid var(--line);border-radius:15px;background:#f7faf9;display:grid;gap:4px}.marine-conclusion>span{font-size:9px;letter-spacing:.08em;font-weight:900;color:var(--muted)}.marine-conclusion>strong{font-size:16px;line-height:1.35}.marine-conclusion>small{font-size:10px;line-height:1.45;color:var(--muted)}.marine-conclusion.good{background:#edf8f3;border-color:#cdebdc}.marine-conclusion.warn{background:#fff8eb;border-color:#f3ddb8}.marine-conclusion.bad{background:#fff1f1;border-color:#efcaca}.marine-detail-label{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:4px 2px 9px}.marine-detail-label b{font-size:14px}.marine-detail-label small{font-size:9px;color:var(--muted)}
.active-trip-card{padding:0!important;background:#fff!important;overflow:hidden}.active-trip-head{display:flex;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid #e5eeec}.active-trip-head>div:first-child{display:grid;gap:3px;min-width:0}.active-trip-head span{font-size:10px;font-weight:900;color:#68807b;letter-spacing:.06em}.active-trip-head strong{font-size:16px}.active-trip-head small{font-size:10px;color:#81928e}.active-trip-money{text-align:right;display:grid;gap:3px;flex:0 0 auto}.active-trip-money b{font-size:20px;color:#07877a}.active-trip-money small{font-size:9px;color:#738681}.active-trip-primary{margin:13px 14px 0;padding:14px;border-radius:15px;border:1px solid #d8e9e5;background:#f3faf8;display:grid;gap:4px}.active-trip-primary>span{font-size:10px;font-weight:900;letter-spacing:.08em;color:#65807a}.active-trip-primary>strong{font-size:19px;line-height:1.35}.active-trip-primary>small{font-size:11px;line-height:1.5;color:#687d78}.active-trip-primary.departure{background:#fff8eb;border-color:#f0deb7}.active-trip-primary.pending{background:#f7f8f8}.active-trip-primary .pier-map-link{justify-self:start;margin-top:4px}.active-today-itinerary{margin:13px 14px 0}.active-subhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.active-subhead b{font-size:13px}.active-subhead span{font-size:9px;color:#7e908b}.active-today-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:8px;align-items:start;padding:9px 0;border-bottom:1px solid #edf2f1}.active-today-row:last-child{border-bottom:0}.active-today-row time{font-weight:900;color:#0b8275;font-size:12px}.active-today-row>div{display:grid;gap:2px}.active-today-row b{font-size:13px}.active-today-row small{font-size:10px;color:#72847f}.active-today-row em{font-style:normal;font-size:9px;color:#96a29f}.trip-complete-check{align-self:center;color:#16865f!important;font-size:17px!important;font-style:normal;font-weight:700;line-height:1}.active-today-row.done{opacity:1}.active-today-row.done b,.trip-schedule-line.done b{color:#60736d}.active-trip-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 14px}.active-trip-quick-actions button{height:40px;border:0;border-radius:11px;background:#eaf7f3;color:#0b786b;font-weight:850}.active-trip-quick-actions button+button{background:#f3f6f5;color:#45645d}.active-trip-folds{border-top:1px solid #e8efed}.active-trip-folds>details{margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid #edf2f1}.active-trip-folds>details>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 15px;color:#385b54!important;list-style:none}.active-trip-folds>details>summary::-webkit-details-marker{display:none}.active-trip-folds>details>summary:after{content:'›';font-size:18px;color:#9aa8a4}.active-trip-folds>details[open]>summary:after{transform:rotate(90deg)}.active-trip-folds>details>summary span{margin-left:auto;font-size:10px;color:#899894}.active-trip-folds>details>*:not(summary){margin-left:14px;margin-right:14px;margin-bottom:13px}.active-payment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.active-payment-summary span{padding:9px;border-radius:10px;background:#f5f8f7;font-size:9px;color:#73857f;display:grid;gap:2px}.active-payment-summary b{font-size:12px;color:#355a53}.active-cost-button{width:calc(100% - 28px);margin:0 14px 13px!important;height:38px;border:1px solid #d3e5e0;border-radius:10px;background:#f5faf8;color:#15796d;font-weight:850}.active-trip-change-actions{display:flex;gap:8px;padding:11px 14px;background:#fafcfc}.active-trip-empty{font-size:11px;color:var(--muted)}
@media(max-width:600px){.marine-conclusion-grid{grid-template-columns:1fr}.pier-guide-item{grid-template-columns:1fr auto}.active-trip-head{padding:13px}.active-trip-head{display:grid;grid-template-columns:minmax(0,1fr) auto}.active-trip-money b{font-size:18px}.active-trip-primary{margin:11px 12px 0}.active-today-itinerary{margin:11px 12px 0}.active-trip-quick-actions{margin:11px 12px}.active-payment-summary{grid-template-columns:1fr 1fr 1fr}}


/* V6.34.1 — guide selected-but-unsubmitted guests into the trip service flow */
.explore-service-hint{margin-top:4px!important;color:#0a756b!important;font-weight:800!important;line-height:1.35}
.draft-contact-notice{display:grid;gap:4px;margin:4px 0 14px;padding:13px 14px;border-radius:15px;background:#fff7e8;border:1px solid #f0d7a3;color:#70501a}
.draft-contact-notice b{font-size:14px}.draft-contact-notice span{font-size:11px;line-height:1.55}
.trip-service-promise{margin:14px 0;padding:16px;border:1px solid #cfe7e2;border-radius:18px;background:linear-gradient(145deg,#f0faf7,#fbfefd)}
.trip-service-head{display:grid;gap:4px}.trip-service-head span{font-size:10px;letter-spacing:.08em;font-weight:900;color:var(--brand)}.trip-service-head strong{font-size:16px;line-height:1.4}
.trip-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}.trip-service-grid span{display:grid;gap:4px;padding:9px 7px;border-radius:12px;background:#fff;border:1px solid #e0eeeb;text-align:center;font-size:16px}.trip-service-grid b{font-size:10px;color:#315e58}
.trip-service-promise p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}
@media(max-width:560px){.trip-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.explore-service-hint{max-width:210px}.explore-quote-bar>button{max-width:116px;white-space:normal;line-height:1.2;padding:0 10px}}
/* V6.34.3 — active trip stays open; execution lock; prominent pier guide */
.boat-pier-guide.prominent{margin-top:12px;padding:13px;border:1px solid #cfe5df;border-radius:16px;background:#f7fbfa}
.boat-pier-guide.prominent .pier-guide-head{margin-bottom:10px}
.active-trip-pier-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:5px}
.active-trip-full-itinerary{margin:14px 14px 0;padding-top:13px;border-top:1px solid #e5eeec}
.active-trip-full-itinerary .customer-itinerary{margin:0}
.active-trip-lock-notice{margin:13px 14px 0;padding:12px 13px;border-radius:13px;background:#fff7e9;border:1px solid #efd6a6;display:grid;gap:4px}
.active-trip-lock-notice b{font-size:12px;color:#76531a}
.active-trip-lock-notice span{font-size:10px;line-height:1.55;color:#806b49}
@media(max-width:600px){.active-trip-full-itinerary{margin-left:12px;margin-right:12px}.active-trip-lock-notice{margin-left:12px;margin-right:12px}.active-trip-pier-links{display:grid;grid-template-columns:1fr 1fr}.active-trip-pier-links .pier-map-link{width:100%;box-sizing:border-box}}

/* V6.36 — premium brand system: calm, simple, consistent */
:root{
  --bg:#F7F8F5;
  --surface:#FFFFFF;
  --text:#18201E;
  --muted:#65706C;
  --line:#E7EBE8;
  --brand:#123F3A;
  --brand-dark:#0D302C;
  --brand-soft:#EAF1EE;
  --good:#287A5C;
  --warn:#B87524;
  --danger:#B84B46;
  --shadow:0 10px 28px rgba(18,63,58,.055);
  --radius-xl:22px;
  --radius-lg:16px;
  --radius-md:12px;
}
html{background:var(--bg)}
body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Microsoft YaHei",system-ui,sans-serif;letter-spacing:0;font-weight:400}
button,input,textarea,select{font-family:inherit}
.app-shell{max-width:1180px;padding:24px 18px 48px}
.app-header{height:66px;padding-left:max(18px,calc((100vw - 1180px)/2));padding-right:max(18px,calc((100vw - 1180px)/2));background:rgba(247,248,245,.94);border-color:rgba(231,235,232,.92)}
.brand-button img{width:42px;height:42px}.brand-button strong{font-size:15px;font-weight:600;letter-spacing:.01em}.brand-button small{font-size:10px;color:#7E8884}.butler-link{background:transparent;border:1px solid #CDD9D5;color:var(--brand);font-size:12px;font-weight:600;padding:9px 12px}
.eyebrow,.section-title span{font-size:10px;letter-spacing:.14em;font-weight:600;color:#647A74}
.section-block{margin-top:30px}.compact-block{margin-top:18px}.section-title{margin-bottom:14px}.section-title h2{font-size:22px;line-height:1.18;letter-spacing:-.02em;font-weight:600;margin-top:5px}.link-button{font-size:12px;font-weight:600;color:var(--brand)}

/* Home: one hero, few decisions, no dashboard-like framing */
.today-hero{background:linear-gradient(145deg,#123F3A,#1A514A);border-radius:22px;padding:34px 36px;box-shadow:0 18px 44px rgba(18,63,58,.15)}
.today-hero .hero-copy h1{font-size:clamp(30px,4.5vw,46px);font-weight:600;letter-spacing:-.035em;margin:0 0 7px}.today-hero .hero-copy p{font-size:13px;color:rgba(255,255,255,.72)}
.today-decision-card{background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}.today-verdict{font-size:20px!important;font-weight:600!important;line-height:1.35!important;margin:0 0 12px!important;color:#fff!important}.today-advice-list{border-top:1px solid rgba(255,255,255,.14)}.today-advice-line{padding:10px 0!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.11)!important;background:transparent!important;border-radius:0!important;min-height:0!important}.today-advice-line:last-child{border-bottom:0!important}.today-advice-line i{background:transparent!important;width:24px!important;height:auto!important;border-radius:0!important;font-size:17px!important}.today-advice-line b{font-size:13px!important;font-weight:500!important;color:rgba(255,255,255,.92)!important}.today-advice-line.boat{width:100%;text-align:left}
.home-detail-bar{margin-top:10px!important}.today-detail-actions{background:transparent!important;border:0!important;padding:0!important;gap:7px!important}.today-detail-actions button{min-height:38px!important;border:1px solid var(--line)!important;background:#fff!important;border-radius:12px!important;font-size:11px!important;font-weight:500!important;color:#52635E!important;box-shadow:none!important}.today-detail-actions button span{font-size:14px!important}
.brand-quick-section{margin-top:30px}.brand-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.brand-quick-grid .need-card{min-height:88px;border:1px solid var(--line);border-radius:16px;padding:15px;grid-template-columns:30px minmax(0,1fr) 12px;box-shadow:none;background:#fff}.brand-quick-grid .need-card b{font-size:14px;font-weight:600}.brand-quick-grid .need-card small{font-size:10px;line-height:1.4;color:#7A8581}.quick-line-icon{width:26px;height:26px;display:grid!important;place-items:center!important}.quick-line-icon svg{width:22px;height:22px;fill:none;stroke:var(--brand);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.brand-quick-grid .need-card u{font-size:18px;color:#A7B0AC}
#homeServicesSection{display:none!important}
.my-today-card{border:0;border-radius:22px;padding:20px 22px;background:#fff;box-shadow:none}.empty-day{padding:4px 0 12px}.empty-icon{background:var(--brand-soft);color:var(--brand)}

/* Editorial recommendations: image first, one clear action */
.recommendation-rail{grid-auto-columns:minmax(250px,31%);gap:13px;padding:1px 0 8px}.recommend-card{border:1px solid var(--line);border-radius:16px;box-shadow:none;background:#fff}.rec-image{aspect-ratio:16/9}.rec-body{padding:14px 15px 15px}.rec-body>div:first-child{display:grid;gap:3px}.rec-body small{font-size:9px;font-weight:500;letter-spacing:.04em}.rec-body h3{font-size:17px;font-weight:600;margin:0}.rec-body>strong{font-size:19px;font-weight:600;margin-top:7px;color:var(--brand)}.rec-body p{font-size:11px;line-height:1.55;min-height:34px;margin:8px 0 12px;color:#697570}.rec-actions{display:block!important}.rec-arrange{width:100%;height:40px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;background:var(--brand)!important}.recommendation-rail.single-recommendation .recommend-card{border-radius:22px}.recommendation-rail.single-recommendation .rec-body{padding:26px}.recommendation-rail.single-recommendation .rec-body h3{font-size:22px}.recommendation-rail.single-recommendation .rec-body>strong{font-size:24px}

/* Calm page heads */
.panel-heading{background:var(--brand);border-radius:22px;padding:30px 32px;box-shadow:none}.panel-heading h1{font-size:clamp(29px,4.5vw,42px);font-weight:600;letter-spacing:-.035em;margin:8px 0 9px}.panel-heading p{font-size:13px;line-height:1.65;color:rgba(255,255,255,.72);max-width:720px}.panel-heading .eyebrow{color:rgba(255,255,255,.64)}.guest-card{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.13);border-radius:16px}.guest-card label,.guest-card small{font-weight:500}.stepper button,.stepper input{border-radius:12px}.stepper button{font-weight:500}

/* Explore: six clear categories, premium catalog cards */
.discover-tools{top:74px;margin:14px 0 18px;padding:0;background:rgba(247,248,245,.96);border-radius:0}.search-box{height:44px;border-radius:12px;border-color:var(--line);box-shadow:none}.category-tabs{gap:7px;padding:9px 0 4px}.category-tab{border:1px solid #DCE3DF;background:#fff;border-radius:12px;padding:9px 13px;font-size:12px;font-weight:500;color:#5E6A66}.category-tab.active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.catalog{gap:18px}.catalog-section{border:0;border-radius:18px;background:#fff;box-shadow:none}.category-header{padding:17px 18px;border-bottom:1px solid transparent}.category-icon{display:none}.category-header h2{font-size:19px;font-weight:600}.category-header small{font-size:10px;font-weight:400;color:#808B87}.category-chevron{color:#99A39F;font-size:17px}.catalog-subhead{padding-left:16px!important;padding-right:16px!important}.catalog-subhead b{font-weight:600!important;color:#43534F!important}.catalog-subhead small{font-weight:400!important}
.category-products{gap:12px;padding:0 14px 16px}.product-card,.room-card{border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:none}.product-card.selected{border-color:#8FAEA6;box-shadow:0 0 0 2px rgba(18,63,58,.08)}.product-image{aspect-ratio:4/3}.product-body{padding:13px}.product-title-line{display:grid!important;gap:4px}.product-title-line h3{font-size:16px!important;font-weight:600!important;line-height:1.35!important;margin:0!important}.product-price{font-size:19px!important;font-weight:600!important;color:var(--brand)!important}.product-price small{font-weight:400!important}.product-teaser{font-size:11px!important;line-height:1.55!important;color:#6F7B76!important;margin:8px 0 11px!important;min-height:34px}.badges{gap:5px}.badge,.room-tag,.package-discount-badge{font-weight:500!important}.card-actions{grid-template-columns:1fr!important;gap:0!important}.card-actions .details-button{display:none!important}.select-button{height:39px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important}.detail-chip{font-size:9px;font-weight:500;border-radius:10px}.compact-controls{margin-top:10px!important}.compact-controls label{font-weight:500!important}.room-card-body{padding:12px}.room-card h3{font-weight:600}.room-price{font-weight:600}.room-actions{grid-template-columns:1fr!important}.room-actions .details-button{display:none!important}.room-actions button{font-weight:600}.room-hotel{font-weight:500}.room-image{aspect-ratio:4/3}.product-card.wide-last-card .product-image,.room-grid .wide-last-card .room-image{aspect-ratio:16/9}

/* Trip = private journey, not an order admin screen */
.trip-heading-with-recovery{align-items:center}.trip-recovery-button{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff;border-radius:12px;font-size:11px;font-weight:500;padding:9px 11px}.submitted-orders{border:0;border-radius:22px;padding:0;background:transparent}.submitted-orders>.trip-detail-head{padding:0 2px;margin:18px 0 10px}.submitted-orders>.trip-detail-head small{color:#7D8985}.active-trip-card{border:0!important;border-radius:22px!important;box-shadow:none!important}.active-trip-head{padding:20px 20px 16px;background:var(--brand);border-bottom:0;color:#fff}.active-trip-head span.trip-brand-mark{font-size:9px!important;letter-spacing:.12em!important;color:rgba(255,255,255,.58)!important;font-weight:500!important}.active-trip-head strong{font-size:18px;color:#fff;font-weight:600}.active-trip-head small{color:rgba(255,255,255,.64)!important}.active-trip-money b{color:#fff;font-size:22px;font-weight:600}.active-trip-money small{color:rgba(255,255,255,.62)!important}.active-trip-primary{margin:0;padding:18px 20px;border:0;border-radius:0;background:#F2F6F4}.active-trip-primary>span{font-weight:500}.active-trip-primary>strong{font-size:21px;font-weight:600}.active-today-itinerary,.active-trip-full-itinerary{margin-left:20px;margin-right:20px}.active-subhead b{font-weight:600}.active-today-row time{font-weight:600;color:var(--brand)}.active-today-row b{font-weight:500}.active-trip-quick-actions{margin:14px 20px}.active-trip-quick-actions button{height:42px;border-radius:12px;font-weight:600}.active-trip-folds>details>summary{padding:13px 20px;font-weight:500}.active-payment-summary b{font-weight:600}.active-cost-button{font-weight:600}.completed-trip-card{border-color:var(--line)!important;box-shadow:none!important}.trip-notification-center{border:0;border-radius:18px;box-shadow:none}.trip-dashboard,.trip-detail-card{border-color:var(--line)!important;box-shadow:none!important}.trip-stat strong,.trip-stat b{font-weight:600!important}

/* Service directory: clean list, no emoji-heavy dashboard feel */
.service-directory{gap:12px}.service-group{border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:none!important}.service-group h2{font-weight:600!important}.service-group p{color:#727E79!important}.service-group>button,.land-service-entry-row button{font-weight:600!important;border-radius:12px!important}

/* Buttons + fields */
.primary-button,.secondary-button,.ghost-button{height:50px;border-radius:14px;font-weight:600}.primary-button{background:var(--brand)}.secondary-button,.ghost-button{border-color:#DCE3DF}.modal-select button{background:var(--brand);border-radius:14px;font-weight:600}.modal-price{font-weight:600}.modal-content h2{font-weight:600}.summary{background:#F4F6F4}.summary .grand-total{color:var(--brand)}.explore-quote-bar{border-color:#D7E0DC;border-radius:16px;box-shadow:0 10px 30px rgba(18,63,58,.11)}.explore-quote-bar>button{background:var(--brand);font-weight:600;border-radius:12px}.explore-quote-main>b{color:var(--brand);font-weight:600}

/* Bottom navigation: fixed information architecture */
.app-bottom-nav{width:min(720px,100%);height:70px;border:0;border-top:1px solid var(--line);border-radius:0;background:rgba(255,255,255,.97);box-shadow:0 -8px 26px rgba(18,63,58,.055)}.nav-item{position:relative;gap:3px;color:#858F8B}.nav-item b{font-size:10px;font-weight:500}.nav-icon svg{stroke-width:1.6}.nav-item.active{color:var(--brand)}.nav-item.active .nav-icon svg{stroke-width:1.9}.nav-item.active:after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:22px;height:2px;border-radius:99px;background:var(--brand)}.nav-reminder-badge{background:#B84B46}.floating-help{border:1px solid #D7E0DC;box-shadow:0 8px 24px rgba(18,63,58,.10);font-weight:600}

/* Sheets */
.product-sheet,.quote-sheet,.help-sheet,.boat-sheet,.weather-sheet,.trip-recovery-sheet,.order-change-sheet{border-radius:22px 22px 0 0!important;box-shadow:0 24px 70px rgba(13,48,44,.18)!important}.sheet-close{box-shadow:0 2px 10px rgba(18,63,58,.08)}

@media(max-width:760px){
  body{padding-bottom:78px}.app-shell{padding:14px 16px 30px}.app-header{padding-left:16px;padding-right:16px}.today-hero{padding:25px 20px;border-radius:20px}.today-hero .hero-copy h1{font-size:30px}.today-verdict{font-size:18px!important}.section-block{margin-top:28px}.section-title h2{font-size:20px}.brand-quick-grid{grid-template-columns:1fr 1fr;gap:8px}.brand-quick-grid .need-card{min-height:82px;padding:13px;grid-template-columns:27px minmax(0,1fr) 10px}.brand-quick-grid .need-card b{font-size:13px}.recommendation-rail{grid-auto-columns:min(76vw,285px);gap:10px}.rec-body{padding:12px 13px 13px}.recommendation-rail.single-recommendation .rec-body{padding:16px}.recommendation-rail.single-recommendation .rec-body h3{font-size:19px}.panel-heading{padding:24px 20px;border-radius:20px}.panel-heading h1{font-size:29px}.discover-tools{top:66px;margin:10px -2px 14px}.category-tabs{padding-bottom:3px}.category-tab{padding:8px 11px}.category-products{gap:9px;padding:0 10px 12px}.category-products .product-body{padding:10px}.category-products .product-title-line h3{font-size:14px!important}.category-products .product-price{font-size:17px!important}.category-products .product-teaser{font-size:10px!important;line-height:1.45!important;min-height:30px}.category-products .select-button{height:36px!important}.room-card-body{padding:10px}.room-card h3{font-size:14px}.room-price{font-size:18px}.active-trip-head{padding:18px 16px 14px}.active-trip-primary{padding:16px}.active-today-itinerary,.active-trip-full-itinerary{margin-left:16px;margin-right:16px}.active-trip-quick-actions{margin-left:16px;margin-right:16px}.active-trip-folds>details>summary{padding-left:16px;padding-right:16px}.app-bottom-nav{height:68px}.nav-item b{font-size:9.5px}.floating-help{bottom:76px}
}
@media(max-width:370px){.brand-quick-grid{grid-template-columns:1fr}.category-tabs{gap:5px}.category-tab{font-size:11px;padding:8px 9px}.nav-item b{font-size:9px}.active-trip-money{display:none}}


/* V6.36.1 — clearer ferry schedule icon + restrained island opportunity entry */
.ferry-clock-icon svg{overflow:visible}.ferry-clock-icon circle{fill:var(--surface);stroke:currentColor}.nav-item .ferry-clock-icon circle{fill:rgba(255,255,255,.98)}
.home-opportunity-section{margin-top:34px;padding:25px 2px 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:30px;align-items:end}.home-opportunity-copy>span{font-size:10px;letter-spacing:.14em;color:var(--brand);font-weight:600}.home-opportunity-copy h2{margin:7px 0 8px;font-size:24px;line-height:1.2;letter-spacing:-.025em;font-weight:600}.home-opportunity-copy p{margin:0;color:var(--muted);font-size:13px;line-height:1.65;max-width:540px}.home-opportunity-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}.home-opportunity-actions button{min-width:0;border:0;border-bottom:1px solid var(--line);background:transparent;height:48px;padding:0 4px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text);font-size:13px;font-weight:600;text-align:left}.home-opportunity-actions button span{color:var(--brand);font-size:16px;font-weight:400}.home-opportunity-actions button:hover{color:var(--brand)}
@media(max-width:760px){.home-opportunity-section{grid-template-columns:1fr;gap:17px;margin-top:30px;padding:22px 0 4px}.home-opportunity-copy{padding:0 2px}.home-opportunity-copy h2{font-size:21px}.home-opportunity-copy p{font-size:12px}.home-opportunity-actions{grid-template-columns:1fr}.home-opportunity-actions button{height:45px;padding:0 2px}.nav-item .ferry-clock-icon svg{width:22px;height:22px}}


/* V6.36.2 — mobile explore alignment and clearer ferry navigation */
/* Keep "全部" as the default browse view; expose every precise category without hidden horizontal overflow. */
.category-tabs{flex-wrap:wrap;overflow:visible}
.ferry-icon svg{overflow:visible}

/* Two-column cards use a shared vertical rhythm so action buttons line up across each row. */
.category-products{align-items:stretch}
.category-products .product-card{display:flex;flex-direction:column;height:100%}
.category-products .product-body{display:flex;flex-direction:column;flex:1;min-height:0}
.category-products .product-title-line h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:43px}
.category-products .badges{min-height:25px;max-height:25px;overflow:hidden;align-items:center;flex-wrap:nowrap}
.category-products .product-teaser{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:35px;min-height:35px;max-height:35px}
.category-products .card-actions{margin-top:auto}

/* Help stays tight to the bottom navigation on Explore unless the selected-items quote bar is actually visible. */
.panel-explore-active .floating-help{bottom:76px}
.panel-explore-active.has-explore-quote .floating-help{bottom:158px}

@media(max-width:760px){
  .category-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:9px;padding-bottom:4px}
  .category-tab{width:100%;min-width:0;padding:8px 4px!important;text-align:center;font-size:11px!important;border-radius:11px;overflow:hidden;text-overflow:ellipsis}
  .category-products .product-title-line h3{min-height:38px}
  .category-products .badges{min-height:24px;max-height:24px}
  .category-products .product-teaser{height:30px;min-height:30px;max-height:30px}
  .panel-explore-active .floating-help{bottom:76px}
  .panel-explore-active.has-explore-quote .floating-help{bottom:150px}
}
@media(max-width:370px){
  .category-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
  .category-tab{font-size:10px!important;padding-left:2px!important;padding-right:2px!important}
}


/* V6.36.3 — compact one-line explore filters + non-sticky search + installable app shell */
/* Search and category controls now leave the screen naturally with the catalog instead of occupying the viewport. */
.discover-tools{position:relative!important;top:auto!important;z-index:auto!important;backdrop-filter:none!important}
.category-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:6px;scrollbar-width:none}
.category-tab{flex:0 0 auto}
.category-tab-all{color:var(--muted);background:transparent;border-color:#D7DEDB}
.category-tab-all.active{color:#fff;background:var(--brand);border-color:var(--brand)}

/* PWA prompt: deliberately quiet, in normal document flow, never floating over trip/project actions. */
.install-app-banner{margin:0 0 14px;padding:12px 12px 12px 14px;border:1px solid #DCE4E0;border-radius:14px;background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto 28px;align-items:center;gap:10px;box-shadow:0 7px 20px rgba(18,63,58,.045)}
.install-app-banner>div{display:grid;gap:2px;min-width:0}.install-app-banner b{font-size:13px;font-weight:600}.install-app-banner span{font-size:10.5px;line-height:1.45;color:var(--muted)}
.install-app-banner>button{border:0;cursor:pointer}.install-app-banner>#installAppButton{height:34px;padding:0 12px;border-radius:10px;background:var(--brand);color:#fff;font-size:11px;font-weight:600}.install-app-dismiss{width:28px;height:28px;border-radius:50%;background:transparent;color:#89928E;font-size:20px;line-height:1}
.install-guide-steps{display:grid;gap:9px;margin:15px 0 18px}.install-guide-step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#FAFBFA}.install-guide-step i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-style:normal;font-size:11px;font-weight:600}.install-guide-step b{display:block;font-size:12px;font-weight:600}.install-guide-step small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}

@media(max-width:760px){
  .discover-tools{margin:10px -2px 12px!important;padding:8px!important;background:transparent!important;border-radius:0!important}
  .search-box{height:44px}
  /* Seven controls remain one line. Wider four-character categories get more room; two-character categories stay compact. */
  .category-tabs{display:grid!important;grid-template-columns:.72fr 1.24fr 1.24fr .8fr .8fr .8fr .8fr;gap:4px!important;padding-top:7px!important;padding-bottom:1px!important;overflow:visible!important}
  .category-tab{width:100%;min-width:0!important;padding:7px 1px!important;border-radius:10px!important;font-size:10.5px!important;font-weight:600!important;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:clip}
  .category-tab-all{font-size:10px!important}
  .install-app-banner{margin:0 0 10px;padding:10px 9px 10px 11px;grid-template-columns:minmax(0,1fr) auto 25px;gap:7px;border-radius:12px}.install-app-banner b{font-size:12px}.install-app-banner span{font-size:9.5px}.install-app-banner>#installAppButton{height:32px;padding:0 10px}.install-app-dismiss{width:25px;height:25px;font-size:18px}
}
@media(max-width:350px){
  .category-tabs{gap:3px!important}
  .category-tab{font-size:9.5px!important;padding-left:0!important;padding-right:0!important}
  .category-tab-all{font-size:9px!important}
}


/* V6.36.4 — wider mobile canvas + friendlier home-screen prompt */
@media(max-width:760px){
  /* Reduce only the outer canvas gutter; keep card internals spacious. */
  .app-shell{padding-left:10px!important;padding-right:10px!important}
  .app-header{padding-left:12px!important;padding-right:12px!important}
  /* Catalog previously had a second 10px inset inside the page shell. Trim it so project imagery reads larger. */
  .category-products{padding-left:4px!important;padding-right:4px!important;gap:8px!important}
  .catalog-subhead{padding-left:10px!important;padding-right:10px!important}
  /* Keep search/filter aligned to the wider content edge without creating horizontal overflow. */
  .discover-tools{margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
}


/* V6.36.5 — compact catalog rhythm without sacrificing aligned actions */
/* Let real content determine vertical rhythm. Grid row stretch + action auto-margin still keeps paired buttons aligned. */
.category-products .product-title-line h3{min-height:0!important}
.category-products .badges{min-height:0!important;height:auto!important;max-height:24px!important;margin:6px 0 0!important}
.category-products .badges:not(:has(.badge,.package-discount-badge,.activity-promo-inline)){display:none!important}
.category-products .product-teaser{height:auto!important;min-height:0!important;max-height:none!important;margin:7px 0 10px!important}
.category-products .card-actions{margin-top:auto}
/* A lone/odd full-width card has no row partner to align with, so it stays fully content-driven and compact. */
.category-products .product-card.wide-last-card{height:auto!important}
.category-products .product-card.wide-last-card .product-body{flex:0 0 auto!important}
.category-products .product-card.wide-last-card .product-title-line h3{min-height:0!important}
.category-products .product-card.wide-last-card .badges{min-height:0!important;height:auto!important;max-height:24px!important}
.category-products .product-card.wide-last-card .product-teaser{height:auto!important;min-height:0!important;max-height:none!important}
.category-products .product-card.wide-last-card .card-actions{margin-top:0!important}
@media(max-width:760px){
  .category-products .product-title-line h3{min-height:0!important}
  .category-products .badges{min-height:0!important;height:auto!important;max-height:22px!important}
  .category-products .product-teaser{height:auto!important;min-height:0!important;max-height:none!important}
}


/* V6.36.6 — sticky category switcher + image-first explore rhythm */
/* Search stays in normal flow. Only the lightweight category switcher follows the guest while browsing. */
.explore-category-sticky{
  position:sticky;
  top:68px;
  z-index:39;
  margin:0 0 12px;
  padding:7px 0 8px;
  background:rgba(245,247,248,.96);
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(220,229,225,.92);
}
.explore-category-sticky .category-tabs{padding-top:0!important;padding-bottom:0!important}
.catalog,.catalog-section{scroll-margin-top:122px}

/* Explore images are the primary visual layer: strict ratios, no stretching, consistent crop. */
.category-products .product-image,
.room-grid .room-image{width:100%;overflow:hidden;background:#EAF0EE}
.category-products .product-image{aspect-ratio:4/3!important}
.room-grid .room-image{aspect-ratio:4/3!important}
.category-products .product-image img,
.room-grid .room-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 45%;
  image-rendering:auto;
}
.category-products .product-card.wide-last-card .product-image,
.room-grid .room-card.wide-last-card .room-image{aspect-ratio:16/9!important}
.category-products .product-card.wide-last-card .product-image img,
.room-grid .room-card.wide-last-card .room-image img{object-position:50% 50%}
/* Overlay controls stay inside a safe edge and never resize the photograph. */
.product-image .detail-chip,.room-image>.room-photo-count{right:8px;top:8px;max-width:calc(100% - 16px)}

@media(max-width:760px){
  .explore-category-sticky{
    top:62px;
    margin:0 -10px 10px;
    padding:6px 10px 7px;
    background:rgba(247,248,245,.965);
  }
  .catalog,.catalog-section{scroll-margin-top:112px}
  /* Keep all seven switches on one line in the sticky state. */
  .explore-category-sticky .category-tabs{display:grid!important;grid-template-columns:.72fr 1.24fr 1.24fr .8fr .8fr .8fr .8fr;gap:4px!important;overflow:visible!important}
  .explore-category-sticky .category-tab{min-height:34px;display:grid;place-items:center}
}
@media(max-width:350px){
  .explore-category-sticky{padding-left:7px;padding-right:7px}
  .explore-category-sticky .category-tabs{gap:3px!important}
}
@media(max-width:700px){
  /* Yacht add-ons are single-column editorial cards on mobile, so keep the stronger wide-image treatment. */
  .yacht-addon-grid .room-image{aspect-ratio:16/9!important}
}

/* V6.37.1 — editorial project detail pages + live suitability */
.product-detail-hero{aspect-ratio:16/9;background:#E9EFEC}
.product-detail-hero img{display:block;width:100%;height:100%;object-fit:cover}
.product-detail-editorial{padding:20px 20px max(18px,env(safe-area-inset-bottom))}
.product-detail-kicker{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.product-detail-editorial h2{margin:8px 0 6px!important;font-size:28px!important;line-height:1.16;letter-spacing:-.025em}
.product-detail-lead{margin:0;color:#4F5F5A;font-size:14px;line-height:1.72;max-width:620px}
.product-detail-price-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.product-detail-price-row .modal-price{font-size:26px;line-height:1.1}
.product-detail-price-row .modal-package-note{margin:0;text-align:right;max-width:240px}
.product-detail-badges{margin:10px 0 0!important}
.product-live-advice{margin:16px 0 4px;padding:14px 15px;border-radius:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;border:1px solid #DDE5E1;background:#F7F9F7}
.product-live-advice>div:first-child{display:grid;gap:4px;min-width:0}
.product-live-advice span{font-size:10px;letter-spacing:.08em;font-weight:600;color:#76827D}
.product-live-advice strong{font-size:16px;line-height:1.38;font-weight:600;color:var(--text)}
.product-live-advice small{font-size:11px;line-height:1.58;color:#68746F}
.product-live-advice.good{background:#F1F7F4;border-color:#D2E4DA}
.product-live-advice.good strong{color:#175F47}
.product-live-advice.warn{background:#FBF7EF;border-color:#E9DCC4}
.product-live-advice.warn strong{color:#8B5B1F}
.product-live-advice.bad{background:#FBF3F2;border-color:#E9D4D0}
.product-live-advice.bad strong{color:#9B4541}
.product-live-action button{border:0;background:transparent;color:var(--brand);padding:0;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer}
.product-detail-thumbs{margin:13px 0 0!important;padding-bottom:2px}
.product-detail-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.product-detail-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.product-detail-section-head span,.product-detail-note>span,.product-detail-description summary>span{font-size:12px;font-weight:600;color:#43514D}
.product-detail-includes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
.product-detail-includes li{position:relative;padding-left:17px;color:#5B6864;font-size:12px;line-height:1.5}
.product-detail-includes li:before{content:'✓';position:absolute;left:0;top:0;color:var(--brand);font-weight:700}
.product-detail-description{margin-top:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.product-detail-description summary{list-style:none;cursor:pointer;padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.product-detail-description summary::-webkit-details-marker{display:none}
.product-detail-description summary em{font-style:normal;color:var(--brand);font-size:11px;font-weight:600}
.product-detail-description[open] summary em{font-size:0}
.product-detail-description[open] summary em:after{content:'收起';font-size:11px}
.product-detail-description p{margin:0 0 15px;color:#65716D;font-size:12px;line-height:1.72}
.product-detail-note{padding:15px 0 2px}
.product-detail-note p{margin:6px 0 0;color:#68746F;font-size:11px;line-height:1.68}
.product-detail-select{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.product-detail-select button{height:50px!important;border-radius:14px!important;font-size:14px;font-weight:600!important}
@media(max-width:760px){
  .product-detail-editorial{padding:17px 16px max(16px,env(safe-area-inset-bottom))}
  .product-detail-editorial h2{font-size:24px!important}
  .product-detail-lead{font-size:13px;line-height:1.68}
  .product-detail-price-row{align-items:flex-start;flex-direction:column;gap:7px;margin-top:12px}
  .product-detail-price-row .modal-package-note{text-align:left;max-width:none}
  .product-live-advice{grid-template-columns:1fr;gap:8px;margin-top:14px;padding:13px 14px}
  .product-live-action{padding-top:2px}
  .product-detail-includes{grid-template-columns:1fr;gap:7px}
  .product-detail-thumbs button{width:68px;height:52px}
}
.product-live-advice{grid-template-columns:1fr}


/* V6.37.4 — branded PWA + guest settlement bill */
.install-app-banner{grid-template-columns:auto 1fr auto auto}.install-brand-icon{width:42px;height:42px;border-radius:12px;object-fit:cover;box-shadow:0 6px 18px rgba(18,63,58,.16)}
.guest-bill-sheet{width:min(560px,calc(100vw - 20px));max-height:min(82vh,760px);overflow:auto;background:#f8faf8;border-radius:24px;padding:22px;box-shadow:0 24px 70px rgba(15,42,38,.24);position:relative}.guest-bill-brand{display:flex;align-items:center;gap:12px;padding:2px 34px 16px 0;border-bottom:1px solid #dfe8e4}.guest-bill-brand img{width:52px;height:52px;border-radius:15px}.guest-bill-brand span{display:block;color:#67807a;font-size:9px;font-weight:900;letter-spacing:.13em}.guest-bill-brand h2{margin:3px 0 0;font-size:24px;color:#123f3a}.guest-bill-meta{display:flex;justify-content:space-between;gap:12px;padding:14px 0;color:#6f827d;font-size:12px}.guest-bill-lines{display:grid;gap:7px}.guest-bill-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid #e4ebe8}.guest-bill-line>div{min-width:0}.guest-bill-line b{display:block;color:#1c3631;font-size:13px}.guest-bill-line small{display:block;margin-top:2px;color:#7c8e89;font-size:10px}.guest-bill-line>strong{color:#123f3a;font-size:14px;white-space:nowrap}.guest-bill-totals{margin-top:14px;padding:14px;border-radius:16px;background:#edf4f1;display:grid;gap:9px}.guest-bill-totals>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:#536d67}.guest-bill-totals b{font-size:14px;color:#173f38}.guest-bill-totals .grand{padding-top:9px;border-top:1px solid #d8e4df;color:#123f3a;font-weight:900}.guest-bill-totals .grand b{font-size:20px}.guest-bill-totals .due b{color:#b45f19}.guest-bill-totals .refund b{color:#b03d34}.guest-bill-note{margin:12px 2px 0;color:#80908c;font-size:10px;line-height:1.55}.guest-bill-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:16px}.guest-bill-open{border:1px solid #cfe0da;background:#fff;color:#123f3a;border-radius:11px;height:38px;font-weight:850}.active-trip-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.completed-trip-actions .guest-bill-open{height:36px}.active-payment-summary .charge-note{grid-column:1/-1;color:#6d817b;font-size:10px}.
@media(max-width:560px){.guest-bill-sheet{padding:18px 16px;border-radius:22px}.guest-bill-brand h2{font-size:22px}.guest-bill-actions{grid-template-columns:1fr}.active-trip-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.active-trip-quick-actions button{font-size:11px;padding-inline:5px}}


/* V6.37.8 — package value reminder while guests are choosing projects */
.explore-combo-note{display:flex;align-items:baseline;gap:7px;margin:2px 2px 12px;padding:0;color:#71807b;font-size:11px;line-height:1.45}
.explore-combo-note strong{color:var(--brand);font-size:12px;font-weight:750}
.explore-combo-note span{color:#7b8581}
@media(max-width:560px){.explore-combo-note{margin:1px 2px 10px;gap:6px;font-size:10px}.explore-combo-note strong{font-size:11px}}


/* V6.37.9 — make the package-value reminder visible without looking promotional */
.explore-combo-note{display:flex;align-items:center;justify-content:flex-start;gap:7px;margin:4px 0 12px;padding:9px 11px;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;background:rgba(18,63,58,.055);color:#526b65;font-size:12px;line-height:1.35}
.explore-combo-note strong{color:var(--brand);font-size:13px;font-weight:850;letter-spacing:.01em}
.explore-combo-note span{color:#61736e;font-size:12px;font-weight:650}
@media(max-width:560px){.explore-combo-note{margin:3px 0 10px;padding:8px 9px;gap:6px;font-size:12px}.explore-combo-note strong{font-size:13px}.explore-combo-note span{font-size:11px}}

/* V6.37.10 — clearer package-value cue + simpler selected-project bar */
.explore-combo-note{margin:6px 0 12px!important;padding:10px 12px!important;border-left-width:4px!important;background:rgba(18,63,58,.075)!important;box-shadow:inset 0 0 0 1px rgba(18,63,58,.045)}
.explore-combo-note strong{font-size:14px!important;font-weight:850!important;color:#123f3a!important}.explore-combo-note span{font-size:12px!important;color:#5e736d!important;font-weight:650!important}
.explore-quote-copy-simple{display:flex;align-items:center;gap:14px;min-width:0}.explore-quote-copy-simple>#exploreSelectedCount{font-size:12px;color:#5d706b;white-space:nowrap}.explore-quote-total{display:flex;align-items:baseline;gap:6px;min-width:0}.explore-quote-total span{font-size:10px;color:#7b8a86;white-space:nowrap}.explore-quote-total b{font-size:22px;color:var(--brand);font-weight:650;letter-spacing:-.02em;white-space:nowrap}.explore-quote-bar{padding-top:10px!important;padding-bottom:10px!important}
@media(max-width:560px){.explore-combo-note{display:grid!important;gap:2px!important;padding:10px 11px!important}.explore-combo-note strong{font-size:14px!important}.explore-combo-note span{font-size:11px!important}.explore-quote-copy-simple{display:grid;gap:2px}.explore-quote-total{gap:5px}.explore-quote-total b{font-size:20px}.explore-quote-bar{grid-template-columns:minmax(0,1fr) 112px!important;gap:8px!important}.explore-quote-bar>button{max-width:none!important;width:100%!important}}

/* V6.37.11: action button labels must be optically centered on iOS/WebKit. */
.home-stage-actions button,.active-trip-quick-actions button,.primary-button,.secondary-button,.ghost-button{display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.home-stage-actions button{padding-left:8px;padding-right:8px}

/* V6.37.15 — Explore: unified quick cards + accommodation/yacht immersive gallery views */
.catalog-card-thumbs{display:none}
.room-teaser{margin:7px 0 9px;color:var(--muted);font-size:11px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.catalog-gallery-main{cursor:pointer}
.catalog-thumb{padding:0;border:1px solid transparent;background:#fff;border-radius:9px;overflow:hidden;aspect-ratio:4/3;cursor:pointer;min-width:0}
.catalog-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.catalog-thumb.active{border-color:var(--brand);box-shadow:0 0 0 1px rgba(18,63,58,.12)}

/* “全部”、搜索结果及普通项目分类统一为快速浏览横卡。 */
.catalog.catalog-view-quick .category-products,
.catalog.catalog-view-quick .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{display:grid!important;grid-template-columns:minmax(118px,38%) minmax(0,1fr)!important;height:auto!important;min-height:154px;align-items:stretch;border-radius:16px;overflow:hidden}
.catalog.catalog-view-quick .product-card.wide-last-card{grid-column:auto!important;width:auto!important}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery{width:100%;height:100%;min-height:154px;aspect-ratio:auto!important}
.catalog.catalog-view-quick .catalog-gallery{display:block}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .catalog-gallery-main{border-radius:0!important}
.catalog.catalog-view-quick .category-products .product-image img,
.catalog.catalog-view-quick .room-grid .room-image img{height:100%!important;min-height:154px;object-fit:cover}
.catalog.catalog-view-quick .catalog-card-thumbs{display:none!important}
.catalog.catalog-view-quick .product-body,
.catalog.catalog-view-quick .room-card-body{padding:12px!important;display:flex!important;flex-direction:column;justify-content:flex-start;min-width:0}
.catalog.catalog-view-quick .product-title-line{gap:3px!important}
.catalog.catalog-view-quick .product-title-line h3,
.catalog.catalog-view-quick .room-card h3{font-size:15px!important;line-height:1.35!important;min-height:0!important;margin:0 0 3px!important;-webkit-line-clamp:2}
.catalog.catalog-view-quick .product-price,
.catalog.catalog-view-quick .room-price{font-size:18px!important;line-height:1.2;margin:1px 0 0}
.catalog.catalog-view-quick .product-teaser,
.catalog.catalog-view-quick .room-teaser{font-size:10.5px!important;line-height:1.48!important;min-height:0!important;height:auto!important;margin:7px 0 8px!important;-webkit-line-clamp:2}
.catalog.catalog-view-quick .badges,
.catalog.catalog-view-quick .room-tags{margin:0 0 8px!important;min-height:0!important;max-height:23px!important;overflow:hidden}
.catalog.catalog-view-quick .card-actions,
.catalog.catalog-view-quick .room-actions{margin-top:auto!important}
.catalog.catalog-view-quick .select-button,
.catalog.catalog-view-quick .room-actions button{height:36px!important;font-size:11px!important;border-radius:11px!important}
.catalog.catalog-view-quick .room-hotel{font-size:9px;margin-bottom:3px}
.catalog.catalog-view-quick .hotel-tabs,
.catalog.catalog-view-quick .hotel-panel-head,
.catalog.catalog-view-quick .catalog-subhead,
.catalog.catalog-view-quick .yacht-tabs,
.catalog.catalog-view-quick .yacht-showcase,
.catalog.catalog-view-quick .yacht-route-heading{display:none!important}
.catalog.catalog-view-quick .accommodation-section .hotel-browser,
.catalog.catalog-view-quick .yacht-browser{padding:0 14px 16px!important}
.catalog.catalog-view-quick .hotel-panels,
.catalog.catalog-view-quick .yacht-panels{gap:10px!important}
.catalog.catalog-view-quick .hotel-panel,
.catalog.catalog-view-quick .yacht-panel{gap:0!important}
.catalog.catalog-view-quick .yacht-subsection,
.catalog.catalog-view-quick .yacht-addon-subsection,
.catalog.catalog-view-quick .standard-project-subsection,
.catalog.catalog-view-quick .fastboat-subsection{border-top:0!important;padding-top:0!important}

/* 住宿分类：大图 + 最多6张缩略图 + 信息。 */
.catalog.catalog-view-accommodation .accommodation-section .hotel-browser{padding:0 16px 18px}
.catalog.catalog-view-accommodation .room-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important}
.catalog.catalog-view-accommodation .room-card{display:block!important;border-radius:19px;overflow:hidden}
.catalog.catalog-view-accommodation .room-card.wide-last-card{grid-column:auto!important;width:auto!important}
.catalog.catalog-view-accommodation .catalog-gallery{padding:0;background:#fff}
.catalog.catalog-view-accommodation .catalog-gallery-main{display:block;width:100%;height:auto;aspect-ratio:16/9!important;background:#eaf0ee;border:0;padding:0;overflow:hidden}
.catalog.catalog-view-accommodation .catalog-gallery-main img{display:block;width:100%;height:100%;object-fit:cover}
.catalog.catalog-view-accommodation .catalog-card-thumbs{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:7px 8px 0}
.catalog.catalog-view-accommodation .room-card-body{padding:14px 15px 15px}
.catalog.catalog-view-accommodation .room-card h3{font-size:18px!important;min-height:0!important;margin:4px 0 6px}
.catalog.catalog-view-accommodation .room-price{font-size:21px!important}
.catalog.catalog-view-accommodation .room-teaser{font-size:11.5px;line-height:1.6;margin:8px 0 9px;-webkit-line-clamp:2}
.catalog.catalog-view-accommodation .room-tags{margin:7px 0 10px}
.catalog.catalog-view-accommodation .room-actions .details-button{display:none!important}

/* 游艇分类：先看规格大图，再选航线。 */
.yacht-showcase{display:none}
.yacht-route-heading{display:none}
.catalog.catalog-view-yacht .yacht-browser{padding:0 16px 18px!important}
.catalog.catalog-view-yacht .yacht-showcase{display:block;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:14px}
.catalog.catalog-view-yacht .yacht-showcase-main{position:relative;display:block;width:100%;padding:0;border:0;background:#eaf0ee;aspect-ratio:16/9;overflow:hidden;cursor:pointer}
.catalog.catalog-view-yacht .yacht-showcase-main img{display:block;width:100%;height:100%;object-fit:cover}
.catalog.catalog-view-yacht .yacht-showcase-main>.room-photo-count{position:absolute;right:10px;top:10px;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.93);font-size:9px;font-weight:700}
.catalog.catalog-view-yacht .yacht-showcase .catalog-card-thumbs{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px 9px 0}
.catalog.catalog-view-yacht .yacht-showcase-info{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:14px 16px 16px}
.catalog.catalog-view-yacht .yacht-showcase-info>div{min-width:0}
.catalog.catalog-view-yacht .yacht-showcase-info small{font-size:9px;letter-spacing:.12em;color:#7a8985}
.catalog.catalog-view-yacht .yacht-showcase-info h3{font-size:21px;margin:4px 0 4px;line-height:1.2}
.catalog.catalog-view-yacht .yacht-showcase-info p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}
.catalog.catalog-view-yacht .yacht-showcase-info>strong{flex:0 0 auto;color:var(--brand);font-size:21px;white-space:nowrap}
.catalog.catalog-view-yacht .yacht-showcase-info>strong small{font-size:9px;letter-spacing:0;font-weight:500;color:var(--muted)}
.catalog.catalog-view-yacht .yacht-route-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding:3px 2px 8px}
.catalog.catalog-view-yacht .yacht-route-heading b{font-size:14px}
.catalog.catalog-view-yacht .yacht-route-heading small{font-size:9px;color:var(--muted)}
.catalog.catalog-view-yacht .yacht-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:0!important}
.catalog.catalog-view-yacht .yacht-grid .yacht-card{display:block!important;border-radius:15px!important;background:#f9fbfa}
.catalog.catalog-view-yacht .yacht-grid .yacht-card>.catalog-gallery{display:none!important}
.catalog.catalog-view-yacht .yacht-grid .room-card-body{padding:13px!important}
.catalog.catalog-view-yacht .yacht-grid .room-card h3{min-height:0!important;font-size:15px!important;margin:4px 0 6px}
.catalog.catalog-view-yacht .yacht-grid .room-price{font-size:19px!important}
.catalog.catalog-view-yacht .yacht-grid .room-teaser{display:none!important}
.catalog.catalog-view-yacht .yacht-grid .room-actions .details-button{display:none!important}
.catalog.catalog-view-yacht .yacht-addon-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

@media(max-width:760px){
  .catalog.catalog-view-quick .category-products,
  .catalog.catalog-view-quick .room-grid{grid-template-columns:1fr!important;gap:8px!important;padding-left:4px!important;padding-right:4px!important}
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{grid-template-columns:minmax(112px,38%) minmax(0,1fr)!important;min-height:144px}
  .catalog.catalog-view-quick .category-products .product-image,
  .catalog.catalog-view-quick .room-grid .room-image,
  .catalog.catalog-view-quick .catalog-gallery{min-height:144px}
  .catalog.catalog-view-quick .category-products .product-image img,
  .catalog.catalog-view-quick .room-grid .room-image img{min-height:144px}
  .catalog.catalog-view-quick .product-body,
  .catalog.catalog-view-quick .room-card-body{padding:10px 11px!important}
  .catalog.catalog-view-quick .product-title-line h3,
  .catalog.catalog-view-quick .room-card h3{font-size:14px!important}
  .catalog.catalog-view-quick .product-price,
  .catalog.catalog-view-quick .room-price{font-size:17px!important}
  .catalog.catalog-view-quick .product-teaser,
  .catalog.catalog-view-quick .room-teaser{font-size:10px!important;margin:6px 0 7px!important}
  .catalog.catalog-view-quick .accommodation-section .hotel-browser,
  .catalog.catalog-view-quick .yacht-browser{padding-left:4px!important;padding-right:4px!important}

  .catalog.catalog-view-accommodation .accommodation-section .hotel-browser{padding:0 4px 14px!important}
  .catalog.catalog-view-accommodation .room-grid{grid-template-columns:1fr!important;gap:12px!important}
  .catalog.catalog-view-accommodation .room-card.wide-last-card{grid-column:1!important}
  .catalog.catalog-view-accommodation .catalog-gallery-main{aspect-ratio:16/9!important}
  .catalog.catalog-view-accommodation .catalog-card-thumbs{gap:5px;padding:6px 7px 0}
  .catalog.catalog-view-accommodation .catalog-thumb{border-radius:7px}
  .catalog.catalog-view-accommodation .room-card-body{padding:12px 13px 13px}
  .catalog.catalog-view-accommodation .room-card h3{font-size:17px!important}
  .catalog.catalog-view-accommodation .room-price{font-size:20px!important}

  .catalog.catalog-view-yacht .yacht-browser{padding:0 4px 14px!important}
  .catalog.catalog-view-yacht .yacht-showcase{border-radius:18px;margin-bottom:12px}
  .catalog.catalog-view-yacht .yacht-showcase .catalog-card-thumbs{gap:5px;padding:6px 7px 0}
  .catalog.catalog-view-yacht .yacht-showcase-info{display:block;padding:12px 13px 14px}
  .catalog.catalog-view-yacht .yacht-showcase-info h3{font-size:19px}
  .catalog.catalog-view-yacht .yacht-showcase-info>strong{display:block;margin-top:8px;font-size:20px}
  .catalog.catalog-view-yacht .yacht-route-heading{padding:2px 2px 7px}
  .catalog.catalog-view-yacht .yacht-grid{grid-template-columns:1fr!important;gap:8px!important}
  .catalog.catalog-view-yacht .yacht-addon-grid{grid-template-columns:1fr!important;padding-left:4px!important;padding-right:4px!important}
}
.catalog.catalog-view-quick .compact-controls{grid-template-columns:1fr!important;gap:7px!important}

/* V6.37.16 — compact quick cards, four-corner image radius + one-line live activity advice */
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{
  height:176px!important;
  min-height:176px!important;
}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery{
  width:calc(100% - 12px)!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1/1!important;
  margin:6px!important;
  align-self:center!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.catalog.catalog-view-quick .catalog-gallery-main{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:1/1!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.catalog.catalog-view-quick .category-products .product-image img,
.catalog.catalog-view-quick .room-grid .room-image img,
.catalog.catalog-view-quick .catalog-gallery-main img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}
.catalog.catalog-view-quick .product-quick-signal{
  display:flex;
  align-items:center;
  gap:5px;
  max-width:100%;
  min-height:24px;
  margin:5px 0 1px;
  padding:4px 7px;
  border-radius:8px;
  background:#f3f6f5;
  color:#50625e;
  font-size:9.5px;
  font-weight:650;
  line-height:1.35;
  overflow:hidden;
}
.catalog.catalog-view-quick .product-quick-signal i{
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#82918e;
}
.catalog.catalog-view-quick .product-quick-signal span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalog.catalog-view-quick .product-quick-signal.good{background:#edf7f2;color:#176d50}
.catalog.catalog-view-quick .product-quick-signal.good i{background:#188762}
.catalog.catalog-view-quick .product-quick-signal.warn{background:#fff6e8;color:#9c5e13}
.catalog.catalog-view-quick .product-quick-signal.warn i{background:#c97818}
.catalog.catalog-view-quick .product-quick-signal.bad{background:#fff0ee;color:#a43838}
.catalog.catalog-view-quick .product-quick-signal.bad i{background:#c73c3c}
.catalog.catalog-view-quick .has-live-signal .product-teaser{
  -webkit-line-clamp:1!important;
  margin:4px 0 6px!important;
}

/* Immersive accommodation/yacht galleries keep a small four-corner radius on the photo itself. */
.catalog.catalog-view-accommodation .catalog-gallery-main{
  width:calc(100% - 14px)!important;
  margin:7px 7px 0!important;
  border-radius:10px!important;
}
.catalog.catalog-view-yacht .yacht-showcase-main{
  width:calc(100% - 14px)!important;
  margin:7px 7px 0!important;
  border-radius:10px!important;
}

@media(max-width:760px){
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{
    height:170px!important;
    min-height:170px!important;
  }
  .catalog.catalog-view-quick .product-quick-signal{font-size:9px;padding:4px 6px;min-height:23px}
}
.catalog.catalog-view-quick .product-card.selected{
  height:auto!important;
  min-height:170px!important;
}
/* Final quick-card fit: one concise description line; live-condition cards use the condition line as their detail. */
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{
  height:186px!important;
  min-height:186px!important;
}
.catalog.catalog-view-quick .product-teaser,
.catalog.catalog-view-quick .room-teaser{
  -webkit-line-clamp:1!important;
  white-space:normal;
}
.catalog.catalog-view-quick .has-live-signal .product-teaser{display:none!important}
.catalog.catalog-view-quick .product-card.selected{
  height:auto!important;
  min-height:186px!important;
}
@media(max-width:760px){
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{height:184px!important;min-height:184px!important}
  .catalog.catalog-view-quick .product-card.selected{height:auto!important;min-height:184px!important}
}

/* V6.37.17 — Booking/Agoda-inspired generous quick-card imagery.
   Photo is the first visual anchor: ~41% width, nearly full card height,
   with only a tiny breathing gap and a restrained four-corner radius. */
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{
  grid-template-columns:minmax(132px,41%) minmax(0,1fr)!important;
  height:184px!important;
  min-height:184px!important;
  align-items:stretch!important;
}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery{
  width:calc(100% - 3px)!important;
  height:calc(100% - 6px)!important;
  min-height:0!important;
  aspect-ratio:auto!important;
  margin:3px 0 3px 3px!important;
  align-self:stretch!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.catalog.catalog-view-quick .catalog-gallery-main{
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  margin:0!important;
  border-radius:10px!important;
  overflow:hidden!important;
}
.catalog.catalog-view-quick .category-products .product-image img,
.catalog.catalog-view-quick .room-grid .room-image img,
.catalog.catalog-view-quick .catalog-gallery-main img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  object-fit:cover!important;
}
.catalog.catalog-view-quick .product-body,
.catalog.catalog-view-quick .room-card-body{
  padding:11px 12px 10px 13px!important;
}
/* Immersive accommodation / yacht views also lose the thick inset frame. */
.catalog.catalog-view-accommodation .catalog-gallery-main,
.catalog.catalog-view-yacht .yacht-showcase-main{
  width:calc(100% - 6px)!important;
  margin:3px 3px 0!important;
  border-radius:10px!important;
}
@media(max-width:760px){
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{
    grid-template-columns:minmax(132px,41%) minmax(0,1fr)!important;
    height:184px!important;
    min-height:184px!important;
  }
  .catalog.catalog-view-quick .category-products .product-image,
  .catalog.catalog-view-quick .room-grid .room-image,
  .catalog.catalog-view-quick .catalog-gallery{
    width:calc(100% - 3px)!important;
    height:calc(100% - 6px)!important;
    margin:3px 0 3px 3px!important;
  }
  .catalog.catalog-view-quick .product-body,
  .catalog.catalog-view-quick .room-card-body{
    padding:10px 11px 9px 12px!important;
  }
  .catalog.catalog-view-quick .product-card.selected{
    height:auto!important;
    min-height:184px!important;
  }
}

/* V6.37.18 — clean imagery + stable quick-card actions.
   Catalog photos are presentation-only: no text, photo count, detail chip or promo badge overlays.
   Activity/promo labels live in the text column; the primary action stays pinned to one baseline. */
.catalog .product-image>.detail-chip,
.catalog .product-image>.activity-promo-badge,
.catalog .room-image>.room-photo-count,
.catalog .room-image>.activity-promo-badge,
.catalog .yacht-showcase-main>.room-photo-count,
.catalog .yacht-showcase-main>.activity-promo-badge{
  display:none!important;
}
.catalog .product-image,
.catalog .room-image,
.catalog .catalog-gallery-main,
.catalog .yacht-showcase-main{
  cursor:pointer;
}
.catalog-activity-badge{
  position:static!important;
  align-self:flex-start;
  width:auto!important;
  max-width:100%;
  margin:5px 0 0!important;
  padding:4px 7px!important;
  border-radius:7px!important;
  font-size:9px!important;
  line-height:1.15!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:none!important;
}
.rec-body>.catalog-activity-badge{margin:6px 0 0!important}

/* Quick browsing: reserve a fixed bottom action zone so every Select button aligns. */
.catalog.catalog-view-quick .product-body,
.catalog.catalog-view-quick .room-card-body{
  position:relative!important;
  min-height:0!important;
  overflow:hidden!important;
  padding-bottom:55px!important;
}
.catalog.catalog-view-quick .card-actions,
.catalog.catalog-view-quick .room-actions{
  position:absolute!important;
  left:13px!important;
  right:12px!important;
  bottom:10px!important;
  width:auto!important;
  margin:0!important;
  z-index:2;
}
.catalog.catalog-view-quick .card-actions .select-button,
.catalog.catalog-view-quick .room-actions .select-button{
  width:100%!important;
  min-width:0!important;
}
.catalog.catalog-view-quick .product-card.selected .product-body,
.catalog.catalog-view-quick .product-card.selected .room-card-body{
  overflow:visible!important;
  padding-bottom:10px!important;
}
.catalog.catalog-view-quick .product-card.selected .card-actions,
.catalog.catalog-view-quick .product-card.selected .room-actions{
  position:static!important;
  width:100%!important;
  margin-top:8px!important;
}
.catalog.catalog-view-quick .product-card.selected .compact-controls,
.catalog.catalog-view-quick .product-card.selected .room-selection-controls{
  position:static!important;
}
/* Keep the information column concise: promo label first, then live advice / one-line copy. */
.catalog.catalog-view-quick .catalog-activity-badge{margin-top:4px!important}
.catalog.catalog-view-quick .badges,
.catalog.catalog-view-quick .room-tags{
  flex:0 0 auto;
  max-height:21px!important;
  margin-top:4px!important;
  margin-bottom:3px!important;
}
.catalog.catalog-view-quick .product-quick-signal{flex:0 0 auto;margin-top:4px!important}
.catalog.catalog-view-quick .product-teaser,
.catalog.catalog-view-quick .room-teaser{margin-top:4px!important;margin-bottom:0!important}

@media(max-width:760px){
  .catalog.catalog-view-quick .card-actions,
  .catalog.catalog-view-quick .room-actions{left:12px!important;right:11px!important;bottom:9px!important}
  .catalog.catalog-view-quick .product-body,
  .catalog.catalog-view-quick .room-card-body{padding-bottom:53px!important}
  .catalog.catalog-view-quick .product-card.selected .product-body,
  .catalog.catalog-view-quick .product-card.selected .room-card-body{padding-bottom:9px!important}
}

/* V6.37.20–V6.37.21 — OTA-style continuous quick list.
   Quick browsing no longer wraps every product in a rounded card. Rows sit on one
   clean white surface, separated only by a hairline; V6.37.21 expands adjacent
   image breathing space to about 15px without shrinking the image itself. */
.catalog.catalog-view-quick{
  gap:24px!important;
}
.catalog.catalog-view-quick .catalog-section{
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  background:transparent!important;
  box-shadow:none!important;
}
.catalog.catalog-view-quick .category-header{
  padding:14px 12px 10px!important;
  border:0!important;
  border-radius:0!important;
  background:#fff!important;
}
.catalog.catalog-view-quick .category-products,
.catalog.catalog-view-quick .room-grid{
  gap:0!important;
  padding:0 10px!important;
  background:#fff!important;
}
.catalog.catalog-view-quick .accommodation-section .hotel-browser,
.catalog.catalog-view-quick .yacht-browser{
  padding:0!important;
}
.catalog.catalog-view-quick .hotel-panels,
.catalog.catalog-view-quick .hotel-panel,
.catalog.catalog-view-quick .yacht-panels,
.catalog.catalog-view-quick .yacht-panel{
  gap:0!important;
}
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{
  position:relative!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:visible!important;
  background:#fff!important;
  height:193px!important;
  min-height:193px!important;
}
.catalog.catalog-view-quick .category-products .product-card::after,
.catalog.catalog-view-quick .room-grid .product-card::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:#e7ecea;
  pointer-events:none;
}
.catalog.catalog-view-quick .category-products .product-card:last-child::after,
.catalog.catalog-view-quick .room-grid .product-card:last-child::after{
  opacity:.65;
}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery{
  width:calc(100% - 5px)!important;
  height:calc(100% - 15px)!important;
  min-height:0!important;
  margin:7.5px 0!important;
  border-radius:9px!important;
  align-self:start!important;
}
.catalog.catalog-view-quick .catalog-gallery-main{
  border-radius:9px!important;
}
.catalog.catalog-view-quick .product-body,
.catalog.catalog-view-quick .room-card-body{
  padding:10px 11px 9px 12px!important;
}
.catalog.catalog-view-quick .product-card.selected{
  height:auto!important;
  min-height:193px!important;
  border:0!important;
  border-radius:0!important;
  background:#fbfdfc!important;
  box-shadow:inset 3px 0 0 rgba(18,63,58,.62)!important;
}
.catalog.catalog-view-quick .product-card.selected .product-image,
.catalog.catalog-view-quick .product-card.selected .room-image,
.catalog.catalog-view-quick .product-card.selected .catalog-gallery{
  height:178px!important;
  min-height:178px!important;
  align-self:start!important;
}
.catalog.catalog-view-quick .standard-project-subsection,
.catalog.catalog-view-quick .fastboat-subsection,
.catalog.catalog-view-quick .yacht-subsection,
.catalog.catalog-view-quick .yacht-addon-subsection{
  border-top:0!important;
  padding-top:0!important;
}

@media(min-width:761px){
  .catalog.catalog-view-quick .category-products,
  .catalog.catalog-view-quick .room-grid{
    column-gap:18px!important;
    row-gap:0!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
}
@media(max-width:760px){
  .catalog.catalog-view-quick{
    gap:24px!important;
  }
  .catalog.catalog-view-quick .category-products,
  .catalog.catalog-view-quick .room-grid{
    grid-template-columns:1fr!important;
    gap:0!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{
    height:193px!important;
    min-height:193px!important;
  }
  .catalog.catalog-view-quick .category-products .product-image,
  .catalog.catalog-view-quick .room-grid .room-image,
  .catalog.catalog-view-quick .catalog-gallery{
    width:calc(100% - 5px)!important;
    height:calc(100% - 15px)!important;
    margin:7.5px 0!important;
  }
  .catalog.catalog-view-quick .product-card.selected{
    height:auto!important;
    min-height:193px!important;
  }
  .catalog.catalog-view-quick .product-card.selected .product-image,
  .catalog.catalog-view-quick .product-card.selected .room-image,
  .catalog.catalog-view-quick .product-card.selected .catalog-gallery{
    height:178px!important;
    min-height:178px!important;
  }
}

/* V6.37.22 — richer OTA-style quick-card information hierarchy.
   In quick browsing, the title/decision facts occupy the upper body while
   the primary action sits bottom-left and the price anchors bottom-right. */
.quick-card-facts{display:none}
.catalog.catalog-view-quick .quick-card-facts{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  max-height:43px;
  margin:5px 0 1px;
  overflow:hidden;
}
.catalog.catalog-view-quick .quick-card-facts span{
  display:inline-flex;
  align-items:center;
  min-width:0;
  height:20px;
  padding:0 6px;
  border-radius:6px;
  background:#f1f5f3;
  color:#526862;
  font-size:8.5px;
  font-weight:650;
  line-height:1;
  white-space:nowrap;
}
.catalog.catalog-view-quick .product-body,
.catalog.catalog-view-quick .room-card-body{
  padding:10px 11px 54px 12px!important;
}
.catalog.catalog-view-quick .product-title-line{
  display:block!important;
  min-width:0;
}
.catalog.catalog-view-quick .product-price,
.catalog.catalog-view-quick .room-price{
  position:absolute!important;
  right:11px!important;
  bottom:12px!important;
  z-index:3;
  max-width:52%;
  margin:0!important;
  color:var(--brand)!important;
  font-size:20px!important;
  font-weight:700!important;
  line-height:1.05!important;
  text-align:right;
  white-space:nowrap;
}
.catalog.catalog-view-quick .product-price small,
.catalog.catalog-view-quick .room-price small{
  margin-left:3px;
  color:#778680!important;
  font-size:8px!important;
  font-weight:500!important;
}
.catalog.catalog-view-quick .card-actions,
.catalog.catalog-view-quick .room-actions{
  position:absolute!important;
  left:12px!important;
  right:auto!important;
  bottom:9px!important;
  width:43%!important;
  min-width:72px;
  max-width:96px;
  margin:0!important;
  z-index:3;
}
.catalog.catalog-view-quick .card-actions .select-button,
.catalog.catalog-view-quick .room-actions .select-button{
  width:100%!important;
  height:34px!important;
  padding:0 6px!important;
  border-radius:9px!important;
  font-size:10.5px!important;
  font-weight:650!important;
}
.catalog.catalog-view-quick .product-teaser,
.catalog.catalog-view-quick .room-teaser{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
  margin:5px 0 0!important;
  font-size:9.8px!important;
  line-height:1.45!important;
  color:#6d7a76!important;
}
.catalog.catalog-view-quick .has-live-signal .product-teaser{
  display:none!important;
}
.catalog.catalog-view-quick .badges,
.catalog.catalog-view-quick .room-tags{
  margin-top:4px!important;
  margin-bottom:0!important;
}
.catalog.catalog-view-quick .product-quick-signal{
  margin-top:5px!important;
  margin-bottom:0!important;
}
/* The new richer column gets a little more vertical room; image size stays large. */
.catalog.catalog-view-quick .category-products .product-card,
.catalog.catalog-view-quick .room-grid .product-card{
  height:198px!important;
  min-height:198px!important;
}
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery{
  height:calc(100% - 15px)!important;
}
/* Selected cards expand for steppers; price returns to the content flow to avoid
   colliding with quantity controls, while the browsing layout remains unchanged. */
.catalog.catalog-view-quick .product-card.selected .product-body,
.catalog.catalog-view-quick .product-card.selected .room-card-body{
  padding-bottom:10px!important;
  overflow:visible!important;
}
.catalog.catalog-view-quick .product-card.selected .product-price,
.catalog.catalog-view-quick .product-card.selected .room-price{
  position:static!important;
  display:block;
  max-width:none;
  margin:7px 0 0!important;
  text-align:left;
}
.catalog.catalog-view-quick .product-card.selected .card-actions,
.catalog.catalog-view-quick .product-card.selected .room-actions{
  position:static!important;
  width:min(96px,48%)!important;
  max-width:none;
  margin-top:8px!important;
}
.catalog.catalog-view-quick .product-card.selected{
  height:auto!important;
  min-height:198px!important;
}
.catalog.catalog-view-quick .product-card.selected .product-image,
.catalog.catalog-view-quick .product-card.selected .room-image,
.catalog.catalog-view-quick .product-card.selected .catalog-gallery{
  height:183px!important;
  min-height:183px!important;
}
@media(max-width:760px){
  .catalog.catalog-view-quick .category-products .product-card,
  .catalog.catalog-view-quick .room-grid .product-card{
    height:198px!important;
    min-height:198px!important;
  }
  .catalog.catalog-view-quick .product-body,
  .catalog.catalog-view-quick .room-card-body{
    padding:9px 10px 53px 11px!important;
  }
  .catalog.catalog-view-quick .product-price,
  .catalog.catalog-view-quick .room-price{right:10px!important;bottom:12px!important;font-size:19px!important}
  .catalog.catalog-view-quick .card-actions,
  .catalog.catalog-view-quick .room-actions{left:11px!important;bottom:9px!important;width:43%!important;max-width:92px}
  .catalog.catalog-view-quick .quick-card-facts{gap:3px;margin-top:4px;max-height:42px}
  .catalog.catalog-view-quick .quick-card-facts span{height:19px;padding:0 5px;font-size:8px}
  .catalog.catalog-view-quick .product-card.selected{height:auto!important;min-height:198px!important}
  .catalog.catalog-view-quick .product-card.selected .product-body,
  .catalog.catalog-view-quick .product-card.selected .room-card-body{padding-bottom:9px!important}
  .catalog.catalog-view-quick .product-card.selected .product-image,
  .catalog.catalog-view-quick .product-card.selected .room-image,
  .catalog.catalog-view-quick .product-card.selected .catalog-gallery{height:183px!important;min-height:183px!important}
}

/* V6.37.22 — standard detail pages inherit the same clean hierarchy as the
   curated project details, so the upgraded list does not fall back to an old text wall. */
.product-detail-facts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 2px}
.product-detail-facts span{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:8px;background:#f0f5f3;color:#49635c;font-size:10px;font-weight:700}
.product-detail-standard-copy{margin-top:15px}
.product-detail-standard-copy p{margin:8px 0 0;color:#687873;font-size:12px;line-height:1.72}


/* V6.37.24 — accommodation card rhythm + selection/package submission closure */
/* Accommodation deep view: actions follow the actual content instead of sitting at the bottom of an inflated body. */
.catalog.catalog-view-accommodation .room-card-body{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  padding:10px 13px 11px!important;
}
.catalog.catalog-view-accommodation .room-teaser{
  min-height:0!important;
  margin:6px 0 0!important;
  -webkit-line-clamp:2!important;
}
.catalog.catalog-view-accommodation .room-tags{
  min-height:0!important;
  margin:6px 0 0!important;
}
.catalog.catalog-view-accommodation .room-tags:empty{display:none!important}
.catalog.catalog-view-accommodation .room-actions{
  margin-top:8px!important;
  margin-bottom:0!important;
}
.catalog.catalog-view-accommodation .room-actions .select-button{
  height:40px!important;
}
.catalog.catalog-view-accommodation .room-selection-controls{
  padding-top:8px!important;
}
/* Keep selected quick cards compact: controls get their own tight footer instead of creating a tall empty block. */
.catalog.catalog-view-quick .product-card.selected .compact-controls,
.catalog.catalog-view-quick .product-card.selected .room-selection-controls{
  margin-top:7px!important;
  padding-top:0!important;
}
.catalog.catalog-view-quick .product-card.selected .compact-controls{
  gap:6px!important;
}
.catalog.catalog-view-quick .product-card.selected .inline-stepper{
  grid-template-columns:30px minmax(38px,1fr) 30px!important;
  gap:4px!important;
}
.catalog.catalog-view-quick .product-card.selected .inline-stepper input,
.catalog.catalog-view-quick .product-card.selected .step-btn{
  height:34px!important;
}
/* Bottom selection bar: three decisions only — selected count, package total/savings, submit. */
.explore-quote-copy-simple{align-items:center!important}
.explore-quote-meta{display:grid;gap:2px;min-width:0}
.explore-quote-meta>#exploreSelectedCount{font-size:12px;color:#5d706b;white-space:nowrap}
.explore-saving-hint{font-size:9.5px;line-height:1.2;color:#a96610;font-weight:650;white-space:nowrap}
.explore-quote-bar.has-saving .explore-quote-total b{color:var(--brand)}
.trip-next-hint{display:block;margin-top:8px;color:#4f7168;font-size:10px;font-weight:650}
@media(max-width:560px){
  .explore-quote-copy-simple{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:8px!important}
  .explore-quote-total{justify-content:flex-end;min-width:0}
  .explore-saving-hint{font-size:9px}
  .catalog.catalog-view-accommodation .room-card-body{padding:9px 12px 10px!important}
  .catalog.catalog-view-accommodation .room-actions{margin-top:7px!important}
}

/* V6.37.25 — hotel location guidance, yacht introduction, guest-facing travel bill */
.catalog.catalog-view-accommodation .hotel-panel-head{align-items:flex-start}
.catalog.catalog-view-accommodation .hotel-panel-title{width:100%}.hotel-location-summary{display:grid;gap:8px;width:100%;max-width:none;margin-top:10px;box-sizing:border-box}.hotel-location-map-row{width:100%;min-height:42px;display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:12px;box-sizing:border-box;border:0;border-top:1px solid #e5eeeb;border-bottom:1px solid #e5eeeb;background:transparent;padding:8px 2px;color:#244d46;text-align:left;cursor:pointer}.hotel-location-map-row span{min-width:0;font-size:14px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hotel-location-map-row strong{display:block;width:96px;text-align:right;white-space:nowrap;font-size:14px;color:var(--brand);font-weight:900}.hotel-location-map-row.static{cursor:default}.hotel-location-summary p{width:100%;max-width:none;box-sizing:border-box;margin:0;color:#536c66;font-size:13.5px;line-height:1.62}.hotel-location-map-row:active{background:#f1f8f6}@media(max-width:700px){.hotel-location-summary{margin-top:9px;gap:7px}.hotel-location-map-row{min-height:44px;grid-template-columns:minmax(0,1fr) 92px}.hotel-location-map-row span,.hotel-location-map-row strong{font-size:14px}.hotel-location-map-row strong{width:92px}.hotel-location-summary p{font-size:13.5px;line-height:1.6}}

.catalog.catalog-view-yacht .yacht-showcase-details{display:grid;gap:10px;padding:0 16px 16px;border-top:1px solid #e4ebe8}
.catalog.catalog-view-yacht .yacht-showcase-details h4{margin:13px 0 0;font-size:13px;color:#183c36}
.catalog.catalog-view-yacht .yacht-showcase-details>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px;align-items:start}
.catalog.catalog-view-yacht .yacht-showcase-details b{font-size:10px;color:#45615a}
.catalog.catalog-view-yacht .yacht-showcase-details p{margin:0;color:#687b75;font-size:10px;line-height:1.6}
@media(max-width:700px){.catalog.catalog-view-yacht .yacht-showcase-details{padding:0 13px 14px;gap:8px}.catalog.catalog-view-yacht .yacht-showcase-details>div{grid-template-columns:62px minmax(0,1fr);gap:8px}.catalog.catalog-view-yacht .yacht-showcase-details p{font-size:9.5px}}

.guest-bill-section{margin-top:14px;padding-top:12px;border-top:1px solid #dfe8e4}
.guest-bill-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}
.guest-bill-section-head b{font-size:14px;color:#173f38}
.guest-bill-section-head span{font-size:10px;color:#7a8e88}
.guest-bill-section-head strong{font-size:18px;color:#123f3a}
.guest-bill-section-head .settled{color:#24806b;font-weight:850}
.guest-bill-section.unpaid{padding:13px 14px 12px;border:0;border-radius:16px;background:#edf4f1}
.guest-bill-section.unpaid .guest-bill-line{border-color:#d8e4df}
.guest-bill-empty{padding:11px 0;color:#7c8e89;font-size:11px}
.guest-bill-refund{display:flex;justify-content:space-between;gap:10px;padding-top:10px;color:#9a4b43;font-size:11px}
.guest-bill-refund b{font-size:13px}
.guest-bill-refund-line strong{color:#9a4b43}

/* V6.37.26 — precise reminder focus + PWA pull-to-refresh */
.notice-focus-highlight{position:relative!important;background:#e9f8f4!important;box-shadow:0 0 0 2px #54b7a8!important;border-radius:12px!important;transition:.2s ease}.notice-focus-highlight:before{content:'刚刚有变动';position:absolute;right:8px;top:6px;z-index:3;padding:3px 7px;border-radius:999px;background:#0b7f73;color:#fff;font-size:9px;font-weight:900}.trip-notice.unread:after{content:'点击查看变化位置'}
.pull-refresh-indicator{position:fixed;left:50%;top:-58px;z-index:1200;transform:translate(-50%,0);height:42px;min-width:126px;padding:0 14px;border-radius:21px;background:rgba(18,63,58,.94);color:#fff;display:flex;align-items:center;justify-content:center;gap:7px;box-shadow:0 8px 24px rgba(18,63,58,.18);opacity:0;pointer-events:none;transition:opacity .15s ease,transform .12s ease}.pull-refresh-indicator.show{opacity:1}.pull-refresh-indicator span{font-size:17px}.pull-refresh-indicator b{font-size:12px}.pull-refresh-indicator.refreshing span{animation:krPullSpin .85s linear infinite}@keyframes krPullSpin{to{transform:rotate(360deg)}}

.trip-read-row{border:0;background:transparent;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.trip-read-row:active{background:#f1f7f5}

/* V6.37.28 — 已订客人的实时执行提醒 / 返程 / 旅行收尾 */
.booked-trip-advice{display:grid;gap:3px;margin-top:7px}.booked-trip-advice.compact{margin-top:4px;gap:2px}.booked-trip-live,.booked-trip-prep{display:flex;align-items:flex-start;gap:6px;font-size:10px;line-height:1.45}.booked-trip-live{font-weight:650;color:#47645e}.booked-trip-live i{width:6px;height:6px;margin-top:4px;border-radius:50%;background:#8fa09b;flex:0 0 auto}.booked-trip-live.good{color:#176e60}.booked-trip-live.good i{background:#2b8d75}.booked-trip-live.warn{color:#8a621c}.booked-trip-live.warn i{background:#c58a28}.booked-trip-live.bad{color:#9a4545}.booked-trip-live.bad i{background:#c85b5b}.booked-trip-prep{color:#74857f}.home-stage-lead .booked-trip-advice{margin-top:5px;padding-top:7px;border-top:1px solid rgba(18,63,58,.09)}.home-stage-lead .booked-trip-live,.home-stage-lead .booked-trip-prep{font-size:11px}.active-today-row .booked-trip-advice,.trip-schedule-line .booked-trip-advice{margin-top:3px}.active-today-row .booked-trip-live,.active-today-row .booked-trip-prep,.trip-schedule-line .booked-trip-live,.trip-schedule-line .booked-trip-prep{font-size:9.5px}
.return-trip-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:9px -14px -14px;background:#eadfca;border-top:1px solid #eadfca}.return-trip-facts>span{min-width:0;padding:10px 12px;background:#fffdf8;display:grid;gap:3px}.return-trip-facts b{font-size:10px;color:#7c652f}.return-trip-facts small{font-size:10px;line-height:1.45;color:#687d78}.return-trip-facts .pier-map-link{min-height:28px;margin-top:2px;padding:4px 7px;font-size:9px;justify-self:start}.home-stage-facts.return{border-top:1px solid #eadfca;background:#eadfca}.home-stage-facts.return>div{background:#fffdf8}
.travel-closeout{display:grid;gap:4px;padding:11px 14px;border-top:1px solid #e5eeec;background:#fff}.travel-closeout b{font-size:12px}.travel-closeout span{font-size:10.5px;line-height:1.45;color:#667b75}.travel-closeout.clear{background:#f2f8f5}.travel-closeout.clear b{color:#176e60}.travel-closeout.pending{background:#fff9ee}.travel-closeout.pending b{color:#896323}.travel-closeout.compact{margin:0;padding:9px 12px;border-radius:0}.active-trip-primary .travel-closeout{margin:5px -14px -14px;border-top:1px solid #e2ece9}
@media(max-width:600px){.return-trip-facts{grid-template-columns:1fr;margin-left:-12px;margin-right:-12px}.return-trip-facts>span{grid-template-columns:78px minmax(0,1fr);align-items:start}.return-trip-facts>span .pier-map-link{grid-column:2}.booked-trip-live,.booked-trip-prep{font-size:10px}}


/* V6.37.30 — order-card total and paid/unpaid alignment */
.active-trip-head{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(108px,122px)!important;column-gap:14px!important;align-items:start!important}
.active-trip-money{display:grid!important;justify-items:end!important;align-content:start!important;gap:6px!important;min-width:108px!important;text-align:right!important}
.active-trip-money>b{display:block;line-height:1!important;white-space:nowrap}
.active-trip-payment-state{display:grid!important;gap:2px!important;justify-items:end!important;width:100%;font-size:10px!important;line-height:1.35!important;white-space:nowrap}
.active-trip-payment-state span{display:flex;align-items:baseline;justify-content:flex-end;gap:5px;width:100%;color:rgba(255,255,255,.62)}
.active-trip-payment-state em{font-style:normal;font-weight:750;color:rgba(255,255,255,.92);font-variant-numeric:tabular-nums}
.active-trip-payment-state .due em{color:#fff}.active-trip-payment-state .settled{opacity:.82}
@media(max-width:370px){.active-trip-head{grid-template-columns:minmax(0,1fr) 96px!important;column-gap:9px!important}.active-trip-money{display:grid!important;min-width:96px!important}.active-trip-money>b{font-size:18px!important}.active-trip-payment-state{font-size:9px!important}}

/* V6.37.32 — dining merchant location guidance */
.food-location-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:38px;margin:8px 0 0;padding:8px 10px;border:1px solid #cfe4df;border-radius:11px;background:#f3faf8;color:#164f47;text-decoration:none;font-size:11px;font-weight:850}.food-location-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.food-location-row strong{flex:0 0 auto;color:var(--brand);font-size:11px}.food-location-row.no-map{background:#f7faf9;color:#59736d}.food-direction{padding:6px 2px 0;color:#657b76;font-size:11px;line-height:1.45}.food-merchant-tags{margin-top:8px}
@media(max-width:700px){.food-location-row{min-height:40px;font-size:12px}.food-direction{font-size:12px}}


/* V6.37.33: lodging is itinerary information, not an execution state. */
.trip-lodging-state{display:block;color:#5f7f77!important;font-weight:600}.active-today-row.lodging{background:linear-gradient(90deg,rgba(232,247,244,.45),transparent)}

/* V6.37.37 · 我的旅行状态闭环 */
.customer-itinerary-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.customer-itinerary-head>div>span{font-size:9.5px;color:#7e918c;font-weight:650;white-space:nowrap}.active-trip-schedule-state{margin:0;padding:12px 20px;display:grid;gap:3px;border-bottom:1px solid #e2ebe8}.active-trip-schedule-state b{font-size:13px;color:#173f38}.active-trip-schedule-state span{font-size:10.5px;line-height:1.5;color:#667b75}.active-trip-schedule-state.arranging{background:#fff9ee}.active-trip-schedule-state.arranging b{color:#8a6420}.active-trip-schedule-state.ready{background:#eef7f4}.active-trip-schedule-state.ready b{color:#176e60}.trip-schedule-pending{margin:0;padding:13px 14px;border-radius:13px;background:#f5f8f7;display:grid;gap:4px}.trip-schedule-pending b{font-size:12px;color:#34534d}.trip-schedule-pending span{font-size:10.5px;line-height:1.55;color:#758883}.order-content-note{margin:0 20px;padding:10px 0 8px;color:#71847f;font-size:10.5px;line-height:1.5;border-bottom:1px solid #edf2f0}.active-trip-folds details .order-content-note+.submitted-order-lines{padding-top:2px}.active-trip-empty{display:none!important}
@media(max-width:600px){.active-trip-schedule-state{padding:11px 16px}.order-content-note{margin-left:16px;margin-right:16px}.customer-itinerary-head>div{gap:6px}}

/* V6.37.39：客人追加项目直接进入“我的每日行程”末尾，等待管家确认。 */
.trip-append-pending{margin:10px 0 0;padding:0;border:1px solid #eadfbd;border-radius:13px;background:#fffaf0;overflow:hidden}.trip-append-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#f8f0d9;border-bottom:1px solid #eee2c2}.trip-append-head b{font-size:12px;color:#725b20}.trip-append-head span{font-size:10px;font-weight:800;color:#98721e}.trip-append-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #f1e8d2}.trip-append-line:last-child{border-bottom:0}.trip-append-line>div{min-width:0;display:grid;gap:3px}.trip-append-line b{font-size:12px;color:#354a45}.trip-append-line small{font-size:9.5px;color:#8a877d}.trip-append-line>span{flex:0 0 auto;font-size:10px;font-weight:800;color:#8f6c18;white-space:nowrap}@media(max-width:430px){.trip-append-line{align-items:flex-start}.trip-append-line>span{margin-top:1px}}

/* V6.37.51 — homepage recommendations use one assistant-style rail in every guest stage. */
.home-rec-meta{margin:7px 0 0;color:#75827f;font-size:12px;line-height:1.45;font-weight:500;letter-spacing:0}.recommendation-rail.smart-assistant-rail{display:grid;grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:visible;padding:0;scroll-snap-type:none}.smart-rec-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-content:start;box-shadow:0 6px 20px rgba(18,49,45,.035)}.smart-rec-icon{width:42px;height:42px;border-radius:14px;background:#eef6f4;display:grid;place-items:center;font-size:21px}.smart-rec-copy{min-width:0}.smart-rec-copy small{display:block;color:#71807c;font-size:9px;letter-spacing:.08em;font-weight:700;margin-bottom:3px}.smart-rec-copy h3{font-size:16px;line-height:1.35;margin:0;font-weight:650;letter-spacing:-.01em}.smart-rec-copy p{color:#6b7774;font-size:11px;line-height:1.55;margin:6px 0 7px}.smart-rec-meta{font-size:10px;color:var(--brand);font-weight:650;line-height:1.4}.smart-rec-action,.smart-rec-status{grid-column:2;justify-self:start;margin-top:1px}.smart-rec-action{height:32px;padding:0 12px;border:1px solid #dce7e4;background:#fff;color:var(--brand);border-radius:10px;font-size:10.5px;font-weight:700;cursor:pointer}.smart-rec-action.primary{background:var(--brand);border-color:var(--brand);color:#fff}.smart-rec-status{font-size:10px;color:#85918e;background:#f5f7f6;border-radius:999px;padding:6px 9px}.smart-rec-card.is-product{border-color:#d8e9e6}.smart-rec-card.is-product .smart-rec-icon{background:#e5f3f0}
@media(max-width:760px){.home-rec-meta{font-size:11px;margin-top:6px}.recommendation-rail.smart-assistant-rail{grid-template-columns:1fr;gap:8px}.smart-rec-card{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;padding:13px 13px;border-radius:15px;gap:9px;min-height:102px}.smart-rec-icon{width:40px;height:40px;border-radius:13px;font-size:20px}.smart-rec-copy h3{font-size:16px}.smart-rec-copy p{font-size:11.5px;line-height:1.5;margin:5px 0}.smart-rec-meta{font-size:10.5px}.smart-rec-action,.smart-rec-status{grid-column:3;grid-row:1;align-self:center;justify-self:end;margin:0;white-space:nowrap}.smart-rec-action{height:32px;padding:0 10px;font-size:11px}.smart-rec-status{padding:5px 8px}.section-title.row-title:has(#homeRecMeta:not(.hidden)){align-items:flex-start}}

/* V6.37.50 — device-aware PWA install center */
.install-service-group{background:linear-gradient(145deg,#fff,#f5fbf9)!important;border-color:#cfe5df!important}
.install-service-group header>span{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#e8f5f2;font-size:21px}
.install-service-group>button:disabled{opacity:.72;cursor:default;background:#edf3f1!important;color:#54716b!important}
.install-guide-sheet{width:min(560px,100%);padding:24px 20px max(28px,env(safe-area-inset-bottom))}
.install-guide-heading{display:grid;grid-template-columns:56px minmax(0,1fr);gap:13px;align-items:center;padding-right:36px;margin:9px 0 12px}
.install-guide-heading img{width:56px;height:56px;border-radius:16px;box-shadow:0 8px 22px rgba(18,63,58,.16)}
.install-guide-heading h2{margin:0 0 4px;font-size:23px;line-height:1.18}.install-guide-heading p{margin:0!important;color:var(--muted);font-size:11px!important;line-height:1.45}
.install-guide-status{margin:10px 0 12px;padding:10px 12px;border-radius:12px;font-size:11px;line-height:1.55;background:#eef7f5;color:#17665d;border:1px solid #d2e9e4}
.install-guide-status.warn{background:#fff8ea;color:#8a6218;border-color:#f0dfb5}.install-guide-status.success{background:#ebf8f2;color:#166b50;border-color:#cce9dd}
.install-guide-steps{margin:14px 0}.install-guide-step{grid-template-columns:30px minmax(0,1fr);padding:12px 13px;background:#fbfcfb}.install-guide-step i{width:28px;height:28px}.install-guide-step b{font-size:13px}.install-guide-step small{font-size:11px;line-height:1.55}
.install-guide-complete{display:flex;align-items:center;gap:10px;padding:14px;border-radius:14px;background:#eef8f5;color:#17665d}.install-guide-complete span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#d8efe8;font-weight:900}.install-guide-complete b{font-size:13px}
.install-guide-actions{display:grid;grid-template-columns:1.15fr .9fr .8fr;gap:8px;margin-top:16px}.install-guide-actions button{min-width:0;height:44px;font-size:12px;padding:0 10px}
@media(max-width:560px){
  .install-app-banner{grid-template-columns:38px minmax(0,1fr) auto 24px!important;gap:7px!important}.install-brand-icon{width:38px;height:38px;border-radius:11px}.install-app-banner>#installAppButton{max-width:92px;white-space:nowrap}
  .install-guide-sheet{padding:21px 16px max(26px,env(safe-area-inset-bottom))}.install-guide-heading{grid-template-columns:50px minmax(0,1fr);gap:11px}.install-guide-heading img{width:50px;height:50px;border-radius:14px}.install-guide-heading h2{font-size:21px}.install-guide-actions{grid-template-columns:1fr}.install-guide-actions button{width:100%}
}

/* V6.37.52 — premium editorial homepage recommendation: one image-led hero + restrained supporting advice. */
.recommendation-rail.smart-editorial-rail{display:block!important;overflow:visible;padding:0;scroll-snap-type:none}
.editorial-rec-main{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);min-height:260px;background:#fff;border:1px solid #dce7e4;border-radius:26px;overflow:hidden;box-shadow:0 18px 46px rgba(16,55,49,.075)}
.editorial-rec-media{appearance:none;border:0;padding:0;margin:0;background:#e9f1ef;min-width:0;width:100%;height:100%;cursor:pointer;overflow:hidden;position:relative}
.editorial-rec-media img{width:100%;height:100%;min-height:260px;display:block;object-fit:cover;transition:transform .35s ease}
.editorial-rec-media:hover img{transform:scale(1.018)}
.editorial-rec-media-fallback{display:grid;place-items:center;background:linear-gradient(145deg,#e9f3f1,#d8e9e5);cursor:default}
.editorial-rec-media-fallback span{font-size:54px;filter:saturate(.75)}
.editorial-rec-content{min-width:0;padding:30px 30px 28px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.editorial-rec-kicker{display:flex;align-items:center;gap:8px;margin-bottom:10px;color:#6b7d78;font-size:10px;font-weight:750;letter-spacing:.12em}
.editorial-rec-kicker span{color:var(--brand)}
.editorial-rec-kicker em{font-style:normal;padding:4px 7px;border-radius:999px;background:#eef6f4;color:#5e7771;font-size:9px;letter-spacing:.04em;font-weight:650}
.editorial-rec-content h3{margin:0;color:#162723;font-size:25px;line-height:1.25;font-weight:680;letter-spacing:-.025em}
.editorial-rec-content p{margin:12px 0 0;color:#66736f;font-size:13px;line-height:1.75;max-width:38em}
.editorial-rec-meta{margin-top:12px;color:var(--brand);font-size:12px;line-height:1.45;font-weight:680}
.editorial-rec-actions{display:flex;align-items:center;gap:10px;margin-top:20px;min-height:38px}
.editorial-rec-cta,.editorial-rec-detail{height:38px;border-radius:12px;padding:0 15px;font-size:11.5px;font-weight:700;cursor:pointer}
.editorial-rec-cta{border:1px solid var(--brand);background:var(--brand);color:#fff;box-shadow:0 8px 18px rgba(15,75,66,.12)}
.editorial-rec-cta.secondary{background:#fff;color:var(--brand);box-shadow:none}
.editorial-rec-detail{border:0;background:transparent;color:#6d7d79;padding-left:6px;padding-right:6px}
.editorial-rec-note{font-size:11px;color:#75837f;background:#f3f7f6;border-radius:999px;padding:8px 11px}
.editorial-rec-support{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.editorial-rec-aux{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 15px;background:#f8faf9;border:1px solid #e4ebe9;border-radius:17px}
.editorial-rec-aux-icon{width:38px;height:38px;border-radius:12px;background:#edf5f3;display:grid;place-items:center;font-size:19px}
.editorial-rec-aux-copy{min-width:0}.editorial-rec-aux-copy small{display:block;margin-bottom:2px;color:#7a8884;font-size:8.5px;font-weight:750;letter-spacing:.08em}.editorial-rec-aux-copy h4{margin:0;color:#253733;font-size:13.5px;line-height:1.35;font-weight:680}.editorial-rec-aux-copy p{margin:4px 0 0;color:#7a8582;font-size:10.5px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.editorial-rec-aux-copy strong{display:block;margin-top:4px;color:#5d746e;font-size:9.5px;font-weight:650}
.editorial-rec-aux-action{justify-self:end}.editorial-rec-aux-action button{height:31px;border:1px solid #d8e4e1;background:#fff;color:var(--brand);border-radius:10px;padding:0 10px;font-size:10px;font-weight:700;white-space:nowrap}.editorial-rec-aux-action span{display:inline-block;color:#84918d;background:#fff;border-radius:999px;padding:6px 8px;font-size:9px;white-space:nowrap}
@media(max-width:760px){
  .editorial-rec-main{grid-template-columns:minmax(0,43%) minmax(0,57%);min-height:184px;border-radius:21px;box-shadow:0 12px 32px rgba(16,55,49,.065)}
  .editorial-rec-media img{min-height:184px}
  .editorial-rec-content{padding:17px 16px 16px}
  .editorial-rec-kicker{gap:5px;margin-bottom:6px;font-size:8px;letter-spacing:.08em}.editorial-rec-kicker em{padding:3px 5px;font-size:7.5px}
  .editorial-rec-content h3{font-size:17.5px;line-height:1.28}.editorial-rec-content p{font-size:10.5px;line-height:1.55;margin-top:7px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.editorial-rec-meta{font-size:9.5px;margin-top:7px}.editorial-rec-actions{gap:6px;margin-top:10px;min-height:32px}.editorial-rec-cta,.editorial-rec-detail{height:32px;border-radius:10px;padding:0 10px;font-size:10px}.editorial-rec-detail{padding-left:3px;padding-right:3px}
  .editorial-rec-support{grid-template-columns:1fr;gap:7px;margin-top:8px}.editorial-rec-aux{grid-template-columns:34px minmax(0,1fr) auto;gap:9px;padding:11px 12px;border-radius:14px}.editorial-rec-aux-icon{width:34px;height:34px;border-radius:11px;font-size:17px}.editorial-rec-aux-copy h4{font-size:13px}.editorial-rec-aux-copy p{font-size:10px;-webkit-line-clamp:1}.editorial-rec-aux-copy strong{font-size:9px}.editorial-rec-aux-action button{height:29px;padding:0 8px;font-size:9.5px}
}
@media(max-width:390px){
  .editorial-rec-main{grid-template-columns:minmax(0,42%) minmax(0,58%);min-height:178px}.editorial-rec-media img{min-height:178px}.editorial-rec-content{padding:15px 13px}.editorial-rec-content h3{font-size:16.5px}.editorial-rec-content p{font-size:10px}.editorial-rec-kicker em{display:none}.editorial-rec-actions{margin-top:8px}.editorial-rec-detail{display:none}
}

/* V6.37.53 — unify homepage recommendations with the compact Freedom Combo project language. */
.recommendation-rail.smart-editorial-rail{
  display:block!important;
  overflow:visible!important;
  padding:0!important;
}
.smart-editorial-rail .editorial-rec-main{
  display:grid!important;
  grid-template-columns:minmax(150px,38%) minmax(0,1fr)!important;
  gap:14px!important;
  min-height:206px!important;
  padding:8px!important;
  background:#fff!important;
  border:1px solid #e5ece9!important;
  border-radius:20px!important;
  overflow:visible!important;
  box-shadow:0 10px 30px rgba(18,63,58,.045)!important;
}
.smart-editorial-rail .editorial-rec-media{
  width:100%!important;
  height:188px!important;
  min-height:0!important;
  margin:0!important;
  align-self:center!important;
  border:0!important;
  border-radius:13px!important;
  overflow:hidden!important;
  background:#edf4f2!important;
}
.smart-editorial-rail .editorial-rec-media img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  display:block!important;
  object-fit:cover!important;
  border-radius:13px!important;
}
.smart-editorial-rail .editorial-rec-media-fallback{
  border-radius:13px!important;
  min-height:0!important;
}
.smart-editorial-rail .editorial-rec-content{
  min-width:0!important;
  min-height:188px!important;
  padding:12px 12px 10px 0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
}
.smart-editorial-rail .editorial-rec-kicker{margin-bottom:7px!important}
.smart-editorial-rail .editorial-rec-content h3{font-size:21px!important;line-height:1.28!important}
.smart-editorial-rail .editorial-rec-content p{font-size:12px!important;line-height:1.62!important;margin-top:8px!important;max-width:none!important}
.smart-editorial-rail .editorial-rec-meta{font-size:11px!important;margin-top:8px!important}
.smart-editorial-rail .editorial-rec-actions{
  width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:flex-end!important;
  margin-top:auto!important;
  padding-top:12px!important;
  min-height:34px!important;
}
.smart-editorial-rail .editorial-rec-cta{
  height:34px!important;
  padding:0 13px!important;
  border:1px solid #cfe3de!important;
  border-radius:11px!important;
  background:#eaf5f3!important;
  color:#17665d!important;
  box-shadow:none!important;
  font-size:10.5px!important;
  font-weight:700!important;
}
.smart-editorial-rail .editorial-rec-cta.secondary{
  background:#f2f7f6!important;
  color:#426b65!important;
  border-color:#dce9e6!important;
}
.smart-editorial-rail .editorial-rec-note{
  margin-left:auto!important;
  background:#f3f7f6!important;
  color:#71817d!important;
}
.smart-editorial-rail .editorial-rec-support{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  margin-top:8px!important;
}
.smart-editorial-rail .editorial-rec-aux{
  min-width:0!important;
  min-height:154px!important;
  display:grid!important;
  grid-template-columns:minmax(122px,34%) minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:12px!important;
  padding:7px!important;
  background:#fff!important;
  border:1px solid #e8eeec!important;
  border-radius:17px!important;
  box-shadow:none!important;
}
.smart-editorial-rail .editorial-rec-aux-media{
  appearance:none!important;
  width:100%!important;
  height:140px!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:#edf4f2!important;
  display:grid!important;
  place-items:center!important;
  align-self:center!important;
}
.smart-editorial-rail .editorial-rec-aux-media img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  border-radius:12px!important;
}
.smart-editorial-rail .editorial-rec-aux-media.editorial-rec-media-fallback span{font-size:34px!important}
.smart-editorial-rail .editorial-rec-aux-copy{
  min-width:0!important;
  min-height:140px!important;
  padding:8px 9px 7px 0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
}
.smart-editorial-rail .editorial-rec-aux-copy small{font-size:8.5px!important;margin-bottom:4px!important}
.smart-editorial-rail .editorial-rec-aux-copy h4{font-size:15px!important;line-height:1.35!important}
.smart-editorial-rail .editorial-rec-aux-copy p{
  margin:5px 0 0!important;
  font-size:10.5px!important;
  line-height:1.52!important;
  -webkit-line-clamp:2!important;
}
.smart-editorial-rail .editorial-rec-aux-copy strong{font-size:9.5px!important;margin-top:5px!important;color:#52736c!important}
.smart-editorial-rail .editorial-rec-aux-action{
  width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:flex-end!important;
  margin-top:auto!important;
  padding-top:7px!important;
}
.smart-editorial-rail .editorial-rec-aux-action button{
  height:30px!important;
  padding:0 10px!important;
  border:1px solid #d4e5e1!important;
  border-radius:10px!important;
  background:#edf6f4!important;
  color:#276b62!important;
  font-size:9.5px!important;
  font-weight:700!important;
}
.smart-editorial-rail .editorial-rec-aux-action span{
  margin-left:auto!important;
  background:#f4f7f6!important;
  color:#7a8985!important;
}
@media(max-width:760px){
  .smart-editorial-rail .editorial-rec-main{
    grid-template-columns:minmax(126px,39%) minmax(0,61%)!important;
    gap:10px!important;
    min-height:184px!important;
    padding:7px!important;
    border-radius:17px!important;
    box-shadow:0 8px 24px rgba(18,63,58,.035)!important;
  }
  .smart-editorial-rail .editorial-rec-media{height:170px!important;border-radius:11px!important}
  .smart-editorial-rail .editorial-rec-media img{border-radius:11px!important}
  .smart-editorial-rail .editorial-rec-content{min-height:170px!important;padding:9px 8px 7px 0!important}
  .smart-editorial-rail .editorial-rec-kicker{font-size:7.5px!important;margin-bottom:4px!important}.smart-editorial-rail .editorial-rec-kicker em{display:none!important}
  .smart-editorial-rail .editorial-rec-content h3{font-size:16.5px!important;line-height:1.3!important}
  .smart-editorial-rail .editorial-rec-content p{font-size:9.8px!important;line-height:1.5!important;margin-top:5px!important;-webkit-line-clamp:3!important}
  .smart-editorial-rail .editorial-rec-meta{font-size:9px!important;margin-top:5px!important}
  .smart-editorial-rail .editorial-rec-actions{padding-top:6px!important;min-height:29px!important}
  .smart-editorial-rail .editorial-rec-cta{height:29px!important;padding:0 9px!important;border-radius:9px!important;font-size:9px!important}
  .smart-editorial-rail .editorial-rec-support{gap:7px!important;margin-top:7px!important}
  .smart-editorial-rail .editorial-rec-aux{
    grid-template-columns:minmax(112px,36%) minmax(0,64%)!important;
    min-height:145px!important;
    gap:9px!important;
    padding:6px!important;
    border-radius:15px!important;
  }
  .smart-editorial-rail .editorial-rec-aux-media{height:133px!important;border-radius:10px!important}
  .smart-editorial-rail .editorial-rec-aux-media img{border-radius:10px!important}
  .smart-editorial-rail .editorial-rec-aux-copy{min-height:133px!important;padding:7px 6px 5px 0!important}
  .smart-editorial-rail .editorial-rec-aux-copy h4{font-size:13.5px!important}.smart-editorial-rail .editorial-rec-aux-copy p{font-size:9.5px!important;line-height:1.45!important}.smart-editorial-rail .editorial-rec-aux-copy strong{font-size:8.8px!important}
  .smart-editorial-rail .editorial-rec-aux-action{padding-top:5px!important}.smart-editorial-rail .editorial-rec-aux-action button{height:27px!important;padding:0 8px!important;font-size:8.8px!important}
}
@media(max-width:390px){
  .smart-editorial-rail .editorial-rec-main{grid-template-columns:minmax(118px,38%) minmax(0,62%)!important;gap:9px!important;min-height:176px!important}
  .smart-editorial-rail .editorial-rec-media{height:162px!important}.smart-editorial-rail .editorial-rec-content{min-height:162px!important;padding:8px 5px 6px 0!important}.smart-editorial-rail .editorial-rec-content h3{font-size:15.5px!important}.smart-editorial-rail .editorial-rec-content p{font-size:9.3px!important;-webkit-line-clamp:3!important}.smart-editorial-rail .editorial-rec-meta{font-size:8.6px!important}.smart-editorial-rail .editorial-rec-cta{height:28px!important;font-size:8.7px!important}
  .smart-editorial-rail .editorial-rec-aux{grid-template-columns:minmax(105px,35%) minmax(0,65%)!important;min-height:138px!important}.smart-editorial-rail .editorial-rec-aux-media{height:126px!important}.smart-editorial-rail .editorial-rec-aux-copy{min-height:126px!important}.smart-editorial-rail .editorial-rec-aux-copy p{-webkit-line-clamp:2!important}
}

/* V6.37.54 — all homepage recommendation images use one consistent 4:5 portrait frame. */
.smart-editorial-rail .editorial-rec-main,
.smart-editorial-rail .editorial-rec-aux{
  grid-template-columns:minmax(150px,34%) minmax(0,1fr)!important;
  align-items:start!important;
}
.smart-editorial-rail .editorial-rec-media,
.smart-editorial-rail .editorial-rec-aux-media{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:4 / 5!important;
  align-self:start!important;
  border-radius:13px!important;
  overflow:hidden!important;
}
.smart-editorial-rail .editorial-rec-media img,
.smart-editorial-rail .editorial-rec-aux-media img{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  aspect-ratio:4 / 5!important;
  object-fit:cover!important;
  border-radius:13px!important;
}
.smart-editorial-rail .editorial-rec-content,
.smart-editorial-rail .editorial-rec-aux-copy{
  min-height:0!important;
  align-self:stretch!important;
}
@media(max-width:760px){
  .smart-editorial-rail .editorial-rec-main,
  .smart-editorial-rail .editorial-rec-aux{
    grid-template-columns:minmax(116px,34%) minmax(0,1fr)!important;
  }
  .smart-editorial-rail .editorial-rec-media,
  .smart-editorial-rail .editorial-rec-aux-media,
  .smart-editorial-rail .editorial-rec-media img,
  .smart-editorial-rail .editorial-rec-aux-media img{
    border-radius:11px!important;
  }
}
@media(max-width:390px){
  .smart-editorial-rail .editorial-rec-main,
  .smart-editorial-rail .editorial-rec-aux{
    grid-template-columns:minmax(112px,33.5%) minmax(0,1fr)!important;
  }
}

/* V6.37.54 exact-size lock: same media width on every recommendation card at the same viewport. */
.smart-editorial-rail{--home-rec-media-w:clamp(116px,34vw,150px)}
.smart-editorial-rail .editorial-rec-main,
.smart-editorial-rail .editorial-rec-aux{
  grid-template-columns:var(--home-rec-media-w) minmax(0,1fr)!important;
}

/* V6.37.55 — project detail gallery follows the room-gallery pattern; price/discount share one balanced row. */
.product-detail-gallery{background:#fff;padding-bottom:10px}
.product-detail-gallery .product-detail-hero{margin:0;cursor:zoom-in}
.product-detail-gallery .product-detail-thumbs{margin:0!important;padding:9px 14px 0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.product-detail-gallery .product-detail-thumbs::-webkit-scrollbar{display:none}
.product-detail-gallery .product-detail-thumb{width:76px;height:56px;flex:0 0 auto;padding:0;border:1px solid transparent;border-radius:10px;overflow:hidden;background:#eef3f1;opacity:.72;transition:border-color .16s ease,opacity .16s ease,box-shadow .16s ease}
.product-detail-gallery .product-detail-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.product-detail-gallery .product-detail-thumb.active{opacity:1;border-color:#8FAEA6;box-shadow:0 0 0 2px rgba(18,63,58,.08)}
.product-detail-editorial{padding-top:14px}
.product-detail-editorial h2{margin:6px 0 5px!important}
.product-detail-price-row{align-items:center;margin-top:10px;padding-bottom:10px;min-height:38px}
.product-detail-price-row .modal-package-note{order:0;text-align:left;max-width:58%;min-width:0}
.product-detail-price-row .modal-price{order:1;margin-left:auto;text-align:right;white-space:nowrap}
.product-detail-badges{margin-top:7px!important}
.product-live-advice{margin-top:12px;margin-bottom:2px;padding:12px 13px}
.product-detail-section{margin-top:14px;padding-top:12px}
.product-detail-section-head{margin-bottom:8px}
.product-detail-description{margin-top:14px}
.product-detail-description summary{padding:12px 0}
.product-detail-description p{margin-bottom:12px}
.product-detail-note{padding:12px 0 0}
.product-detail-select{margin-top:12px;padding-top:10px}
.product-detail-facts{margin-top:9px!important;margin-bottom:0!important}
.product-detail-standard-copy{margin-top:12px!important}
@media(max-width:760px){
  .product-detail-gallery{padding-bottom:8px}
  .product-detail-gallery .product-detail-thumbs{padding:8px 12px 0;gap:7px}
  .product-detail-gallery .product-detail-thumb{width:66px;height:49px;border-radius:9px}
  .product-detail-editorial{padding:13px 15px max(14px,env(safe-area-inset-bottom))}
  .product-detail-editorial h2{margin:5px 0 4px!important}
  .product-detail-price-row{flex-direction:row!important;align-items:center!important;gap:10px!important;margin-top:9px!important;padding-bottom:9px}
  .product-detail-price-row .modal-package-note{text-align:left!important;max-width:58%!important}
  .product-detail-price-row .modal-price{font-size:24px;text-align:right;margin-left:auto}
  .product-live-advice{margin-top:11px;padding:11px 12px}
  .product-detail-section{margin-top:12px;padding-top:11px}
  .product-detail-description{margin-top:12px}
  .product-detail-note{padding-top:10px}
  .product-detail-select{margin-top:10px;padding-top:9px}
}

/* V6.37.57 — accommodation + yacht cards balance the copy on the left with a price/action rail on the right. */
.catalog.catalog-view-accommodation .room-card-body,
.catalog.catalog-view-yacht .yacht-grid .room-card-body,
.catalog.catalog-view-yacht .yacht-addon-grid .room-card-body{
  position:relative!important;
  min-height:146px!important;
  padding-right:126px!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-price,
.catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-price,
.catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-price{
  position:absolute!important;
  right:13px!important;
  bottom:58px!important;
  z-index:2;
  width:104px;
  max-width:104px!important;
  margin:0!important;
  text-align:right!important;
  white-space:nowrap;
  line-height:1.1!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions,
.catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-actions,
.catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-actions{
  position:absolute!important;
  right:13px!important;
  bottom:12px!important;
  left:auto!important;
  width:104px!important;
  max-width:104px!important;
  margin:0!important;
  display:block!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions .select-button,
.catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-actions .select-button,
.catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-actions .select-button{
  width:100%!important;
  height:38px!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions .details-button,
.catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-actions .details-button,
.catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-actions .details-button{
  display:none!important;
}
.catalog.catalog-view-accommodation .room-selection-controls,
.catalog.catalog-view-yacht .yacht-grid .room-selection-controls,
.catalog.catalog-view-yacht .yacht-addon-grid .room-selection-controls{
  margin-top:8px!important;
  padding-top:8px!important;
  border-top:1px solid #edf2f0;
}
.catalog.catalog-view-accommodation .room-card.selected .room-card-body,
.catalog.catalog-view-yacht .yacht-grid .yacht-card.selected .room-card-body,
.catalog.catalog-view-yacht .yacht-addon-grid .yacht-addon-card.selected .room-card-body{
  min-height:196px!important;
}
/* Yacht hero price remains on the right even on phones; only the copy column compresses. */
.catalog.catalog-view-yacht .yacht-showcase-info{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:14px!important;
}
.catalog.catalog-view-yacht .yacht-showcase-info>strong{
  display:block!important;
  margin:0 0 1px auto!important;
  text-align:right!important;
  white-space:nowrap!important;
}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-card-body,
  .catalog.catalog-view-yacht .yacht-grid .room-card-body,
  .catalog.catalog-view-yacht .yacht-addon-grid .room-card-body{
    min-height:138px!important;
    padding-right:116px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-price,
  .catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-price,
  .catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-price{
    right:11px!important;
    bottom:55px!important;
    width:96px;
    max-width:96px!important;
    font-size:19px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-actions,
  .catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-actions,
  .catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-actions{
    right:11px!important;
    bottom:10px!important;
    width:96px!important;
    max-width:96px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-actions .select-button,
  .catalog.catalog-view-yacht .yacht-grid .room-card-body>.room-actions .select-button,
  .catalog.catalog-view-yacht .yacht-addon-grid .room-card-body>.room-actions .select-button{
    height:36px!important;
  }
  .catalog.catalog-view-accommodation .room-card.selected .room-card-body,
  .catalog.catalog-view-yacht .yacht-grid .yacht-card.selected .room-card-body,
  .catalog.catalog-view-yacht .yacht-addon-grid .yacht-addon-card.selected .room-card-body{
    min-height:190px!important;
  }
  .catalog.catalog-view-yacht .yacht-showcase-info{
    display:flex!important;
    align-items:flex-end!important;
    padding:12px 13px 14px!important;
  }
  .catalog.catalog-view-yacht .yacht-showcase-info>strong{
    margin:0 0 1px auto!important;
    font-size:20px!important;
  }
}

/* V6.37.58 — use the empty action-row space for 2–3 restrained project detail thumbnails. */
.smart-editorial-rail .editorial-rec-actions,
.smart-editorial-rail .editorial-rec-aux-action{
  justify-content:space-between!important;
  gap:8px!important;
}
.smart-editorial-rail .editorial-rec-thumbs{
  min-width:0;
  flex:1 1 auto;
  display:flex;
  align-items:flex-end;
  gap:5px;
  overflow:hidden;
}
.smart-editorial-rail .editorial-rec-thumb{
  appearance:none;
  width:36px;
  height:30px;
  flex:0 0 36px;
  margin:0;
  padding:0;
  border:1px solid #dfe9e6;
  border-radius:8px;
  overflow:hidden;
  background:#eef4f2;
  box-shadow:none;
  cursor:pointer;
}
.smart-editorial-rail .editorial-rec-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:7px;
}
.smart-editorial-rail .editorial-rec-cta,
.smart-editorial-rail .editorial-rec-aux-action>button:not(.editorial-rec-thumb),
.smart-editorial-rail .editorial-rec-actions>.editorial-rec-note,
.smart-editorial-rail .editorial-rec-aux-action>span{
  flex:0 0 auto;
  margin-left:auto!important;
}
@media(max-width:760px){
  .smart-editorial-rail .editorial-rec-actions,
  .smart-editorial-rail .editorial-rec-aux-action{gap:6px!important}
  .smart-editorial-rail .editorial-rec-thumbs{gap:4px}
  .smart-editorial-rail .editorial-rec-thumb{width:30px;height:26px;flex-basis:30px;border-radius:7px}
  .smart-editorial-rail .editorial-rec-thumb img{border-radius:6px}
}
@media(max-width:350px){
  .smart-editorial-rail .editorial-rec-thumb{width:27px;height:24px;flex-basis:27px}
}

/* V6.37.59 — accommodation cards place “选择” on the left and price on the right in one bottom action row. */
.catalog.catalog-view-accommodation .room-card-body{
  position:relative!important;
  min-height:0!important;
  padding-right:13px!important;
  padding-bottom:60px!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-price{
  position:absolute!important;
  right:13px!important;
  bottom:19px!important;
  left:auto!important;
  width:auto!important;
  max-width:48%!important;
  margin:0!important;
  text-align:right!important;
  white-space:nowrap!important;
  line-height:1.05!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions{
  position:absolute!important;
  left:13px!important;
  right:auto!important;
  bottom:11px!important;
  width:43%!important;
  min-width:78px!important;
  max-width:96px!important;
  margin:0!important;
  display:block!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions .select-button{
  width:100%!important;
  height:36px!important;
  padding:0 8px!important;
}
.catalog.catalog-view-accommodation .room-card.selected .room-card-body{
  min-height:0!important;
  padding-bottom:60px!important;
}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-card-body{
    min-height:0!important;
    padding-right:12px!important;
    padding-bottom:56px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-price{
    right:10px!important;
    bottom:17px!important;
    width:auto!important;
    max-width:52%!important;
    font-size:19px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-actions{
    left:11px!important;
    right:auto!important;
    bottom:9px!important;
    width:43%!important;
    min-width:72px!important;
    max-width:92px!important;
  }
  .catalog.catalog-view-accommodation .room-card-body>.room-actions .select-button{
    height:34px!important;
    padding:0 6px!important;
    border-radius:9px!important;
  }
  .catalog.catalog-view-accommodation .room-card.selected .room-card-body{
    min-height:0!important;
    padding-bottom:56px!important;
  }
}


/* V6.37.60 — spread homepage detail thumbnails evenly and tighten accommodation select/price spacing. */
.smart-editorial-rail .editorial-rec-thumbs{
  flex:1 1 auto!important;
  width:auto!important;
  max-width:none!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:5px!important;
  overflow:hidden!important;
}
.smart-editorial-rail .editorial-rec-thumb{
  width:auto!important;
  height:35px!important;
  flex:1 1 42px!important;
  min-width:0!important;
  max-width:48px!important;
  border-radius:9px!important;
}
.smart-editorial-rail .editorial-rec-thumb img{border-radius:8px!important}
.smart-editorial-rail .editorial-rec-aux-action .editorial-rec-thumb{
  height:35px!important;
  padding:0!important;
}
@media(max-width:760px){
  .smart-editorial-rail .editorial-rec-thumbs{gap:4px!important}
  .smart-editorial-rail .editorial-rec-thumb{
    width:auto!important;
    height:31px!important;
    flex:1 1 38px!important;
    min-width:0!important;
    max-width:40px!important;
    border-radius:8px!important;
  }
  .smart-editorial-rail .editorial-rec-thumb img{border-radius:7px!important}
  .smart-editorial-rail .editorial-rec-aux-action .editorial-rec-thumb{height:31px!important;padding:0!important}
}
@media(max-width:350px){
  .smart-editorial-rail .editorial-rec-thumb{width:auto!important;height:29px!important;flex:1 1 34px!important;min-width:0!important;max-width:35px!important}
  .smart-editorial-rail .editorial-rec-aux-action .editorial-rec-thumb{height:29px!important}
}

/* Accommodation action row follows the compact spacing rhythm of the project cards: 选择 on the left, price on the right. */
.catalog.catalog-view-accommodation .room-card-body>.room-price{
  right:13px!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-actions{
  left:auto!important;
  right:126px!important;
  width:92px!important;
  min-width:78px!important;
  max-width:92px!important;
}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-card-body>.room-price{right:10px!important}
  .catalog.catalog-view-accommodation .room-card-body>.room-actions{
    left:auto!important;
    right:clamp(102px,28vw,122px)!important;
    width:clamp(82px,22vw,92px)!important;
    min-width:0!important;
    max-width:92px!important;
  }
}
@media(max-width:370px){
  .catalog.catalog-view-accommodation .room-card-body>.room-actions{right:102px!important;width:80px!important;max-width:80px!important}
}

/* V6.37.61 — group homepage detail thumbnails naturally on the left and move room activity labels onto the photo. */
.smart-editorial-rail .editorial-rec-actions,
.smart-editorial-rail .editorial-rec-aux-action{
  justify-content:flex-start!important;
  gap:0!important;
}
.smart-editorial-rail .editorial-rec-thumbs{
  flex:0 1 auto!important;
  width:auto!important;
  max-width:none!important;
  justify-content:flex-start!important;
  gap:6px!important;
  margin:0!important;
  overflow:visible!important;
}
.smart-editorial-rail .editorial-rec-thumb{
  width:40px!important;
  height:31px!important;
  flex:0 0 40px!important;
  min-width:40px!important;
  max-width:40px!important;
}
.smart-editorial-rail .editorial-rec-cta,
.smart-editorial-rail .editorial-rec-aux-action>button:not(.editorial-rec-thumb),
.smart-editorial-rail .editorial-rec-actions>.editorial-rec-note,
.smart-editorial-rail .editorial-rec-aux-action>span{
  margin-left:auto!important;
}
/* Keep a clear breathing gap between the thumbnail group and the action without spreading the thumbnails themselves. */
.smart-editorial-rail .editorial-rec-thumbs + .editorial-rec-cta,
.smart-editorial-rail .editorial-rec-thumbs + button:not(.editorial-rec-thumb),
.smart-editorial-rail .editorial-rec-thumbs + .editorial-rec-note,
.smart-editorial-rail .editorial-rec-thumbs + span{
  margin-left:14px!important;
}
@media(max-width:760px){
  .smart-editorial-rail .editorial-rec-thumbs{gap:5px!important}
  .smart-editorial-rail .editorial-rec-thumb{
    width:38px!important;
    height:31px!important;
    flex:0 0 38px!important;
    min-width:38px!important;
    max-width:38px!important;
  }
  .smart-editorial-rail .editorial-rec-thumbs + .editorial-rec-cta,
  .smart-editorial-rail .editorial-rec-thumbs + button:not(.editorial-rec-thumb),
  .smart-editorial-rail .editorial-rec-thumbs + .editorial-rec-note,
  .smart-editorial-rail .editorial-rec-thumbs + span{margin-left:12px!important}
}
@media(max-width:370px){
  .smart-editorial-rail .editorial-rec-thumb{
    width:35px!important;
    height:29px!important;
    flex:0 0 35px!important;
    min-width:35px!important;
    max-width:35px!important;
  }
  .smart-editorial-rail .editorial-rec-thumbs + .editorial-rec-cta,
  .smart-editorial-rail .editorial-rec-thumbs + button:not(.editorial-rec-thumb){margin-left:9px!important}
}

/* Accommodation activity/offer badge belongs on the main photo, bottom-left, not in the text stack. */
.catalog.catalog-view-accommodation .room-image>.room-activity-badge{
  display:inline-flex!important;
  left:12px!important;
  right:auto!important;
  top:auto!important;
  bottom:12px!important;
  width:auto!important;
  max-width:calc(100% - 24px)!important;
  min-height:25px!important;
  padding:5px 9px!important;
  border:1px solid rgba(255,255,255,.64)!important;
  border-radius:8px!important;
  background:rgba(157,86,62,.92)!important;
  color:#fff!important;
  box-shadow:0 5px 14px rgba(65,39,31,.16)!important;
  backdrop-filter:blur(6px);
  font-size:9px!important;
  font-weight:800!important;
  line-height:1.1!important;
  letter-spacing:.02em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.catalog.catalog-view-accommodation .room-image>.room-activity-badge.hidden{display:none!important}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-image>.room-activity-badge{
    left:10px!important;
    bottom:10px!important;
    min-height:23px!important;
    padding:4px 8px!important;
    border-radius:7px!important;
    font-size:8.5px!important;
  }
}

/* V6.37.62 — accommodation activity badge joins the bottom action row, aligned with the price. */
.catalog.catalog-view-accommodation .room-image>.room-activity-badge{
  display:none!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-activity-footer-badge{
  position:absolute!important;
  z-index:3!important;
  left:13px!important;
  right:auto!important;
  top:auto!important;
  bottom:18px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  max-width:88px!important;
  min-height:24px!important;
  margin:0!important;
  padding:4px 8px!important;
  border:1px solid rgba(157,86,62,.18)!important;
  border-radius:8px!important;
  background:#f6ebe6!important;
  color:#9d563e!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1.1!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.catalog.catalog-view-accommodation .room-card-body>.room-activity-footer-badge.hidden{display:none!important}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-card-body>.room-activity-footer-badge{
    left:11px!important;
    bottom:15px!important;
    max-width:76px!important;
    min-height:22px!important;
    padding:4px 7px!important;
    border-radius:7px!important;
    font-size:8.5px!important;
  }
  }
@media(max-width:370px){
  .catalog.catalog-view-accommodation .room-card-body>.room-activity-footer-badge{max-width:68px!important}
  }

/* V6.37.64 guest contact / butler messaging */
.guest-contact-fields{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;margin:10px 0}.guest-contact-fields label{display:flex;flex-direction:column;gap:6px;min-width:0}.guest-contact-fields span{font-size:13px;font-weight:700}.guest-contact-fields small{font-weight:400;color:var(--muted,#6b7774)}.guest-contact-fields select,.guest-contact-fields input{width:100%;min-width:0;height:44px;border:1px solid #d7dfdc;border-radius:11px;padding:0 11px;background:#fff;font-size:16px}.order-chat-card{margin:12px 0;padding:14px;border:1px solid #d7e5e1;border-radius:14px;background:#f8fbfa}.order-chat-card.unread{border-color:#9bcabe;background:#f3faf8}.order-chat-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.order-chat-head div{display:grid;gap:2px}.order-chat-head span{font-size:11px;letter-spacing:.06em;color:#6d7f7b}.order-chat-head strong{font-size:15px;color:#173d38}.order-chat-head>b{font-size:10px;background:#b64322;color:#fff;border-radius:999px;padding:5px 8px;white-space:nowrap}.order-chat-head>b.read{background:#e5ecea;color:#64736f}.order-chat-messages{display:grid;gap:8px;margin:11px 0;max-height:270px;overflow:auto;padding:9px;background:#fff;border-radius:12px}.order-chat-message{display:flex;justify-content:flex-start}.order-chat-message.guest{justify-content:flex-end}.order-chat-message>div{max-width:84%;padding:8px 10px;border-radius:13px;background:#f1f5f4;border:1px solid #e0e9e6}.order-chat-message.guest>div{background:#e6f3ef;border-color:#cce2dc}.order-chat-message b{display:block;font-size:10px;color:#56716b;margin-bottom:2px}.order-chat-message p{margin:0;color:#263b37;line-height:1.5;white-space:pre-wrap;word-break:break-word}.order-chat-message small{display:block;margin-top:4px;font-size:9px;color:#83918e}.order-chat-empty{padding:8px;text-align:center;color:#7b8986;font-size:12px}.order-chat-reply{display:grid;gap:8px}.order-chat-reply textarea{width:100%;min-width:0;resize:vertical;border:1px solid #d7dfdc;border-radius:11px;padding:10px 11px;font-size:16px;background:#fff}.order-chat-reply>div{display:flex;gap:9px;align-items:center}.order-chat-reply button{min-height:40px;border:0;border-radius:10px;padding:0 17px;background:#173f39;color:#fff;font-weight:800}.order-chat-reply span{font-size:11px;color:#61736f}.butler-message-card{margin:12px 0;padding:14px 15px;border-left:3px solid #123f3a;background:#f3f8f6;border-radius:12px}.butler-message-card.unread{background:#edf7f4}.butler-message-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.butler-message-card-head span{font-size:12px;letter-spacing:.05em;color:#51635f}.butler-message-card-head b{font-size:11px;color:#a2462f}.butler-message-card-head b.read{color:#687874}.butler-message-card strong{display:block;font-size:15px;color:#173d38}.butler-message-card p{margin:5px 0 4px;line-height:1.55;color:#243c38}.butler-message-card small{color:#6b7774}.butler-message-card button{margin-top:9px;border:0;background:transparent;color:#123f3a;font-weight:700;padding:4px 0}@media(max-width:520px){.guest-contact-fields{grid-template-columns:110px minmax(0,1fr)}}


/* V6.37.67 — activity badge placement in left-image/right-copy cards. */
.catalog.catalog-view-quick .product-body>.catalog-activity-badge,
.catalog.catalog-view-quick .room-card-body>.catalog-activity-badge{
  position:absolute!important;z-index:4!important;left:12px!important;right:auto!important;top:auto!important;bottom:48px!important;
  width:auto!important;max-width:96px!important;min-height:21px!important;margin:0!important;padding:4px 7px!important;border-radius:7px!important;
  box-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.catalog.catalog-view-quick .product-card.has-activity-badge:not(.selected) .product-body,
.catalog.catalog-view-quick .product-card.has-activity-badge:not(.selected) .room-card-body{padding-bottom:78px!important}
.catalog.catalog-view-quick .product-card.selected .product-body>.catalog-activity-badge,
.catalog.catalog-view-quick .product-card.selected .room-card-body>.catalog-activity-badge{
  position:static!important;display:inline-flex!important;margin:7px 0 0!important;max-width:100%!important;
}
.catalog.catalog-view-accommodation .room-card-body>.catalog-activity-badge{
  position:absolute!important;z-index:4!important;left:13px!important;right:auto!important;top:auto!important;bottom:53px!important;
  width:auto!important;max-width:96px!important;min-height:21px!important;margin:0!important;padding:4px 7px!important;border-radius:7px!important;
  box-shadow:none!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
}
.catalog.catalog-view-accommodation .room-card.has-activity-badge .room-card-body{padding-bottom:82px!important}
@media(max-width:760px){
  .catalog.catalog-view-quick .product-body>.catalog-activity-badge,
  .catalog.catalog-view-quick .room-card-body>.catalog-activity-badge{left:11px!important;bottom:47px!important;max-width:92px!important}
  .catalog.catalog-view-quick .product-card.has-activity-badge:not(.selected) .product-body,
  .catalog.catalog-view-quick .product-card.has-activity-badge:not(.selected) .room-card-body{padding-bottom:76px!important}
  .catalog.catalog-view-accommodation .room-card-body>.catalog-activity-badge{left:11px!important;bottom:50px!important;max-width:92px!important}
  .catalog.catalog-view-accommodation .room-card.has-activity-badge .room-card-body{padding-bottom:78px!important}
}

/* V6.37.73 — every left-image/right-copy quick card uses the same saved crop as the admin preview.
   The guest media box itself stays fixed; only the image inside is positioned/scaled. */
.catalog.catalog-view-quick .category-products .product-image,
.catalog.catalog-view-quick .room-grid .room-image,
.catalog.catalog-view-quick .catalog-gallery-main{overflow:hidden!important}
.catalog.catalog-view-quick .category-products .product-image img,
.catalog.catalog-view-quick .room-grid .room-image img,
.catalog.catalog-view-quick .catalog-gallery-main img{
  object-position:var(--left-card-position,50% 45%)!important;
  transform:scale(var(--left-card-scale,1));
  transform-origin:var(--left-card-position,50% 45%);
  will-change:transform;
}

/* V6.37.75 — accommodation activity badge moves into the copy area's top-right.
   Remove only the extra promo row/height; keep image, price and select positions unchanged. */
.catalog.catalog-view-accommodation .room-card-body>.catalog-activity-badge{
  position:absolute!important;
  z-index:4!important;
  left:auto!important;
  right:13px!important;
  top:10px!important;
  bottom:auto!important;
  width:auto!important;
  max-width:88px!important;
  min-height:21px!important;
  margin:0!important;
  padding:4px 7px!important;
  border-radius:7px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.catalog.catalog-view-accommodation .room-card.has-activity-badge .room-card-body{
  padding-bottom:60px!important;
}
.catalog.catalog-view-accommodation .room-card.has-activity-badge .room-hotel{
  display:block!important;
  width:calc(100% - 96px)!important;
  padding-right:0!important;
  box-sizing:border-box!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
@media(max-width:760px){
  .catalog.catalog-view-accommodation .room-card-body>.catalog-activity-badge{
    right:11px!important;
    top:9px!important;
    max-width:82px!important;
  }
  .catalog.catalog-view-accommodation .room-card.has-activity-badge .room-card-body{
    padding-bottom:56px!important;
  }
  .catalog.catalog-view-accommodation .room-card.has-activity-badge .room-hotel{
    width:calc(100% - 90px)!important;
  }
}
