:root{--primary:#087ea4;--primary-dark:#075985;--aqua:#14b8a6;--sky:#f0f9ff;--surface:#fff;--soft:#f7fbfd;--text:#123047;--muted:#607789;--border:#dce8ee;--sun:#f59e42;--success:#16835a;--danger:#dc2626;--shadow:0 8px 24px rgba(18,48,71,.1);--shadow-sm:0 2px 8px rgba(18,48,71,.08);font-family:"Roboto",Arial,sans-serif;color:var(--text);background:var(--soft)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--soft);font-size:15px;line-height:1.5}button,input,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #7dd3fc;outline-offset:2px}.shell{max-width:1280px;margin:auto;padding:0 16px}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;background:#fff}.brand{display:flex;align-items:center;gap:9px;color:var(--text);font-weight:750;font-size:21px;text-decoration:none;letter-spacing:-.6px}.brand-mark{width:30px;height:30px;border-radius:11px;background:linear-gradient(145deg,var(--primary),#2bc4c0);display:grid;place-items:center;color:#fff;font-size:17px}.header-actions{display:flex;gap:4px}.icon-btn{width:44px;height:44px;border:0;background:transparent;border-radius:50%;color:var(--text);display:grid;place-items:center;font-size:21px;text-decoration:none}.icon-btn:hover{background:var(--sky)}.desktop-links{display:none}.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#063c57,#087ea4 63%,#16b8a6);color:#fff;padding:44px 0 26px}.hero:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.55;background:url("https://images.unsplash.com/photo-1528127269322-539801943592?auto=format&fit=crop&w=1080&q=72") center/cover}.hero:after{content:"";position:absolute;inset:auto -10% -58px;height:150px;background:#f7fbfd;border-radius:50% 50% 0 0/30% 30% 0 0;z-index:-1}.eyebrow,.pill{font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.eyebrow{color:#c8f8f2;margin:0 0 9px}.hero h1{font-size:32px;line-height:1.2;letter-spacing:-1px;margin:0;max-width:520px}.hero p{margin:12px 0 26px;color:#e1f5fa;max-width:485px}.search-card{background:#fff;color:var(--text);border-radius:18px;padding:8px;box-shadow:var(--shadow);max-width:705px}.search-fields{display:grid;grid-template-columns:1fr 1fr;gap:4px}.search-unit{border:0;background:#fff;border-radius:12px;padding:10px 11px;text-align:left;min-height:60px;color:var(--text)}.search-unit:first-child{grid-column:span 2;border-bottom:1px solid var(--border)}.search-unit span{display:block;color:var(--muted);font-size:12px}.search-unit strong{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.search-submit{height:48px;width:100%;border:0;border-radius:12px;margin-top:6px;background:var(--primary);color:#fff;font-weight:700}.section{padding:32px 0}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.section-title{font-size:23px;letter-spacing:-.55px;margin:0}.section-subtitle{color:var(--muted);margin:3px 0 0}.text-link{border:0;background:transparent;padding:8px 0;color:var(--primary-dark);font-weight:700;text-decoration:none}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.location-card{min-height:145px;position:relative;overflow:hidden;border:0;border-radius:18px;color:#fff;text-decoration:none;text-align:left;padding:14px;background:#0d637f;box-shadow:var(--shadow-sm)}.location-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.72}.location-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 26%,rgba(1,31,47,.7))}.location-card>*:not(img){position:relative;z-index:1}.location-card strong{display:block;font-size:17px;margin-top:63px}.location-card small{font-size:12px}.category-row{display:flex;gap:10px;overflow:auto;padding-bottom:4px;scrollbar-width:none}.category-row::-webkit-scrollbar{display:none}.category{min-width:116px;height:104px;padding:14px;border:1px solid var(--border);border-radius:18px;background:#fff;text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm)}.category span{display:block;font-size:27px;margin-bottom:8px}.category strong{font-size:14px}.collection{background:#e9f8f8}.property-grid{display:grid;gap:16px}.property-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);position:relative}.property-image{display:block;position:relative;aspect-ratio:4/3;background:#dce8ee;text-decoration:none}.property-image img{width:100%;height:100%;object-fit:cover;display:block}.badges{position:absolute;top:10px;left:10px;display:flex;gap:6px}.badge{background:#fff;color:var(--primary-dark);padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;box-shadow:var(--shadow-sm)}.favorite{position:absolute;top:8px;right:8px;background:#fff;border:0;width:42px;height:42px;border-radius:50%;font-size:19px;box-shadow:var(--shadow-sm)}.favorite.is-saved{color:#e11d48}.property-body{padding:13px 14px 14px}.property-title{font-size:17px;line-height:1.3;margin:0 0 2px}.property-title a{text-decoration:none;color:inherit}.location-line{margin:0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.facts{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.fact{background:var(--soft);color:var(--text);padding:3px 7px;border-radius:6px;font-size:12px}.price-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.price{font-weight:750;font-size:15px}.availability{font-size:12px;color:var(--success);font-weight:650}.availability.limited{color:#9a5a00}.availability.unavailable{color:var(--danger)}.guide{background:#123047;color:#fff;border-radius:18px;padding:22px;overflow:hidden;position:relative}.guide:after{content:"✦";position:absolute;right:22px;top:-18px;font-size:130px;color:rgba(255,255,255,.08)}.guide h2{margin:0;font-size:23px;max-width:370px;line-height:1.25}.guide p{color:#d4e4eb;max-width:440px}.guide a{display:inline-block;margin-top:6px;color:#fff}.footer{background:#fff;border-top:1px solid var(--border);padding:28px 0 102px;color:var(--muted);font-size:13px}.footer strong{color:var(--text)}.bottom-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;height:76px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;justify-content:space-around;padding-bottom:max(8px,env(safe-area-inset-bottom))}.bottom-nav a{color:var(--muted);font-size:11px;font-weight:650;text-decoration:none;display:grid;place-content:center;text-align:center;min-width:58px}.bottom-nav a span{font-size:21px;line-height:24px}.bottom-nav a.active{color:var(--primary-dark)}
.page-heading{padding:22px 0 12px}.breadcrumbs{font-size:13px;color:var(--muted);margin:0 0 9px}.page-heading h1{font-size:28px;margin:0;letter-spacing:-.8px}.summary-bar{border:1px solid var(--border);border-radius:14px;background:#fff;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);font-weight:650}.summary-bar button{border:0;background:var(--sky);color:var(--primary-dark);border-radius:9px;min-height:36px;padding:0 10px;font-weight:650}.chips{display:flex;gap:8px;overflow:auto;padding:12px 0 2px;scrollbar-width:none}.chip{white-space:nowrap;border:1px solid var(--border);background:#fff;border-radius:999px;padding:9px 13px;color:var(--text);font-weight:650}.chip.active{border-color:var(--primary);background:var(--primary);color:#fff}.toolbar{display:flex;gap:8px;padding:18px 0 16px}.toolbar button{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 13px;color:var(--text);font-weight:650;min-height:44px}.result-count{font-size:14px;color:var(--muted);margin:0 0 14px}.list-layout{padding-bottom:28px}.filter-chip{display:none}.sheet-backdrop{position:fixed;z-index:29;inset:0;background:rgba(18,48,71,.45);display:flex;align-items:end;justify-content:center}.sheet{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:680px;max-height:88vh;overflow:auto;padding:10px 16px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(18,48,71,.16)}.handle{width:42px;height:4px;background:var(--border);border-radius:99px;margin:0 auto 14px}.sheet-head{display:flex;align-items:center;justify-content:space-between}.sheet h2{font-size:21px;margin:0}.close{border:0;background:var(--sky);width:44px;height:44px;border-radius:50%;font-size:20px}.field-label{font-weight:700;display:block;margin:18px 0 8px}.options{display:flex;flex-wrap:wrap;gap:8px}.option{border:1px solid var(--border);border-radius:10px;padding:10px 13px;background:#fff}.option.selected{background:var(--sky);border-color:var(--primary);color:var(--primary-dark);font-weight:700}.sheet-actions{display:flex;gap:10px;margin-top:24px;position:sticky;bottom:-20px;background:#fff;padding:12px 0}.btn{border:0;border-radius:12px;min-height:48px;padding:0 16px;font-weight:750;text-decoration:none;display:inline-grid;place-items:center}.btn.primary{background:var(--primary);color:#fff;flex:1}.btn.secondary{background:#fff;border:1px solid var(--border);color:var(--primary-dark)}.detail-hero{margin:0 -16px}.detail-image{position:relative;aspect-ratio:4/3;background:#dce8ee}.detail-image img{width:100%;height:100%;object-fit:cover;display:block}.gallery-count{position:absolute;bottom:12px;right:16px;background:rgba(18,48,71,.8);color:white;padding:6px 10px;border-radius:999px;font-size:12px}.detail{padding-bottom:108px}.detail-intro{padding:18px 0 8px}.detail-intro h1{font-size:27px;line-height:1.18;letter-spacing:-.8px;margin:5px 0}.detail-intro p{margin:3px 0;color:var(--muted)}.rating{font-size:14px;color:var(--sun);font-weight:700}.detail-price{margin:14px 0 0;font-size:20px;font-weight:750}.detail-section{border-top:1px solid var(--border);padding:22px 0}.detail-section h2{font-size:21px;margin:0 0 10px}.detail-section p{margin:0;color:#3c5769}.amenities{display:grid;grid-template-columns:1fr 1fr;gap:10px}.amenity{padding:10px;border:1px solid var(--border);border-radius:10px;font-size:13px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin-top:12px}.day{aspect-ratio:1;display:grid;place-items:center;border-radius:8px;background:#e8f8f4;font-size:12px}.day.limited{background:#fff0cf}.day.unavailable{background:#f3f5f6;color:#9aa9b2;text-decoration:line-through}.policy{padding:11px 0;border-top:1px solid var(--border);font-size:14px}.sticky-cta{position:fixed;z-index:15;left:0;right:0;bottom:0;background:#fff;border-top:1px solid var(--border);padding:11px 16px max(11px,env(safe-area-inset-bottom));display:flex;gap:14px;align-items:center}.sticky-cta .price{flex:1;font-size:14px}.sticky-cta .price small{display:block;color:var(--muted);font-weight:500}.sticky-cta .btn{min-width:146px}.empty{margin:30px 0;background:#fff;border:1px dashed var(--border);border-radius:18px;padding:34px 20px;text-align:center}.empty .empty-icon{font-size:42px}.empty h2{font-size:21px;margin:8px 0}.empty p{margin:0 0 18px;color:var(--muted)}.form-group{margin:14px 0}.form-group label{display:block;font-weight:650;margin:0 0 6px}.form-group input,.form-group textarea{width:100%;min-height:48px;border:1px solid var(--border);border-radius:10px;padding:11px;background:#fff;color:var(--text)}.form-group textarea{min-height:88px;resize:vertical}.form-group input:invalid:not(:placeholder-shown){border-color:var(--danger)}.consent{display:flex;gap:10px;color:var(--muted);font-size:13px;align-items:start}.consent input{margin-top:4px;width:18px;height:18px}.notice{font-size:13px;background:var(--sky);padding:10px;border-radius:9px;color:var(--primary-dark)}.success{text-align:center;padding:34px 10px}.success i{display:grid;place-items:center;margin:auto;width:62px;height:62px;background:#e8f8f4;border-radius:50%;font-size:30px;font-style:normal}.success h2{margin:15px 0 6px}.toast{position:fixed;z-index:60;left:50%;bottom:90px;transform:translateX(-50%);background:#123047;color:#fff;border-radius:999px;padding:10px 14px;box-shadow:var(--shadow);font-size:14px;white-space:nowrap}.hide{display:none!important}
@media(min-width:700px){.shell{padding:0 24px}.topbar{height:76px}.desktop-links{display:flex;gap:24px;margin-left:44px;margin-right:auto}.desktop-links a{color:var(--text);text-decoration:none;font-size:14px;font-weight:650}.bottom-nav{display:none}.footer{padding-bottom:32px}.hero{padding:74px 0 70px}.hero h1{font-size:45px}.search-card{padding:10px}.search-fields{grid-template-columns:1.2fr 1fr 1fr auto;align-items:center}.search-unit{min-height:52px}.search-unit:first-child{grid-column:auto;border-bottom:0;border-right:1px solid var(--border)}.search-submit{width:130px;margin:0}.section{padding:50px 0}.section-title{font-size:29px}.location-grid{grid-template-columns:repeat(4,1fr);gap:18px}.location-card{min-height:190px}.location-card strong{margin-top:100px}.property-grid{grid-template-columns:repeat(2,1fr);gap:20px}.detail-hero{margin:0}.detail-image{border-radius:24px;max-height:550px}.detail-content{max-width:800px;margin:auto}.detail-intro h1{font-size:37px}.sticky-cta{left:50%;right:auto;bottom:18px;width:min(640px,calc(100% - 48px));transform:translateX(-50%);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.page-heading{padding-top:34px}.list-layout{padding-bottom:48px}.filter-chip{display:inline-flex}}
@media(min-width:1024px){.property-grid{grid-template-columns:repeat(3,1fr)}.location-grid{max-width:960px}.detail{padding-bottom:120px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Interaction sizing and viewport safety */
.brand,.text-link,.property-title a,.breadcrumbs a{min-height:44px;display:inline-flex;align-items:center}.favorite{width:44px;height:44px}.summary-bar button,.chip{min-height:44px}.consent{min-height:44px;align-items:center}.consent input{width:20px;height:20px}.sheet{max-height:88dvh}.body--sheet-open{overflow:hidden}
@media(min-width:700px){.location-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}}
@media(min-width:700px){.desktop-links a{min-height:44px;display:inline-flex;align-items:center}}

/* Odayne Pulse — mobile-first refresh inspired by the hierarchy and softness
   of the supplied reference, adapted to Odayne's travel product. */
:root{--primary:#fa4a68;--primary-dark:#d92f4c;--aqua:#2ba89c;--sky:#fff1f4;--surface:#fff;--soft:#fff9fa;--text:#20171b;--muted:#78666c;--border:#f0dfe3;--sun:#e87c31;--success:#16835a;--shadow-sm:0 5px 18px rgba(61,27,37,.07);--shadow:0 16px 42px rgba(61,27,37,.11)}
body{background:var(--soft);letter-spacing:-.01em}.shell{padding-inline:20px}.topbar{height:72px;background:transparent}.brand{font-size:22px;letter-spacing:-1px;font-weight:800}.brand-mark{width:34px;height:34px;border-radius:12px;background:var(--text);font-size:18px}.header-actions{gap:8px}.icon-btn{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm);font-size:20px}.hero{padding:32px 0 34px;color:var(--text);background:linear-gradient(145deg,#fff7f7 0%,#fff 52%,#ffe8ee 100%)}.hero:before{opacity:.12;filter:saturate(.8);background-position:70% center}.hero:after{display:none}.eyebrow{color:var(--primary-dark);font-weight:800;letter-spacing:.08em}.hero h1{max-width:600px;font-size:39px;line-height:1.04;letter-spacing:-1.8px;color:var(--text)}.hero h1::first-line{color:var(--primary)}.hero p{color:var(--muted);font-size:16px;line-height:1.55;margin:15px 0 24px}.search-card{padding:8px;border:1px solid rgba(250,74,104,.16);border-radius:26px;box-shadow:var(--shadow);background:rgba(255,255,255,.94)}.search-unit{min-height:64px;border-radius:18px;padding:12px 14px}.search-unit:first-child{background:var(--sky);border:0}.search-unit span{font-weight:650;color:var(--muted)}.search-unit strong{font-size:15px;font-weight:780}.search-submit{height:52px;border-radius:18px;background:var(--primary);box-shadow:0 7px 15px rgba(250,74,104,.23);font-weight:800}.section{padding:38px 0}.section-head{margin-bottom:18px}.section-title{font-size:27px;line-height:1.1;letter-spacing:-1px}.section-subtitle{font-size:14px}.text-link{color:var(--primary-dark);font-weight:800}.location-grid{gap:14px}.location-card{min-height:176px;border-radius:26px;padding:16px;box-shadow:none}.location-card:after{background:linear-gradient(180deg,rgba(34,16,21,.04) 5%,rgba(34,16,21,.82))}.location-card strong{margin-top:83px;font-size:19px;letter-spacing:-.6px}.location-card small{font-weight:600}.collection{background:#ffeef1}.category-row{gap:12px}.category{min-width:130px;height:118px;padding:16px;border-radius:23px;border:1px solid #f4e2e5;box-shadow:none}.category span{font-size:30px}.category strong{font-size:14px}.property-grid{gap:18px}.property-card{border:1px solid var(--border);border-radius:25px;box-shadow:none;background:#fff;transition:transform 180ms ease,box-shadow 180ms ease}.property-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.property-image{border-radius:24px 24px 0 0}.badges{top:12px;left:12px}.badge{background:#fff5f7;color:var(--primary-dark);border:1px solid #ffdce4;padding:5px 9px;border-radius:999px;box-shadow:none;font-size:11px}.favorite{top:10px;right:10px;background:#fff;border:1px solid #f4e2e5;box-shadow:none;color:var(--text)}.favorite.is-saved{background:var(--primary);border-color:var(--primary);color:#fff}.property-body{padding:16px}.property-title{font-size:18px;letter-spacing:-.45px}.location-line{margin-top:3px}.fact{background:#fff1f3;color:#684850;padding:4px 8px;border-radius:8px}.price-row{padding-top:3px}.price{font-weight:800;letter-spacing:-.25px}.availability{border-radius:999px;background:#eaf7f1;padding:3px 7px}.availability.limited{background:#fff0d6}.availability.unavailable{background:#fff0f0}.guide{border-radius:28px;padding:28px;background:linear-gradient(135deg,#25171c,#5a2432);box-shadow:var(--shadow)}.guide:after{color:rgba(250,74,104,.28)}.guide h2{font-size:27px;letter-spacing:-1px}.guide a{font-weight:800;color:#ff9aae}.footer{background:#21161a;border:0;color:#cbb9be}.footer strong{color:#fff}.footer .brand{color:#fff}.footer .brand-mark{background:var(--primary)}.bottom-nav{left:14px;right:14px;bottom:12px;height:66px;border:1px solid #f0dfe3;border-radius:24px;box-shadow:0 10px 32px rgba(53,23,31,.15);padding-bottom:0}.bottom-nav a{min-width:62px}.bottom-nav a.active{color:var(--primary-dark)}
.page-heading{padding-top:25px}.page-heading h1{font-size:32px;letter-spacing:-1.2px}.breadcrumbs{color:var(--primary-dark);font-weight:650}.summary-bar{border-radius:19px;border-color:var(--border);box-shadow:var(--shadow-sm);padding:10px 11px}.summary-bar button{background:var(--primary);color:#fff;border-radius:12px}.chips{gap:9px}.chip{border-radius:999px;border-color:var(--border);font-size:14px}.chip.active{background:var(--primary);border-color:var(--primary);box-shadow:0 6px 14px rgba(250,74,104,.18)}.toolbar button{border-radius:14px;border-color:var(--border);box-shadow:var(--shadow-sm)}.sheet-backdrop{background:rgba(32,23,27,.38)}.sheet{border-radius:30px 30px 0 0;padding-inline:20px}.handle{background:#efd9de;width:46px}.sheet h2{letter-spacing:-.6px}.close{background:var(--sky);color:var(--primary-dark)}.option{border-radius:14px;padding:11px 14px}.option.selected{border-color:var(--primary);background:var(--sky);color:var(--primary-dark)}.btn{border-radius:16px}.btn.primary{background:var(--primary);box-shadow:0 8px 17px rgba(250,74,104,.2)}.btn.secondary{border-color:var(--border);color:var(--text)}.detail-hero{margin-inline:-20px}.detail-image{border-radius:0}.gallery-count{background:var(--text);border:1px solid rgba(255,255,255,.3)}.detail-intro h1{font-size:31px;letter-spacing:-1.2px}.detail-price{font-size:22px}.detail-section{border-color:var(--border)}.detail-section h2{font-size:23px;letter-spacing:-.7px}.amenity{border-color:var(--border);border-radius:14px;background:#fff}.day{border-radius:10px;background:#edf8f6}.sticky-cta{border-color:var(--border);padding:11px 20px max(11px,env(safe-area-inset-bottom));box-shadow:0 -8px 26px rgba(47,20,28,.08)}.empty{border-color:#f2cfd8;border-radius:26px;box-shadow:var(--shadow-sm)}.form-group input,.form-group textarea{border-color:var(--border);border-radius:14px}.notice{border-radius:14px;background:var(--sky);color:#793544}
@media(min-width:700px){.shell{padding-inline:32px}.hero{padding:82px 0 76px}.hero h1{font-size:58px;letter-spacing:-2.7px}.search-card{border-radius:28px}.detail-hero{margin-inline:0}.detail-image{border-radius:30px}.bottom-nav{left:0;right:0;bottom:0;border-radius:0;box-shadow:none}.footer{padding-bottom:35px}}

/* Home v2 — scoped mobile-first travel dashboard based on the supplied reference. */
.home-page,.home-topbar,.home-page~.footer,.home-page~.footer~.bottom-nav{--home-blue:#3152ed;--home-blue-deep:#2544d7;--home-ink:#111d37;--home-muted:#68748b;--home-line:#e5e9f3;--home-yellow:#ffc83d;--home-shadow:0 12px 30px rgba(35,67,190,.13);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif}
.home-topbar{height:82px;max-width:none;padding:15px 20px 8px;background:var(--home-blue);color:#fff}.home-topbar .brand{color:#fff;font-size:26px;line-height:1;font-weight:850;letter-spacing:-1.25px}.home-topbar .brand-mark{width:34px;height:34px;border:0;border-radius:9px;background:#fff;color:var(--home-blue);box-shadow:none}.home-topbar .brand-mark svg{width:23px;height:23px;display:block}.home-topbar .brand-dot{color:var(--home-yellow)}.home-topbar .desktop-links{margin-left:58px}.home-topbar .desktop-links a{color:rgba(255,255,255,.86)}.home-topbar .desktop-links a:hover{color:#fff}.home-topbar .icon-btn{color:#fff;background:transparent;border:0;box-shadow:none}.member-pill{display:flex;align-items:center;gap:5px;color:#fff;font-size:10px;font-weight:730;white-space:nowrap}.member-pill>svg{width:26px;height:26px;padding:4px;border-radius:50%;background:#dbe5ff;color:#5c79dc;stroke:#fff}.member-pill b{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--home-yellow);color:#fff;font-size:10px}.member-pill span{display:none}
.home-page{background:#fff;color:var(--home-ink);padding-bottom:38px}.home-page .shell{padding-inline:13px}.home-hero{position:relative;color:#fff;padding:8px 0 27px;background:linear-gradient(180deg,var(--home-blue) 0,var(--home-blue) 57%,#8ca3ff 76%,#fff 100%)}.home-kicker,.home-hero h1,.home-hero>.shell>p:not(.home-kicker){display:none}.service-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 3px;margin:0;background:#fff;border-radius:22px;padding:13px 8px 11px;box-shadow:0 12px 28px rgba(31,61,174,.1)}.service-board>a{min-width:0;min-height:78px;padding:4px 0 1px;display:flex;align-items:center;justify-content:flex-start;flex-direction:column;gap:5px;color:var(--home-blue-deep);text-align:center;text-decoration:none;font-size:10.5px;line-height:1.16;font-weight:760;letter-spacing:-.15px}.service-icon{width:42px;height:42px;display:grid;place-items:center;color:var(--home-blue);background:transparent;border:0;border-radius:0}.service-icon svg{display:block;width:38px;height:38px;overflow:visible;stroke:currentColor}.service-board strong{max-width:76px;font-weight:760}.service-board>a:last-child:nth-child(4n+3){grid-column:3}.home-content{background:#fff}
.home-search{width:100%;height:54px;margin-top:4px;padding:4px 5px 4px 13px;display:flex;align-items:center;gap:9px;border:1.7px solid var(--home-blue);border-radius:999px;background:#fff;color:var(--home-ink);box-shadow:0 7px 17px rgba(43,70,163,.1);text-align:left}.search-copy{flex:1;min-width:0;display:flex;justify-content:center;flex-direction:column;line-height:1.15}.search-copy small{color:#8b94a6;font-size:9px;font-weight:560}.home-search strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#5e6980;font-size:13px;font-weight:560;letter-spacing:-.2px}.search-orb{width:22px;height:22px;display:grid;place-items:center;color:var(--home-blue)}.search-orb svg{width:21px;height:21px;display:block}.search-action{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--home-blue);color:#fff}.search-action svg{display:block;width:23px;height:23px;stroke-width:2.2}
.home-discover{position:relative;overflow:hidden;padding:19px 0 28px;background-color:#fff;background-image:radial-gradient(ellipse at 84% 18%,rgba(78,111,231,.09),transparent 36%),linear-gradient(180deg,#fff 0,#f9faff 31%,#fff 66%)}.home-discover:before{content:"";position:absolute;z-index:0;top:42px;right:-64px;width:325px;height:150px;opacity:.25;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 230'%3E%3Cg fill='none' stroke='%239bb0ed' stroke-width='2'%3E%3Cpath d='M12 89c35-10 38-40 77-29 31 9 34-15 70-13 31 2 46 31 77 21 30-10 51 12 79 13 51 3 61-42 145-24'/%3E%3Cpath d='M39 150c32-26 69 5 92-20 26-29 47 4 77-5 37-12 52 17 88 5 52-18 94 12 164-9'/%3E%3Cpath d='M87 34c16 31 4 55 36 72 30 16 6 43 44 62m105-147c-12 29 12 42-4 65-17 24 4 53-7 93m118-148c-14 25 6 42-11 67-15 23 4 39-7 66'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;pointer-events:none}.home-discover>*{position:relative;z-index:1}.discover-head{height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px}.discover-title-group{min-width:0;display:flex;align-items:center;gap:8px}.discover-head h2{margin:0;font-size:24px;line-height:1;font-weight:830;letter-spacing:-1px}.discover-select{min-height:36px;padding:6px 9px;border:1px solid #e1e6f5;border-radius:999px;background:#f3f5fc;color:var(--home-ink);font-size:11px;font-weight:740;white-space:nowrap}.discover-select svg{width:12px;height:12px;transform:rotate(90deg)}.discover-head>a{margin-left:auto;min-height:38px;display:inline-flex;align-items:center;gap:4px;color:var(--home-blue);text-decoration:none;font-size:12px;font-weight:760;white-space:nowrap}.discover-head>a svg{width:23px;height:23px;display:block}.discover-row{display:flex;gap:8px;overflow-x:auto;margin:15px -13px 18px;padding:0 13px 5px;scroll-snap-type:x proximity;scrollbar-width:none}.discover-row::-webkit-scrollbar{display:none}.discover-item{flex:0 0 68px;padding:0;border:0;background:transparent;color:#536077;display:flex;align-items:center;flex-direction:column;gap:6px;text-align:center;font-size:9.5px;line-height:1.14;scroll-snap-align:start;text-decoration:none}.discover-item>span{width:53px;height:53px;display:grid;place-items:center;border:1px solid #edf0f7;border-radius:50%;background:#fff;color:var(--home-ink);box-shadow:0 5px 14px rgba(37,60,122,.08)}.discover-item>span svg{display:block;width:27px;height:27px;stroke-width:1.9}.discover-item strong{font-weight:560}.home-story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px}.home-story{position:relative;min-width:0;min-height:252px;overflow:hidden;border-radius:10px;background:#e6ebf3;text-decoration:none}.promotion{padding:14px 10px 12px;color:#fff;display:flex;align-items:center;flex-direction:column;text-align:center;background:linear-gradient(180deg,#55bdd9 0%,#7bd1e4 48%,#d5eff0 69%,#f8dbe1 100%)}.promotion:after{content:"";position:absolute;inset:58% 0 0;background:radial-gradient(circle at 48% 38%,rgba(255,255,255,.78) 0 4%,transparent 5%),linear-gradient(15deg,rgba(255,255,255,.45),transparent 50%);pointer-events:none}.promotion span,.promotion strong,.promotion small,.promotion b{position:relative;z-index:1}.promotion span{padding:3px 7px;border-radius:999px;background:var(--home-blue);font-size:8px;font-weight:820}.promotion strong{margin-top:6px;font-size:22px;line-height:1.02;letter-spacing:-.7px;text-transform:uppercase}.promotion small{margin-top:6px;font-size:8px;line-height:1.3;font-weight:650}.promotion b{margin-top:auto;padding:7px 10px;border-radius:999px;background:var(--home-yellow);color:#6b4900;font-size:9px;font-weight:760}.promotion b svg{width:10px;height:10px;vertical-align:-2px}.photo-story{color:#fff}.photo-story img{width:100%;height:100%;display:block;object-fit:cover}.photo-story:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,rgba(9,18,41,.83))}.photo-story strong{position:absolute;z-index:1;inset:auto 10px 11px;color:#fff;font-size:14px;line-height:1.16;font-weight:760;letter-spacing:-.4px}.home-properties{padding-top:27px}.home-properties .section-title{color:var(--home-ink);font-size:24px}.home-properties .section-subtitle{font-size:12px}.home-properties .text-link{color:var(--home-blue);font-size:12px}.home-page .property-card{border-color:#e2e6f3}.home-page .badge{background:#eef1ff;color:var(--home-blue-deep);border-color:#dce2ff}.home-page .favorite.is-saved{background:var(--home-blue);border-color:var(--home-blue)}.home-page .fact{background:#f0f2ff;color:#485573}
.home-page~.footer{padding-bottom:94px}.home-page~.footer~.bottom-nav{left:0;right:0;bottom:0;height:72px;padding:4px 7px max(5px,env(safe-area-inset-bottom));border:0;border-top:1px solid #edf0f5;border-radius:0;background:rgba(255,255,255,.98);box-shadow:0 -6px 18px rgba(27,38,71,.06);backdrop-filter:blur(14px)}.home-page~.footer~.bottom-nav>a{min-width:60px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#818b9f;font-size:10px;line-height:1.1;font-weight:520}.home-page~.footer~.bottom-nav .bottom-nav-icon{width:26px;height:26px;display:grid;place-items:center;line-height:1}.home-page~.footer~.bottom-nav .bottom-nav-icon svg{display:block;width:24px;height:24px;stroke:currentColor}.home-page~.footer~.bottom-nav .bottom-nav-label{display:block;font-size:10px;line-height:1.1}.home-page~.footer~.bottom-nav>a.active{color:var(--home-blue);font-weight:650}
@media(max-width:350px){.home-page .shell{padding-inline:10px}.home-topbar{padding-inline:16px}.service-board{padding-inline:5px}.service-board>a{font-size:9.5px}.discover-head h2{font-size:21px}.discover-select{padding-inline:8px}.discover-head>a{font-size:11px}.discover-row{margin-inline:-10px;padding-inline:10px}.home-story{min-height:230px}}
@media(min-width:700px){.home-topbar{height:80px;padding-inline:32px}.home-page .shell{padding-inline:32px}.home-hero{padding:18px 0 38px;background:linear-gradient(180deg,var(--home-blue) 0,var(--home-blue) 62%,#9badfb 82%,#fff 100%)}.service-board{max-width:760px;margin-inline:auto;padding:18px 14px;border-radius:28px;gap:8px}.service-board>a{min-height:102px;font-size:13px}.service-icon{width:54px;height:54px}.service-icon svg{width:48px;height:48px}.home-search{max-width:760px;height:60px;margin:25px auto 0}.discover-row{margin-inline:-32px;padding-inline:32px;gap:17px}.discover-item{flex-basis:92px;font-size:12px}.discover-item>span{width:66px;height:66px}.discover-item>span svg{width:33px;height:33px}.home-story-grid{max-width:760px;margin:auto;gap:15px}.home-story{min-height:420px;border-radius:16px}.promotion{padding:25px}.promotion span{font-size:11px}.promotion strong{font-size:39px}.promotion small{font-size:12px}.promotion b{font-size:12px;padding:10px 15px}.photo-story strong{font-size:22px;inset:auto 18px 18px}.home-properties .section-title{font-size:29px}.home-page~.footer{padding-bottom:35px}}

/* Final reference-alignment fixes for generated SVG content. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.ui-icon{display:block}.photo-story .story-copy{position:absolute;z-index:2;inset:auto 10px 11px;display:flex;flex-direction:column;gap:3px}.photo-story .story-copy small{color:#dfe6ff;font-size:7.5px;font-weight:760;letter-spacing:.04em}.photo-story .story-copy strong{position:static;inset:auto}.home-page~.footer .brand-dot{color:#ffc83d}

/* Official Odayne logo and icon assets supplied in /Icon. */
.brand-wordmark{min-height:0}.brand-logo{display:block;width:140px;height:44px;object-fit:contain}.home-topbar .brand-wordmark{width:140px;height:52px}.home-topbar .brand-wordmark .brand-logo{width:140px;height:52px}.footer .brand-wordmark{width:154px;height:48px}.footer .brand-wordmark .brand-logo{width:154px;height:48px}.asset-icon{object-fit:contain}.service-icon{width:48px;height:48px;overflow:hidden}.service-icon .asset-icon{width:100%;height:100%}.service-board>a{min-height:89px}.discover-item>span{width:56px;height:56px;overflow:hidden}.discover-item>span .asset-icon{width:100%;height:100%}.home-page~.footer~.bottom-nav .bottom-nav-icon{width:30px;height:30px;overflow:hidden}.home-page~.footer~.bottom-nav .bottom-nav-icon .asset-icon{width:100%;height:100%}.member-pill>.asset-icon{width:26px;height:26px;padding:3px;border-radius:50%;background:#dbe5ff;object-fit:contain}.icon-btn .asset-icon{width:26px;height:26px}

/* Typography refinement — mobile-first reading hierarchy. */
.home-page,
.home-topbar,
.home-page~.footer,
.home-page~.footer~.bottom-nav{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* Moodboard v3 — authoritative homepage layout (mobile first).
   This block intentionally wins over earlier experiments. */
.home-page,.home-topbar,.home-page~.footer,.home-page~.footer~.bottom-nav{
  font-family:"Roboto",Arial,sans-serif;
  font-weight:400;
}
.home-topbar{
  height:76px;
  padding:10px 16px 6px;
  background:linear-gradient(180deg,rgba(27,119,239,.94),rgba(52,139,242,.82)),url("/assets/elements/01-nen-halong-trang.png") center 55%/cover no-repeat;
}
.home-topbar:after{right:22%;bottom:-3px;width:58px;height:32px;opacity:.45}
.home-topbar .brand-wordmark,.home-topbar .brand-wordmark .brand-logo{width:132px;height:48px}
.home-topbar .desktop-links{display:none}
.home-page{overflow-x:clip;background:#f5f9ff;padding-bottom:76px}
.home-page .shell{max-width:940px;padding-inline:12px}
.home-hero{
  min-height:0;
  overflow:hidden;
  padding:8px 0 22px;
  background:linear-gradient(180deg,rgba(48,139,244,.86) 0%,rgba(149,202,251,.48) 55%,#f5f9ff 100%),url("/assets/elements/01-nen-halong-trang.png") center 58%/cover no-repeat;
}
.home-hero:before{content:none!important;display:none!important;background:none!important}
.service-board{
  max-width:100%;
  margin:0;
  padding:12px;
  gap:8px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:24px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 22px rgba(31,89,174,.11);
}
.service-board>a,.service-board .service-tile{
  min-height:70px;
  padding:5px 2px;
  gap:4px;
  border-radius:14px;
  background:linear-gradient(145deg,#f8fbff,#edf5ff);
  color:#123d92;
  font-size:12px;
  line-height:1.15;
  font-weight:600;
  letter-spacing:0;
}
.service-icon,.service-icon-frame{width:36px;height:36px;flex:0 0 36px}
.service-icon .asset-icon,.service-icon-frame .asset-icon{width:36px;height:36px;max-width:36px;max-height:36px;object-fit:contain}
.service-board strong{max-width:72px;font-weight:600}
.home-content{background:#f5f9ff}
.home-search{
  height:52px;
  margin-top:0;
  padding:3px 4px 3px 13px;
  gap:10px;
  border:1.5px solid #2f7df0;
  border-radius:27px;
  background:#fff;
  box-shadow:0 5px 16px rgba(34,103,202,.09);
}
.search-orb,.search-orb .ui-icon{
  flex:0 0 24px;
  width:24px;
  height:24px;
  max-width:24px;
  max-height:24px;
  overflow:hidden;
}
.search-orb .ui-icon{object-fit:contain}
.search-copy{line-height:1.15}
.search-copy small{font-size:12px;line-height:1.15;font-weight:400;color:#8b96a8}
.home-search strong{font-size:16px;line-height:1.18;font-weight:500;color:#606d83;letter-spacing:0}
.search-action{flex:0 0 46px;width:46px;height:46px;border-radius:50%;box-shadow:0 4px 11px rgba(24,104,227,.18)}
.search-action .ui-icon{width:24px;height:24px;max-width:24px;max-height:24px}
.home-amenity-chips{
  gap:7px;
  margin:12px 0 0;
  padding:0 0 3px;
  scroll-padding-inline:0;
}
.amenity-filter{
  min-width:96px;
  min-height:44px;
  padding:5px 10px;
  gap:6px;
  border-radius:22px;
  font-size:13px;
  line-height:1.15;
  font-weight:500;
  box-shadow:0 4px 12px rgba(39,94,169,.07);
}
.amenity-filter .ui-icon{width:23px;height:23px;max-width:23px;max-height:23px;object-fit:contain}
.home-properties,.home-featured{
  margin-top:14px;
  padding:16px 8px 12px;
  border-radius:20px;
  background:#fff;
  box-shadow:0 6px 18px rgba(30,93,180,.08);
}
.home-featured .section-head{align-items:center;margin-bottom:11px}
.home-featured .section-title{font-size:22px;line-height:1.15;font-weight:700;letter-spacing:-.35px;color:#112d63}
.home-featured .text-link{font-size:13px;line-height:1.15;font-weight:500;color:#2675e9}
.featured-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.featured-property-grid .property-card{
  min-width:0;
  height:204px;
  display:flex;
  flex-direction:column;
  border:1px solid #e5edf8;
  border-radius:15px;
  overflow:hidden;
  box-shadow:0 4px 12px rgba(31,77,142,.07);
}
.featured-property-grid .property-image{flex:0 0 auto;aspect-ratio:2/1;border-radius:14px 14px 0 0}
.featured-property-grid .property-body{min-height:0;display:flex;flex:1;flex-direction:column;padding:8px 9px 9px}
.featured-property-grid .property-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 3px;font-size:14px;line-height:1.2;font-weight:700;letter-spacing:0;color:#173566}
.featured-property-grid .location-line{font-size:11px;line-height:1.25;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.featured-property-grid .facts{display:none}
.featured-property-grid .price-row{margin-top:auto;align-items:flex-end}
.featured-property-grid .price{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:100%;font-size:13px;line-height:1.15;font-weight:700;color:#176bea}
.featured-property-grid .availability{display:none}
.featured-property-grid .badge{padding:3px 6px;font-size:10px;line-height:1.1;font-weight:600}
.featured-property-grid .favorite{width:32px;height:32px;top:7px;right:7px;font-size:16px}
.home-map-banner{min-height:82px;margin-top:14px;padding:11px 12px;border-radius:18px}
.map-banner-icon{flex-basis:46px;width:46px;height:46px}
.map-banner-icon .ui-icon{width:28px;height:28px;max-width:28px;max-height:28px}
.home-map-banner strong{font-size:14px;font-weight:600}
.home-map-banner small{font-size:11px;font-weight:400}
.home-destination-discover{margin-top:14px;padding:16px 8px 12px;border-radius:20px}
.home-destination-discover .discover-head{height:auto;padding:0 2px}
.home-destination-discover .discover-head h2{font-size:20px;line-height:1.15;font-weight:700;letter-spacing:-.25px}
.destination-card-row{gap:8px;margin:11px -8px 0;padding:0 8px 5px}
.destination-card{flex-basis:146px;height:154px;border-radius:14px}
.destination-card strong{font-size:13px;font-weight:600}
.destination-card small{font-size:10px;font-weight:400}
.home-page~.footer{padding-bottom:80px}
.home-page~.footer~.bottom-nav{
  height:66px;
  padding:5px 6px max(5px,env(safe-area-inset-bottom));
  border-radius:23px 23px 0 0;
}
.home-page~.footer~.bottom-nav>a{min-height:50px;gap:2px;font-size:11px;line-height:1.1;font-weight:400}
.home-page~.footer~.bottom-nav>a.active{font-weight:600}
.home-page~.footer~.bottom-nav .bottom-nav-icon{width:24px;height:24px}
.home-page~.footer~.bottom-nav .bottom-nav-icon .asset-icon{width:24px;height:24px;max-width:24px;max-height:24px}
.home-page~.footer~.bottom-nav .bottom-nav-label{font-size:11px;line-height:1.1;font-weight:inherit}
@media(max-width:350px){
  .home-page .shell{padding-inline:10px}
  .service-board{padding:10px;gap:7px}
  .service-board>a,.service-board .service-tile{min-height:68px;font-size:11px}
  .service-icon,.service-icon-frame,.service-icon .asset-icon,.service-icon-frame .asset-icon{width:34px;height:34px;max-width:34px;max-height:34px}
  .amenity-filter{min-width:91px;font-size:12px}
  .featured-property-grid .property-card{height:194px}
  .home-featured .section-title{font-size:21px}
}

/* Immediate route feedback while the public property catalogue is fetched. */
.app-loading{min-height:52vh;display:flex;align-items:center;justify-content:center;gap:12px;padding:28px;color:#14396b;text-align:left}
.app-loading-mark{width:38px;height:38px;flex:0 0 38px;border:4px solid #d8eaff;border-top-color:#1475f5;border-radius:50%;animation:app-loading-spin .75s linear infinite}
.app-loading strong,.app-loading span{display:block}.app-loading strong{font-size:16px;font-weight:800}.app-loading span{margin-top:2px;color:#70839d;font-size:13px}
@keyframes app-loading-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.app-loading-mark{animation:none}}
@media(min-width:700px){
  .home-topbar{height:86px;padding-inline:28px}
  .home-page .shell{padding-inline:24px}
  .home-hero{padding:14px 0 28px}
  .service-board{max-width:810px;padding:16px;gap:12px}
  .service-board>a,.service-board .service-tile{min-height:98px;font-size:13px}
  .service-icon,.service-icon-frame,.service-icon .asset-icon,.service-icon-frame .asset-icon{width:46px;height:46px;max-width:46px;max-height:46px}
  .home-search{max-width:810px;height:58px;margin-inline:auto}
  .featured-property-grid{gap:14px}
  .featured-property-grid .property-card{height:286px}
  .home-featured .section-title{font-size:26px}
  .destination-card{flex-basis:240px;height:220px}
}

/* Property admin: visual, keyboard-accessible thumbnail selection. */
.admin-property-cover-picker{min-width:0;margin:0;padding:0;border:0}
.admin-property-cover-picker>legend{margin:0;color:#172b46;font-size:13px;font-weight:800}
.admin-property-cover-picker>p{margin:4px 0 12px;color:#67738a;font-size:12px;line-height:1.45}
.admin-property-cover-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-property-cover-option{position:relative;display:block;min-width:0;cursor:pointer}
.admin-modal-body .admin-property-cover-option>input{position:absolute!important;width:1px!important;min-height:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.admin-property-cover-card{display:grid;min-width:0;height:100%;overflow:hidden;border:2px solid #d7e3ef;border-radius:12px;background:#fff;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.admin-property-cover-card>img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#eaf2fa}
.admin-property-cover-state{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:44px;padding:8px 9px;color:#52657d;font-size:11px;line-height:1.2}
.admin-property-cover-state b{min-width:0;color:inherit;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-property-cover-state small{flex:0 0 auto;color:#7b8ba0;font-size:10px}
.admin-property-cover-option:hover .admin-property-cover-card{border-color:#78acee;transform:translateY(-1px)}
.admin-property-cover-option>input:checked+.admin-property-cover-card{border-color:#1769e0;box-shadow:0 0 0 3px rgba(23,105,224,.14)}
.admin-property-cover-option>input:checked+.admin-property-cover-card .admin-property-cover-state{background:#eaf3ff;color:#135fbf}
.admin-property-cover-option>input:focus-visible+.admin-property-cover-card{outline:3px solid rgba(23,105,224,.35);outline-offset:3px}
.admin-property-cover-status{display:block;min-height:18px;margin-top:9px;color:#28714b;font-size:11px;font-weight:700}
.admin-property-cover-empty{display:grid;gap:3px;padding:16px;border:1px dashed #b9cbe0;border-radius:12px;background:#f7faff;color:#334b68}
.admin-property-cover-empty strong{font-size:13px}.admin-property-cover-empty span{font-size:12px;line-height:1.45}
.admin-property-media-advanced{margin-top:12px;border:1px solid #dce5ef;border-radius:12px;background:#fafcff}
.admin-property-media-advanced>summary{display:flex;align-items:center;min-height:44px;padding:0 13px;color:#1769e0;font-size:12px;font-weight:800;cursor:pointer;list-style-position:inside}
.admin-property-media-advanced>div{padding:0 13px 13px}
.admin-property-media-advanced .admin-description{margin-top:12px}
.admin-modal-actions .btn:disabled{cursor:wait;opacity:.6}
@media(max-width:600px){
  .admin-property-cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .admin-property-cover-state{padding:7px;align-items:flex-start;flex-direction:column;gap:2px}
  .admin-property-cover-state b{width:100%;white-space:normal}
}

/* Homepage E2E reference lock — 2026-08-05.
   This final layer intentionally owns the home composition at phone widths. */
.home-page,.home-topbar,.home-page~.footer,.home-page~.footer~.bottom-nav{
  --home-blue:#1475f5;
  --home-blue-deep:#0f3b91;
  --home-ink:#102c63;
  --home-muted:#748197;
  font-family:"Roboto",Arial,sans-serif;
  letter-spacing:0;
}
.home-page{overflow:hidden;background:linear-gradient(180deg,#f5f9ff 0,#fff 54%);padding-bottom:76px}
.home-page .shell{width:100%;max-width:940px;padding-inline:11px}
.home-topbar{
  position:relative;
  height:62px;
  max-width:none;
  padding:8px 13px 4px;
  background:linear-gradient(180deg,rgba(21,119,247,.93),rgba(42,135,242,.88)),url("/assets/elements/01-nen-halong-trang.png") center 44%/cover no-repeat;
}
.home-topbar:after{right:27%;bottom:1px;width:34px;height:20px;opacity:.65;background-size:contain}
.home-topbar .brand-wordmark,.home-topbar .brand-wordmark .brand-logo{width:116px;height:42px;max-width:116px;object-fit:contain;object-position:left center}
.home-topbar .member-pill{gap:5px}
.home-topbar .member-pill>img{width:34px!important;height:34px!important;padding:5px!important;object-fit:contain!important}
.home-topbar .member-pill b{width:36px;height:36px;font-size:12px;font-weight:700}
.home-topbar .member-pill span{display:none}

.home-hero{
  min-height:0;
  overflow:hidden;
  padding:0 0 21px;
  background:linear-gradient(180deg,rgba(36,132,241,.88) 0,rgba(102,173,244,.64) 25%,rgba(225,238,253,.9) 76%,#f5f9ff 100%),url("/assets/elements/01-nen-halong-trang.png") center 60%/cover no-repeat;
}
.home-hero:before,.home-hero:after{content:none!important;display:none!important}
.service-board{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px 7px;
  margin:0;
  padding:10px 9px 11px;
  border:0;
  border-radius:21px;
  background:rgba(255,255,255,.98);
  box-shadow:0 10px 24px rgba(32,87,169,.14);
}
.service-board>a,.service-board>a:nth-of-type(3n+2),.service-board>a:nth-of-type(3n){
  min-width:0;
  min-height:56px;
  height:56px;
  padding:4px 2px 3px;
  gap:2px;
  justify-content:center;
  border-radius:13px;
  background:linear-gradient(145deg,#f8fbff,#edf5ff);
  color:#113b91;
  font-size:9.5px;
  line-height:1.08;
  font-weight:600;
}
.service-icon,.service-icon-frame{
  flex:0 0 32px;
  width:32px!important;
  height:32px!important;
  min-width:32px;
  overflow:hidden;
  background:transparent;
}
.service-icon .asset-icon,.service-icon-frame .asset-icon{
  display:block;
  width:32px!important;
  height:32px!important;
  max-width:32px!important;
  max-height:32px!important;
  object-fit:contain!important;
}
.service-board strong{display:block;max-width:65px;font-weight:600}

.home-content{background:transparent}
.home-search{
  position:relative;
  width:100%;
  height:48px;
  margin-top:8px;
  padding:3px 4px 3px 12px;
  gap:8px;
  overflow:hidden;
  border:1.5px solid #1775ee;
  border-radius:999px;
  background:#fff;
  box-shadow:0 6px 16px rgba(41,104,191,.1);
}
.home-search>.search-orb{
  flex:0 0 21px!important;
  width:21px!important;
  height:21px!important;
  max-width:21px!important;
  max-height:21px!important;
  overflow:hidden!important;
  color:#126be6;
}
.home-search>.search-orb>.ui-icon,.home-search>.search-orb>svg,.home-search>.search-orb>img{
  display:block!important;
  width:20px!important;
  height:20px!important;
  max-width:20px!important;
  max-height:20px!important;
  padding:0!important;
  object-fit:contain!important;
  background:none!important;
}
.search-copy{min-width:0;line-height:1.05}
.search-copy small{font-size:9px;line-height:1.1;font-weight:400;color:#8b96a9}
.home-search strong{font-size:13px;line-height:1.15;font-weight:500;color:#677489}
.home-search>.search-action{
  flex:0 0 40px;
  width:40px;
  height:40px;
  overflow:hidden;
  background:linear-gradient(145deg,#2382f7,#1168e9);
  box-shadow:0 4px 10px rgba(25,103,233,.22);
}
.home-search>.search-action>.ui-icon,.home-search>.search-action>svg,.home-search>.search-action>img{width:21px!important;height:21px!important;max-width:21px!important;max-height:21px!important;object-fit:contain!important}

.home-amenity-chips{
  gap:7px;
  margin:10px -11px 0;
  padding:1px 11px 5px;
  overflow-x:auto;
}
.amenity-filter{
  min-width:96px;
  min-height:41px;
  height:41px;
  padding:5px 9px;
  gap:6px;
  border-color:#e5edf8;
  box-shadow:0 4px 11px rgba(45,101,181,.07);
  font-size:10.5px;
  line-height:1;
  font-weight:600;
}
.amenity-filter>.ui-icon,.amenity-filter>img,.amenity-filter>svg{flex:0 0 22px;width:22px!important;height:22px!important;max-width:22px!important;max-height:22px!important;object-fit:contain!important}

.home-properties.home-featured{
  margin-top:10px;
  padding:13px 10px 12px;
  border-radius:19px;
  box-shadow:0 7px 21px rgba(53,98,166,.07);
}
.home-featured .section-head{min-height:30px;margin-bottom:8px;align-items:center}
.home-featured .section-title,.home-properties .section-title{font-size:17px;line-height:1.1;font-weight:700;letter-spacing:-.25px;color:#102e67}
.home-featured .text-link,.home-properties .text-link{min-height:30px;padding:4px 0;font-size:10.5px;line-height:1;font-weight:500;color:#1671e9}
.home-featured .text-link .ui-icon{width:12px;height:12px}
.featured-property-grid,.home-page .featured-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.featured-property-grid .property-card,.home-page .featured-property-grid .property-card{min-width:0;border:1px solid #e4ebf6;border-radius:15px;box-shadow:0 4px 11px rgba(39,90,156,.07)}
.featured-property-grid .property-image,.home-page .featured-property-grid .property-image{height:78px;aspect-ratio:auto;border-radius:14px 14px 0 0}
.featured-property-grid .property-image img{width:100%;height:100%;object-fit:cover}
.featured-property-grid .badges{top:6px;left:6px}
.featured-property-grid .badge{padding:3px 6px;font-size:8px;line-height:1.1;font-weight:600}
.featured-property-grid .favorite{top:5px;right:5px;width:30px;height:30px;min-width:30px;font-size:15px}
.featured-property-grid .property-body,.home-page .featured-property-grid .property-body{padding:7px 8px 8px}
.featured-property-grid .property-title,.home-page .featured-property-grid .property-title{min-height:26px;margin:0 0 2px;font-size:12px;line-height:1.12;font-weight:600;letter-spacing:0;-webkit-line-clamp:2}
.featured-property-grid .location-line,.home-page .featured-property-grid .location-line{font-size:9px;line-height:1.2;color:#7d8798}
.featured-property-grid .facts{display:none}
.featured-property-grid .price-row{margin-top:6px;display:block}
.featured-property-grid .price,.home-page .featured-property-grid .price{display:block;font-size:11px;line-height:1.18;font-weight:600;color:#1470e8}
.featured-property-grid .availability{display:none}

.home-map-banner{
  min-height:68px;
  margin-top:10px;
  padding:9px 10px;
  gap:9px;
  border-radius:16px;
  box-shadow:0 6px 16px rgba(59,111,180,.07);
}
.map-banner-icon{flex-basis:42px;width:42px;height:42px}
.map-banner-icon>.ui-icon{width:27px!important;height:27px!important;max-width:27px!important;max-height:27px!important}
.home-map-banner strong{font-size:12px;line-height:1.15;font-weight:600}
.home-map-banner small{font-size:9px;line-height:1.25}
.home-map-banner>i{flex-basis:32px;width:32px;height:32px}
.home-map-banner>i>.ui-icon{width:15px!important;height:15px!important}

.home-destination-discover{
  margin-top:10px;
  padding:13px 10px 12px;
  border-radius:19px;
  box-shadow:0 7px 21px rgba(53,98,166,.07);
}
.home-destination-discover:before,.home-discover:before{content:none!important;display:none!important}
.home-destination-discover .discover-head{height:30px;padding:0}
.home-destination-discover .discover-head h2{gap:5px;font-size:16px;line-height:1.1;font-weight:700;letter-spacing:-.2px}
.home-destination-discover .discover-head h2>.ui-icon{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important}
.home-destination-discover .text-link{min-height:30px;padding:4px 0;font-size:10px;font-weight:500}
.destination-card-row{gap:7px;margin:8px -10px -2px;padding:0 10px 5px}
.destination-card{flex-basis:116px;height:112px;border-radius:12px}
.destination-card span{inset:auto 7px 7px;gap:1px}
.destination-card strong{font-size:10.5px;line-height:1.12;font-weight:600;letter-spacing:0}
.destination-card small{font-size:7.5px;line-height:1.15}

.home-page~.footer{display:none}
.home-page~.footer~.bottom-nav{
  left:0;right:0;bottom:0;
  height:64px;
  padding:3px 4px max(4px,env(safe-area-inset-bottom));
  border:1px solid #e4ebf6;
  border-radius:20px 20px 0 0;
  background:rgba(255,255,255,.98);
  box-shadow:0 -6px 20px rgba(46,88,144,.1);
}
.home-page~.footer~.bottom-nav>a{min-width:60px;min-height:52px;gap:1px;font-size:9px;line-height:1;font-weight:400}
.home-page~.footer~.bottom-nav .bottom-nav-icon{width:24px!important;height:24px!important;overflow:hidden}
.home-page~.footer~.bottom-nav .bottom-nav-icon>.asset-icon{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;object-fit:contain!important}
.home-page~.footer~.bottom-nav .bottom-nav-label{min-height:11px;font-size:9px;line-height:1.05;font-weight:400}
.home-page~.footer~.bottom-nav>a.active .bottom-nav-label{font-weight:500}

@media(max-width:350px){
  .home-page .shell{padding-inline:10px}
  .service-board{gap:6px;padding-inline:8px}
  .service-board>a{font-size:9px}
  .home-amenity-chips{margin-inline:-10px;padding-inline:10px}
  .amenity-filter{min-width:92px;font-size:10px}
  .featured-property-grid .property-image{height:74px}
}
@media(min-width:700px){
  .home-topbar{height:92px;padding-inline:30px}
  .home-topbar .brand-wordmark,.home-topbar .brand-wordmark .brand-logo{width:170px;max-width:170px;height:56px}
  .home-hero{padding:10px 0 34px}
  .service-board{max-width:810px;padding:18px;gap:14px;border-radius:30px}
  .service-board>a{height:108px;min-height:108px;border-radius:22px;font-size:14px;gap:7px}
  .service-icon,.service-icon-frame{width:56px!important;height:56px!important;flex-basis:56px}
  .service-icon .asset-icon,.service-icon-frame .asset-icon{width:56px!important;height:56px!important;max-width:56px!important;max-height:56px!important}
  .home-search{max-width:810px;height:62px;margin:14px auto 0}
  .home-amenity-chips{justify-content:center;margin-inline:0;padding-inline:0}
  .amenity-filter{min-width:150px;height:54px;font-size:14px}
  .home-properties.home-featured,.home-map-banner,.home-destination-discover{max-width:810px;margin-left:auto;margin-right:auto}
  .home-properties.home-featured{padding:22px 20px}
  .home-featured .section-title,.home-properties .section-title{font-size:24px}
  .featured-property-grid{gap:16px}
  .featured-property-grid .property-image{height:190px}
  .featured-property-grid .property-title,.home-page .featured-property-grid .property-title{font-size:18px;min-height:42px}
  .featured-property-grid .location-line,.home-page .featured-property-grid .location-line{font-size:13px}
  .featured-property-grid .price,.home-page .featured-property-grid .price{font-size:17px}
  .home-map-banner{min-height:100px;margin-top:18px}
  .home-destination-discover{margin-top:18px;padding:22px 20px}
  .destination-card{flex-basis:235px;height:215px}
  .destination-card strong{font-size:18px}.destination-card small{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
  .home-page *,.home-topbar *,.home-page~.footer~.bottom-nav *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Đi chơi Hạ Long brand lockup: the supplied mascot is square, so keep its
   artwork legible and pair it with a text lockup instead of stretching it. */
.brand-lockup{display:inline-flex;align-items:center;gap:9px;min-width:0;color:inherit}
.brand-lockup .brand-logo{display:block!important;flex:0 0 48px;width:48px!important;height:48px!important;max-width:48px!important;object-fit:cover!important;object-position:center;border-radius:12px;filter:none!important}
.brand-name{display:inline-block;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:800;letter-spacing:-.35px}
.site-header .brand-wordmark,.app-topbar .brand-wordmark,.home-topbar .brand-wordmark,.admin-login-brand{width:auto!important;max-width:none!important;height:auto!important;padding:0;background:transparent}
.admin-login-brand .brand-logo{width:72px!important;height:72px!important;max-width:72px!important;flex-basis:72px;border-radius:18px}
.admin-login-brand .brand-name{font-size:20px;color:#153c7b}
@media(max-width:699px){.brand-name{display:none}.brand-lockup .brand-logo{flex-basis:44px;width:44px!important;height:44px!important;max-width:44px!important}.site-header .brand-wordmark,.app-topbar .brand-wordmark,.home-topbar .brand-wordmark{width:44px!important;max-width:44px!important}.admin-login-brand .brand-name{display:inline-block}}
.home-topbar .brand{font-size:25px;font-weight:800;letter-spacing:-1.05px}
.service-board>a{font-size:12px;line-height:1.22;font-weight:700;letter-spacing:-.1px}
.search-copy small{font-size:10px;line-height:1.2;font-weight:600}
.home-search strong{font-size:14px;line-height:1.2;font-weight:600;letter-spacing:-.12px}
.discover-head h2{font-size:26px;line-height:1.08;font-weight:800;letter-spacing:-1.05px}
.discover-select{font-size:11px;line-height:1.1;font-weight:700}
.discover-head>a{font-size:13px;line-height:1.1;font-weight:700}
.discover-item{font-size:10.5px;line-height:1.25;letter-spacing:-.1px}
.discover-item strong{font-weight:600}
.promotion span{font-size:8.5px;line-height:1.15;font-weight:800;letter-spacing:.02em}
.promotion strong{font-size:23px;line-height:1.05;font-weight:800;letter-spacing:-.75px}
.promotion small{font-size:9px;line-height:1.3;font-weight:600}
.promotion b{font-size:10px;line-height:1.15;font-weight:750}
.photo-story .story-copy small{font-size:8px;line-height:1.2;font-weight:700;letter-spacing:.035em}
.photo-story .story-copy strong{font-size:15px;line-height:1.16;font-weight:750;letter-spacing:-.4px}
.home-properties .section-title{font-size:26px;line-height:1.12;font-weight:800;letter-spacing:-.95px}
.home-properties .section-subtitle{font-size:13px;line-height:1.35}
.home-properties .text-link{font-size:13px;font-weight:700}
.home-page .property-title{font-size:17px;line-height:1.3;font-weight:750;letter-spacing:-.35px}
.home-page .location-line{font-size:13px;line-height:1.35}
.home-page .fact{font-size:11px;line-height:1.2}
.home-page .price{font-size:15px;line-height:1.25}
.home-page .availability{font-size:11px;line-height:1.2}
.home-page~.footer{font-size:13px;line-height:1.5}
.home-page~.footer .brand{font-weight:800}
.home-page~.footer~.bottom-nav>a{font-size:11px;line-height:1.15;font-weight:600;letter-spacing:-.1px}
.home-page~.footer~.bottom-nav .bottom-nav-label{font-size:11px;line-height:1.15}

@media(min-width:700px){
  .service-board>a{font-size:13px;line-height:1.24}
  .home-search strong{font-size:16px}
  .discover-head h2{font-size:31px}
  .discover-item{font-size:12px}
  .promotion strong{font-size:39px}
  .photo-story .story-copy strong{font-size:22px}
}

/* Lightweight interaction layer — transform/opacity only so touch stays smooth. */
button,a,.service-board>a,.discover-item,.home-story,.home-search,.bottom-nav a{transition:transform 180ms ease,opacity 180ms ease,background-color 180ms ease,color 180ms ease,box-shadow 180ms ease,border-color 180ms ease}
button:active,a:active{transform:scale(.97)}
.icon-btn:active,.favorite:active,.search-action:active{transform:scale(.91)}
.home-search:focus-within{border-color:var(--home-blue-deep);box-shadow:0 9px 22px rgba(43,70,163,.18)}
.home-page .service-board>a:active{transform:scale(.94);opacity:.82}
.home-page .discover-item:active{transform:translateY(1px);opacity:.8}
.home-page .discover-item:active>span{box-shadow:0 2px 7px rgba(37,60,122,.11)}
.home-page .home-story:active{transform:scale(.985)}
.home-page~.footer~.bottom-nav>a:active{transform:translateY(1px);opacity:.74}
.home-page~.footer~.bottom-nav>a.active .bottom-nav-icon{animation:home-nav-settle 260ms ease-out both}
.home-page .search-action{transition:transform 180ms ease,background-color 180ms ease,box-shadow 180ms ease}
.home-page .search-action:active{box-shadow:inset 0 2px 6px rgba(16,35,117,.28)}
@media(hover:hover){.icon-btn:hover{transform:translateY(-1px)}.text-link:hover,.desktop-links a:hover{opacity:.78}.home-page .service-board>a:hover{transform:translateY(-2px);opacity:.86}.home-page .discover-item:hover{transform:translateY(-2px);color:var(--home-blue)}.home-page .discover-item:hover>span{border-color:#dce4ff;box-shadow:0 8px 17px rgba(37,60,122,.12)}.home-page .home-story:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(36,53,108,.12)}.home-page~.footer~.bottom-nav>a:hover{color:var(--home-blue);transform:translateY(-1px)}}

/* UX polish: readable rails, predictable tap targets and a real location action. */
.discover-select{display:inline-flex;align-items:center;gap:3px;text-decoration:none}.discover-row{padding-right:20px;scroll-padding-inline:13px}.discover-item{flex-basis:72px;min-height:108px}.home-page~.footer~.bottom-nav>a{min-height:48px}.home-page~.footer~.bottom-nav .bottom-nav-label{min-height:14px}
html,body{overflow-x:clip}
@keyframes home-nav-settle{from{transform:translateY(2px);opacity:.72}to{transform:translateY(0);opacity:1}}

/* Home visual language — Quang Ninh, adapted from the supplied moodboard.
   The illustrations remain decorative layers; service and navigation icons use
   the supplied icon set unchanged. */
.home-topbar{
  position:relative;
  z-index:2;
  height:96px;
  padding:18px 20px 10px;
  background:
    linear-gradient(180deg,rgba(22,115,238,.92),rgba(38,127,239,.82)),
    url("/assets/elements/01-nen-halong-trang.png") center 58%/cover no-repeat;
}
.home-topbar:after{
  content:"";
  position:absolute;
  z-index:-1;
  right:12%;
  bottom:-8px;
  width:86px;
  height:46px;
  opacity:.72;
  background:url("/assets/elements/Elements_tachnen/decor-bird-03-chim-bay.png") center/contain no-repeat;
  pointer-events:none;
}
.home-page{background:#f6f9ff;padding-bottom:28px}
.home-page .shell{max-width:940px;padding-inline:18px}
.home-hero{
  isolation:isolate;
  overflow:visible;
  min-height:268px;
  padding:12px 0 30px;
  background:
    linear-gradient(180deg,rgba(39,126,239,.84) 0%,rgba(109,176,247,.56) 38%,rgba(246,249,255,.96) 93%,#f6f9ff 100%),
    url("/assets/elements/01-nen-halong-trang.png") center 56%/cover no-repeat;
}
.home-hero:before{
  content:"";
  position:absolute;
  z-index:-1;
  right:-72px;
  bottom:4px;
  width:310px;
  height:150px;
  opacity:.45;
  background:url("/assets/elements/Elements_tachnen/decor-island-01-cum-dao.png") right bottom/contain no-repeat;
  pointer-events:none;
}
.service-board{
  gap:12px 10px;
  padding:14px 12px 15px;
  border:1px solid rgba(255,255,255,.85);
  border-radius:26px;
  box-shadow:0 16px 34px rgba(24,88,178,.15),inset 0 1px rgba(255,255,255,.88);
}
.service-board>a{
  min-height:100px;
  justify-content:center;
  gap:6px;
  padding:8px 3px 6px;
  border-radius:18px;
  color:#123b9b;
  background:linear-gradient(145deg,#f8fbff,#edf5ff);
}
.service-board>a:nth-of-type(3n+2){background:linear-gradient(145deg,#fbfdff,#eef7ff)}
.service-board>a:nth-of-type(3n){background:linear-gradient(145deg,#f8fbff,#eaf3ff)}
.service-board>a:hover{background:#e9f3ff}
.service-icon{width:44px;height:44px}
.service-board strong{max-width:90px}
.home-content{background:transparent}
.home-search{
  height:62px;
  margin-top:-3px;
  padding:5px 6px 5px 15px;
  border:1.5px solid #367df0;
  box-shadow:0 10px 25px rgba(47,110,203,.12);
  background:rgba(255,255,255,.97);
}
.search-copy small{color:#8b97aa;font-size:11px}
.home-search strong{color:#667389;font-size:16px;font-weight:600}
.search-orb{color:#196cf0}
.search-action{width:50px;height:50px;flex-basis:50px;background:linear-gradient(145deg,#2c84f6,#1967e9);box-shadow:0 6px 13px rgba(25,103,233,.22)}
.home-discover{
  margin-top:15px;
  padding:18px 0 22px;
  border-radius:24px;
  background:
    radial-gradient(ellipse at 92% 8%,rgba(129,189,255,.24),transparent 34%),
    linear-gradient(180deg,rgba(255,255,255,.98),rgba(243,248,255,.9));
  box-shadow:0 9px 28px rgba(53,98,166,.07);
}
.home-discover:before{top:44px;right:-16px;opacity:.16}
.discover-head{padding:0 14px;height:42px}
.discover-head h2{font-size:24px;color:#122c63}
.discover-select{min-height:37px;padding:7px 11px;background:#f3f7ff;border-color:#dbe7fb;color:#24457f}
.discover-head>a{color:#2172ed}
.discover-row{gap:10px;margin:15px -18px 18px;padding:0 18px 5px}
.discover-item{flex-basis:76px;gap:7px;color:#566783;font-size:10.5px}
.discover-item>span{
  width:58px;
  height:58px;
  border-color:#e7effb;
  background:linear-gradient(145deg,#fff,#f3f8ff);
  box-shadow:0 6px 16px rgba(55,107,180,.10);
}
.home-story-grid{gap:12px;padding:0 12px}
.home-story{min-height:238px;border-radius:18px;box-shadow:0 8px 21px rgba(42,89,151,.10)}
.promotion{
  background:
    linear-gradient(180deg,rgba(24,118,232,.1),rgba(255,255,255,.67)),
    url("/assets/elements/02-nen-villa-bien.png") center/cover no-repeat;
  color:#17428c;
}
.promotion:after{opacity:.45}
.promotion span{background:#2678ee}
.promotion strong{font-size:24px;text-shadow:0 1px rgba(255,255,255,.6)}
.promotion small{color:#4370ac;font-size:9px}
.promotion b{background:#ffbd2e;color:#5f4200;box-shadow:0 5px 12px rgba(201,139,0,.18)}
.photo-story{border:1px solid rgba(255,255,255,.7)}
.home-properties{
  margin-top:17px;
  padding:20px 12px 14px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 9px 28px rgba(53,98,166,.07);
}
.home-properties .section-head{margin-bottom:13px}
.home-properties .section-title{font-size:22px;color:#122c63}
.home-page .property-grid{gap:12px}
.home-page .property-card{border:1px solid #e7eef9;border-radius:19px;box-shadow:0 5px 15px rgba(39,90,156,.08)}
.home-page .property-image{aspect-ratio:1.45/1;border-radius:18px 18px 0 0}
.home-page .property-body{padding:11px 12px 13px}
.home-page .property-title{font-size:15px;color:#183568}
.home-page .price{color:#196deb;font-size:16px}
.home-page .availability{display:none}
.home-page~.footer~.bottom-nav{
  height:76px;
  border:1px solid #e5edf9;
  border-radius:25px 25px 0 0;
  box-shadow:0 -9px 24px rgba(46,88,144,.11);
}
.home-page~.footer~.bottom-nav>a{color:#8490a5}
.home-page~.footer~.bottom-nav>a.active{color:#2376ed}

@media(min-width:700px){
  .home-topbar{height:100px;padding-inline:32px}
  .home-page .shell{padding-inline:28px}
  .home-hero{min-height:330px;padding:22px 0 48px}
  .service-board{max-width:810px;padding:20px;border-radius:32px;gap:16px}
  .service-board>a{min-height:132px;border-radius:24px;font-size:14px}
  .service-icon{width:60px;height:60px}
  .home-search{max-width:810px;height:68px;margin-top:-7px}
  .home-discover{margin-top:22px;padding-top:24px}
  .discover-head{padding-inline:22px}
  .home-story-grid{padding-inline:20px}
  .home-story{min-height:340px}
  .home-properties{padding:25px 20px 22px}
}

@media(prefers-reduced-motion:reduce){
  .home-topbar:after,.home-hero:before{display:none}
}

/* The scenic hero image already carries the bay illustration; keep the island ornament
   out of the mobile flow so it cannot overlap the search and villa section. */
.home-hero{overflow:hidden}
.home-hero:before{content:none!important;background:none!important;display:none!important}

/* Homepage modules added for the resort-style information hierarchy. */
.home-amenity-chips{
  display:flex;
  gap:9px;
  overflow-x:auto;
  margin:17px -18px 0;
  padding:2px 18px 6px;
  scrollbar-width:none;
  scroll-snap-type:x proximity;
}
.home-amenity-chips::-webkit-scrollbar{display:none}
.amenity-filter{
  flex:0 0 auto;
  min-width:112px;
  min-height:50px;
  padding:7px 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #e6eef9;
  border-radius:999px;
  color:#23457e;
  background:rgba(255,255,255,.93);
  box-shadow:0 5px 14px rgba(45,101,181,.08);
  font-size:12px;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
  scroll-snap-align:start;
}
.amenity-filter .ui-icon{width:25px;height:25px;object-fit:contain}
.amenity-filter:active{background:#eaf3ff}
.home-featured{margin-top:14px}
.home-featured .section-head{align-items:center}
.home-featured .section-title span{color:#79b8ff;font-size:.8em}
.home-featured .text-link{display:inline-flex;align-items:center;gap:3px;min-height:30px;white-space:nowrap}
.home-featured .text-link .ui-icon{width:15px;height:15px;transform:rotate(180deg)}
.featured-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.featured-property-grid .property-card{min-width:0}
.featured-property-grid .property-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.featured-property-grid .location-line{font-size:11px}
.featured-property-grid .facts{display:none}
.featured-property-grid .price-row{margin-top:8px;align-items:flex-end}
.featured-property-grid .badge{font-size:9px;padding:3px 6px}
.featured-property-grid .favorite{width:32px;height:32px;top:7px;right:7px;font-size:16px}
.home-map-banner{
  min-height:90px;
  margin-top:14px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  gap:12px;
  overflow:hidden;
  border-radius:19px;
  color:#163c79;
  background:
    linear-gradient(105deg,rgba(237,247,255,.97),rgba(219,237,255,.88)),
    url("/assets/elements/03-nen-ban-do-du-lich.png") center/cover no-repeat;
  box-shadow:0 8px 20px rgba(59,111,180,.08);
  text-decoration:none;
}
.map-banner-icon{
  flex:0 0 52px;
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  box-shadow:0 5px 13px rgba(44,101,185,.1);
}
.map-banner-icon .ui-icon{width:34px;height:34px;object-fit:contain}
.home-map-banner>span:nth-child(2){min-width:0;display:flex;flex:1;flex-direction:column;gap:2px}
.home-map-banner strong{font-size:15px;line-height:1.25}
.home-map-banner small{color:#647596;font-size:11px;line-height:1.35}
.home-map-banner>i{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#fff;color:#2674e8;box-shadow:0 4px 10px rgba(44,101,185,.1)}
.home-map-banner>i .ui-icon{width:19px;height:19px;transform:rotate(180deg)}
.home-destination-discover{margin-top:14px;padding:20px 12px 16px}
.home-destination-discover .discover-head{padding:0 2px}
.home-destination-discover .discover-head h2{display:flex;align-items:center;gap:7px;font-size:21px;letter-spacing:-.75px}
.home-destination-discover .discover-head h2 .ui-icon{width:23px;height:23px;object-fit:contain}
.home-destination-discover .text-link{display:inline-flex;align-items:center;gap:3px;color:#2575ed;font-size:12px;white-space:nowrap}
.home-destination-discover .text-link .ui-icon{width:14px;height:14px;transform:rotate(180deg)}
.destination-card-row{display:flex;gap:10px;overflow-x:auto;margin:14px -12px -2px;padding:0 12px 8px;scroll-snap-type:x proximity;scrollbar-width:none}
.destination-card-row::-webkit-scrollbar{display:none}
.destination-card{position:relative;flex:0 0 150px;height:166px;overflow:hidden;border-radius:16px;background:#d8e3f0;color:#fff;text-decoration:none;scroll-snap-align:start}
.destination-card img{width:100%;height:100%;display:block;object-fit:cover}
.destination-card:after{content:"";position:absolute;inset:38% 0 0;background:linear-gradient(transparent,rgba(5,21,50,.78))}
.destination-card span{position:absolute;z-index:1;inset:auto 10px 10px;display:flex;flex-direction:column;gap:2px}
.destination-card strong{font-size:14px;line-height:1.18;letter-spacing:-.3px}
.destination-card small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#e7efff;font-size:9px;line-height:1.25}
@media(min-width:700px){
  .home-amenity-chips{justify-content:center;margin-inline:0;padding-inline:0}
  .amenity-filter{min-width:150px;min-height:58px;font-size:14px}
  .home-featured{margin-top:24px}
  .featured-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .featured-property-grid .property-title{font-size:18px}
  .featured-property-grid .location-line{font-size:13px}
  .home-map-banner{min-height:110px;padding:18px 22px}
  .home-map-banner strong{font-size:18px}
  .home-map-banner small{font-size:13px}
  .home-destination-discover{margin-top:22px;padding:26px 20px 20px}
  .home-destination-discover .discover-head h2{font-size:27px}
  .destination-card-row{gap:15px;margin-inline:-20px;padding-inline:20px}
  .destination-card{flex-basis:250px;height:245px;border-radius:20px}
  .destination-card strong{font-size:19px}
  .destination-card small{font-size:12px}
}

/* Home moodboard final lock: this block must remain last in the cascade. */
.home-page,.home-topbar,.home-page~.footer,.home-page~.footer~.bottom-nav{font-family:"Roboto",Arial,sans-serif!important;letter-spacing:0}
.home-page{overflow:hidden;background:linear-gradient(180deg,#f4f9ff 0,#fff 58%);padding-bottom:68px}
.home-page .shell{width:100%;max-width:940px;padding-inline:11px}
.home-topbar{position:relative;height:76px;max-width:none;padding:9px 13px 5px;background:linear-gradient(180deg,rgba(28,126,245,.82),rgba(44,139,243,.72)),url("/assets/elements/01-nen-halong-trang.png") center 45%/cover no-repeat}
.home-topbar .brand-wordmark,.home-topbar .brand-wordmark .brand-logo{width:128px;height:49px;max-width:128px;object-fit:contain;object-position:left center}
.home-topbar .member-pill{gap:5px}.home-topbar .member-pill>img{width:34px!important;height:34px!important;padding:5px!important;object-fit:contain!important}.home-topbar .member-pill b{width:36px;height:36px;font-size:12px;font-weight:700}.home-topbar .member-pill span{display:none}
.home-hero{min-height:0!important;overflow:hidden;padding:0 0 18px;background:linear-gradient(180deg,rgba(42,138,244,.66),rgba(218,237,255,.82) 72%,#f5f9ff 100%),url("/assets/elements/01-nen-halong-trang.png") center 52%/cover no-repeat}
.home-hero:before,.home-hero:after{content:none!important;display:none!important}
.service-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0;padding:10px 9px 11px;border:0;border-radius:23px;background:rgba(255,255,255,.98);box-shadow:0 10px 24px rgba(32,87,169,.14)}
.service-board>a,.service-board>a:nth-of-type(3n+2),.service-board>a:nth-of-type(3n){min-width:0;min-height:70px;height:70px;padding:5px 2px 4px;gap:4px;justify-content:center;border-radius:15px;background:linear-gradient(145deg,#f8fbff,#edf5ff);color:#113b91;font-size:12px;line-height:1.12;font-weight:600;letter-spacing:0}
.service-icon,.service-icon-frame{flex:0 0 34px;width:34px!important;height:34px!important;min-width:34px;overflow:hidden;background:transparent}
.service-icon .asset-icon,.service-icon-frame .asset-icon{display:block;width:34px!important;height:34px!important;max-width:34px!important;max-height:34px!important;object-fit:contain!important}.service-board strong{display:block;max-width:68px;font-weight:600}
.home-content{background:transparent}.home-content>.shell{padding-top:0}
.home-search{position:relative;width:100%;height:53px;margin-top:10px;padding:3px 4px 3px 14px;gap:9px;overflow:hidden;border:1.5px solid #1775ee;border-radius:27px;background:#fff;box-shadow:0 6px 16px rgba(41,104,191,.1)}
.home-search>.search-orb{flex:0 0 24px!important;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;overflow:hidden!important;color:#126be6;background:transparent!important}
.home-search>.search-orb>.ui-icon,.home-search>.search-orb>svg,.home-search>.search-orb>img{display:block!important;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;padding:0!important;object-fit:contain!important;background:none!important}
.search-copy{min-width:0;line-height:1.05}.search-copy small{font-size:10px;line-height:1.1;font-weight:400;color:#8b96a9}.home-search strong{font-size:14px;line-height:1.15;font-weight:500;color:#677489;letter-spacing:0}
.home-search>.search-action{flex:0 0 46px;width:46px;height:46px;overflow:hidden;background:linear-gradient(145deg,#2382f7,#1168e9);box-shadow:0 4px 10px rgba(25,103,233,.22)}.home-search>.search-action>.ui-icon,.home-search>.search-action>svg,.home-search>.search-action>img{width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important;object-fit:contain!important}
.home-amenity-chips{gap:7px;margin:10px -11px 0;padding:1px 11px 5px;overflow-x:auto}.amenity-filter{flex:0 0 auto;min-width:94px;min-height:44px;height:44px;padding:5px 9px;gap:6px;border-color:#e5edf8;box-shadow:0 4px 11px rgba(45,101,181,.07);font-size:13px;line-height:1;font-weight:500}.amenity-filter>.ui-icon,.amenity-filter>img,.amenity-filter>svg{flex:0 0 23px;width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important;object-fit:contain!important}
.home-properties.home-featured{margin-top:10px;padding:16px 8px 12px;border-radius:19px;box-shadow:0 7px 21px rgba(53,98,166,.07)}.home-featured .section-head{min-height:30px;margin-bottom:8px;align-items:center}.home-featured .section-title,.home-properties .section-title{font-size:22px;line-height:1.1;font-weight:700;letter-spacing:-.35px;color:#102e67}.home-featured .text-link,.home-properties .text-link{min-height:30px;padding:4px 0;font-size:12px;line-height:1;font-weight:500;color:#1671e9}
.featured-property-grid,.home-page .featured-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.featured-property-grid .property-card,.home-page .featured-property-grid .property-card{height:204px;min-width:0;border:1px solid #e4ebf6;border-radius:15px;box-shadow:0 4px 11px rgba(39,90,156,.07);overflow:hidden}.featured-property-grid .property-image,.home-page .featured-property-grid .property-image{height:auto;aspect-ratio:2/1;border-radius:14px 14px 0 0}.featured-property-grid .property-image img{width:100%;height:100%;object-fit:cover}.featured-property-grid .badges{top:6px;left:6px}.featured-property-grid .badge{padding:3px 6px;font-size:10px;line-height:1.1;font-weight:600}.featured-property-grid .favorite{top:5px;right:5px;width:32px;height:32px;min-width:32px;font-size:15px}.featured-property-grid .property-body,.home-page .featured-property-grid .property-body{padding:8px;display:flex;min-height:0;flex-direction:column}.featured-property-grid .property-title,.home-page .featured-property-grid .property-title{min-height:31px;margin:0 0 3px;font-size:14px;line-height:1.12;font-weight:700;letter-spacing:0;-webkit-line-clamp:2}.featured-property-grid .location-line,.home-page .featured-property-grid .location-line{font-size:11px;line-height:1.2;color:#7d8798}.featured-property-grid .facts{display:none}.featured-property-grid .price-row{margin-top:auto;display:block}.featured-property-grid .price,.home-page .featured-property-grid .price{display:block;font-size:13px;line-height:1.18;font-weight:700;color:#1470e8}.featured-property-grid .availability{display:none}
.home-map-banner{min-height:68px;margin-top:10px;padding:9px 10px;gap:9px;border-radius:16px}.home-destination-discover{margin-top:10px;padding:13px 10px 12px;border-radius:19px}.home-destination-discover:before,.home-discover:before{content:none!important;display:none!important}.destination-card-row{gap:7px;margin:8px -10px -2px;padding:0 10px 5px}.destination-card{flex-basis:116px;height:112px;border-radius:12px}
.home-page~.footer{display:none}.home-page~.footer~.bottom-nav{left:0;right:0;bottom:0;height:66px;padding:3px 4px max(4px,env(safe-area-inset-bottom));border:1px solid #e4ebf6;border-radius:20px 20px 0 0;background:rgba(255,255,255,.98);box-shadow:0 -6px 20px rgba(46,88,144,.1)}.home-page~.footer~.bottom-nav>a{min-width:60px;min-height:52px;gap:2px;font-size:11px;line-height:1;font-weight:400}.home-page~.footer~.bottom-nav .bottom-nav-icon{width:23px!important;height:23px!important;overflow:hidden}.home-page~.footer~.bottom-nav .bottom-nav-icon>.asset-icon{width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important;object-fit:contain!important}.home-page~.footer~.bottom-nav .bottom-nav-label{min-height:12px;font-size:11px;line-height:1.05;font-weight:400}.home-page~.footer~.bottom-nav>a.active .bottom-nav-label{font-weight:500}
@media(max-width:350px){.home-page .shell{padding-inline:10px}.service-board{gap:6px;padding-inline:8px}.service-board>a{font-size:11.5px}.home-amenity-chips{margin-inline:-10px;padding-inline:10px}.amenity-filter{min-width:92px}.featured-property-grid .property-card{height:198px}}
@media(min-width:700px){.home-topbar{height:92px;padding-inline:30px}.home-topbar .brand-wordmark,.home-topbar .brand-wordmark .brand-logo{width:170px;max-width:170px;height:56px}.home-hero{padding:10px 0 34px}.service-board{max-width:810px;padding:18px;gap:14px;border-radius:30px}.service-board>a{height:108px;min-height:108px;border-radius:22px;font-size:14px;gap:7px}.service-icon,.service-icon-frame{width:56px!important;height:56px!important;flex-basis:56px}.service-icon .asset-icon,.service-icon-frame .asset-icon{width:56px!important;height:56px!important;max-width:56px!important;max-height:56px!important}.home-search{max-width:810px;height:62px;margin:14px auto 0}.home-amenity-chips{justify-content:center;margin-inline:0;padding-inline:0}.amenity-filter{min-width:150px;height:54px;font-size:14px}.home-properties.home-featured,.home-map-banner,.home-destination-discover{max-width:810px;margin-left:auto;margin-right:auto}.home-properties.home-featured{padding:22px 20px}.home-featured .section-title,.home-properties .section-title{font-size:24px}.featured-property-grid{gap:16px}.featured-property-grid .property-card{height:286px}.featured-property-grid .property-image{height:176px;aspect-ratio:auto}.featured-property-grid .property-title,.home-page .featured-property-grid .property-title{font-size:18px;min-height:42px}.featured-property-grid .location-line,.home-page .featured-property-grid .location-line{font-size:13px}.featured-property-grid .price,.home-page .featured-property-grid .price{font-size:17px}}

/* Odayne UI system — shared application pages. */
:root{--ds-primary:#1475f5;--ds-primary-dark:#0f3b91;--ds-primary-soft:#eaf3ff;--ds-ink:#102c63;--ds-muted:#6f7d95;--ds-canvas:#f4f8ff;--ds-surface:#fff;--ds-border:#e3ebf7;--ds-success:#16835a;--ds-radius-sm:10px;--ds-radius-md:16px;--ds-radius-lg:24px;--ds-radius-pill:999px;--ds-shadow-sm:0 4px 14px rgba(31,79,151,.08);--ds-shadow-md:0 12px 32px rgba(31,79,151,.13);--ds-space-1:4px;--ds-space-2:8px;--ds-space-3:12px;--ds-space-4:16px;--ds-space-5:20px;--ds-space-6:24px;--ds-space-8:32px}
body{font-family:"Roboto",Arial,sans-serif;color:var(--ds-ink)}
.app-topbar{position:relative;z-index:3;height:72px;padding-inline:16px;background:#2b84ef;max-width:none}.app-topbar .brand-wordmark,.app-topbar .brand-logo{width:126px;height:46px;max-width:126px;object-fit:contain;object-position:left center}.app-topbar .header-actions{gap:5px}.app-topbar .icon-btn{width:40px;height:40px;background:rgba(255,255,255,.92);border:0;box-shadow:none}.app-topbar .icon-btn .ui-icon{width:21px;height:21px;object-fit:contain}
.app-page{min-height:calc(100dvh - 72px);padding-bottom:94px;background:linear-gradient(180deg,#eaf4ff 0,#f7faff 39%,#fff 100%)}
.app-page .shell{width:100%;max-width:940px;padding-inline:16px}
.app-page-hero{position:relative;min-height:210px;overflow:hidden;padding:20px 0 48px;color:#fff;background:linear-gradient(135deg,rgba(25,119,242,.94),rgba(72,160,246,.82)),url("/assets/elements/01-nen-halong-trang.png") center/cover no-repeat}.app-page-hero:after{content:"";position:absolute;right:-26px;bottom:-24px;width:142px;height:86px;background:url("/assets/elements/Elements_tachnen/decor-island-01-cum-dao.png") center/contain no-repeat;opacity:.32;pointer-events:none}.app-page-hero.compact{min-height:190px}.hero-symbol{width:46px;height:46px;display:grid;place-items:center;margin-bottom:12px;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 6px 16px rgba(19,66,132,.14)}.hero-symbol .ui-icon{width:28px;height:28px;object-fit:contain}.app-eyebrow{margin:0 0 3px;font-size:12px;line-height:1.4;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.app-page-hero h1{margin:0;font-size:32px;line-height:1.08;font-weight:700;letter-spacing:-.7px}.app-page-hero p:not(.app-eyebrow){max-width:470px;margin:9px 0 0;color:#eaf4ff;font-size:14px;line-height:1.5}.hero-stat{position:absolute;top:25px;right:16px;min-width:76px;padding:9px 12px;border:1px solid rgba(255,255,255,.42);border-radius:18px;background:rgba(255,255,255,.15);text-align:center}.hero-stat strong,.hero-stat span{display:block}.hero-stat strong{font-size:24px;line-height:1;font-weight:700}.hero-stat span{margin-top:4px;font-size:10px}
.app-page-content{position:relative;z-index:2;margin-top:-28px}.app-page-content.narrow{max-width:620px}.contact-card,.auth-card,.profile-card,.ds-empty,.trust-card{border:1px solid var(--ds-border);background:var(--ds-surface);box-shadow:var(--ds-shadow-md)}.contact-card,.auth-card,.profile-card,.ds-empty{border-radius:var(--ds-radius-lg)}
.contact-card{padding:20px}.contact-person{display:flex;align-items:center;gap:13px}.contact-avatar,.profile-avatar{flex:0 0 52px;width:52px;height:52px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#ffdd71,#ffb928);color:#7b5200;font-size:20px;font-weight:700}.contact-person span{color:var(--ds-muted);font-size:11px}.contact-person h2{margin:1px 0;font-size:21px;line-height:1.2;font-weight:700}.contact-person p{margin:0;color:var(--ds-muted);font-size:12px;line-height:1.4}.phone-action{min-height:74px;display:flex;align-items:center;gap:12px;margin-top:18px;padding:10px 12px;border-radius:18px;background:linear-gradient(135deg,var(--ds-primary),#0865d9);color:#fff;text-decoration:none;box-shadow:0 8px 20px rgba(20,117,245,.23);transition:transform 160ms ease,box-shadow 160ms ease}.phone-action:active{transform:scale(.985)}.phone-action-icon{flex:0 0 43px;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--ds-primary)}.phone-action-icon .ui-icon{width:23px;height:23px}.phone-action>span:nth-child(2){flex:1}.phone-action small,.phone-action strong{display:block}.phone-action small{font-size:11px;color:#dbeaff}.phone-action strong{font-size:20px;line-height:1.2;font-weight:700;letter-spacing:.1px}.phone-action>.ui-icon{width:18px;height:18px}.support-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.support-list span{padding:7px 10px;border-radius:999px;background:var(--ds-primary-soft);color:var(--ds-primary-dark);font-size:11px;font-weight:500}.contact-note,.demo-note{margin:14px 0 0;color:var(--ds-muted);font-size:11px;line-height:1.45}.trust-card{display:flex;gap:12px;margin-top:12px;padding:16px;border-radius:18px;box-shadow:var(--ds-shadow-sm)}.trust-card>.ui-icon{flex:0 0 25px;width:25px;height:25px;object-fit:contain}.trust-card h3{margin:0 0 3px;font-size:14px}.trust-card p{margin:0;color:var(--ds-muted);font-size:11px;line-height:1.45}
.ds-empty{padding:32px 20px;text-align:center}.ds-empty-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 15px;border-radius:22px;background:var(--ds-primary-soft)}.ds-empty-icon .ui-icon{width:32px;height:32px;color:var(--ds-primary);object-fit:contain}.ds-empty h2{margin:0;font-size:21px;line-height:1.2}.ds-empty p{max-width:390px;margin:9px auto 20px;color:var(--ds-muted);font-size:13px;line-height:1.5}.ds-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:1px solid transparent;border-radius:14px;font:600 14px/1 "Roboto",Arial,sans-serif;text-decoration:none;transition:transform 160ms ease,background-color 160ms ease,box-shadow 160ms ease}.ds-button:active{transform:scale(.98)}.ds-button .ui-icon{width:20px;height:20px;object-fit:contain}.ds-button-primary{background:var(--ds-primary);color:#fff;box-shadow:0 7px 16px rgba(20,117,245,.2)}.ds-button-secondary{border-color:#cfe0f6;background:#fff;color:var(--ds-primary-dark)}.ds-button-quiet{border:0;background:transparent;color:var(--ds-muted)}
.saved-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;padding:20px 2px 12px}.saved-toolbar h2{margin:0;font-size:20px;line-height:1.15}.saved-toolbar p{margin:4px 0 0;color:var(--ds-muted);font-size:11px}.saved-toolbar a{min-height:44px;display:flex;align-items:center;color:var(--ds-primary);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}.saved-grid{padding-bottom:20px}.saved-grid .property-card{border:1px solid var(--ds-border);border-radius:18px;box-shadow:var(--ds-shadow-sm)}.saved-grid .property-image{aspect-ratio:16/10}.saved-grid .property-title{font-size:16px;font-weight:700}.saved-grid .price{color:var(--ds-primary);font-weight:700}
.auth-card,.profile-card{padding:20px}.auth-heading{display:flex;align-items:center;gap:12px;margin-bottom:20px}.auth-heading>span{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--ds-primary-soft)}.auth-heading>span .ui-icon{width:28px;height:28px;object-fit:contain}.auth-heading h2,.profile-card h2{margin:0;font-size:22px;line-height:1.2}.auth-heading p,.profile-card p{margin:3px 0 0;color:var(--ds-muted);font-size:12px}.auth-form{display:grid;gap:15px}.ds-field{display:grid;gap:6px}.ds-field label{font-size:12px;font-weight:600}.ds-input-wrap{height:50px;display:flex;align-items:center;gap:9px;padding:0 13px;border:1px solid #d6e2f1;border-radius:14px;background:#fbfdff;transition:border-color 160ms ease,box-shadow 160ms ease}.ds-input-wrap:focus-within{border-color:var(--ds-primary);box-shadow:0 0 0 3px rgba(20,117,245,.13)}.ds-input-wrap .ui-icon{flex:0 0 20px;width:20px;height:20px;color:var(--ds-muted)}.ds-input-wrap input{width:100%;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--ds-ink);font-size:14px}.auth-submit{width:100%;margin-top:2px}.profile-card{text-align:center}.profile-avatar{margin:0 auto 12px}.profile-card .app-eyebrow{color:var(--ds-primary)}.profile-actions{display:grid;gap:5px;margin-top:20px}
.app-page~.footer{display:none}.app-page~.footer~.bottom-nav{left:0;right:0;bottom:0;height:66px;padding:3px 4px max(4px,env(safe-area-inset-bottom));border:1px solid var(--ds-border);border-radius:20px 20px 0 0;background:rgba(255,255,255,.98);box-shadow:0 -6px 20px rgba(46,88,144,.1)}.app-page~.footer~.bottom-nav>a{min-width:60px;min-height:52px;gap:2px;color:#8290a7;font-size:11px;line-height:1;font-weight:400}.app-page~.footer~.bottom-nav>a.active{color:var(--ds-primary)}.app-page~.footer~.bottom-nav .bottom-nav-icon{width:23px!important;height:23px!important;overflow:hidden}.app-page~.footer~.bottom-nav .bottom-nav-icon>.asset-icon{width:23px!important;height:23px!important;max-width:23px!important;max-height:23px!important;object-fit:contain!important}.app-page~.footer~.bottom-nav .bottom-nav-label{font-size:11px;line-height:1.05;font-weight:400}.app-page~.footer~.bottom-nav>a.active .bottom-nav-label{font-weight:600}
@media(min-width:700px){.app-topbar{height:82px;padding-inline:28px}.app-topbar .brand-wordmark,.app-topbar .brand-logo{width:155px;max-width:155px;height:52px}.app-page{min-height:calc(100dvh - 82px);padding-bottom:40px}.app-page-hero{min-height:250px;padding-top:32px}.app-page-hero h1{font-size:42px}.app-page-hero p:not(.app-eyebrow){font-size:16px}.app-page-content{margin-top:-38px}.contact-card,.auth-card,.profile-card{padding:28px}.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-page~.footer{display:block;padding-bottom:28px}.app-page~.footer~.bottom-nav{display:none}}
@media(prefers-reduced-motion:reduce){.phone-action,.ds-button,.ds-input-wrap{transition:none!important}}
.trust-card>span{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;overflow:hidden;border-radius:13px;background:var(--ds-primary-soft)}
.trust-card>span>.ui-icon{display:block;width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important;object-fit:contain!important}

/* Navigation and application-page final lock. Keep this layer last. */
.app-topbar{height:76px;padding-inline:16px}.app-topbar .brand-wordmark,.app-topbar .brand-logo{flex:0 0 128px;width:128px;height:49px;max-width:128px;object-fit:contain;object-position:left center}.app-topbar .header-actions{flex:0 0 auto;gap:6px}.app-topbar .icon-btn{width:44px;height:44px;overflow:hidden}.app-topbar .icon-btn .asset-icon{width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;object-fit:contain!important}.app-topbar .desktop-links a,.home-topbar .desktop-links a{position:relative;color:rgba(255,255,255,.88);font-size:14px;font-weight:500}.app-topbar .desktop-links a.active,.home-topbar .desktop-links a.active{color:#fff;font-weight:700}.app-topbar .desktop-links a.active:after,.home-topbar .desktop-links a.active:after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:3px;border-radius:999px;background:#fff}
.app-page{min-height:calc(100dvh - 76px)}.app-page-hero,.app-page-hero.compact{min-height:188px;padding:16px 0 40px}.hero-symbol{width:40px;height:40px;margin-bottom:9px;border-radius:14px}.hero-symbol .ui-icon{width:24px!important;height:24px!important;max-width:24px!important;max-height:24px!important}.app-page-hero h1{font-size:30px}.app-page-hero p:not(.app-eyebrow){margin-top:7px;font-size:13px;line-height:1.45}.hero-stat{top:18px}.app-page-content{margin-top:-24px}.contact-person p,.auth-heading p,.profile-card p{font-size:13px;line-height:1.45}.contact-person span,.support-list span,.contact-note,.demo-note,.trust-card p,.saved-toolbar p{font-size:12px}.trust-card h3{font-size:15px}
.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.saved-grid .property-card{height:204px;border-radius:15px}.saved-grid .property-image{height:auto;aspect-ratio:2/1;border-radius:14px 14px 0 0}.saved-grid .property-body{display:flex;min-height:0;flex-direction:column;padding:8px}.saved-grid .property-title{min-height:31px;margin-bottom:3px;font-size:14px;line-height:1.12;font-weight:700}.saved-grid .location-line{font-size:11px;line-height:1.2}.saved-grid .facts,.saved-grid .availability{display:none}.saved-grid .price-row{display:block;margin-top:auto}.saved-grid .price{display:block;font-size:13px;line-height:1.18;font-weight:700}.saved-grid .badge{padding:3px 6px;font-size:9px}.saved-grid .favorite{width:32px;height:32px;min-width:32px;top:5px;right:5px;font-size:15px}
.bottom-nav{left:0;right:0;bottom:0;height:68px;padding:3px 6px max(5px,env(safe-area-inset-bottom));border:1px solid var(--ds-border);border-radius:22px 22px 0 0;background:rgba(255,255,255,.98);box-shadow:0 -6px 20px rgba(46,88,144,.1);backdrop-filter:blur(12px)}.bottom-nav>a,.home-page~.footer~.bottom-nav>a,.app-page~.footer~.bottom-nav>a{flex:1;min-width:0;min-height:56px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#7d8ba2;font-size:11px;line-height:1;font-weight:400}.bottom-nav .bottom-nav-icon,.home-page~.footer~.bottom-nav .bottom-nav-icon,.app-page~.footer~.bottom-nav .bottom-nav-icon{flex:0 0 34px;width:34px!important;height:34px!important;display:grid;place-items:center;overflow:visible;border-radius:11px;transition:background-color 160ms ease,transform 160ms ease}.bottom-nav .bottom-nav-icon>.asset-icon,.home-page~.footer~.bottom-nav .bottom-nav-icon>.asset-icon,.app-page~.footer~.bottom-nav .bottom-nav-icon>.asset-icon{display:block;width:28px!important;height:28px!important;max-width:28px!important;max-height:28px!important;object-fit:contain!important;opacity:.46;filter:grayscale(1);transition:opacity 160ms ease,filter 160ms ease,transform 160ms ease}.bottom-nav>a:nth-child(1) .asset-icon{transform:scale(1.2)}.bottom-nav>a:nth-child(2) .asset-icon{transform:scale(1)}.bottom-nav>a:nth-child(3) .asset-icon{transform:scale(1.12)}.bottom-nav>a:nth-child(4) .asset-icon{transform:scale(1.08)}.bottom-nav .bottom-nav-label,.home-page~.footer~.bottom-nav .bottom-nav-label,.app-page~.footer~.bottom-nav .bottom-nav-label{min-height:12px;font-size:11px;line-height:1.05;font-weight:400}.bottom-nav>a.active{color:var(--ds-primary);font-weight:600}.bottom-nav>a.active .bottom-nav-icon{background:var(--ds-primary-soft)}.bottom-nav>a.active .bottom-nav-icon>.asset-icon{opacity:1;filter:none}.bottom-nav>a.active .bottom-nav-label{font-weight:600}
@media(max-width:340px){.phone-action{min-height:68px;gap:9px;padding-inline:10px}.phone-action strong{font-size:17px;white-space:nowrap}.phone-action-icon{flex-basis:40px;width:40px;height:40px}.contact-card,.auth-card,.profile-card{padding:16px}.saved-toolbar h2{font-size:18px}}
@media(min-width:700px){.app-topbar{height:92px;padding-inline:30px}.app-topbar .brand-wordmark,.app-topbar .brand-logo{flex-basis:170px;width:170px;max-width:170px;height:56px}.app-topbar .desktop-links,.home-topbar .desktop-links{display:flex!important;align-items:center;gap:8px;margin-left:38px;margin-right:auto}.app-topbar .desktop-links a,.home-topbar .desktop-links a{min-height:44px;display:flex;align-items:center;padding:0 12px;text-decoration:none}.app-topbar .header-actions{display:none}.app-page{min-height:calc(100dvh - 92px)}.app-page-hero,.app-page-hero.compact{min-height:224px;padding-top:28px}.app-page-hero h1{font-size:40px}.app-page-hero p:not(.app-eyebrow){font-size:15px}.app-page-content{margin-top:-34px}.saved-grid{gap:16px}.saved-grid .property-card{height:286px}.saved-grid .property-image{height:176px;aspect-ratio:auto}.saved-grid .property-title{font-size:18px;min-height:42px}.saved-grid .location-line{font-size:13px}.saved-grid .price{font-size:17px}.bottom-nav{display:none!important}}
.home-page~.footer~.bottom-nav>a.active .bottom-nav-icon>.asset-icon,.app-page~.footer~.bottom-nav>a.active .bottom-nav-icon>.asset-icon{opacity:1;filter:none}
.home-page~.footer~.bottom-nav>a.active,.app-page~.footer~.bottom-nav>a.active{color:var(--ds-primary);font-weight:600}
.app-page-hero>.shell{position:relative}.app-page-hero .hero-stat{top:4px;right:16px}
@media(max-width:340px){.saved-grid .property-card{height:198px}}
@media(min-width:700px){#app:has(.app-page){min-height:100dvh;display:flex;flex-direction:column}.app-page{flex:1;min-height:0}.app-page .shell{padding-inline:24px}.app-page-hero .hero-stat{right:24px}}
.app-topbar .icon-btn.active{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.24)}
.field-error{min-height:16px;color:#c72b3b;font-size:11px;line-height:1.35}
@media(min-width:700px){.app-topbar .header-actions{display:none!important}}

/* User review fixes — home cards, discovery and direct-call header. */
.header-call{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.96);color:var(--ds-primary-dark);font:600 13px/1 "Roboto",Arial,sans-serif;text-decoration:none;box-shadow:0 4px 12px rgba(13,70,146,.12)}
.header-call .ui-icon{flex:0 0 20px;width:20px!important;height:20px!important;max-width:20px!important;max-height:20px!important;object-fit:contain!important}.header-call span{white-space:nowrap}
.favorite{display:grid!important;place-items:center;padding:0;line-height:1}.favorite .favorite-heart{width:18px!important;height:18px!important;max-width:18px!important;max-height:18px!important;fill:none;stroke:currentColor;stroke-width:2}.favorite.is-saved .favorite-heart{fill:currentColor;stroke:currentColor}.home-page .favorite.is-saved,.saved-page .favorite.is-saved{background:#1475f5;border-color:#1475f5;color:#fff}
.home-featured .section-title,.home-properties .section-title{font-size:18px!important;line-height:1.2;font-weight:700;letter-spacing:-.2px}.home-featured .section-head{margin-bottom:10px}
.home-service-feature{margin-top:12px;padding:16px 10px!important;border-radius:19px;background:#fff;box-shadow:0 7px 21px rgba(53,98,166,.07)}
.home-service-feature .section-head{min-height:30px;margin-bottom:10px;align-items:center}
.home-service-feature .text-link{flex:0 0 auto;white-space:nowrap}
.home-service-teaser-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.home-service-teaser{position:relative;isolation:isolate;min-height:184px;overflow:hidden;border:1px solid #e0eaf7;border-radius:15px;background:#edf5ff;color:#fff;text-decoration:none;box-shadow:0 4px 12px rgba(30,83,149,.08)}
.home-service-teaser>img{position:absolute;z-index:-2;inset:0;width:100%;height:100%;object-fit:cover}
.home-service-teaser::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(12,47,103,.03) 17%,rgba(9,38,82,.85) 100%)}
.home-service-teaser>span{position:absolute;inset:auto 10px 10px;display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.home-service-teaser i{display:grid;place-items:center;width:29px;height:29px;margin-bottom:7px;border-radius:10px;background:rgba(255,255,255,.92);color:#1475f5}
.home-service-teaser i .ui-icon{width:18px;height:18px}
.home-service-teaser strong{display:block;color:inherit;font-size:14px;line-height:1.18;font-weight:700}
.home-service-teaser small{display:-webkit-box;min-height:29px;margin-top:4px;overflow:hidden;color:rgba(255,255,255,.92);font-size:10px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.home-service-teaser em{display:flex;align-items:center;gap:1px;margin-top:7px;color:#fff;font-size:10px;line-height:1;font-style:normal;font-weight:700}.home-service-teaser em .ui-icon{width:13px;height:13px}
.home-service-teaser-info{background:linear-gradient(145deg,#e8f4ff,#d8eaff)}
.home-service-teaser-info::after{background:linear-gradient(160deg,rgba(26,116,237,.08),rgba(10,55,124,.84))}
@media(min-width:700px){.home-service-feature{max-width:810px;margin-left:auto;margin-right:auto;padding:22px 20px!important}.home-service-teaser-grid{gap:16px}.home-service-teaser{min-height:235px}.home-service-teaser>span{inset:auto 16px 15px}.home-service-teaser strong{font-size:18px}.home-service-teaser small{font-size:12px}.home-service-teaser em{font-size:12px}}

/* City, guide and detail routes share the same blue canvas as the home page. */
.city-page{min-height:calc(100dvh - 76px);padding-bottom:82px;background:#f5f9ff;color:#102c63;font-family:"Roboto",Arial,sans-serif}
.city-page-hero{padding:15px 0 27px;background:linear-gradient(145deg,#1679ed,#5aacef 70%,#9ed5ff),url("/assets/elements/01-nen-halong-trang.png") center/cover no-repeat;color:#fff}
.city-page-hero h1{margin:11px 0 5px;font-size:30px;line-height:1.15;letter-spacing:-.6px;color:#fff}.city-page-hero p{max-width:430px;margin:0;color:#edf7ff;font-size:13px;line-height:1.5}
.city-page-hero .service-breadcrumb{color:#d9efff}.city-page-hero .service-breadcrumb a,.city-page-hero .service-breadcrumb strong{color:#fff}
.city-search-link{width:100%;min-height:50px;display:flex;align-items:center;gap:9px;margin-top:16px;padding:6px 12px;border:1px solid rgba(255,255,255,.7);border-radius:17px;background:rgba(255,255,255,.96);box-shadow:0 7px 17px rgba(11,64,139,.14);color:#116ce6;font:600 13px/1.2 "Roboto",Arial,sans-serif;text-align:left}.city-search-link .ui-icon{width:20px;height:20px}.city-search-link span{flex:1;color:#244980}.city-search-link .ui-icon:last-child{width:17px;height:17px}
.city-page-content{padding-top:14px}.city-service-links{display:flex;gap:8px;overflow-x:auto;padding:1px 1px 11px;scrollbar-width:none}.city-service-links::-webkit-scrollbar{display:none}.city-service-links a{flex:0 0 auto;min-height:38px;display:inline-flex;align-items:center;padding:0 13px;border:1px solid #d4e4f8;border-radius:999px;background:#fff;color:#31527f;font-size:12px;font-weight:600;text-decoration:none}.city-service-links a.active{border-color:#1675ee;background:#1675ee;color:#fff;box-shadow:0 5px 12px rgba(22,117,238,.19)}
.city-results{padding:16px 12px;border:1px solid #dfebfa;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(32,93,169,.07)}.city-results-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:12px}.city-results-head h2{margin:0;color:#143875;font-size:19px;line-height:1.2;letter-spacing:-.3px}.city-results-head p{margin:4px 0 0;color:#72819a;font-size:11px;line-height:1.4}.city-results-head>a{min-height:30px;display:flex;align-items:center;gap:1px;color:#1475f5;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.city-results-head>a .ui-icon{width:15px;height:15px}
.city-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.city-property-grid .property-card{min-width:0;overflow:hidden;border:1px solid #e0e8f4;border-radius:15px;box-shadow:none}.city-property-grid .property-image{aspect-ratio:4/3;border-radius:14px 14px 0 0}.city-property-grid .property-body{padding:9px}.city-property-grid .property-title{margin:0 0 5px;color:#143875;font-size:14px;line-height:1.2}.city-property-grid .location-line{margin:0 0 7px;color:#6d7c94;font-size:10px;line-height:1.25}.city-property-grid .facts,.city-property-grid .availability{display:none}.city-property-grid .price-row{margin:0}.city-property-grid .price{width:100%;display:flex;justify-content:center;color:#1475f5;font-size:12px;font-weight:700}.city-property-grid .favorite{width:31px;height:31px;min-width:31px;top:5px;right:5px}.city-property-grid .badges{top:6px;left:6px}.city-property-grid .badge{padding:3px 6px;font-size:9px}
.city-data-pending{display:flex;align-items:flex-start;gap:12px;padding:17px;border:1px dashed #bcd5f4;border-radius:17px;background:linear-gradient(145deg,#f8fbff,#edf5ff)}.city-data-pending>span{flex:0 0 38px;width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:#fff;color:#1475f5}.city-data-pending>span .ui-icon{width:22px;height:22px}.city-data-pending h2{margin:0;color:#183d78;font-size:16px;line-height:1.25}.city-data-pending p{margin:4px 0 10px;color:#6e7e98;font-size:12px;line-height:1.45}.city-data-pending a,.service-pending-action,.detail-contact-link{display:inline-flex;align-items:center;gap:2px;color:#1475f5;font-size:12px;font-weight:700;text-decoration:none}.city-data-pending a .ui-icon,.service-pending-action .ui-icon,.detail-contact-link .ui-icon{width:15px;height:15px}
.service-property-pending{padding-bottom:17px}.service-pending-action{min-height:38px;padding:0 12px;border-radius:12px;background:#eaf3ff}.city-guide-content{padding-top:14px}.city-guide-content .detail-section{margin-bottom:12px;padding:17px;border:1px solid #dfebfa;border-radius:18px;background:#fff;box-shadow:0 7px 19px rgba(32,93,169,.06)}.city-guide-content .detail-section h2{color:#143875;font-size:19px}.city-guide-content .detail-section p{color:#5e718e;font-size:13px;line-height:1.55}.city-guide-content .amenity{border-color:#dce9f8;border-radius:12px;color:#294b7e;font-size:12px}.city-guide-content .btn.secondary{margin-top:14px;border-color:#cde0f8;color:#1475f5}.city-guide-page .city-page-hero{padding-bottom:25px}
.detail-contact-link{min-height:39px;margin-top:14px;padding:0 12px;border-radius:12px;background:#eaf3ff}.detail-v2 .detail-booking-card .btn{display:grid;text-align:center}.detail-v2~.sticky-cta .btn{display:grid;text-align:center}.detail-v2~.sticky-cta{bottom:68px}.detail-v2~.footer{display:none}

/* Saved hearts remain an intentional exception to the blue action color. */
.favorite.is-saved,.home-page .favorite.is-saved,.saved-page .favorite.is-saved,.service-property-grid .favorite.is-saved,.listing-property-grid .favorite.is-saved,.detail-gallery .favorite.is-saved{border-color:#ff4d6d!important;background:#ff4d6d!important;color:#fff!important}

/* Filter controls are inputs, not preset chips. */
.filter-sheet{max-height:82dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(22px + env(safe-area-inset-bottom))}
.filter-sheet .field-label{margin:17px 0 8px}.bedroom-stepper{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:8px}.bedroom-stepper button{height:48px;border:1px solid #c8def8;border-radius:13px;background:#eaf3ff;color:#1475f5;font-size:25px;font-weight:500}.bedroom-stepper input{width:100%;height:48px;border:1px solid #c8def8;border-radius:13px;background:#fff;color:#153b77;font:600 15px/1 "Roboto",Arial,sans-serif;text-align:center;outline:0}.bedroom-stepper input:focus{border-color:#1475f5;box-shadow:0 0 0 3px rgba(20,117,245,.13)}.filter-help{margin:6px 0 0;color:#77869d;font-size:11px;line-height:1.35}
.filter-checkbox-group{display:flex;flex-wrap:wrap;gap:8px}.filter-checkbox{position:relative;min-height:42px;display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #cbdcf2;border-radius:12px;background:#fff;color:#193d79;font-size:13px;font-weight:600}.filter-checkbox input{position:absolute;width:1px;height:1px;opacity:0}.filter-checkbox>span{width:17px;height:17px;display:grid;place-items:center;border:1.5px solid #a9bedb;border-radius:5px;background:#fff}.filter-checkbox>span::after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px);opacity:0}.filter-checkbox:has(input:checked){border-color:#1475f5;background:#eaf3ff;color:#1264ce}.filter-checkbox:has(input:checked)>span{border-color:#1475f5;background:#1475f5}.filter-checkbox:has(input:checked)>span::after{opacity:1}.filter-sheet .sheet-actions{position:sticky;bottom:-22px;margin-top:20px;padding:12px 0 calc(2px + env(safe-area-inset-bottom));background:#f7fbff}
.detail-v2{padding-bottom:190px!important}.detail-v2~.sticky-cta{z-index:16}.detail-v2~.footer~.bottom-nav{z-index:17}
.home-destination-discover .destination-card-row{margin-left:0;margin-right:0;padding-left:0;padding-right:0}
@media(min-width:700px){.detail-v2{padding-bottom:56px!important}.filter-sheet{max-height:82vh}}
@media(min-width:700px){.city-page{min-height:calc(100dvh - 92px);padding-bottom:40px}.city-page-hero{padding:28px 0 38px}.city-page-hero h1{font-size:40px}.city-page-hero p{font-size:16px}.city-search-link{max-width:620px;min-height:58px;font-size:15px}.city-page-content{max-width:810px;padding-top:24px}.city-results{padding:22px}.city-results-head h2{font-size:24px}.city-property-grid{gap:16px}.city-property-grid .property-body{padding:14px}.city-property-grid .property-title{font-size:18px}.city-property-grid .location-line{font-size:13px}.city-property-grid .price{font-size:15px}.detail-v2~.sticky-cta{bottom:0}.detail-v2~.footer{display:block}}

/* City cards keep key facts legible without changing the image's layout. */
.city-property-grid .property-image{position:relative;display:block;overflow:hidden;isolation:isolate}
.city-property-grid .property-image>img{display:block;width:100%;height:100%;object-fit:cover}
.city-property-grid .image-facts{position:absolute;z-index:2;left:7px;bottom:7px;display:flex;gap:4px;max-width:calc(100% - 14px);overflow:hidden;pointer-events:none}
.city-property-grid .image-facts>span{display:block;min-width:0;max-width:calc(50% - 2px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;border-radius:999px;background:rgba(255,255,255,.95);box-shadow:0 2px 7px rgba(18,54,102,.14);color:#274f87;font-size:9px;line-height:1.1;font-weight:700}

/* City services mirror the Villa section without publishing unverified inventory. */
.city-service-result{margin-top:12px}
.city-service-action{display:grid;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:10px;min-height:82px;padding:12px;border:1px solid #dce9f8;border-radius:15px;background:linear-gradient(135deg,#fff,#edf6ff);color:#143875;text-decoration:none}
.city-service-action>span:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#fff;color:#1475f5;box-shadow:0 5px 12px rgba(24,80,156,.08)}
.city-service-action .ui-icon{width:23px;height:23px}.city-service-action strong,.city-service-action small{display:block}.city-service-action strong{font-size:13px;line-height:1.25}.city-service-action small{margin-top:3px;color:#6980a4;font-size:11px;line-height:1.35}.city-service-action>.ui-icon{width:18px;height:18px;color:#1475f5}

/* A direct min–max price range replaces preset price chips. */
.price-range-inputs{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:end;gap:7px}.price-range-inputs>label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-width:0;height:46px;padding:0 9px;border:1px solid #c8def8;border-radius:13px;background:#fff}.price-range-inputs label>span,.price-range-inputs label>small{color:#6f80a0;font-size:11px;font-weight:600}.price-range-inputs label>small{margin-left:3px}.price-range-inputs input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:#153b77;font:600 13px/1 "Roboto",Arial,sans-serif;text-align:right}.price-range-inputs input::placeholder{color:#9aa8bc}.price-range-inputs label:focus-within{border-color:#1475f5;box-shadow:0 0 0 3px rgba(20,117,245,.12)}.price-range-divider{padding-bottom:15px;color:#8192aa;text-align:center}
.featured-property-grid .property-card,.home-page .featured-property-grid .property-card{height:auto;min-height:0}.featured-property-grid .property-body,.home-page .featured-property-grid .property-body{display:block;padding:9px 9px 10px}.featured-property-grid .property-title,.home-page .featured-property-grid .property-title{min-height:0;margin:0 0 6px;font-size:14px;line-height:1.2}.featured-property-grid .property-title a,.home-page .featured-property-grid .property-title a{display:block;min-height:0;line-height:inherit}.featured-property-grid .location-line,.home-page .featured-property-grid .location-line{margin:0 0 7px;font-size:11px;line-height:1.3}.featured-property-grid .price-row{display:block;margin-top:0}.featured-property-grid .price,.home-page .featured-property-grid .price{font-size:13px;line-height:1.25}
.home-amenity-chips{margin:10px 0 0;padding:2px 4px 6px;scroll-padding-inline:4px}.home-map-banner>i .ui-icon,.home-featured .text-link .ui-icon,.home-destination-discover .text-link .ui-icon{transform:none!important}
.destination-card-row{gap:10px}.destination-card{flex:0 0 230px;height:138px}.destination-card span{inset:auto 10px 10px;min-width:0}.destination-card strong,.destination-card small{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.destination-card strong{font-size:14px;line-height:1.25}.destination-card small{margin-top:3px;font-size:11px;line-height:1.25}
.contact-hero{padding-top:22px}.contact-person{align-items:flex-start}.contact-avatar{flex:0 0 58px;width:58px;height:58px;border-radius:18px;object-fit:cover;object-position:center 30%}.contact-person h2{margin:1px 0 3px;font-size:17px;line-height:1.25}.contact-person>div:last-child{min-width:0}
@media(max-width:350px){.header-call{min-height:40px;padding-inline:10px}.header-call span{font-size:12px}.contact-avatar{flex-basis:54px;width:54px;height:54px}.contact-person h2{font-size:16px}.destination-card{flex-basis:210px}}
@media(min-width:700px){.app-topbar .header-call{display:inline-flex}.destination-card{flex-basis:260px;height:170px}.contact-avatar{flex-basis:72px;width:72px;height:72px}.contact-person h2{font-size:20px}}

/* 2026-08 review pass: blue sheets, stable type rhythm and mobile layout. */
.sheet-backdrop{
  background:rgba(10,39,91,.48);
  backdrop-filter:blur(3px);
}
.sheet{
  border:1px solid #cfe1fa;
  background:#f7fbff;
  color:var(--ds-ink,#102c63);
  box-shadow:0 -14px 38px rgba(10,56,125,.2);
}
.sheet .handle{background:#c9daf1}
.sheet .close{
  border:1px solid #d7e6fa;
  background:#eaf3ff;
  color:#126ee8;
}
.sheet .field-label{color:#15366f}
.sheet .option{
  border-color:#cfddf0;
  background:#fff;
  color:#183568;
  box-shadow:0 2px 7px rgba(35,84,151,.04);
}
.sheet .option.selected{
  border-color:#1475f5;
  background:#eaf3ff;
  color:#0f5fc7;
  box-shadow:0 0 0 1px rgba(20,117,245,.1);
}
.sheet .sheet-actions{background:linear-gradient(180deg,rgba(247,251,255,0),#f7fbff 18%)}
.sheet .btn.primary{
  background:linear-gradient(135deg,#2583f7,#126ce7);
  color:#fff;
  box-shadow:0 8px 18px rgba(20,117,245,.22);
}
.sheet .btn.secondary{border-color:#c8daf1;background:#fff;color:#174580}
.sheet .notice{background:#eaf3ff;color:#174580}
.sheet .form-group input,.sheet .form-group textarea{border-color:#cfddf0;background:#fff}
.sheet .form-group input:focus,.sheet .form-group textarea:focus{outline:0;border-color:#1475f5;box-shadow:0 0 0 3px rgba(20,117,245,.12)}

.home-featured .section-title,.home-properties .section-title{
  font-size:18px!important;
  line-height:1.25;
  font-weight:700;
  letter-spacing:-.18px;
}
.featured-property-grid .property-body,.home-page .featured-property-grid .property-body{
  display:grid;
  grid-template-rows:auto auto auto;
  align-content:start;
  gap:5px;
  padding:10px 10px 11px;
}
.featured-property-grid .property-title,.home-page .featured-property-grid .property-title{
  min-height:0;
  margin:0;
  font-size:14px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:0;
}
.featured-property-grid .property-title a,.home-page .featured-property-grid .property-title a{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.featured-property-grid .location-line,.home-page .featured-property-grid .location-line{
  margin:0;
  font-size:11px;
  line-height:1.35;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.featured-property-grid .price-row,.home-page .featured-property-grid .price-row{margin:0;padding:0}
.featured-property-grid .price,.home-page .featured-property-grid .price{font-size:13px;line-height:1.3}

.home-map-banner>i{color:#1475f5}
.home-map-banner>i .ui-icon,.home-featured .text-link .ui-icon,.home-destination-discover .text-link .ui-icon{
  transform:none!important;
}
.destination-card span{right:10px;min-width:0}
.destination-card strong,.destination-card small{
  display:block;
  width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  -webkit-line-clamp:unset;
}
.destination-card strong{font-size:14px;line-height:1.3}
.destination-card small{margin-top:3px;font-size:10px;line-height:1.3}

.app-topbar{
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
}
.trust-card{
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  text-align:center;
}
.trust-card>div{max-width:470px}
.phone-action{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.5);
  background:linear-gradient(120deg,#0f68df,#1880f7 55%,#0d62d4);
  box-shadow:0 10px 24px rgba(20,117,245,.26);
  transition:transform 180ms ease,box-shadow 180ms ease,filter 180ms ease;
}
.phone-action:before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-45% auto -45% -35%;
  width:30%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
  transform:skewX(-18deg);
  animation:phone-shine 4.2s ease-in-out infinite;
}
.phone-action:hover{transform:translateY(-2px);filter:saturate(1.06);box-shadow:0 14px 30px rgba(20,117,245,.31)}
.phone-action:active{transform:translateY(0) scale(.985)}
.phone-action-icon{box-shadow:0 4px 12px rgba(4,59,135,.13)}
@keyframes phone-shine{0%,62%{left:-35%}88%,100%{left:120%}}

.saved-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  column-gap:14px;
  row-gap:4px;
}
.saved-toolbar>div{min-width:0}
.saved-toolbar h2{font-size:20px;line-height:1.25;letter-spacing:-.2px}
.saved-toolbar p{margin-top:5px;line-height:1.4}
.saved-toolbar a{align-self:center;padding-inline:2px}
.saved-grid .property-card{height:auto;min-height:0}
.saved-grid .property-body{
  display:grid;
  grid-template-rows:auto auto auto;
  align-content:start;
  gap:6px;
  min-height:0;
  padding:10px 10px 12px;
}
.saved-grid .property-title{min-height:0;margin:0;font-size:14px;line-height:1.25}
.saved-grid .property-title a{display:-webkit-box;min-height:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.saved-grid .location-line{margin:0;font-size:11px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.saved-grid .price-row{margin:0;padding:0}
.saved-grid .price{font-size:13px;line-height:1.3}

@media(max-width:380px){
  .saved-toolbar{grid-template-columns:1fr}
  .saved-toolbar a{min-height:34px;justify-self:start;align-self:start}
}
@media(min-width:700px){
  .featured-property-grid .property-title,.home-page .featured-property-grid .property-title,.saved-grid .property-title{font-size:18px}
  .featured-property-grid .location-line,.home-page .featured-property-grid .location-line,.saved-grid .location-line{font-size:13px}
  .featured-property-grid .price,.home-page .featured-property-grid .price,.saved-grid .price{font-size:17px}
}
@media(prefers-reduced-motion:reduce){
  .phone-action{transition:none!important}
  .phone-action:before{display:none!important;animation:none!important}
}

/* Global blue-system lock for legacy catalogue, city and detail routes. */
:root{
  --primary:#1475f5;
  --primary-dark:#0f3b91;
  --aqua:#2a91f2;
  --sky:#eaf3ff;
  --surface:#fff;
  --soft:#f5f9ff;
  --text:#102c63;
  --muted:#6f7d95;
  --border:#dce7f5;
  --danger:#8a5a00;
  --shadow-sm:0 5px 18px rgba(31,79,151,.07);
  --shadow:0 16px 42px rgba(31,79,151,.11);
}
body{background:#f5f9ff;color:#102c63}
#app>.topbar:not(.home-topbar):not(.app-topbar){
  width:100%;
  max-width:none;
  height:76px;
  padding-inline:16px;
  border:0;
  background:linear-gradient(135deg,#1777ef,#3e99f4);
  box-shadow:none;
}
#app>.topbar:not(.home-topbar):not(.app-topbar) .desktop-links a{color:rgba(255,255,255,.88)}
#app>.topbar:not(.home-topbar):not(.app-topbar) .desktop-links a.active{color:#fff}

.hero{
  color:#fff;
  background:linear-gradient(135deg,#1777ef 0%,#3e99f4 64%,#79bdf8 100%);
}
.hero:before{opacity:.18;filter:saturate(.85)}
.hero h1,.hero h1::first-line{color:#fff}
.hero p{color:#eaf4ff}
.eyebrow{color:#d9ecff}
.search-card{border-color:#dce7f5;box-shadow:0 12px 32px rgba(31,79,151,.12)}
.search-unit:first-child{background:#eaf3ff}
.search-submit{background:#1475f5;box-shadow:0 7px 15px rgba(20,117,245,.22)}

.collection{background:#edf5ff}
.location-card:after{background:linear-gradient(180deg,rgba(12,55,113,.04) 5%,rgba(7,37,80,.82))}
.category{border-color:#dce7f5;background:#fff;box-shadow:0 5px 18px rgba(31,79,151,.07)}
.property-card{border-color:#e0e9f5;box-shadow:0 7px 20px rgba(31,79,151,.07)}
.property-card:hover{box-shadow:0 13px 30px rgba(31,79,151,.12)}
.badge{border-color:#d8e7fb;background:#eef5ff;color:#1d63cc}
.favorite{border-color:#d8e7f7;color:#1475f5}
.favorite.is-saved{border-color:#1475f5;background:#1475f5;color:#fff}
.fact{background:#eef5ff;color:#365a87}
.availability{background:#edf8f2;color:#167b57}
.availability.limited{background:#fff6df;color:#8a5a00}
.availability.unavailable{background:#eef2f7;color:#6f7d95}
.guide{background:linear-gradient(135deg,#10366f,#176ccf);box-shadow:0 16px 36px rgba(20,72,145,.18)}
.guide:after{color:rgba(126,186,255,.23)}
.guide p{color:#dcecff}
.guide a{color:#fff}
.footer{border-color:#183e72;background:#0d2d5f;color:#b9cbe3}
.footer strong,.footer .brand{color:#fff}
.footer .brand-mark{background:#1475f5}

.page-heading h1,.property-title,.detail-intro h1,.detail-section h2{color:#102c63}
.breadcrumbs,.result-count{color:#6f7d95}
.breadcrumbs a,.text-link{color:#176cd8}
.summary-bar,.toolbar button,.chip{border-color:#dce7f5;background:#fff;color:#294a77;box-shadow:0 5px 15px rgba(31,79,151,.06)}
.summary-bar button,.chip.active{border-color:#1475f5;background:#1475f5;color:#fff;box-shadow:0 5px 14px rgba(20,117,245,.2)}
.notice{background:#eaf3ff;color:#174580}
.empty{border-color:#cbdcf1;background:#fff;box-shadow:0 8px 22px rgba(31,79,151,.07)}
.form-group input,.form-group textarea{border-color:#d6e2f1;background:#fff;color:#102c63}
.form-group input:focus,.form-group textarea:focus{outline:0;border-color:#1475f5;box-shadow:0 0 0 3px rgba(20,117,245,.12)}
.field-error{color:#8a5a00}
.sticky-cta{border-color:#dce7f5;box-shadow:0 -8px 26px rgba(31,79,151,.09)}
.day{background:#edf5ff;color:#234e83}
.day.limited{background:#fff6df}
.day.unavailable{background:#eef2f7;color:#8a96a8}

@media(max-width:406px){
  #app>.topbar:not(.home-topbar):not(.app-topbar){padding-inline:12px}
  .list-layout{width:100%;padding-inline:12px;overflow-x:hidden}
  .list-layout .page-heading h1{font-size:26px}
  .list-layout .summary-bar{gap:8px;padding-left:12px;font-size:13px}
  .list-layout .summary-bar button{flex:0 0 auto;padding-inline:12px}
  .list-layout .toolbar{overflow-x:auto;scrollbar-width:none}
  .list-layout .toolbar::-webkit-scrollbar{display:none}
  .list-layout .toolbar button{flex:0 0 auto;white-space:nowrap}
}

/* Contact, saved places and Gmail onboarding refinement. */
.contact-hero{min-height:158px!important;padding:18px 0 28px!important}.contact-hero h1{font-size:29px}.contact-hero p:not(.app-eyebrow){max-width:520px}.contact-page .app-page-content{margin-top:-18px}.contact-person{align-items:center}.contact-person h2{margin:0 0 4px}.contact-person p{margin:0;color:var(--ds-muted);font-size:12px;line-height:1.4}
.header-call{position:relative;isolation:isolate;overflow:visible;border-color:#fff;box-shadow:0 0 0 0 rgba(255,255,255,.42),0 6px 16px rgba(9,73,158,.2);animation:header-call-glow 2.6s ease-in-out infinite}.header-call .ui-icon{animation:header-phone-ring 2.6s ease-in-out infinite}.header-call:after{content:"";position:absolute;z-index:-1;inset:-4px;border:1px solid rgba(255,255,255,.7);border-radius:inherit;opacity:0;animation:header-call-wave 2.6s ease-out infinite}@keyframes header-call-glow{0%,55%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.36),0 6px 16px rgba(9,73,158,.2)}72%{box-shadow:0 0 0 5px rgba(255,255,255,.16),0 8px 20px rgba(9,73,158,.26)}}@keyframes header-phone-ring{0%,58%,76%,100%{transform:rotate(0)}62%{transform:rotate(-10deg)}67%{transform:rotate(9deg)}72%{transform:rotate(-6deg)}}@keyframes header-call-wave{0%,58%{transform:scale(.96);opacity:0}68%{opacity:.72}88%,100%{transform:scale(1.08);opacity:0}}
.saved-hero{min-height:176px!important;padding:18px 0 34px!important}.saved-hero h1{max-width:255px;font-size:29px}.saved-hero p:not(.app-eyebrow){max-width:270px}.saved-hero .hero-stat{top:4px;min-width:94px;max-width:104px;padding:9px 8px}.saved-hero .hero-stat span{font-size:10px;line-height:1.2}.saved-content{margin-top:-14px!important;padding-top:0}.saved-grid{grid-template-columns:1fr;gap:12px}.saved-grid .property-card{min-height:126px;display:grid;grid-template-columns:120px minmax(0,1fr);overflow:hidden;border-radius:18px}.saved-grid .property-image{grid-column:1;grid-row:1;width:120px;height:100%;min-height:126px;aspect-ratio:auto;border-radius:17px 0 0 17px}.saved-grid .property-body{grid-column:2;grid-row:1;align-content:center;gap:7px;padding:14px 42px 14px 14px}.saved-grid .property-title{font-size:15px;line-height:1.25}.saved-grid .location-line{font-size:11px}.saved-grid .price{font-size:13px}.saved-grid .favorite{top:10px;right:10px}.saved-page .ds-empty{margin-top:18px}
.google-auth-card,.phone-setup-card{padding:22px}.google-login-button{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:11px;margin-top:4px;border:1px solid #d8e2ef;border-radius:14px;background:#fff;color:var(--ds-ink);font:600 14px/1 "Roboto",Arial,sans-serif;box-shadow:var(--ds-shadow-sm);transition:transform 160ms ease,box-shadow 160ms ease}.google-login-button:active{transform:scale(.985)}.google-mark{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);color:#fff;font-size:15px;font-weight:700}.phone-setup-card .auth-heading{margin-bottom:12px}.phone-setup-card .auth-heading .app-eyebrow{margin:0 0 2px;color:var(--ds-primary)}.privacy-copy{margin:0 0 18px;padding:11px 12px;border-radius:12px;background:var(--ds-primary-soft);color:var(--ds-primary-dark);font-size:13px;line-height:1.45}.privacy-note{margin:2px 0 0;color:var(--ds-muted);font-size:11px;line-height:1.45;text-align:center}
@media(min-width:700px){.contact-hero{min-height:190px!important;padding-top:28px!important}.saved-hero{min-height:210px!important;padding-top:28px!important}.saved-content{margin-top:-22px!important}.saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.saved-grid .property-card{grid-template-columns:150px minmax(0,1fr)}.saved-grid .property-image{width:150px;min-height:142px}.saved-grid .property-body{padding:18px 46px 18px 16px}.saved-grid .property-title{font-size:17px}.saved-grid .location-line{font-size:12px}.saved-grid .price{font-size:15px}}
@media(prefers-reduced-motion:reduce){.header-call,.header-call .ui-icon,.header-call:after{animation:none!important}.google-login-button{transition:none!important}}

/* Detail page v2 — Mixivivu-inspired information hierarchy in Odayne tokens. */
.card-detail-link{display:inline-flex;align-items:center;min-height:22px;color:#1470e8;text-decoration:none}
.detail-v2{
  max-width:none;
  padding:0 0 112px;
  overflow-x:clip;
  background:#f5f9ff;
  color:#10336f;
  font-family:"Roboto",Arial,sans-serif;
}
.detail-v2 .detail-shell{max-width:1180px;padding-inline:16px}
.detail-breadcrumb{
  min-height:48px;
  display:flex;
  align-items:center;
  gap:4px;
  overflow:hidden;
  color:#6f7f99;
  font-size:12px;
  line-height:1.3;
  white-space:nowrap;
}
.detail-breadcrumb a{flex:0 0 auto;color:#3767aa;text-decoration:none;font-weight:500}
.detail-breadcrumb>span{flex:0 0 15px;width:15px;height:15px;color:#9aa8bb}
.detail-breadcrumb .ui-icon{width:15px;height:15px}
.detail-breadcrumb strong{min-width:0;overflow:hidden;text-overflow:ellipsis;color:#183c77;font-weight:600}
.detail-gallery{margin-inline:-16px}
.detail-gallery .detail-image{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:0;background:#dce8ee}
.detail-gallery .detail-image img{width:100%;height:100%;display:block;object-fit:cover}
.detail-gallery .gallery-count{position:absolute;right:14px;bottom:14px;padding:7px 11px;border:1px solid rgba(255,255,255,.85);border-radius:999px;background:rgba(13,42,80,.82);color:#fff;font-size:12px;font-weight:600;backdrop-filter:blur(8px)}
.detail-gallery .favorite{top:14px;right:14px;width:44px;height:44px;border:1px solid rgba(255,255,255,.8);background:#fff;color:#1776ee;box-shadow:0 7px 20px rgba(14,61,130,.18)}
.detail-gallery .favorite.is-saved{border-color:#1776ee;background:#1776ee;color:#fff}
.detail-layout{display:block}
.detail-main-column{min-width:0}
.detail-summary-card,.detail-card,.detail-booking-card{
  border:1px solid #e2ebf6;
  border-radius:20px;
  background:#fff;
  box-shadow:0 7px 22px rgba(30,84,154,.07);
}
.detail-summary-card{margin-top:12px;padding:18px 16px}
.detail-kicker{margin:0 0 6px;color:#1776ee;font-size:12px;line-height:1.35;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.detail-summary-card h1{margin:0;color:#0f3372;font-size:27px;line-height:1.15;font-weight:700;letter-spacing:-.55px}
.detail-location{margin:8px 0 0;display:flex;align-items:center;gap:6px;color:#667792;font-size:13px;line-height:1.4}
.detail-location .ui-icon{flex:0 0 17px;width:17px;height:17px;color:#1776ee}
.detail-facts{margin-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e6eef8;border-radius:14px;background:#f7faff}
.detail-facts>span{min-width:0;padding:10px 3px;color:#103b80;text-align:center;font-size:16px;line-height:1;font-weight:700}
.detail-facts>span+span{border-left:1px solid #e1eaf6}
.detail-facts small{margin-top:5px;display:block;overflow:hidden;color:#72819a;font-size:9px;line-height:1.2;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
.detail-v2>.detail-shell .notice{margin:12px 0 0;padding:11px 13px;border:1px solid #dceafb;border-radius:14px;background:#eef6ff;color:#4e6c95;font-size:12px;line-height:1.5}
.detail-card{margin-top:12px;padding:18px 16px;border-top:1px solid #e2ebf6}
.detail-card h2{margin:0 0 10px;color:#10336f;font-size:18px;line-height:1.25;font-weight:700;letter-spacing:-.2px}
.detail-card p{margin:0;color:#5c6f8b;font-size:14px;line-height:1.6}
.detail-card .amenities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.detail-card .amenity{min-height:48px;display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #e3ecf7;border-radius:12px;background:#f8fbff;color:#244a82;font-size:12px;line-height:1.35;font-weight:500}
.detail-card .amenity>span{flex:0 0 22px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#e5f2ff;color:#1477ef;font-weight:700}
.detail-card .calendar{margin-top:14px}
.detail-policy-grid{display:grid;gap:8px}
.detail-policy-grid .policy{padding:12px;border:1px solid #e3ecf7;border-radius:12px;background:#f8fbff;color:#61728b;font-size:12px;line-height:1.45}
.detail-policy-grid .policy strong,.detail-policy-grid .policy span{display:block}
.detail-policy-grid .policy strong{margin-bottom:3px;color:#173b75;font-size:13px}
.detail-booking-card{display:none}
.detail-v2~.sticky-cta{font-family:"Roboto",Arial,sans-serif;background:rgba(255,255,255,.98);border-top:1px solid #dce6f3}
.detail-v2~.sticky-cta .price{color:#10336f;font-size:13px;font-weight:700}
.detail-v2~.sticky-cta .price small{color:#7a879b;font-size:10px;font-weight:500}
.detail-v2~.sticky-cta .btn.primary{background:#1776ee;box-shadow:0 7px 17px rgba(23,118,238,.23)}

/* The phone CTA calls attention automatically, without requiring hover. */
.header-call{animation:odayne-call-pulse 1.8s ease-in-out infinite!important}
.header-call .ui-icon{animation:odayne-phone-ring 1.8s ease-in-out infinite!important;transform-origin:50% 55%}
@keyframes odayne-call-pulse{0%,48%,100%{transform:translateY(0) scale(1);box-shadow:0 4px 13px rgba(9,73,158,.16),0 0 0 0 rgba(255,255,255,.46)}62%{transform:translateY(-1px) scale(1.035);box-shadow:0 7px 19px rgba(9,73,158,.24),0 0 0 5px rgba(255,255,255,.17)}76%{transform:translateY(0) scale(1)}}
@keyframes odayne-phone-ring{0%,48%,76%,100%{transform:rotate(0)}54%{transform:rotate(-13deg)}59%{transform:rotate(11deg)}64%{transform:rotate(-8deg)}69%{transform:rotate(6deg)}}

@media(min-width:700px){
  .detail-v2{padding-bottom:56px}
  .detail-v2 .detail-shell{padding-inline:28px}
  .detail-breadcrumb{min-height:58px;font-size:13px}
  .detail-gallery{margin-inline:0}
  .detail-gallery .detail-image{height:460px;aspect-ratio:auto;border-radius:24px}
  .detail-layout{margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:20px}
  .detail-summary-card{margin-top:0;padding:24px}
  .detail-summary-card h1{font-size:34px}
  .detail-location{font-size:14px}
  .detail-facts{max-width:620px}
  .detail-facts>span{padding:13px 6px;font-size:19px}
  .detail-facts small{font-size:11px}
  .detail-card{padding:24px}
  .detail-card h2{font-size:22px}
  .detail-card .amenities{grid-template-columns:repeat(3,minmax(0,1fr))}
  .detail-policy-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .detail-booking-card{position:sticky;top:20px;display:block;padding:22px}
  .detail-booking-card>p{margin:0 0 5px;color:#697a93;font-size:12px;font-weight:500}
  .detail-booking-card .detail-price{margin:0;color:#10336f;font-size:22px;font-weight:700}
  .detail-booking-card .availability{display:inline-block;margin-top:8px}
  .detail-booking-card .btn{width:100%;margin-top:18px;background:#1776ee}
  .detail-booking-card>a{min-height:44px;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cfe2fa;border-radius:14px;color:#145fbf;text-decoration:none;font-size:14px;font-weight:700}
  .detail-booking-card>a .ui-icon{width:19px;height:19px}
  .detail-booking-card>small{margin-top:12px;display:block;color:#78869b;font-size:11px;line-height:1.45;text-align:center}
  .detail-v2~.sticky-cta{display:none}
}
@media(prefers-reduced-motion:reduce){.header-call,.header-call .ui-icon{animation:none!important}}

/* Saved page responsive art direction and card alignment. */
.saved-hero{position:relative;background-size:620px auto!important;background-position:72% top!important}
.saved-hero .shell{padding-inline:16px}
.saved-hero h1{font-size:29px;line-height:1.12}
.saved-hero p:not(.app-eyebrow){font-size:16px;line-height:1.45;max-width:310px}
.saved-page .saved-content{position:relative;isolation:isolate}
.saved-page .saved-content:before{content:"";position:absolute;z-index:-1;top:-22px;left:-18px;width:260px;height:128px;opacity:.16;background:url("/assets/elements/Elements_tachnen/decor-wave-03-hai-song.png") left center/contain no-repeat;pointer-events:none}
.saved-page .saved-content:after{content:"";position:absolute;z-index:-1;right:-8px;top:18px;width:74px;height:74px;opacity:.22;background:url("/assets/elements/Elements_tachnen/decor-sparkle-01-cum-lap-lanh.png") center/contain no-repeat;pointer-events:none}
.saved-grid .property-body{padding:16px 42px 16px 16px!important}
.saved-grid .price-row{margin-top:auto!important}
.saved-grid .card-detail-link{width:100%;justify-content:center;text-align:center}
.google-login-button .google-mark{width:28px;height:28px;display:grid;place-items:center}
.google-login-button .google-icon{width:26px;height:26px;display:block}
.google-login-button .google-mark img{width:25px;height:25px;display:block;object-fit:contain}

@media(min-width:700px){
  .saved-hero{background-size:cover!important;background-position:center!important}
  .saved-hero .shell{padding-inline:24px}
  .saved-hero p:not(.app-eyebrow){font-size:14px}
}

/* Account hero is deliberately concise: title + value proposition only. */
.account-hero{min-height:146px!important;padding:25px 0 44px!important}
.account-hero h1{font-size:30px!important}
.account-hero p:not(.app-eyebrow){max-width:330px;margin-top:8px!important;font-size:14px!important}

/* Accommodation listing — align the older catalogue route with the home dashboard. */
.header-call{font:700 14px/1 "Roboto",Arial,sans-serif}
.header-call span{letter-spacing:.01em}
.list-layout{
  max-width:940px;
  min-height:calc(100dvh - 76px);
  padding:18px 12px 94px;
  background:#f5f9ff;
  color:#111d37;
  font-family:"Roboto",Arial,sans-serif;
}
.list-layout .page-heading{padding:2px 0 14px}
.list-layout .breadcrumbs{margin:0 0 10px;color:#6580ab;font-size:12px;font-weight:500}
.list-layout .breadcrumbs a{min-height:0;color:#2469d7;text-decoration:none;font-weight:600}
.list-layout .page-heading h1{margin:0;color:#111d37;font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.65px}
.list-layout .summary-bar{min-height:60px;padding:7px 7px 7px 14px;border:1px solid #dce7f6;border-radius:18px;background:#fff;box-shadow:0 7px 18px rgba(40,89,159,.08);color:#1c3968;font-size:14px;font-weight:600}
.list-layout .summary-bar button{min-height:46px;padding:0 15px;border-radius:14px;background:#1776ee;color:#fff;font-size:13px;font-weight:700;box-shadow:0 5px 13px rgba(23,118,238,.2)}
.list-layout .chips{gap:8px;padding:14px 0 3px}
.list-layout .chip{min-height:40px;padding:8px 14px;border:1px solid #dce7f6;border-radius:999px;background:#fff;color:#36527b;font-size:13px;font-weight:600;text-decoration:none}
.list-layout .chip.active{border-color:#1776ee;background:#1776ee;color:#fff;box-shadow:0 5px 13px rgba(23,118,238,.2)}
.list-layout .toolbar{gap:8px;padding:14px 0 12px}
.list-layout .toolbar button{min-height:42px;padding:8px 13px;border:1px solid #dce7f6;border-radius:14px;background:#fff;color:#29466f;font-size:13px;font-weight:600;box-shadow:0 5px 13px rgba(40,89,159,.06)}
.list-layout .result-count{margin:0 0 12px;color:#75829a;font-size:13px}
.list-layout .property-grid{gap:14px}
.list-layout .property-card{border:1px solid #e0e8f4;border-radius:20px;background:#fff;box-shadow:0 7px 20px rgba(34,83,151,.07)}
.list-layout .property-image{aspect-ratio:16/9;border-radius:19px 19px 0 0}
.list-layout .badges{top:10px;left:10px}
.list-layout .badge{border:1px solid #d9e7ff;background:#eef5ff;color:#2266cd;font-size:11px;font-weight:600}
.list-layout .favorite{top:10px;right:10px;border-color:#d7e7fb;background:#fff;color:#1776ee;box-shadow:0 5px 13px rgba(28,83,158,.12)}
.list-layout .favorite.is-saved{border-color:#1776ee;background:#1776ee;color:#fff}
.list-layout .property-body{padding:14px 15px 15px}
.list-layout .property-title{font-size:18px;line-height:1.2;color:#143875;font-weight:700;letter-spacing:-.35px}
.list-layout .location-line{margin-top:5px;color:#6e7d96;font-size:13px}
.list-layout .fact{border-radius:8px;background:#eef5ff;color:#496588;font-size:11px}
.list-layout .price-row{padding-top:5px}
.list-layout .price{color:#1776ee;font-size:15px;font-weight:700}
.list-layout .availability{background:#edf8f2;color:#167b57}
@media(min-width:700px){
  .list-layout{padding:28px 24px 52px}
  .list-layout .page-heading h1{font-size:36px}
  .list-layout .property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}

/* Service routes start with location selection before entering a city catalogue. */
.service-location-page{min-height:calc(100dvh - 76px);padding-bottom:94px;background:#f5f9ff;color:#111d37;font-family:"Roboto",Arial,sans-serif}
.service-location-hero{position:relative;overflow:hidden;padding:28px 0 68px;color:#fff;background:linear-gradient(135deg,rgba(27,119,239,.96),rgba(72,160,246,.84)),url("/assets/elements/01-nen-halong-trang.png") center/cover no-repeat}
.service-location-hero:after{content:"";position:absolute;right:-20px;bottom:-10px;width:180px;height:100px;opacity:.32;background:url("/assets/elements/Elements_tachnen/decor-island-01-cum-dao.png") center/contain no-repeat;pointer-events:none}
.service-location-hero .shell{position:relative;z-index:1;padding-inline:16px}
.service-location-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:rgba(255,255,255,.96);box-shadow:0 7px 18px rgba(10,64,139,.16)}
.service-location-icon .ui-icon{width:30px;height:30px;color:#1776ee}
.service-location-hero p{margin:15px 0 4px;font-size:11px;font-weight:700;letter-spacing:.06em}
.service-location-hero h1{margin:0;font-size:31px;line-height:1.1;font-weight:700;letter-spacing:-.7px}
.service-location-hero>div>span:last-child{display:block;max-width:310px;margin-top:8px;color:#eaf4ff;font-size:14px;line-height:1.45}
.service-location-content{position:relative;margin-top:-38px;padding-inline:16px}
.service-location-head{padding:18px 16px 16px;border:1px solid #e0e9f7;border-radius:20px 20px 0 0;background:#fff}
.service-location-head h2{margin:0;color:#133876;font-size:20px;line-height:1.2;font-weight:700;letter-spacing:-.35px}
.service-location-head p{margin:5px 0 0;color:#71809a;font-size:13px;line-height:1.45}
.service-location-card{position:relative;min-height:218px;display:block;overflow:hidden;border-radius:0 0 20px 20px;color:#fff;text-decoration:none;background:#1d6fd6;box-shadow:0 10px 25px rgba(34,83,151,.12)}
.service-location-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78}
.service-location-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,45,97,.06),rgba(7,37,80,.8))}
.service-location-card>span{position:absolute;z-index:1;inset:auto 18px 17px;display:flex;flex-direction:column;align-items:flex-start}
.service-location-card small{padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.2);font-size:10px;font-weight:700;letter-spacing:.04em}
.service-location-card strong{margin-top:7px;color:#fff;font-size:30px;line-height:1.1;letter-spacing:-.65px}
.service-location-card em{min-height:38px;margin-top:11px;display:inline-flex;align-items:center;gap:4px;padding:0 12px;border-radius:999px;background:#fff;color:#156bd5;font-size:12px;font-style:normal;font-weight:700}
.service-location-card em .ui-icon{width:15px;height:15px}
.service-location-soon{min-height:76px;display:flex;align-items:center;gap:11px;margin-top:14px;padding:12px 14px;border:1px dashed #cbdced;border-radius:17px;background:rgba(255,255,255,.72);color:#68809f}
.service-location-soon>span{flex:0 0 35px;width:35px;height:35px;display:grid;place-items:center;border-radius:12px;background:#e9f3ff;color:#3179d6}
.service-location-soon>span .ui-icon{width:21px;height:21px}
.service-location-soon>div{min-width:0;display:flex;flex-direction:column}
.service-location-soon strong{color:#415b80;font-size:14px}
.service-location-soon small{margin-top:2px;font-size:11px}
.service-location-soon em{margin-left:auto;padding:5px 8px;border-radius:999px;background:#eef5ff;color:#5680b8;font-size:10px;font-style:normal;font-weight:600;white-space:nowrap}
@media(min-width:700px){
  .service-location-page{padding-bottom:52px}
  .service-location-hero{padding:55px 0 100px}
  .service-location-hero .shell,.service-location-content{max-width:760px;padding-inline:24px}
  .service-location-content{margin-top:-52px}
  .service-location-head h2{font-size:25px}
  .service-location-card{min-height:290px}
}

/* Destination selector pattern used by all top-level service routes. */
.service-location-hero{padding:25px 0 86px}
.service-location-hero .shell>h1{margin:0;color:#fff;font-size:29px;line-height:1.12;font-weight:700;letter-spacing:-.6px}
.service-location-hero .service-location-service{margin:5px 0 0;color:#dfeeff;font-size:14px;line-height:1.35;font-weight:600;letter-spacing:0}
.service-location-hero .shell>span{display:block;max-width:320px;margin-top:5px;color:#eef6ff;font-size:13px;line-height:1.4}
.service-destination-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:17px}
.service-destination-tabs>a,.service-destination-tabs>span{position:relative;min-height:68px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding:9px 10px;border:1px solid rgba(255,255,255,.68);border-radius:14px;color:#fff;text-decoration:none;isolation:isolate}
.service-destination-tabs>a:before,.service-destination-tabs>span:before{content:"";position:absolute;z-index:-2;inset:0;background:url("/assets/elements/01-nen-halong-trang.png") center/cover no-repeat}
.service-destination-tabs>a:after,.service-destination-tabs>span:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(31,117,220,.12),rgba(7,51,111,.78))}
.service-destination-tabs>span{opacity:.64;filter:grayscale(.72)}
.service-destination-tabs>span:before{background-image:url("/assets/elements/02-nen-villa-bien.png")}
.service-destination-tabs strong{font-size:15px;line-height:1.1;font-weight:700}
.service-destination-tabs small{margin-top:3px;font-size:10px;line-height:1.1;font-weight:500}
.service-destination-tabs>a.active small{width:max-content;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.9);color:#1670dc;font-weight:700}
.service-location-content{margin-top:-37px}
.service-location-head h2{font-size:19px}
@media(min-width:700px){
  .service-location-hero{padding:48px 0 108px}
  .service-location-hero .shell>h1{font-size:38px}
  .service-destination-tabs{max-width:440px}
  .service-destination-tabs>a,.service-destination-tabs>span{min-height:90px}
}

/* Service detail selection: search and city choices live in one blue canvas. */
.service-location-hero{padding:13px 0 24px;background:linear-gradient(145deg,rgba(27,119,239,.98),rgba(62,153,244,.9) 62%,rgba(122,190,250,.86)),url("/assets/elements/01-nen-halong-trang.png") center bottom/cover no-repeat}
.service-location-hero:after{right:-10px;bottom:-8px;width:150px;height:82px;opacity:.24}
.service-location-hero .shell>h1{margin-top:10px;font-size:30px}
.service-breadcrumb{min-height:22px;display:flex;align-items:center;gap:4px;color:#d9ecff;font-size:11px;line-height:1.2}
.service-breadcrumb a{color:#fff;text-decoration:none;font-weight:500}
.service-breadcrumb>span{display:grid;place-items:center;width:14px;height:14px;color:#cfe6ff}
.service-breadcrumb .ui-icon{width:13px;height:13px}
.service-breadcrumb strong{font-weight:600}
.service-location-hero .shell>span{margin-top:5px;max-width:310px;font-size:13px;line-height:1.4}
.service-search{height:52px;margin-top:15px!important;background:rgba(255,255,255,.98);box-shadow:0 7px 17px rgba(14,68,145,.18)}
.service-destination-tabs{margin-top:12px}
.service-destination-tabs>a,.service-destination-tabs>span{min-height:64px}
.service-location-content{margin-top:0;padding:16px 12px 0}
.service-property-section{padding:16px;border:1px solid #e0e9f7;border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(30,84,154,.07)}
.service-property-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:13px}
.service-property-head h2{margin:0;color:#143875;font-size:19px;line-height:1.2;font-weight:700;letter-spacing:-.35px}
.service-property-head p{margin:4px 0 0;color:#72819a;font-size:11px;line-height:1.4}
.service-property-head a{min-height:30px;display:inline-flex;align-items:center;gap:1px;color:#1776ee;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}
.service-property-head a .ui-icon{width:15px;height:15px}
.service-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.service-property-grid .property-card{min-width:0;overflow:hidden;border:1px solid #e0e8f4;border-radius:15px;background:#fff;box-shadow:none}
.service-property-grid .property-image{aspect-ratio:4/3;border-radius:14px 14px 0 0}
.service-property-grid .badges{top:6px;left:6px}
.service-property-grid .badge{padding:3px 6px;border:1px solid #d9e7ff;background:#eef5ff;color:#2266cd;font-size:9px;line-height:1.1}
.service-property-grid .favorite{top:5px;right:5px;width:31px;height:31px;min-width:31px;border-color:#d7e7fb;background:#fff;color:#1776ee;font-size:14px}
.service-property-grid .favorite.is-saved{border-color:#1776ee;background:#1776ee;color:#fff}
.service-property-grid .property-body{padding:9px;display:block}
.service-property-grid .property-title{margin:0 0 5px;color:#143875;font-size:14px;line-height:1.2;font-weight:700;letter-spacing:0}
.service-property-grid .property-title a{min-height:0;display:block;line-height:inherit}
.service-property-grid .location-line{margin:0 0 7px;color:#6e7d96;font-size:10px;line-height:1.25}
.service-property-grid .facts,.service-property-grid .availability{display:none}
.service-property-grid .price-row{margin:0;padding:0}
.service-property-grid .price{width:100%;display:flex;justify-content:center;color:#1776ee;font-size:12px;font-weight:700;text-decoration:none}
.service-contact-card{padding:20px;border:1px solid #e0e9f7;border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(30,84,154,.07)}
.service-contact-card h2{margin:0;color:#143875;font-size:20px}.service-contact-card p{margin:7px 0 14px;color:#72819a;font-size:13px;line-height:1.5}.service-contact-card a{min-height:42px;display:inline-flex;align-items:center;gap:4px;padding:0 13px;border-radius:13px;background:#1776ee;color:#fff;text-decoration:none;font-size:13px;font-weight:700}.service-contact-card .ui-icon{width:16px;height:16px}
@media(min-width:700px){
  .service-location-hero{padding:22px 0 36px}
  .service-location-hero .shell>h1{font-size:38px}
  .service-location-content{max-width:760px;padding:24px 24px 0}
  .service-property-section{padding:22px}
  .service-property-grid{gap:15px}
}

/* Compact service hero after location choices move into search; add a Vân Đồn collection. */
.service-location-hero{padding-bottom:19px}
.service-location-content{padding-top:14px}
.service-property-section-secondary{margin-top:13px}

/* City catalogue uses a name search instead of a redundant service switcher. */
.list-layout .page-heading{padding-bottom:12px}
.list-layout .breadcrumbs{display:flex;gap:4px;align-items:center}
.listing-name-search{min-height:54px;display:flex;align-items:center;gap:9px;padding:4px 6px 4px 14px;border:1.5px solid #1776ee;border-radius:28px;background:#fff;box-shadow:0 6px 17px rgba(26,92,177,.1)}
.listing-name-search>span{flex:0 0 22px;width:22px;height:22px;color:#1776ee}.listing-name-search .ui-icon{width:22px;height:22px}
.listing-name-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#183a73;font:500 14px/1.3 "Roboto",Arial,sans-serif}.listing-name-search input::placeholder{color:#8491a7}
.listing-name-search button{width:38px;height:38px;display:none;border:0;border-radius:50%;background:#eaf3ff;color:#1776ee;font-size:22px;line-height:1}.listing-name-search.is-active button{display:grid;place-items:center}
.list-layout .toolbar{padding-top:12px}
.listing-property-grid .property-image{position:relative;aspect-ratio:16/9}
.listing-property-grid .image-facts{position:absolute;z-index:2;left:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:5px;max-width:calc(100% - 20px)}
.listing-property-grid .image-facts>span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 3px 9px rgba(18,54,102,.15);color:#274f87;font-size:11px;line-height:1.1;font-weight:600;backdrop-filter:blur(6px)}
.listing-property-grid .property-body{padding-top:14px}
.listing-property-grid .price-row{margin-top:9px}
@media(min-width:700px){.listing-name-search{max-width:520px}.listing-property-grid .image-facts{left:12px;bottom:12px}}

/* Smart search dropdown — homepage only, blue/white and mobile-safe. */
.home-smart-search{
  z-index:24;
  overflow:visible;
  cursor:text;
}
.home-smart-search:focus-within{
  border-color:#0f69df;
  box-shadow:0 0 0 3px rgba(20,117,245,.13),0 8px 20px rgba(31,79,151,.12);
}
.home-smart-search .search-copy{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
}
.home-smart-search .home-search-input{
  width:100%;
  min-width:0;
  height:22px;
  margin:0;
  padding:0;
  border:0;
  outline:0;
  appearance:none;
  background:transparent;
  color:#435572;
  font:500 13px/1.2 "Roboto",Arial,sans-serif;
  text-overflow:ellipsis;
}
.home-smart-search .home-search-input::-webkit-search-cancel-button{display:none}
.home-smart-search .home-search-input::placeholder{color:#7f8ca1;opacity:1}
.home-search-suggestions{
  position:absolute;
  z-index:80;
  top:calc(100% + 8px);
  left:0;
  right:0;
  max-height:min(330px,55dvh);
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:7px;
  border:1px solid #d7e5f7;
  border-radius:18px;
  background:rgba(255,255,255,.99);
  box-shadow:0 18px 38px rgba(20,66,133,.2);
  scrollbar-width:thin;
}
.home-search-suggestions[hidden]{display:none}
.home-search-suggestions>a{
  min-height:52px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:9px;
  padding:7px 9px;
  border-radius:13px;
  color:#163b75;
  text-decoration:none;
}
.home-search-suggestions>a+a{border-top:1px solid #edf2f9}
.home-search-suggestions>a:hover,.home-search-suggestions>a:focus-visible{background:#eaf3ff;outline:0}
.home-search-suggestions>a>span{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#eef5ff;color:#1475f5}
.home-search-suggestions>a>span .ui-icon{width:18px;height:18px}
.home-search-suggestions>a>strong{align-self:end;min-width:0;overflow:hidden;color:#163b75;font-size:13px;line-height:1.2;font-weight:700;white-space:nowrap;text-overflow:ellipsis}
.home-search-suggestions>a>small{align-self:start;min-width:0;overflow:hidden;color:#70809a;font-size:10px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}
.home-search-suggestions>p{margin:0;padding:15px 12px;color:#63738d;font-size:12px;line-height:1.45;text-align:center}
@media(max-width:406px){
  .home-smart-search .home-search-input{font-size:12px}
  .home-smart-search .home-search-input::placeholder{font-size:11.5px}
  .home-search-suggestions{left:-1px;right:-1px;border-radius:16px}
}
@media(min-width:700px){
  .home-smart-search .home-search-input{height:25px;font-size:14px}
  .home-search-suggestions{top:calc(100% + 10px);padding:9px;border-radius:20px}
}

/* Filter/sort state, destination picker and compact city-card facts. */
.list-layout .toolbar button{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.list-layout .toolbar button.is-active{
  border-color:#1475f5;
  background:#eaf3ff;
  color:#0f5fc7;
  box-shadow:0 0 0 1px rgba(20,117,245,.08),0 6px 15px rgba(31,79,151,.1);
}
.toolbar-badge{
  flex:0 0 19px;
  width:19px;
  height:19px;
  display:inline-grid;
  place-items:center;
  margin-left:1px;
  border-radius:999px;
  background:#1475f5;
  color:#fff;
  font:700 10px/1 "Roboto",Arial,sans-serif;
  box-shadow:0 2px 5px rgba(20,117,245,.2);
}

.destination-page .service-location-content{
  width:100%;
  max-width:940px;
  padding:16px 12px 94px;
}
.destination-page .service-property-head{margin-bottom:13px;padding:0 2px}
.destination-choice-grid{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  overflow:visible;
  margin:0;
  padding:0;
}
.destination-choice-grid .destination-card{
  width:100%;
  min-width:0;
  height:224px;
  flex:none;
  border:1px solid rgba(255,255,255,.82);
  border-radius:19px;
  box-shadow:0 10px 24px rgba(27,75,142,.13);
  scroll-snap-align:none;
}
.destination-choice-grid .destination-card:after{
  inset:30% 0 0;
  background:linear-gradient(180deg,transparent,rgba(6,34,76,.87));
}
.destination-choice-grid .destination-card>span{
  inset:auto 15px 14px;
  gap:3px;
}
.destination-choice-grid .destination-card strong{
  display:block;
  width:100%;
  overflow:hidden;
  color:#fff;
  font-size:22px;
  line-height:1.18;
  font-weight:700;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.destination-choice-grid .destination-card small{
  display:-webkit-box;
  width:100%;
  overflow:hidden;
  color:#eaf3ff;
  font-size:11px;
  line-height:1.35;
  white-space:normal;
  text-overflow:clip;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.destination-choice-grid .destination-card em{
  min-height:30px;
  width:max-content;
  max-width:100%;
  display:inline-flex;
  align-items:center;
  gap:2px;
  margin-top:6px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:#156bd5;
  font-size:10px;
  line-height:1;
  font-style:normal;
  font-weight:700;
}
.destination-choice-grid .destination-card em .ui-icon{width:14px;height:14px}

.listing-property-grid .property-image{
  overflow:hidden;
  isolation:isolate;
}
.listing-property-grid .image-facts{
  position:absolute;
  z-index:3;
  left:7px;
  right:auto;
  bottom:7px;
  width:auto;
  max-width:calc(100% - 14px);
  display:flex;
  flex-wrap:nowrap;
  gap:4px;
  overflow:hidden;
  pointer-events:none;
}
.listing-property-grid .image-facts>span{
  min-width:0;
  max-width:128px;
  overflow:hidden;
  padding:4px 6px;
  border:1px solid rgba(217,231,251,.9);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  box-shadow:0 2px 7px rgba(18,54,102,.12);
  color:#315783;
  font-size:9px;
  line-height:1;
  font-weight:600;
  white-space:nowrap;
  text-overflow:ellipsis;
  backdrop-filter:blur(5px);
}

@media(max-width:406px){
  .list-layout .toolbar{gap:7px}
  .list-layout .toolbar button{min-height:40px;padding-inline:11px}
  .destination-page .service-location-content{overflow-x:hidden}
  .destination-choice-grid .destination-card{height:210px}
  .destination-choice-grid .destination-card strong{font-size:20px}
  .listing-property-grid .image-facts>span{max-width:112px}
}
@media(min-width:700px){
  .destination-page .service-location-content{padding:24px 24px 52px}
  .destination-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .destination-choice-grid .destination-card{height:278px}
  .destination-choice-grid .destination-card strong{font-size:25px}
  .destination-choice-grid .destination-card small{font-size:12px}
  .listing-property-grid .image-facts{left:10px;bottom:10px}
  .listing-property-grid .image-facts>span{max-width:160px;font-size:10px}
}

/* Shared title accent keeps every featured section consistent. */
.section-title-accent{display:inline-block;width:16px;height:16px;margin-left:2px;vertical-align:-2px;fill:#7bb8ff}

/* Use the locally bundled, official Google mark without a decorative fallback. */
.google-login-button .google-mark{background:transparent;border-radius:0}
.google-login-button .google-mark img{width:26px;height:26px}

/* Let the account value proposition use the entire mobile hero width. */
.account-hero p:not(.app-eyebrow){max-width:none}

/* Tablet & desktop workspace -------------------------------------------------
   One final responsive layer keeps every route on the same content rhythm.
   Mobile rules above remain the source of truth below 700px. */
.topbar .brand-wordmark{height:48px;padding:0;border-radius:0;background:transparent}
.topbar .brand-wordmark .brand-logo{width:100%!important;height:100%!important;object-fit:contain;object-position:center}
@media (min-width:700px){
  :root{--workspace-width:1180px;--workspace-gutter:clamp(24px,4vw,48px)}
  body{font-size:16px}
  .shell{width:100%;max-width:var(--workspace-width);padding-inline:var(--workspace-gutter);margin-inline:auto}
  .topbar,.home-topbar,.app-topbar{height:84px;padding-inline:var(--workspace-gutter);border-bottom:1px solid rgba(255,255,255,.2);background:#2b84ef;box-shadow:0 0 0 100vmax #2b84ef;clip-path:inset(0 -100vmax)}
  .topbar{position:relative;z-index:30}
  .home-topbar .brand-wordmark,.app-topbar .brand-wordmark{flex-basis:156px;width:156px;max-width:156px;height:50px;padding:0;background:transparent}
  .app-topbar .desktop-links,.home-topbar .desktop-links{gap:4px;margin-left:32px}
  .app-topbar .desktop-links a,.home-topbar .desktop-links a{position:relative;padding-inline:14px;border-radius:12px;color:rgba(255,255,255,.86)}
  .app-topbar .desktop-links a.active,.home-topbar .desktop-links a.active{background:rgba(255,255,255,.17);color:#fff}
  .header-call{min-height:46px;padding-inline:16px;border-color:rgba(255,255,255,.85);border-radius:14px;background:#fff;color:#1559a8}
  .footer .shell{display:flex;align-items:center;justify-content:space-between;gap:32px}
  .footer p{text-align:right}

  .home-page .shell{max-width:var(--workspace-width);padding-inline:var(--workspace-gutter)}
  .home-hero{padding:28px 0 48px}
  .service-board,.home-search,.home-properties.home-featured,.home-service-feature,.home-map-banner,.home-destination-discover{max-width:none}
  .service-board{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px}
  .service-board>a{height:112px;min-height:112px}
  .home-search{max-width:820px}
  .home-story-grid{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .featured-property-grid,.home-service-teaser-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .featured-property-grid .property-card,.saved-grid .property-card{height:auto;min-height:0}
  .featured-property-grid .property-image,.saved-grid .property-image{height:auto;aspect-ratio:16/10}
  .home-properties.home-featured,.home-service-feature{padding:28px!important}

  .app-page-hero,.app-page-hero.compact{min-height:220px;padding:40px 0 68px}
  .app-page-hero .shell{max-width:var(--workspace-width)}
  .app-page-content{max-width:var(--workspace-width);margin-top:-42px;padding-bottom:48px}
  .app-page-content.narrow{max-width:820px}
  .contact-card,.auth-card,.profile-card{padding:32px}
  .saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .saved-grid .property-card{display:grid;grid-template-columns:minmax(180px,42%) minmax(0,1fr)}
  .saved-grid .property-image{width:100%;height:100%;min-height:190px;border-radius:20px 0 0 20px}
  .saved-grid .property-body{padding:20px 48px 20px 20px!important}

  .service-location-page,.city-page{min-height:calc(100dvh - 84px);padding-bottom:56px}
  .service-location-hero,.city-page-hero{padding:32px 0 54px}
  .service-location-hero .shell,.city-page-hero .shell{max-width:var(--workspace-width);padding-inline:var(--workspace-gutter)}
  .service-location-hero .shell>h1,.city-page-hero h1{font-size:clamp(36px,4vw,48px)}
  .service-location-content,.destination-page .service-location-content,.city-page-content{width:100%;max-width:var(--workspace-width);padding:32px var(--workspace-gutter) 56px}
  .service-property-section,.city-results{padding:28px;border-radius:24px}
  .service-property-grid,.city-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .service-property-grid .property-card{border-radius:20px}
  .service-property-grid .property-image{aspect-ratio:16/10;border-radius:19px 19px 0 0}
  .service-property-grid .property-body{padding:14px}
  .service-property-grid .property-title{font-size:17px}
  .service-property-grid .location-line{font-size:12px}
  .service-property-grid .price{justify-content:flex-start;font-size:14px}
  .destination-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
  .destination-choice-grid .destination-card{height:310px}
  .city-service-result{margin-top:20px}
  .city-service-action{min-height:92px}
  .city-guide-content{max-width:960px}
  .city-guide-content .detail-section{padding:28px}

  .list-layout{width:100%;max-width:var(--workspace-width);padding:32px var(--workspace-gutter) 64px}
  .list-layout .page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding-bottom:20px}
  .list-layout .page-heading h1{font-size:clamp(34px,3.4vw,44px)}
  .listing-name-search{max-width:680px}
  .list-layout .toolbar{padding:16px 0 14px}
  .list-layout .property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
  .list-layout .property-card{overflow:hidden;border-radius:22px}
  .list-layout .property-image{border-radius:21px 21px 0 0}
  .list-layout .property-body{padding:18px}

  .detail-v2{padding:28px 0 76px!important}
  .detail-shell{max-width:var(--workspace-width)}
  .detail-breadcrumb{margin-bottom:18px}
  .detail-gallery .detail-image{aspect-ratio:16/8;max-height:560px;border-radius:26px}
  .detail-layout{display:block;margin-top:24px}
  .detail-summary-card{margin-top:0;padding:26px}
  .detail-summary-card h1{font-size:36px}
  .detail-card{padding:26px}
  .detail-card .amenities{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .detail-policy-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .detail-booking-card{position:static;display:flex;flex-direction:column;gap:14px;margin-top:20px;padding:24px}
  .detail-booking-card .btn{width:100%}
  .detail-v2~.sticky-cta{display:none}

  .sheet-backdrop{align-items:center;padding:32px}
  .sheet{width:min(680px,100%);max-height:min(82dvh,760px);padding:22px 28px 28px;border-radius:24px}
  .sheet .handle{display:none}
  .sheet-actions{bottom:-28px;padding:16px 0 0}
  .filter-sheet{width:min(760px,100%);max-width:760px}
  .price-range-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .toast{bottom:32px}
}

@media (min-width:1024px){
  .service-board{grid-template-columns:repeat(8,minmax(0,1fr))}
  .service-board>a{min-width:0}
  .featured-property-grid,.home-service-teaser-grid,.home-story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-property-grid,.city-property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .list-layout .property-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .saved-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:34px}
  .detail-booking-card{position:sticky;top:104px;margin-top:0}
  .detail-card .amenities{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (min-width:1280px){
  .topbar,.home-topbar,.app-topbar{border-radius:0}
  .service-board>a{font-size:13px}
  .list-layout .property-grid{gap:24px}
}

/* Home travel discovery layout ---------------------------------------------
   Keeps Odayne's existing palette and components while giving tablet and
   desktop the dense, scannable rhythm expected from travel marketplaces. */
@media (min-width:700px){
  .home-page .service-board{
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:stretch;
    gap:12px;
    padding:18px;
  }
  .home-page .service-board>a,
  .home-page .service-board>a:nth-of-type(3n+2),
  .home-page .service-board>a:nth-of-type(3n){
    width:100%;
    height:104px;
    min-height:104px;
    padding:12px 8px;
    display:grid;
    grid-template-rows:54px minmax(18px,auto);
    place-items:center;
    align-content:center;
    gap:5px;
    border-radius:18px;
  }
  .home-page .service-board .service-icon,
  .home-page .service-board .service-icon-frame{
    width:54px!important;
    height:54px!important;
    flex-basis:54px;
  }
  .home-page .service-board .service-icon .asset-icon,
  .home-page .service-board .service-icon-frame .asset-icon{
    width:50px!important;
    height:50px!important;
    max-width:50px!important;
    max-height:50px!important;
  }
  .home-page .service-board strong{
    width:100%;
    max-width:none;
    min-height:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1.2;
  }
  .home-page .home-smart-search{
    width:100%;
    max-width:none;
    margin-inline:0;
  }
  .home-page .home-amenity-chips{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    width:100%;
    margin:12px 0 0;
    padding:0;
    overflow:visible;
  }
  .home-page .home-amenity-chips .amenity-filter{
    width:100%;
    min-width:0;
    min-height:48px;
    height:48px;
    justify-content:center;
    padding:8px 12px;
  }
  .home-page .home-properties.home-featured{
    width:100%;
    max-width:none;
    margin-inline:0;
    padding:24px!important;
  }
  .home-page .featured-property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
  }
  .home-page .featured-property-grid .property-card{
    height:auto;
    min-height:0;
  }
  .home-page .featured-property-grid .property-image{
    flex:0 0 auto;
    min-height:0;
    height:auto;
    aspect-ratio:4/3;
  }
  .home-page .featured-property-grid .property-body{padding:10px 11px 12px}
  .home-page .featured-property-grid .property-title{
    min-height:0;
    margin-bottom:4px;
    font-size:15px;
    line-height:1.25;
  }
  .home-page .featured-property-grid .location-line{
    margin-bottom:6px;
    font-size:11px;
    line-height:1.35;
  }
  .home-page .featured-property-grid .price{font-size:13px;line-height:1.3}
}

@media (min-width:1024px){
  .home-page .service-board{
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:12px;
  }
  .home-page .home-amenity-chips{grid-template-columns:repeat(6,minmax(0,1fr))}
  .home-page .featured-property-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
  }
}

@media (min-width:1280px){
  .home-page .shell{max-width:1280px;padding-inline:32px}
  .home-page .service-board>a,
  .home-page .service-board>a:nth-of-type(3n+2),
  .home-page .service-board>a:nth-of-type(3n){height:108px;min-height:108px}
}

/* Child-route editorial surface ------------------------------------------------
   A deliberately quiet layer shared by service, location, guide, listing and
   support pages. The blue brand remains in navigation and actions; content
   pages use the pale coastal canvas so the inventory is the focal point. */
:root{--route-canvas:#f6f9fd;--route-panel:#fff;--route-line:#dce7f4;--route-ink:#14366d;--route-muted:#6d7e99;--route-accent:#1475f5}
.service-location-page,.city-page,.app-page{background:var(--route-canvas);color:var(--route-ink)}
.service-location-hero,.city-page-hero,.app-page-hero{
  position:relative;isolation:isolate;overflow:hidden;color:var(--route-ink);
  background:linear-gradient(115deg,#fff 0%,#f6fbff 53%,#e6f2ff 100%);border-bottom:1px solid var(--route-line)
}
.service-location-hero:before,.city-page-hero:before,.app-page-hero:before{
  content:"";position:absolute;z-index:-1;right:-80px;top:-145px;width:410px;height:410px;border-radius:50%;
  background:radial-gradient(circle,rgba(55,145,244,.16) 0 31%,rgba(55,145,244,.05) 32% 54%,transparent 55%)
}
.service-location-hero:after{display:none}
.service-location-hero .shell,.city-page-hero .shell,.app-page-hero .shell{position:relative}
.service-breadcrumb,.city-page-hero .service-breadcrumb{color:#73849e}
.service-breadcrumb a,.service-breadcrumb strong,.city-page-hero .service-breadcrumb a,.city-page-hero .service-breadcrumb strong{color:#5a6f91}
.service-location-hero .shell>h1,.city-page-hero h1,.app-page-hero h1{color:var(--route-ink);letter-spacing:-.85px}
.service-location-hero .shell>span,.service-location-hero .service-location-service,.city-page-hero p,.app-page-hero p{color:var(--route-muted)}
.service-location-hero{padding:25px 0 28px}
.city-page-hero{padding:25px 0 28px}
.city-guide-page .city-page-hero{padding-bottom:28px}
.service-location-hero .shell>h1,.city-page-hero h1{margin-top:9px;font-size:30px}
.service-location-hero .shell>span{max-width:610px;margin-top:6px}

/* Shared task-bar search: all child routes use Home's generous horizontal rhythm. */
.service-search,.city-search-link,.destination-search{
  width:100%;max-width:none;box-sizing:border-box;border:1px solid #cddff3;
  background:#fff;box-shadow:0 10px 24px rgba(23,71,132,.09)
}
.service-search{height:56px;margin-top:18px!important;border-radius:18px}
.service-search .search-copy{align-items:flex-start;text-align:left}
.service-search .search-copy small{color:#71829c}.service-search .search-copy strong{color:var(--route-ink)}
.service-search .search-action{box-shadow:0 5px 12px rgba(20,117,245,.25)}
.destination-search{margin-top:18px;border-radius:18px;padding:7px}
.destination-search .search-fields{gap:0}.destination-search .search-unit{background:transparent}
.destination-search .search-submit{border-radius:12px;background:var(--route-accent)}
.city-search-link{max-width:none;margin-top:18px;border-radius:17px;background:#fff;color:var(--route-ink);box-shadow:0 10px 24px rgba(23,71,132,.09)}

.service-location-content,.destination-page .service-location-content,.city-page-content{margin-top:0;padding-top:18px}
.service-property-section,.city-results,.service-contact-card{
  border:1px solid var(--route-line);border-radius:20px;background:var(--route-panel);box-shadow:0 10px 25px rgba(28,67,118,.055)
}
.service-property-section{padding:17px}.service-property-section-secondary{margin-top:15px}
.service-property-head,.city-results-head{align-items:flex-start;gap:16px}
.service-property-head h2,.city-results-head h2,.service-contact-card h2{color:var(--route-ink)}
.service-property-head p,.city-results-head p,.service-contact-card p{color:var(--route-muted)}
.service-property-head>a,.city-results-head>a{color:var(--route-accent);white-space:nowrap}
.service-property-pending{min-height:0;background:linear-gradient(100deg,#fff,#f8fbff)}
.service-property-pending .service-property-head{margin-bottom:12px}
.service-pending-action,.service-contact-card a{min-height:42px;border:1px solid #cfe2fb;border-radius:12px;background:#eef6ff;color:#1469ce}
.service-contact-card{padding:20px}.service-contact-card a{display:inline-flex;align-items:center;gap:5px;padding:0 13px;text-decoration:none;font-size:13px;font-weight:700}
.service-help-steps{display:grid;grid-template-columns:1fr;gap:9px;margin:18px 0 0;padding:0;list-style:none;border-top:1px solid var(--route-line);padding-top:16px}
.service-help-steps li{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid #e4edf7;border-radius:14px;background:#fbfdff}
.service-help-steps li>span{flex:0 0 27px;width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#eaf4ff;color:#1469ce;font-size:12px;font-weight:800}
.service-help-steps div{min-width:0;display:flex;flex-direction:column;gap:3px}.service-help-steps strong{color:var(--route-ink);font-size:13px;line-height:1.3}.service-help-steps small{color:var(--route-muted);font-size:11px;line-height:1.35}

/* Compact, consistent property cards; never stretch a two-card sample into a hero. */
.service-property-grid,.city-property-grid{gap:12px}
.service-property-grid .property-card,.city-property-grid .property-card,.home-service-teaser{
  border:1px solid var(--route-line);border-radius:16px;box-shadow:0 6px 16px rgba(29,72,126,.055);background:#fff
}
.service-property-grid .property-image,.city-property-grid .property-image{aspect-ratio:4/3;border-radius:15px 15px 0 0}
.service-property-grid .property-body,.city-property-grid .property-body{padding:10px 11px 12px}
.service-property-grid .property-title,.city-property-grid .property-title{font-size:15px;line-height:1.25}
.service-property-grid .location-line,.city-property-grid .location-line{font-size:11px;line-height:1.35}
.service-property-grid .facts,.city-property-grid .facts,.service-property-grid .availability,.city-property-grid .availability{display:none}
.service-property-grid .price,.city-property-grid .price{justify-content:flex-start;font-size:13px}

/* Home's editorial service modules retain their purpose but no longer dwarf cards. */
.home-page .home-service-feature{padding:20px!important}
.home-page .home-service-teaser-grid{gap:12px}
.home-page .home-service-teaser{min-height:205px;border-radius:16px}
.home-page .home-service-teaser img{aspect-ratio:4/3}
.home-page .home-service-teaser>span{padding:14px}
.home-page .home-service-teaser strong{font-size:17px}.home-page .home-service-teaser small{font-size:12px}
.home-page .home-service-teaser-info{background:linear-gradient(135deg,#eff7ff,#ddecff);color:var(--route-ink)}

.city-page-content .city-results,.city-page-content .city-service-result{margin-bottom:15px}
.city-service-action{border:1px solid var(--route-line);border-radius:15px;background:#fbfdff;box-shadow:none}
.city-data-pending,.empty{border-color:var(--route-line);background:#fff;box-shadow:0 8px 20px rgba(30,70,119,.04)}
.city-guide-content .detail-section,.detail-card{border:1px solid var(--route-line);border-radius:18px;background:#fff;box-shadow:0 8px 20px rgba(30,70,119,.045)}
.city-guide-content .detail-section{margin-bottom:14px}.city-guide-content .detail-section h2,.detail-section h2{color:var(--route-ink)}
.list-layout{max-width:var(--workspace-width);padding-inline:var(--workspace-gutter);padding-bottom:56px}
.list-layout .page-heading{padding-top:25px}.list-layout .page-heading h1{color:var(--route-ink)}
.listing-name-search,.toolbar button{border-color:var(--route-line);box-shadow:0 5px 13px rgba(30,70,119,.04)}
.app-page-hero{padding:28px 0}.app-page-content{padding-top:20px}
.contact-card,.account-card,.saved-empty{border-color:var(--route-line);box-shadow:0 8px 20px rgba(30,70,119,.05)}
.detail{background:var(--route-canvas)}.detail-summary-card,.detail-booking-card{border-color:var(--route-line);box-shadow:0 8px 22px rgba(30,70,119,.05)}

@media (min-width:700px){
  .service-location-hero,.city-page-hero{padding:38px 0 42px}
  .service-location-hero .shell,.city-page-hero .shell,.app-page-hero .shell,.service-location-content,.destination-page .service-location-content,.city-page-content{max-width:var(--workspace-width);padding-inline:var(--workspace-gutter)}
  .service-location-hero .shell>h1,.city-page-hero h1{font-size:clamp(36px,4vw,46px)}
  .service-search,.city-search-link,.destination-search{margin-top:22px}
  .service-search{height:62px;border-radius:20px}
  .destination-search{padding:8px;border-radius:20px}
  .service-location-content,.destination-page .service-location-content,.city-page-content{padding-top:26px;padding-bottom:56px}
  .service-property-section{padding:22px}.service-property-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .service-help-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .service-help-steps li{min-height:98px;padding:13px;flex-direction:column;gap:9px}
  .service-property-grid .property-image,.city-property-grid .property-image{aspect-ratio:4/3}
  .service-property-grid .property-body,.city-property-grid .property-body{padding:12px 13px 14px}
  .service-property-grid .property-title,.city-property-grid .property-title{font-size:17px}
  .service-property-grid .location-line,.city-property-grid .location-line{font-size:12px}
  .home-page .home-service-feature{padding:24px!important}.home-page .home-service-teaser-grid{gap:16px}
  .home-page .home-service-teaser{min-height:230px}
}
@media (min-width:1024px){
  .service-location-hero,.city-page-hero{padding:44px 0 48px}
  .service-location-hero .shell,.city-page-hero .shell,.service-location-content,.destination-page .service-location-content,.city-page-content,.list-layout{max-width:1240px}
  .service-property-section,.city-results{padding:26px;border-radius:22px}
  .service-property-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
  .city-property-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  .home-page .home-service-teaser{min-height:220px}.home-page .home-service-teaser-grid{gap:16px}
}

/* Listing search follows the same full-width task-bar rule as service pages. */
@media (min-width:700px){.list-layout .listing-name-search{width:100%;max-width:none}}

/* Inventory truth and mobile rhythm ------------------------------------------------
   Catalogue samples must not be fabricated: a category shows verified cards only,
   and an empty category states that plainly.  Every mobile catalogue keeps the
   same 16px content gutter. */
:root{--workspace-gutter:16px}
.home-page .shell{padding-inline:16px}
.home-page .home-amenity-chips{margin-inline:-16px;padding-inline:16px}
.home-page .home-properties.home-featured{padding:16px!important}
.home-page .home-service-feature{padding:16px!important}
.home-category-empty{min-height:104px;display:flex;flex-direction:column;justify-content:center;gap:5px;padding:18px;border:1px dashed var(--route-line);border-radius:16px;background:#fbfdff;color:var(--route-ink)}
.home-category-empty strong{font-size:15px;line-height:1.35}
.home-category-empty p{margin:0;color:var(--route-muted);font-size:12px;line-height:1.45}
.service-location-content,.destination-page .service-location-content,.city-page-content{padding-inline:16px}
.list-layout{width:100%;max-width:var(--workspace-width);margin-inline:auto;padding:25px 16px 56px}

@media (max-width:699px){
  .home-page .featured-property-grid .property-card:nth-child(n+3),
  .service-property-grid .property-card:nth-child(n+3){display:none}
}

@media (min-width:700px){
  .home-page .shell{padding-inline:var(--workspace-gutter)}
  .service-location-content,.destination-page .service-location-content,.city-page-content{padding-inline:var(--workspace-gutter)}
  .list-layout{padding:32px var(--workspace-gutter) 64px}
}

/* Global chrome and content contrast ------------------------------------------------
   Header is a full-width brand bar at desktop; page-hero copy sits on a light
   surface, so it must use the ink token rather than the legacy white value. */
.app-page-hero p:not(.app-eyebrow),.app-page-hero .app-eyebrow{color:var(--route-muted)}
@media (min-width:700px){
  .topbar.shell{box-sizing:border-box;width:100%;max-width:none;margin:0;padding-inline:clamp(30px,calc((100vw - var(--workspace-width))/2 + 16px),160px)}
  .home-hero{padding:18px 0 28px}
}

/* Desktop detail contact is a request flow, not an availability promise. */
.detail-booking-card .detail-phone-link{position:relative;overflow:hidden}
.detail-booking-card .detail-phone-link::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid rgba(20,117,245,.6);animation:detail-phone-pulse 1.5s ease-out infinite;pointer-events:none}
@keyframes detail-phone-pulse{0%,45%,100%{opacity:.15;transform:scale(.985)}62%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.detail-booking-card .detail-phone-link::after{animation:none}}

/* Coastal decorative layer -------------------------------------------------------
   Reuse the supplied, transparent travel illustrations as quiet context—not as
   content.  They sit behind UI, are clipped by their own sections and scale down
   on phones so the catalogue remains the focal point. */
.home-hero{
  background-image:
    url("/assets/elements/Elements_tachnen/decor-wave-02-banner-thuyen-buom.png"),
    url("/assets/elements/Elements_tachnen/decor-cloud-02-may-bien.png"),
    linear-gradient(180deg,rgba(42,138,244,.66),rgba(218,237,255,.82) 72%,#f5f9ff 100%);
  background-position:center bottom,calc(100% + 76px) 4px,center;
  background-size:auto 44px,150px auto,100% 100%;
  background-repeat:no-repeat;
}

.service-location-hero,.city-page-hero,.app-page-hero{
  background-image:
    url("/assets/elements/Elements_tachnen/decor-wave-03-hai-song.png"),
    url("/assets/elements/Elements_tachnen/decor-island-01-cum-dao.png"),
    linear-gradient(115deg,#fff 0%,#f6fbff 53%,#e6f2ff 100%);
  background-position:center bottom,calc(100% + 68px) calc(100% + 24px),center;
  background-size:auto 34px,154px auto,100% 100%;
  background-repeat:no-repeat;
}

/* Empty and pending modules retain their explicit data state, with just enough
   travel context to make a quiet page feel intentional. */
.home-category-empty,.service-property-pending,.city-data-pending,.empty{
  background-image:url("/assets/elements/Elements_tachnen/decor-sparkle-01-cum-lap-lanh.png");
  background-position:calc(100% + 74px) calc(100% + 45px);
  background-size:142px auto;
  background-repeat:no-repeat;
}

.detail-gallery{position:relative;isolation:isolate;overflow:hidden}
.detail-gallery::after{
  content:"";position:absolute;z-index:2;left:-12px;bottom:-5px;width:96px;height:60px;
  background:url("/assets/elements/Elements_tachnen/decor-sparkle-02-cum-sao.png") left bottom/contain no-repeat;
  opacity:.58;pointer-events:none;
}

/* Listing pages do not have a photo hero; an understated route trace creates a
   visual cue without taking space away from filters or search. */
.list-layout .page-heading{
  position:relative;background-image:url("/assets/elements/Elements_tachnen/decor-route-01-duong-dut.png");
  background-position:calc(100% + 50px) 4px;background-size:128px auto;background-repeat:no-repeat;
}

@media (min-width:700px){
  .home-hero{
    background-position:center bottom,calc(100% + 88px) 5px,center;
    background-size:auto 70px,215px auto,100% 100%;
  }
  .service-location-hero,.city-page-hero,.app-page-hero{
    background-position:center bottom,calc(100% + 36px) calc(100% + 34px),center;
    background-size:auto 50px,220px auto,100% 100%;
  }
  .detail-gallery::after{left:12px;bottom:8px;width:132px;height:80px}
  .list-layout .page-heading{padding-right:154px;background-position:right 0;background-size:172px auto}
}

@media (min-width:1024px){
  .home-hero{background-size:auto 82px,260px auto,100% 100%}
  .service-location-hero,.city-page-hero,.app-page-hero{background-size:auto 62px,275px auto,100% 100%}
  .detail-gallery::after{width:156px;height:94px}
}

@media (prefers-reduced-motion:reduce){
  .detail-gallery::after{opacity:.48}
}

/* Quiet editorial hero --------------------------------------------------------
   Contact is the reference: one pale surface, one small wave at the right,
   and a compact 16px rhythm after the copy.  Saved, account and service pages
   deliberately reuse it instead of carrying scenic art into the heading. */
.app-page-hero,.app-page-hero.compact,.service-location-hero,.city-page-hero{
  min-height:0!important;
  padding:24px 0 16px!important;
  background-color:#f6fbff;
  background-image:url("/assets/elements/Elements_tachnen/decor-wave-03-hai-song.png")!important;
  background-position:right bottom!important;
  background-size:auto 46px!important;
  background-repeat:no-repeat!important;
}
.app-page-hero:before,.app-page-hero:after,.service-location-hero:before,.service-location-hero:after,.city-page-hero:before,.city-page-hero:after{display:none!important}
.app-page-hero .shell>p:last-child,.service-location-hero .shell>span,.city-page-hero .shell>p:last-child{margin-bottom:16px}
.service-location-hero .service-search{margin-top:16px!important;margin-bottom:0}

/* Listing titles follow the reading order: breadcrumb, then heading, then tools. */
.list-layout .page-heading{display:block!important;min-height:0!important;padding:24px 0 16px!important;background-position:right top!important}
.list-layout .page-heading .breadcrumbs{margin:0 0 8px!important;justify-content:flex-start!important}
.list-layout .page-heading h1{margin:0!important}
@media (min-width:700px){
  .app-page-hero,.app-page-hero.compact,.service-location-hero,.city-page-hero{padding:28px 0 16px!important;background-size:auto 56px!important}
  .list-layout .page-heading{padding-top:24px!important;padding-bottom:16px!important}
}

/* Final hero ornament: a small map with two birds, never a full-width wave. */
.app-page-hero,.app-page-hero.compact,.service-location-hero,.city-page-hero{
  background-image:
    url("/assets/elements/Elements_tachnen/decor-bird-01-hai-chim.png"),
    url("/assets/elements/Elements_tachnen/decor-location-03-ban-do-hai-ghim.png")!important;
  background-position:calc(100% - 26px) 16px,calc(100% + 24px) calc(100% + 38px)!important;
  background-size:58px auto,126px auto!important;
  background-repeat:no-repeat!important;
}
.app-page-hero .app-eyebrow{display:none}

/* Mobile service board needs the same breathing room as the lower edge. */
@media (max-width:699px){.home-hero{padding:12px 0 18px!important}}
@media (min-width:700px){
  .app-page-hero,.app-page-hero.compact,.service-location-hero,.city-page-hero{
    background-position:calc(100% - 56px) 18px,calc(100% + 10px) calc(100% + 40px)!important;
    background-size:72px auto,166px auto!important;
  }
}

/* Admin inventory prototype */
.admin-page{min-height:100vh;background:#f3f7fb;color:#102c63}.admin-hero{padding:34px 0 42px;background:linear-gradient(115deg,#073b67,#096a8c 58%,#0da58f);color:#fff}.admin-hero p,.admin-panel-head p{margin:0 0 5px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.admin-hero p{color:#a9eee2}.admin-hero h1{margin:0;font-size:34px;letter-spacing:-1px}.admin-hero span{display:block;max-width:620px;margin-top:8px;color:#d8f4f1}.admin-content{padding-top:22px;padding-bottom:70px}.admin-notice{display:grid;gap:4px;margin-bottom:18px;padding:14px 16px;border:1px solid #b8ddeb;border-radius:14px;background:#e9f8fb;color:#174a63}.admin-notice span{font-size:13px;line-height:1.5}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.admin-stats article{padding:15px;border:1px solid #dce8ee;border-radius:16px;background:#fff;box-shadow:0 7px 20px rgba(18,48,71,.06)}.admin-stats span,.admin-stats small{display:block;color:#607789;font-size:11px}.admin-stats strong{display:block;margin:3px 0;font-size:27px;line-height:1}.admin-layout{display:grid;gap:18px}.admin-panel{min-width:0;padding:18px;border:1px solid #dce8ee;border-radius:20px;background:#fff;box-shadow:0 10px 28px rgba(18,48,71,.07)}.admin-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.admin-panel-head p{color:#087ea4}.admin-panel-head h2{margin:0;font-size:22px}.admin-panel-head a{min-height:40px;display:inline-flex;align-items:center;padding:0 12px;border:1px solid #b9d5df;border-radius:10px;color:#075985;font-size:12px;font-weight:750;text-decoration:none}.admin-records{display:grid;gap:9px}.admin-record{display:flex;justify-content:space-between;gap:14px;padding:13px;border:1px solid #e1ebef;border-radius:14px;background:#f9fcfd}.admin-record h3{margin:6px 0 2px;font-size:15px}.admin-record p{margin:0;color:#607789;font-size:12px}.admin-record-meta{display:grid;justify-items:end;align-content:start;gap:3px;text-align:right}.admin-record-meta strong{font-size:13px}.admin-record-meta small{color:#607789;font-size:10px}.admin-record-meta button{min-height:30px;margin-top:3px;border:0;background:transparent;color:#b42318;font-size:11px;font-weight:700}.admin-status{display:inline-flex;padding:3px 7px;border-radius:99px;background:#e8edf2;color:#526170;font-size:9px;font-weight:800;text-transform:uppercase}.admin-status--review{background:#fff1c5;color:#845400}.admin-status--published{background:#d9f3e4;color:#11663e}.admin-status--hidden{background:#ffe0df;color:#a32620}.admin-empty{padding:30px 16px;border:1px dashed #b9d0da;border-radius:14px;text-align:center}.admin-empty p{margin:5px auto 0;max-width:390px;color:#607789;font-size:13px}.admin-form{display:grid;gap:16px}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-form label>span,.admin-form legend{display:block;margin-bottom:6px;color:#294b5f;font-size:12px;font-weight:750}.admin-form input,.admin-form select,.admin-form textarea{width:100%;min-height:45px;padding:10px 12px;border:1px solid #cedde4;border-radius:11px;background:#fff;color:#123047}.admin-form textarea{resize:vertical}.admin-form input:focus,.admin-form select:focus,.admin-form textarea:focus{outline:0;border-color:#087ea4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}.admin-form fieldset{margin:0;padding:0;border:0}.admin-amenities{display:flex;flex-wrap:wrap;gap:7px}.admin-amenities label{position:relative}.admin-amenities input{position:absolute;width:1px;height:1px;opacity:0}.admin-amenities span{min-height:38px;display:inline-flex!important;align-items:center;margin:0!important;padding:0 11px;border:1px solid #cbdbe2;border-radius:99px;background:#fff;font-size:11px!important}.admin-amenities input:checked+span{border-color:#087ea4;background:#e4f6f7;color:#076580}.admin-description{display:block}.admin-form .btn{width:100%}.admin-form-note{color:#607789;text-align:center}.admin-form-panel{order:-1}
@media(max-width:560px){.admin-stats{grid-template-columns:1fr}.admin-form-grid{grid-template-columns:1fr}.admin-record{display:grid}.admin-record-meta{justify-items:start;text-align:left}.admin-panel-head{display:grid}.admin-panel-head a{justify-self:start}.admin-hero h1{font-size:29px}}
@media(min-width:900px){.admin-layout{grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr);align-items:start}.admin-form-panel{order:0;position:sticky;top:18px}.admin-content{padding-top:28px}}
.admin-notice button{justify-self:start;min-height:34px;margin-top:5px;padding:0 11px;border:1px solid #9ac9da;border-radius:9px;background:#fff;color:#075985;font-weight:750}.admin-login-wrap{min-height:540px;display:grid;place-items:start center;padding-top:34px;padding-bottom:70px}.admin-login-card{width:min(100%,440px);display:grid;gap:15px}.admin-login-card label>span{display:block;margin-bottom:6px;color:#294b5f;font-size:12px;font-weight:750}.admin-login-card input{width:100%;min-height:48px;padding:10px 12px;border:1px solid #cedde4;border-radius:11px}.admin-login-card input:focus{outline:0;border-color:#087ea4;box-shadow:0 0 0 3px rgba(8,126,164,.12)}.admin-login-card>small{color:#607789;text-align:center}.admin-login-error{min-height:20px;margin:0;color:#b42318;font-size:12px}

/* Admin workspace system -----------------------------------------------------
   Compact operational UI. These selectors are scoped to admin components so
   the public site keeps its existing visual language. */
.admin-shell{
  --admin-brand:#1769e0;
  --admin-brand-soft:#edf5ff;
  --admin-ink:#172033;
  --admin-muted:#67738a;
  --admin-line:#dfe5ee;
  --admin-canvas:#f4f6f9;
  --admin-panel:#fff;
  --admin-sidebar:#101a2d;
  --admin-sidebar-muted:#9aa8bf;
  min-height:100vh;
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  background:var(--admin-canvas);
  color:var(--admin-ink);
  font-family:"Roboto",Arial,sans-serif;
  letter-spacing:0;
}
.admin-sidebar{
  position:sticky;
  top:0;
  z-index:24;
  height:100vh;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:20px 14px;
  overflow-y:auto;
  background:var(--admin-sidebar);
  color:#fff;
  box-shadow:8px 0 28px rgba(16,26,45,.08);
}
.admin-sidebar-brand{
  min-height:50px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:4px 8px 14px;
  border-bottom:1px solid rgba(255,255,255,.1);
  color:#fff;
  font-size:16px;
  font-weight:750;
  text-decoration:none;
}
.admin-sidebar-brand img{width:auto;max-width:132px;height:38px;object-fit:contain;object-position:left center}
.admin-sidebar-foot{margin-top:auto;display:grid;gap:8px;padding:14px 10px;border-top:1px solid rgba(255,255,255,.1)}
.admin-sidebar-foot a,.admin-sidebar-foot button{color:#dbe7f8;background:transparent;border:0;text-align:left;font:inherit;cursor:pointer;padding:7px 8px;border-radius:8px}
.admin-sidebar-foot a:hover,.admin-sidebar-foot button:hover{background:rgba(255,255,255,.08)}
.admin-topbar-actions{display:flex;align-items:center;gap:12px}
.admin-user{display:grid;text-align:right;line-height:1.2}.admin-user small{color:#718096;text-transform:capitalize}
.admin-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:4px 0}
.admin-quick-grid a{display:grid;gap:6px;padding:18px;border:1px solid #dce5ef;border-radius:12px;background:#f8fafc;color:#14233b}
.admin-quick-grid a span{color:#64748b;font-size:.88rem}
.admin-login-page{min-height:100vh;display:grid;place-content:center;gap:24px;padding:24px;background:#eef3f8}
.admin-login-brand{display:block;margin:auto}.admin-login-brand img{width:180px;height:auto;filter:brightness(.45)}
.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:18px}
.admin-media-card{overflow:hidden;border:1px solid #dce5ef;border-radius:12px;background:#fff}.admin-media-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef3f8}.admin-media-card div{display:grid;gap:4px;padding:12px}.admin-media-card small{color:#718096}
.admin-usage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.admin-usage-grid article{display:grid;gap:8px;padding:18px;border:1px solid #dce5ef;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(15,35,65,.05)}.admin-usage-grid span{color:#667085;font-size:12px;font-weight:700}.admin-usage-grid strong{color:#102a56;font-size:20px}.admin-usage-grid small{color:#667085}.admin-usage-grid progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:999px;background:#edf2f7}.admin-usage-grid progress::-webkit-progress-bar{border-radius:999px;background:#edf2f7}.admin-usage-grid progress::-webkit-progress-value{border-radius:999px;background:#1677e8}.admin-usage-grid progress::-moz-progress-bar{border-radius:999px;background:#1677e8}
.admin-confirm-modal{width:min(520px,calc(100vw - 32px))}.admin-confirm-body{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:24px}.admin-confirm-body strong{display:block;margin-bottom:6px;color:#7a271a;font-size:16px}.admin-confirm-body p{margin:0;color:#475467;line-height:1.55}.admin-confirm-icon{display:grid;width:42px;height:42px;border-radius:50%;background:#fee4e2;color:#b42318;font-size:24px;font-weight:850;place-items:center}.admin-modal-actions .btn.danger{border-color:#d92d20;background:#d92d20;color:#fff}.admin-modal-actions .btn.danger:hover{background:#b42318}.admin-modal-actions .btn.danger:focus-visible{outline:3px solid rgba(217,45,32,.24);outline-offset:2px}
.admin-status-select{min-width:116px;padding:7px 9px;border:1px solid #ccd7e4;border-radius:8px;background:#fff}
.admin-search{display:flex;align-items:center;gap:10px;min-width:min(420px,100%);padding:0 14px;border:1px solid #d7e1ec;border-radius:10px;background:#fff}
.admin-search .ui-icon{width:18px!important;height:18px!important;min-width:18px;flex:0 0 18px;object-fit:contain}
.admin-search input{width:100%;min-height:42px;padding:0;border:0;outline:0;background:transparent;font:inherit}
.admin-check-cell{width:42px!important;padding-right:4px!important;text-align:center}.admin-check-cell input{width:17px;height:17px;accent-color:#1769e0;cursor:pointer}
.admin-bulk-bar{position:sticky;z-index:4;top:84px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0;padding:11px 14px;border:1px solid #bcd4fb;border-radius:11px;background:#edf5ff;box-shadow:0 7px 18px rgba(24,80,160,.1)}
.admin-bulk-bar[hidden]{display:none}.admin-bulk-bar strong{color:#173a70}.admin-bulk-bar>div{display:flex;flex-wrap:wrap;gap:7px}.admin-bulk-bar button{min-height:34px;padding:0 11px;border:1px solid #bfd1e8;border-radius:8px;background:#fff;color:#244469;font-weight:700;cursor:pointer}.admin-bulk-bar button:first-child{border-color:#1769e0;background:#1769e0;color:#fff}
.admin-quick-approve{border-color:#a8d7b8!important;background:#ecf9f0!important;color:#147a39!important;font-weight:750!important}
.admin-modal{width:min(760px,calc(100vw - 32px));max-height:min(90vh,820px);overflow:hidden;border:1px solid #dbe5ef;border-radius:18px;box-shadow:0 24px 70px rgba(8,24,48,.25)}
.admin-modal-head{padding:20px 24px;border-bottom:1px solid #e4ebf2;background:#f8fafc}.admin-modal-head p{margin:0 0 4px;color:#1769e0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-modal-head h2{margin:0;color:#14233b;font-size:22px}.admin-modal-head>button{width:36px;height:36px;border:1px solid #d8e1eb;border-radius:10px;background:#fff;color:#4b5f78;font-size:24px;cursor:pointer}
.admin-modal-body{overflow-y:auto;padding:22px 24px}.admin-modal-body label>span{display:block;margin-bottom:7px;color:#31445d;font-size:12px;font-weight:750}.admin-modal-body input,.admin-modal-body select,.admin-modal-body textarea{width:100%;border:1px solid #cfdbe7;border-radius:10px;background:#fff;color:#172b46;font:inherit;transition:border-color .15s,box-shadow .15s}.admin-modal-body input,.admin-modal-body select{min-height:44px;padding:0 12px}.admin-modal-body textarea{padding:12px;line-height:1.5;resize:vertical}.admin-modal-body input:focus,.admin-modal-body select:focus,.admin-modal-body textarea:focus{outline:0;border-color:#1769e0;box-shadow:0 0 0 3px rgba(23,105,224,.12)}
.admin-modal-body .admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.admin-modal-body .admin-description{display:block;margin-top:18px}.admin-modal-actions{position:sticky;bottom:-22px;display:flex;justify-content:flex-end;gap:10px;margin:22px -24px -22px;padding:14px 24px;border-top:1px solid #e1e8f0;background:rgba(255,255,255,.96);backdrop-filter:blur(8px)}
@media(max-width:760px){.admin-topbar-actions{align-items:flex-end}.admin-user{display:none}.admin-quick-grid{grid-template-columns:1fr}.admin-media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-usage-grid{grid-template-columns:1fr}.admin-sidebar-foot{display:none}.admin-confirm-body{padding:20px}.admin-confirm-modal .admin-modal-actions{grid-template-columns:1fr}}
@media(max-width:760px){.admin-bulk-bar{top:70px;align-items:flex-start;flex-direction:column}.admin-bulk-bar>div{width:100%}.admin-bulk-bar button{flex:1 1 auto}.admin-modal{width:100%;max-height:92vh;border-radius:18px 18px 0 0}.admin-modal-head,.admin-modal-body{padding-right:16px;padding-left:16px}.admin-modal-body .admin-form-grid{grid-template-columns:1fr;gap:14px}.admin-modal-actions{margin-right:-16px;margin-left:-16px;padding-right:16px;padding-left:16px}}
.admin-nav{display:grid;gap:4px;align-content:start}
.admin-nav-item{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 11px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--admin-sidebar-muted);
  font-size:13px;
  font-weight:600;
  text-align:left;
  text-decoration:none;
  white-space:nowrap;
  transition:background-color .16s ease,color .16s ease;
}
.admin-nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-nav-item.active,.admin-nav-item[aria-current="page"]{background:#fff;color:#102c63;box-shadow:0 5px 16px rgba(0,0,0,.12)}
.admin-nav-item svg,.admin-nav-item img{flex:0 0 19px;width:19px;height:19px;object-fit:contain}
.admin-main{min-width:0;padding:0 28px 40px}
.admin-topbar{
  position:sticky;
  top:0;
  z-index:20;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 -28px 24px;
  padding:12px 28px;
  border-bottom:1px solid var(--admin-line);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
}
.admin-topbar-title{min-width:0}
.admin-topbar-title h1,.admin-topbar-title h2{margin:0;color:var(--admin-ink);font-size:21px;line-height:1.2;letter-spacing:-.45px}
.admin-topbar-title p{margin:3px 0 0;color:var(--admin-muted);font-size:12px}
.admin-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.admin-toolbar>.btn,.admin-toolbar>button{flex:0 0 auto;min-height:40px;border-radius:9px}
.admin-search{
  position:relative;
  min-width:220px;
  max-width:430px;
  flex:1 1 300px;
}
.admin-search input{
  width:100%;
  min-height:42px;
  padding:9px 13px 9px 39px;
  border:1px solid var(--admin-line);
  border-radius:9px;
  background:#fff;
  color:var(--admin-ink);
  box-shadow:0 1px 2px rgba(16,26,45,.03);
}
.admin-search:before{content:"";position:absolute;z-index:1;left:14px;top:50%;width:13px;height:13px;border:2px solid #7d899c;border-radius:50%;transform:translateY(-58%)}
.admin-search:after{content:"";position:absolute;z-index:1;left:26px;top:26px;width:7px;height:2px;border-radius:2px;background:#7d899c;transform:rotate(45deg)}
.admin-search input:focus{outline:0;border-color:var(--admin-brand);box-shadow:0 0 0 3px rgba(23,105,224,.12)}
.admin-search input::placeholder{color:#929caf}
.admin-filter-tabs{display:flex;align-items:center;gap:3px;overflow-x:auto;padding:3px;border:1px solid var(--admin-line);border-radius:10px;background:#eef1f5;scrollbar-width:none}
.admin-filter-tabs::-webkit-scrollbar{display:none}
.admin-filter-tab{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:6px 11px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--admin-muted);
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
}
.admin-filter-tab:hover{color:var(--admin-ink)}
.admin-filter-tab.active,.admin-filter-tab[aria-selected="true"]{background:#fff;color:var(--admin-brand);box-shadow:0 1px 5px rgba(16,26,45,.11)}
.admin-table-wrap{min-width:0;overflow:auto;border:1px solid var(--admin-line);border-radius:12px;background:var(--admin-panel);box-shadow:0 4px 18px rgba(16,26,45,.04)}
.admin-table{width:100%;min-width:820px;border-collapse:separate;border-spacing:0;font-size:13px;text-align:left}
.admin-table th{
  position:sticky;
  top:0;
  z-index:2;
  padding:11px 14px;
  border-bottom:1px solid var(--admin-line);
  background:#f8fafc;
  color:#667085;
  font-size:11px;
  font-weight:750;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}
.admin-table td{padding:11px 14px;border-bottom:1px solid #edf0f4;color:#344054;vertical-align:middle}
.admin-table tbody tr:last-child td{border-bottom:0}
.admin-table tbody tr:hover td{background:#f8fbff}
.admin-property-thumbnail-cell{width:76px}
.admin-property-thumbnail-cell img{display:block;width:64px;height:48px;border:1px solid #d9e4f1;border-radius:9px;background:#edf3f9;object-fit:cover;box-shadow:0 2px 8px rgba(16,45,84,.08)}
.admin-property-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 2px 2px;color:#667085;font-size:12px}
.admin-property-pagination p{margin:0}
.admin-property-pagination>div{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.admin-property-pagination button{min-width:36px;min-height:36px;padding:6px 10px;border:1px solid #d4deea;border-radius:9px;background:#fff;color:#344054;font:700 12px/1 inherit;cursor:pointer}
.admin-property-pagination button:hover:not(:disabled){border-color:#8ebcf3;background:#f2f8ff;color:var(--admin-brand)}
.admin-property-pagination button[aria-current="page"]{border-color:var(--admin-brand);background:var(--admin-brand);color:#fff;box-shadow:0 5px 13px rgba(23,105,224,.2)}
.admin-property-pagination button:disabled{cursor:not-allowed;opacity:.45}
.admin-property-pagination button:focus-visible{outline:3px solid rgba(23,105,224,.22);outline-offset:2px}
.admin-table a{color:var(--admin-brand);font-weight:650;text-decoration:none}
.admin-table a:hover{text-decoration:underline}
.admin-table select{min-height:34px;padding:5px 29px 5px 9px;border:1px solid var(--admin-line);border-radius:7px;background:#fff;color:var(--admin-ink);font-size:12px}
.admin-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;white-space:nowrap}
.admin-row-actions button,.admin-row-actions a{
  min-width:34px;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 9px;
  border:1px solid var(--admin-line);
  border-radius:7px;
  background:#fff;
  color:#46546b;
  font-size:12px;
  font-weight:650;
  text-decoration:none;
}
.admin-row-actions button:hover,.admin-row-actions a:hover{border-color:#b8c5d6;background:#f5f8fc;color:var(--admin-brand);text-decoration:none}
.admin-row-actions .danger{color:#b42318}.admin-row-actions .danger:hover{border-color:#f2b8b5;background:#fff5f4;color:#9d1c14}
.admin-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.admin-kpi{min-width:0;padding:15px 16px;border:1px solid var(--admin-line);border-radius:11px;background:#fff;box-shadow:0 3px 12px rgba(16,26,45,.035)}
.admin-kpi span,.admin-kpi small{display:block;color:var(--admin-muted);font-size:11px;font-weight:600}
.admin-kpi strong{display:block;margin:6px 0 3px;color:var(--admin-ink);font-size:25px;line-height:1;font-weight:760;letter-spacing:-.8px}
.admin-badge{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:3px 8px;border-radius:999px;background:#eef1f5;color:#596579;font-size:10px;font-weight:750;white-space:nowrap}
.admin-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.75}
.admin-badge--draft,.admin-badge[data-status="draft"]{background:#f0f2f5;color:#586273}
.admin-badge--review,.admin-badge[data-status="review"]{background:#fff3cf;color:#8a5b00}
.admin-badge--published,.admin-badge[data-status="published"]{background:#dcf5e7;color:#147044}
.admin-badge--hidden,.admin-badge[data-status="hidden"]{background:#ffe5e2;color:#ad2d25}
.admin-badge--info,.admin-badge[data-status="info"]{background:#e7f1ff;color:#175eae}
.admin-module-empty{min-height:260px;display:grid;place-items:center;padding:38px 20px;border:1px dashed #c6d0dc;border-radius:12px;background:#fbfcfe;color:var(--admin-muted);text-align:center}
.admin-module-empty>div{max-width:420px}.admin-module-empty h2,.admin-module-empty h3{margin:0 0 7px;color:var(--admin-ink);font-size:18px}.admin-module-empty p{margin:0 0 16px;font-size:13px}
.admin-modal-backdrop{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:24px;background:rgba(9,17,31,.58);backdrop-filter:blur(3px)}
.admin-modal{width:min(680px,100%);max-height:min(860px,calc(100dvh - 48px));display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.45);border-radius:14px;background:#fff;box-shadow:0 28px 80px rgba(9,17,31,.28)}
.admin-modal-head{flex:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--admin-line)}
.admin-modal-head h2,.admin-modal-head h3{margin:0;color:var(--admin-ink);font-size:19px;letter-spacing:-.25px}.admin-modal-head p{margin:4px 0 0;color:var(--admin-muted);font-size:12px}
.admin-modal-head>button{flex:0 0 36px;width:36px;height:36px;border:0;border-radius:8px;background:#f0f3f7;color:#566176;font-size:18px}
.admin-modal-body{box-sizing:border-box;min-height:0;overflow-y:auto;overflow-x:hidden;padding:20px;scrollbar-width:none;-ms-overflow-style:none}
.admin-modal-body::-webkit-scrollbar{display:none}.admin-modal-body *{box-sizing:border-box}
.admin-modal-actions{box-sizing:border-box;flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:0;padding:14px 20px;border-top:1px solid var(--admin-line);background:#fafbfc}
.admin-modal-actions .btn{min-height:40px;border-radius:9px}

@media(max-width:1100px){
  .admin-shell{grid-template-columns:208px minmax(0,1fr)}
  .admin-main{padding-inline:20px}.admin-topbar{margin-inline:-20px;padding-inline:20px}
  .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .admin-shell{display:block}
  .admin-sidebar{position:sticky;height:auto;min-height:0;display:block;padding:10px 12px;overflow:visible}
  .admin-sidebar-brand{min-height:42px;padding:0 4px 8px;border-bottom:0}.admin-sidebar-brand img{height:32px}
  .admin-nav{display:flex;gap:5px;margin-inline:-2px;padding:2px;overflow-x:auto;scrollbar-width:none}.admin-nav::-webkit-scrollbar{display:none}
  .admin-nav-item{min-height:38px;padding:7px 10px;background:rgba(255,255,255,.055);font-size:12px}.admin-nav-item svg,.admin-nav-item img{width:17px;height:17px}
  .admin-main{padding:0 12px 28px}
  .admin-topbar{position:relative;min-height:64px;margin:0 -12px 16px;padding:11px 12px}.admin-topbar-title h1,.admin-topbar-title h2{font-size:18px}.admin-topbar-title p{display:none}
  .admin-toolbar{align-items:stretch;gap:8px}.admin-search{min-width:100%;max-width:none;flex-basis:100%}.admin-filter-tabs{max-width:100%;flex:1 1 auto}
  .admin-table-wrap{margin-inline:-12px;border-right:0;border-left:0;border-radius:0}.admin-table{min-width:760px}.admin-table th,.admin-table td{padding:10px 12px}
  .admin-modal-backdrop{place-items:end center;padding:0;background:rgba(9,17,31,.52)}
  .admin-modal{width:100%;max-height:92dvh;border-width:1px 0 0;border-radius:16px 16px 0 0}
  .admin-modal-head,.admin-modal-body{padding:16px}.admin-modal-actions{margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
}
@media(max-width:480px){
  .admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-kpi{padding:12px}.admin-kpi strong{font-size:22px}
  .admin-filter-tabs{width:100%}.admin-filter-tab{flex:0 0 auto}
  .admin-toolbar>.btn,.admin-toolbar>button{flex:1 1 auto}
  .admin-modal-actions{display:grid;grid-template-columns:1fr 1fr}.admin-modal-actions .btn{width:100%}
}

/* Property provenance, compact metadata and admin link tooling ----------------
   Shared additions for source-aware property records. */
.badge--original-amenity,.amenity-original-badge,.original-amenity-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:24px;
  padding:4px 9px;
  border:1px solid #ffc3cf;
  border-radius:999px;
  background:#fff1f4;
  color:var(--primary-dark);
  box-shadow:0 4px 12px rgba(217,47,76,.1);
  font-size:10px;
  font-weight:800;
  line-height:1.2;
  letter-spacing:.04em;
  text-transform:uppercase;
  white-space:nowrap;
}
.badge--original-amenity:before,.amenity-original-badge:before,.original-amenity-badge:before{
  content:"";
  width:6px;
  height:6px;
  flex:0 0 6px;
  border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 0 3px rgba(250,74,104,.13);
}
.gallery-source-links,.detail-source-links,.detail-sources{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin-top:12px;
}
.gallery-source-link,.detail-source-link,.detail-sources a{
  min-width:0;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#fff;
  color:var(--primary-dark);
  font-size:12px;
  font-weight:750;
  line-height:1.3;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.gallery-source-link:hover,.detail-source-link:hover,.detail-sources a:hover{border-color:#f3b9c5;background:var(--sky)}
.gallery-source-link:before,.detail-source-link:before,.detail-sources a:before{content:"\2197";flex:0 0 auto;font-size:13px}
.property-metadata,.property-meta-grid,.detail-property-meta{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  margin:16px 0;
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--border);
}
.property-metadata-item,.property-meta-item,.detail-property-meta>div{
  min-width:0;
  display:grid;
  align-content:center;
  gap:2px;
  min-height:68px;
  padding:10px 12px;
  background:#fff;
}
.property-metadata-item span,.property-meta-item span,.detail-property-meta>div>span{
  color:var(--muted);
  font-size:10px;
  font-weight:750;
  letter-spacing:.045em;
  line-height:1.25;
  text-transform:uppercase;
}
.property-metadata-item strong,.property-meta-item strong,.detail-property-meta>div>strong{
  min-width:0;
  color:var(--text);
  font-size:14px;
  line-height:1.3;
  overflow-wrap:anywhere;
}

.admin-form-section{
  min-width:0;
  display:grid;
  gap:14px;
  margin:0;
  padding:18px;
  border:1px solid var(--admin-line,#dfe5ee);
  border-radius:12px;
  background:#fff;
}
.admin-form-section+.admin-form-section{margin-top:4px}
.admin-form-section-head{min-width:0;padding-bottom:11px;border-bottom:1px solid #edf0f4}
.admin-form-section-head h3,.admin-form-section-title{margin:0;color:var(--admin-ink,#172033);font-size:15px;line-height:1.3;letter-spacing:-.15px}
.admin-form-section-head p{margin:4px 0 0;color:var(--admin-muted,#67738a);font-size:12px;line-height:1.45}
.admin-helper-text,.admin-field-helper,.admin-form-helper{
  display:block;
  margin:5px 0 0;
  color:var(--admin-muted,#67738a);
  font-size:11px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.admin-link-preview{
  min-width:0;
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin-top:8px;
  padding:10px 11px;
  overflow:hidden;
  border:1px solid #d8e5f6;
  border-radius:9px;
  background:var(--admin-brand-soft,#edf5ff);
  color:#315477;
  font-size:11px;
  line-height:1.45;
}
.admin-link-preview:before{content:"\2197";flex:0 0 auto;color:var(--admin-brand,#1769e0);font-weight:800}
.admin-link-preview a,.admin-link-preview span{
  min-width:0;
  color:inherit;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.admin-link-preview a{color:var(--admin-brand,#1769e0);font-weight:650;text-decoration:none}
.admin-table-link,.admin-table .link-button,.admin-row-actions .admin-link-button{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  max-width:100%;
  padding:5px 9px;
  border:1px solid #cbd9eb;
  border-radius:7px;
  background:#f7faff;
  color:var(--admin-brand,#1769e0);
  font-size:11px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.admin-table-link:after,.admin-table .link-button:after,.admin-row-actions .admin-link-button:after{content:"\2197";font-size:11px}
.admin-table-link:hover,.admin-table .link-button:hover,.admin-row-actions .admin-link-button:hover{border-color:#9bbbe8;background:#edf5ff;text-decoration:none}
.admin-modal-body .admin-form-section,.admin-modal-body .admin-link-preview{max-width:100%}

@media(max-width:700px){
  .property-metadata,.property-meta-grid,.detail-property-meta{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:14px}
  .property-metadata-item,.property-meta-item,.detail-property-meta>div{min-height:62px;padding:9px 10px}
  .gallery-source-links,.detail-source-links,.detail-sources{align-items:stretch}
  .gallery-source-link,.detail-source-link,.detail-sources a{flex:1 1 100%}
}
@media(max-width:480px){
  .admin-form-section{gap:12px;padding:14px;border-radius:10px}
  .admin-table-link,.admin-table .link-button,.admin-row-actions .admin-link-button{min-width:32px;padding-inline:7px}
  .admin-property-pagination{align-items:flex-start;flex-direction:column}
  .admin-property-pagination>div{justify-content:flex-start}
}
.property-code{margin:0 0 5px;color:#1773e8;font-size:.75rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.property-original-amenities{display:-webkit-box;min-height:2.8em;margin:10px 0 4px;overflow:hidden;color:#41526c;font-size:.86rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.detail-original-amenities{padding:16px 18px;border:1px solid #bfe3d8;border-radius:14px;background:#effbf7;color:#124f43;font-weight:700;line-height:1.55}.detail-description{white-space:pre-line}.admin-original-amenities{max-width:260px;margin:0;color:#34445c;line-height:1.4}.admin-table-source-links{display:flex;gap:6px;flex-wrap:wrap}.admin-form-section+.admin-form-section{margin-top:20px}.admin-form-section-head{margin-bottom:14px}.admin-form-section-title{margin:0;color:#102d63;font-size:1rem}.admin-form-helper{margin:5px 0 0;color:#66778d;font-size:.84rem}
.detail-gallery-suite{position:relative;margin-bottom:28px;overflow:hidden;border-radius:24px;background:#dfe9f4;box-shadow:0 18px 50px rgba(18,54,99,.13)}.detail-gallery-grid{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:repeat(2,minmax(150px,230px));gap:4px}.detail-gallery-item{min-width:0;margin:0;overflow:hidden;background:#eaf1f8}.detail-gallery-item.is-primary{grid-row:1/3}.detail-gallery-item:nth-child(4){grid-column:2/4}.detail-gallery-item img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .5s ease}.detail-gallery-item:hover img{transform:scale(1.025)}.detail-gallery-suite>.favorite{top:18px;right:18px}.detail-gallery-overlay{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:10px}.detail-gallery-overlay>span,.gallery-drive-button{min-height:40px;display:inline-flex;align-items:center;padding:9px 14px;border-radius:12px;background:rgba(255,255,255,.94);box-shadow:0 8px 24px rgba(15,43,78,.15);color:#123667;font-size:.82rem;font-weight:800;text-decoration:none;backdrop-filter:blur(10px)}.gallery-drive-button{background:#1674ee;color:#fff}.detail-property-meta{display:grid;grid-template-columns:.65fr 1.8fr 1fr;gap:10px;margin-top:22px}.detail-property-meta>div{display:flex;min-width:0;min-height:84px;flex-direction:column;justify-content:center;padding:14px 16px;border:1px solid #d8e4f1;border-radius:16px;background:#f8fbff}.detail-property-meta strong{color:#102f64;font-size:1rem;line-height:1.35}.detail-property-meta small{margin-top:5px;color:#708097;font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.detail-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.detail-section-heading span{color:#138f79;font-size:.75rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.detail-section-heading h2{margin:4px 0 0}.property-long-content{display:grid;gap:0;color:#334861;font-size:.98rem;line-height:1.75}.property-long-content p{margin:0;padding:12px 0;border-bottom:1px solid #edf1f6}.property-long-content p:last-child{border-bottom:0}.property-information-section{border-top:4px solid #18a38b}
@media(max-width:760px){.detail-gallery-suite{margin-inline:-16px;border-radius:0}.detail-gallery-grid{grid-template-columns:1.55fr 1fr;grid-template-rows:repeat(2,145px)}.detail-gallery-item.is-primary{grid-row:1/3}.detail-gallery-item:nth-child(4){display:none}.detail-gallery-overlay{right:12px;bottom:12px;left:12px;justify-content:flex-end}.detail-gallery-overlay>span{display:none}.gallery-drive-button{min-height:38px}.detail-property-meta{grid-template-columns:1fr}.detail-property-meta>div{min-height:68px}.detail-section-heading{align-items:stretch;flex-direction:column}.detail-source-link{align-self:flex-start}}
.detail-cover{height:clamp(330px,52vw,580px)}.detail-cover>img{width:100%;height:100%;display:block;object-fit:cover}.detail-property-meta>div{background:transparent}.unit-gallery-section{padding-bottom:24px}.unit-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.unit-gallery-grid figure{height:220px;margin:0;overflow:hidden;border-radius:14px;background:#e8f0f8}.unit-gallery-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .4s ease}.unit-gallery-grid figure:hover img{transform:scale(1.025)}.gallery-drive-button--inline{min-height:38px;box-shadow:none}.detail-original-amenities{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:0;border:0;background:transparent}.detail-original-amenities>span,.property-amenity-tags>span{display:inline-flex;align-items:center;min-height:29px;padding:5px 9px;border:1px solid #bcded5;border-radius:999px;background:#effaf7;color:#176653;font-size:.76rem;font-weight:750;line-height:1.2}.property-amenity-tags{display:flex;gap:6px;min-height:29px;margin:8px 0 10px;overflow:hidden}.property-amenity-tags>span{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listing-property-card .property-body,.featured-property-grid .property-body,.home-category-grid .property-body{padding:12px 14px 14px}.property-title{margin-block:0 7px}.property-card .price-row{margin-top:8px}.price-range-inputs input{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:760px){.detail-cover{height:310px}.unit-gallery-grid{grid-template-columns:1fr 1fr}.unit-gallery-grid figure{height:145px}.unit-gallery-grid figure:nth-child(n+4){display:none}.property-amenity-tags{margin-bottom:8px}}
.property-amenity-tags{overflow:visible;position:relative;align-items:center}.property-amenity-tags>span{flex:0 0 auto;max-width:none;white-space:nowrap}.property-amenity-tags .amenity-more{position:relative;min-width:34px;justify-content:center;border-color:#86b8e8;background:#eaf4ff;color:#1269d3;overflow:visible;cursor:help}.amenity-more:after{content:attr(data-tooltip);position:absolute;z-index:20;left:50%;bottom:calc(100% + 9px);width:max-content;max-width:240px;padding:8px 10px;border-radius:9px;background:#102c57;color:#fff;font-size:.72rem;font-weight:650;line-height:1.4;white-space:normal;box-shadow:0 9px 26px rgba(10,35,72,.25);opacity:0;pointer-events:none;transform:translate(-50%,5px);transition:.18s ease}.amenity-more:hover:after,.amenity-more:focus:after{opacity:1;transform:translate(-50%,0)}.detail-property-meta{border:0!important;background:transparent!important;padding:0!important;overflow:visible!important;gap:14px}.detail-property-meta>div{border:1px solid #d7e3f0!important;border-radius:16px!important;background:#fff!important;box-shadow:0 8px 24px rgba(24,61,105,.07)}

/* V2 card language for catalogue and child pages. The homepage now loads its isolated V2 stylesheet. */
.property-card{
  overflow:hidden;
  border:1px solid #e3eaf4;
  border-radius:17px;
  background:#fff;
  box-shadow:0 8px 24px rgba(24,75,130,.08);
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.property-card:hover{transform:translateY(-5px);border-color:#c5dcf6;box-shadow:0 17px 34px rgba(24,75,130,.14)}
.property-card .property-image{aspect-ratio:4/3;border-radius:16px 16px 0 0}
.property-card .property-image img{transition:transform .32s ease}
.property-card:hover .property-image img{transform:scale(1.025)}
.property-card .favorite{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(218,232,248,.9);color:#0878f9;transition:transform .18s ease,background-color .18s ease,color .18s ease}
.property-card .favorite:hover{transform:scale(1.08)}
.property-card .favorite.is-saved{background:#0878f9;color:#fff}
.property-card .property-body{padding:15px 16px 17px}
.property-card .property-title{margin:0 0 6px;color:#0a2b59;font-size:17px;line-height:1.3}
.property-card .location-line{min-width:0;margin:0 0 9px;display:flex;align-items:center;gap:5px;color:#6c7d95;font-size:12px}
.property-card .location-line .ui-icon{flex:0 0 15px;width:15px;height:15px;color:#0878f9}
.property-card .location-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.property-card .fact{border-radius:999px;background:#eef5ff;color:#365678}
.property-card .property-amenity-tags>span{border-color:#d5e5f5;background:#f2f7fd;color:#31597d}
.property-card .price{color:#113a76;font-size:17px;text-decoration:none}
.listing-property-grid,.city-property-grid,.service-property-grid,.saved-grid{gap:18px}
@media(max-width:700px){.property-card:hover{transform:none}.property-card .property-body{padding:13px 14px 15px}.listing-property-grid{gap:14px}}
@media(prefers-reduced-motion:reduce){.property-card,.property-card .property-image img,.property-card .favorite{transition:none!important;transform:none!important}}

/* Exact homepage-card synchronization for every property collection. */
.v2-synced-card{display:flex;height:auto!important;min-height:0;flex-direction:column;border-radius:16px!important}
.v2-synced-card .property-image{flex:0 0 auto;width:100%;height:auto!important;min-height:0!important;aspect-ratio:4/3!important;border-radius:15px 15px 0 0!important}
.v2-synced-card .synced-data-badge{position:absolute;z-index:1;top:10px;left:10px;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.94);color:#0878f9;font-size:10px;font-weight:700;box-shadow:0 3px 10px rgba(20,70,125,.12)}
.v2-synced-card .property-body{min-height:0;display:flex;flex:1;flex-direction:column;padding:15px 16px 17px!important}
.v2-synced-card .property-title{display:block;margin:0 0 7px!important;font-size:17px!important;line-height:1.3!important;-webkit-line-clamp:unset}
.v2-synced-card .location-line{margin:0!important}
.v2-synced-card .synced-capacity{min-height:20px;margin:8px 0 0;color:#526782;font-size:12px;line-height:1.45}
.v2-synced-card .synced-price{margin:17px 0 0;color:#53647d;font-size:12px;line-height:1.35}
.v2-synced-card .synced-price small{display:block;min-height:14px;color:#8894a5;font-size:10px}
.v2-synced-card .synced-price .price{display:inline;color:#113a76;font-size:18px!important;font-weight:750;text-decoration:none}
.v2-synced-card .synced-price span{color:#53647d;font-size:12px}
.v2-synced-card .facts,.v2-synced-card .property-amenity-tags{display:none!important}
@media(max-width:700px){.v2-synced-card .property-body{padding:14px 15px 16px!important}.v2-synced-card .synced-price{margin-top:14px}}
/* Destination-first listing — canonical category layout */
.destination-listing-page {
  padding-top: 26px;
  padding-bottom: 72px;
}
.listing-breadcrumb {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 26px;
  color: #6c7d95;
  font-size: 13px;
  font-weight: 700;
}
.listing-breadcrumb svg { width: 14px; height: 14px; }
.listing-breadcrumb a { color: #0878f9; }
.listing-destination-picker { margin-bottom: 24px; }
.listing-destination-heading { margin-bottom: 22px; }
.listing-destination-heading > p {
  margin: 0 0 7px;
  color: #0878f9;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.listing-destination-heading h1 {
  margin: 0;
  color: #0a1930;
  font-size: clamp(34px, 4.3vw, 58px);
  line-height: 1.04;
  letter-spacing: -.04em;
}
.listing-destination-heading > span {
  display: block;
  margin-top: 10px;
  color: #65728a;
  font-size: clamp(16px, 1.7vw, 22px);
}
.listing-destination-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 430px));
  gap: 22px;
}
.listing-destination-card {
  position: relative;
  min-height: 225px;
  overflow: hidden;
  border: 3px solid transparent;
  border-radius: 30px;
  color: #fff;
  isolation: isolate;
  box-shadow: 0 12px 30px rgba(17, 55, 95, .13);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.listing-destination-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 38px rgba(17, 55, 95, .2);
}
.listing-destination-card.is-selected {
  border-color: #72d8d7;
  box-shadow: 0 0 0 7px rgba(114, 216, 215, .28), 0 18px 38px rgba(17, 55, 95, .18);
}
.listing-destination-card img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease, filter .3s ease;
}
.listing-destination-card:not(.is-selected) img { filter: grayscale(1) saturate(.4); }
.listing-destination-card:hover img { transform: scale(1.035); }
.listing-destination-shade {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(3, 18, 40, .04) 20%, rgba(3, 18, 40, .78) 100%);
}
.listing-destination-status {
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(20, 28, 40, .55);
  backdrop-filter: blur(10px);
  font-weight: 800;
}
.listing-destination-card.is-selected .listing-destination-status {
  color: #087e83;
  background: rgba(255, 255, 255, .94);
}
.listing-destination-copy {
  position: absolute;
  left: 26px;
  bottom: 22px;
  display: flex;
  align-items: flex-start;
  flex-direction: column;
  gap: 8px;
}
.listing-destination-copy strong { font-size: 30px; line-height: 1; }
.listing-destination-copy small {
  padding: 6px 12px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 999px;
  background: rgba(5, 22, 42, .5);
  font-size: 16px;
  font-weight: 800;
}
.listing-controls-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 30px 0 34px;
  padding: 14px;
  border: 1px solid #dfe8f3;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(21, 67, 116, .08);
}
.listing-controls-panel .listing-name-search,
.listing-controls-panel .toolbar { margin: 0; }
.listing-controls-panel .listing-name-search { min-height: 54px; }
.listing-controls-panel .toolbar { display: flex; gap: 8px; }
.listing-result-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 18px;
}
.listing-result-heading > div > p {
  margin: 0 0 4px;
  color: #0878f9;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.listing-result-heading h2 { margin: 0; color: #0a2b59; font-size: 26px; }
.listing-result-heading .result-count { margin: 0; color: #6c7d95; }

@media (max-width: 700px) {
  .destination-listing-page { padding-top: 18px; padding-bottom: 100px; }
  .listing-breadcrumb { margin-bottom: 20px; }
  .listing-destination-heading h1 { font-size: 38px; }
  .listing-destination-heading > span { max-width: 340px; font-size: 16px; line-height: 1.5; }
  .listing-destination-grid {
    display: flex;
    gap: 14px;
    margin-right: -16px;
    padding: 7px 16px 12px 7px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .listing-destination-grid::-webkit-scrollbar { display: none; }
  .listing-destination-card { flex: 0 0 78vw; min-height: 185px; border-radius: 24px; scroll-snap-align: start; }
  .listing-destination-copy { left: 20px; bottom: 18px; }
  .listing-destination-copy strong { font-size: 25px; }
  .listing-destination-status { top: 14px; right: 14px; padding: 7px 12px; font-size: 13px; }
  .listing-controls-panel { grid-template-columns: 1fr; margin-top: 20px; padding: 10px; border-radius: 18px; }
  .listing-controls-panel .toolbar { width: 100%; }
  .listing-controls-panel .toolbar button { flex: 1; min-height: 46px; }
  .listing-result-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  .listing-destination-card,
  .listing-destination-card img { transition: none; }
}

/* Compact destination chooser refinement */
.destination-listing-page { padding-top: 18px; }
.listing-breadcrumb { margin-bottom: 16px; }
.listing-destination-picker { margin-bottom: 16px; }
.listing-destination-heading { margin-bottom: 14px; }
.listing-destination-heading h1 { font-size: clamp(30px, 3vw, 40px); letter-spacing: -.035em; }
.listing-destination-heading > span { margin-top: 5px; font-size: clamp(14px, 1.3vw, 17px); }
.listing-destination-grid { grid-template-columns: repeat(2, minmax(0, 370px)); gap: 16px; }
.listing-destination-card { min-height: 166px; border-radius: 24px; }
.listing-destination-copy { left: 20px; bottom: 16px; gap: 6px; }
.listing-destination-copy strong { font-size: 25px; }
.listing-destination-copy small { padding: 4px 10px; font-size: 13px; }
.listing-destination-status { top: 13px; right: 13px; padding: 6px 12px; font-size: 13px; }
.listing-controls-panel { margin: 20px 0 28px; padding: 10px; border-radius: 18px; }
.property-image--pending img,
.detail-cover--pending > img { object-fit: cover; }
.property-image--pending .synced-data-badge { color: #7a4b00; background: #fff2c7; }
.listing-result-heading small { display:block; margin-top:4px; color:#6c7d95; font-size:13px; font-weight:500; }
.listing-pagination { display:flex; justify-content:center; align-items:center; gap:8px; margin:32px 0 12px; }
.listing-pagination a { display:grid; min-width:42px; min-height:42px; place-items:center; padding:0 12px; border:1px solid #dce7f3; border-radius:12px; background:#fff; color:#0a2b59; font-weight:750; text-decoration:none; transition:background .2s ease,color .2s ease,transform .2s ease; }
.listing-pagination a:hover:not(.is-disabled) { transform:translateY(-2px); border-color:#0878f9; color:#0878f9; }
.listing-pagination a.is-current { border-color:#0878f9; background:#0878f9; color:#fff; }
.listing-pagination a.is-disabled { pointer-events:none; opacity:.38; }

@media (max-width: 700px) {
  .listing-destination-heading h1 { font-size: 32px; }
  .listing-destination-grid { margin-top: 2px; }
  .listing-destination-card { min-height: 160px; }
  .listing-pagination { gap:6px; overflow-x:auto; justify-content:flex-start; padding:2px; }
  .listing-pagination a { min-width:40px; min-height:40px; padding:0 10px; }
}

/* Cross-route trust and identity layer ------------------------------------- */
.site-header{position:relative;z-index:20;height:98px!important;border:0!important;background:#fff!important;box-shadow:0 0 0 100vmax #fff,0 1px 0 #e4ebf4!important;clip-path:inset(0 -100vmax)!important}
.site-header .brand-wordmark{flex:0 0 158px;width:158px;max-width:158px;height:54px!important}
.site-header .brand-logo{filter:brightness(0) saturate(100%) invert(34%) sepia(93%) saturate(2160%) hue-rotate(201deg) brightness(102%) contrast(99%)}
.site-header .desktop-links{display:flex;align-items:center;gap:18px;margin:0 auto 0 34px}
.site-header .desktop-links a{position:relative;min-height:44px;display:flex;align-items:center;padding:0!important;border-radius:0!important;background:transparent!important;color:#17365f!important;font-size:14px;font-weight:650;text-decoration:none;white-space:nowrap}
.site-header .desktop-links a:after{content:"";position:absolute;right:50%;bottom:5px;left:50%;height:2px;border-radius:2px;background:#0878f9;transition:right .2s ease,left .2s ease}
.site-header .desktop-links a:hover,.site-header .desktop-links a.active{color:#0878f9!important}
.site-header .desktop-links a:hover:after,.site-header .desktop-links a.active:after{right:0;left:0}
.site-header .header-call{min-height:46px;padding:0 14px;border:1px solid #c8e0ff!important;border-radius:999px;background:#edf6ff!important;color:#0878f9!important;box-shadow:0 5px 16px rgba(8,120,249,.1)!important}
.site-header .header-call:after{border-color:rgba(8,120,249,.22)}
.listing-trust-bar{min-height:74px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;margin:0 0 22px;padding:13px 15px;border:1px solid #cfe2f5;border-radius:18px;background:linear-gradient(110deg,#fff,#eff7ff 64%,#eaf8f5);box-shadow:0 8px 22px rgba(24,75,130,.06)}
.listing-trust-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:#e7f7f3;color:#0c8c78}
.listing-trust-icon .ui-icon{width:23px;height:23px}
.listing-trust-bar>div{min-width:0}
.listing-trust-bar strong,.listing-trust-bar small{display:block}
.listing-trust-bar strong{color:#123a70;font-size:14px}
.listing-trust-bar small{margin-top:3px;color:#687d97;font-size:12px;line-height:1.4}
.listing-trust-bar>a{min-height:44px;display:flex;align-items:center;gap:7px;padding:0 13px;border:1px solid #c7dcf5;border-radius:12px;background:#fff;color:#0878f9;font-size:13px;font-weight:750;text-decoration:none;white-space:nowrap}
.listing-trust-bar>a .ui-icon{width:18px;height:18px}
.detail-trust-note{display:flex;align-items:flex-start;gap:12px;margin:14px 0 0;padding:14px 16px;border:1px solid #cde4dd;border-radius:16px;background:#eefaf7;color:#145a4e}
.detail-trust-note>.ui-icon{flex:0 0 25px;width:25px;height:25px}
.detail-trust-note strong{display:block;color:#145a4e;font-size:14px}
.detail-trust-note p{margin:3px 0 0;color:#4f706c;font-size:12px;line-height:1.5}
.detail-booking-person{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:15px;border-bottom:1px solid #e1e9f3}
.detail-booking-person>img{width:50px;height:50px;border-radius:50%;object-fit:cover}
.detail-booking-person>span{display:flex;flex-direction:column}
.detail-booking-person strong{color:#11366d;font-size:14px}
.detail-booking-person small{margin-top:2px!important;color:#71829a!important;font-size:11px!important;text-align:left!important}
.site-footer{padding:38px 0 0!important;background:#0b2e61!important;color:#fff!important;border:0!important}
.site-footer .site-footer-grid{display:grid!important;grid-template-columns:1.2fr .8fr .7fr;align-items:start!important;gap:44px!important}
.site-footer .site-footer-brand .brand-wordmark{display:block;width:150px;height:46px}
.site-footer .site-footer-brand .brand-logo{width:150px!important;height:46px!important;object-fit:contain;object-position:left center}
.site-footer p{margin:10px 0 0!important;color:#bfd0e7!important;font-size:13px!important;line-height:1.6;text-align:left!important}
.site-footer-operator{display:flex;align-items:center;gap:12px}
.site-footer-operator>img{width:56px;height:56px;border:2px solid rgba(255,255,255,.72);border-radius:50%;object-fit:cover}
.site-footer-operator>span{display:flex;flex-direction:column}
.site-footer-operator strong,.site-footer-links>strong{color:#fff;font-size:14px}
.site-footer-operator small{margin-top:3px;color:#bfd0e7;font-size:11px}
.site-footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.site-footer-links>strong{margin-bottom:3px}
.site-footer-links a{min-height:28px;color:#fff;font-size:13px;font-weight:650;text-decoration:none}
.site-footer-links a:hover{text-decoration:underline}
.site-footer-note{margin-top:26px;padding:14px 0 18px;border-top:1px solid rgba(255,255,255,.16);color:#aebfda;font-size:11px;line-height:1.5}
@media(max-width:1080px){.site-header .desktop-links{gap:11px;margin-left:22px}.site-header .desktop-links a{font-size:12px}.site-footer .site-footer-grid{gap:26px}}
@media(min-width:700px) and (max-width:900px){.site-header{height:76px!important}.site-header .desktop-links{display:none}.site-header .header-call{margin-left:auto}}
@media(max-width:699px){
  .site-header{height:76px!important;padding-inline:16px!important}
  .site-header .brand-wordmark{flex-basis:132px;width:132px;max-width:132px;height:46px!important}
  .site-header .desktop-links{display:none}
  .site-header .header-call{min-width:44px;min-height:44px;padding:0 11px}
  .site-header .header-call span{display:inline;font-size:0}
  .site-header .header-call span:after{content:"Gọi ngay";font-size:12px}
  .listing-trust-bar{grid-template-columns:40px minmax(0,1fr);margin-bottom:18px;padding:12px}
  .listing-trust-bar>a{grid-column:1/-1;justify-content:center}
  .detail-trust-note{margin-inline:0}
  .site-footer{padding:30px 0 76px!important}
  .site-footer .site-footer-grid{grid-template-columns:1fr;gap:23px!important}
  .site-footer-note{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){.site-header .desktop-links a:after{transition:none}}

/* Editorial news experience */
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 14px;border-radius:8px;background:#172033;color:#fff;font-weight:700;transform:translateY(-140%)}.skip-link:focus{transform:translateY(0);outline:3px solid #7fa4ff;outline-offset:2px}
.news-page,.article-page{background:#fafafa;color:#18181b}.news-hero{position:relative;overflow:hidden;padding:52px 0 66px;background:#eef4ff;border-bottom:1px solid #dfe7f2}.news-hero:after{position:absolute;right:-70px;bottom:-145px;width:380px;height:380px;border:70px solid rgba(49,82,237,.08);border-radius:50%;content:""}.news-hero .shell{position:relative;z-index:1}.news-eyebrow{margin:28px 0 10px;color:#3152ed;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.news-hero h1{max-width:760px;margin:0;color:#151821;font-family:"Newsreader",Georgia,serif;font-size:clamp(2.8rem,7vw,5.8rem);font-weight:600;line-height:.94;letter-spacing:-.055em}.news-hero h1 em{color:#3152ed;font-weight:500}.news-hero>div>p:last-child{max-width:650px;margin:22px 0 0;color:#4e5a6c;font-size:1.08rem;line-height:1.65}.news-content{padding-top:56px;padding-bottom:88px}.news-featured{margin-bottom:64px}.news-featured .news-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);min-height:450px}.news-card{overflow:hidden;border:1px solid #e2e5ea;border-radius:18px;background:#fff}.news-card-image{display:block;overflow:hidden;background:#e8ecf0}.news-card-image img{display:block;width:100%;height:100%;min-height:230px;object-fit:cover;transition:transform .25s ease}.news-card:hover .news-card-image img{transform:scale(1.015)}.news-card-body{display:flex;flex-direction:column;align-items:flex-start;padding:26px}.news-featured .news-card-body{justify-content:center;padding:clamp(28px,5vw,56px)}.news-category{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#edf2ff;color:#3152ed;font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.news-card h2{margin:14px 0 10px;font-family:"Newsreader",Georgia,serif;font-size:1.6rem;line-height:1.14;letter-spacing:-.025em}.news-featured .news-card h2{font-size:clamp(2rem,4vw,3rem)}.news-card h2 a{color:#17191f;text-decoration:none}.news-card p{display:-webkit-box;margin:0 0 22px;overflow:hidden;color:#596273;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:3}.news-card-meta{display:flex;gap:12px;margin-top:auto;color:#7b8492;font-size:.78rem}.news-card-meta span:before{margin-right:12px;content:"·"}.news-section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.news-section-head span{color:#3152ed;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.news-section-head h2{margin:5px 0 0;font-family:"Newsreader",Georgia,serif;font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.035em}.news-section-head>a{color:#3152ed;font-weight:700}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.news-grid .news-card{display:flex;min-width:0;flex-direction:column}.news-grid .news-card-image{aspect-ratio:3/2}.news-empty,.news-error{min-height:50vh;display:grid;place-content:center;text-align:center}
.article-header{max-width:910px;padding-top:54px;padding-bottom:34px}.article-header .service-breadcrumb{margin-bottom:36px}.article-header h1{max-width:880px;margin:18px 0 16px;font-family:"Newsreader",Georgia,serif;font-size:clamp(2.65rem,6vw,5rem);font-weight:600;line-height:1.02;letter-spacing:-.05em}.article-deck{max-width:760px;margin:0;color:#586274;font-size:1.12rem;line-height:1.7}.article-byline{display:flex;align-items:center;gap:12px;margin-top:28px}.article-byline img{width:48px;height:48px;border-radius:50%;object-fit:cover}.article-byline span{display:grid;gap:3px}.article-byline small{color:#717989}.article-cover{overflow:hidden;margin-bottom:54px;border-radius:20px;background:#e8ecf0}.article-cover img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.article-layout{display:grid;grid-template-columns:250px minmax(0,720px);justify-content:center;gap:56px;padding-bottom:94px}.article-layout aside{min-width:0}.article-toc{position:sticky;top:110px;padding:18px;border-left:3px solid #3152ed;background:#f2f5fb}.article-toc>strong{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.article-toc ol{display:grid;gap:8px;margin:12px 0 0;padding-left:20px}.article-toc a{color:#48566c;font-size:.86rem;line-height:1.4;text-decoration:none}.article-toc a:hover{color:#3152ed;text-decoration:underline}.article-fact-note{display:flex;gap:11px;margin-top:18px;padding:16px;border:1px solid #cde8df;border-radius:12px;background:#f2fbf8;color:#155f4e}.article-fact-note .ui-icon{flex:0 0 22px;width:22px}.article-fact-note span{display:grid;gap:4px}.article-fact-note small{color:#3f6f65;line-height:1.45}.article-prose{min-width:0;color:#272a31;font-family:"Newsreader",Georgia,serif;font-size:1.17rem;line-height:1.78}.article-prose>p:first-child{font-size:1.28rem}.article-prose h2{scroll-margin-top:100px;margin:2.25em 0 .65em;color:#15171d;font-size:2rem;line-height:1.15;letter-spacing:-.025em}.article-prose h3{scroll-margin-top:100px;margin:1.7em 0 .55em;color:#20232a;font-size:1.42rem;line-height:1.25}.article-prose p{margin:0 0 1.25em}.article-prose ul,.article-prose ol{margin:0 0 1.4em;padding-left:1.4em}.article-prose li{margin:.45em 0;padding-left:.2em}.article-prose a{color:#2453d4;text-decoration-thickness:1px;text-underline-offset:3px}.article-prose blockquote{margin:1.6em 0;padding:20px 24px;border-left:4px solid #3152ed;background:#f1f4fb;color:#3e4960}.article-cta{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-top:50px;padding:24px;border-radius:16px;background:#172033;color:#fff;font-family:Roboto,Arial,sans-serif}.article-cta>span{display:grid;width:46px;height:46px;place-items:center;border-radius:12px;background:#3152ed}.article-cta .ui-icon{width:24px}.article-cta h2{margin:0 0 4px;color:#fff;font-family:Roboto,Arial,sans-serif;font-size:1.02rem}.article-cta p{margin:0;color:#bbc5d7;font-size:.86rem;line-height:1.45}.article-cta a{padding:11px 14px;border-radius:9px;background:#fff;color:#172033;font-size:.8rem;font-weight:800;text-decoration:none;white-space:nowrap}
.admin-article-modal{width:min(920px,100%)}.admin-article-modal .admin-modal-body{display:grid;gap:18px}.admin-article-modal .admin-description input{width:100%;min-height:44px;padding:0 12px}.admin-featured-check{display:flex!important;align-items:center;gap:10px;margin-top:16px}.admin-featured-check input{width:18px!important;min-height:18px!important;accent-color:#1769e0}.admin-seo-score{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding:14px 16px;border:1px solid #f0cf82;border-radius:10px;background:#fff9e8;color:#744d00}.admin-seo-score[data-score="100"],.admin-seo-score[data-score="85"]{border-color:#9ed5b1;background:#edf9f1;color:#146b35}.admin-seo-score span{font-size:.8rem}.admin-seo-pill{display:inline-flex;min-width:62px;justify-content:center;padding:5px 8px;border-radius:999px;background:#fff2cc;color:#795100;font-size:.72rem;font-weight:800}.admin-seo-pill[data-score="100"],.admin-seo-pill[data-score="85"]{background:#dcf5e7;color:#147044}.admin-badge--scheduled{background:#e7f1ff;color:#175eae}.admin-badge--archived{background:#eceff3;color:#596579}.admin-news-toolbar{justify-content:space-between}.admin-news-toolbar h2{margin:0 0 4px}.admin-news-toolbar p{margin:0;color:#67738a;font-size:.82rem}
.admin-table td>small{display:block;margin-top:3px;color:#738096}
.admin-news-table{min-width:940px}.admin-block-builder-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:14px 0 10px;border-top:1px solid #e3e9f0}.admin-block-builder-head>div:first-child{display:grid;gap:3px;color:#24364f}.admin-block-builder-head small{color:#6d798b;font-size:.75rem}.admin-block-builder-head>div:last-child{display:flex;gap:8px}.admin-block-builder-head button,.admin-content-block-actions button{min-height:36px;padding:0 11px;border:1px solid #cbd8e8;border-radius:8px;background:#fff;color:#23436a;font-weight:750;cursor:pointer}.admin-block-builder-head button:last-child{border-color:#1769e0;background:#1769e0;color:#fff}.admin-content-blocks{display:grid;gap:12px}.admin-content-block{overflow:hidden;border:1px solid #d8e2ed;border-radius:12px;background:#fff}.admin-content-block>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-bottom:1px solid #e6ebf1;background:#f7f9fc;color:#24364f;font-size:.78rem}.admin-content-block-actions{display:flex;gap:6px}.admin-content-block-actions button{min-width:36px;min-height:34px;padding:0 9px}.admin-content-block-actions .danger{color:#b42318}.admin-content-block>textarea{min-height:180px;border:0!important;border-radius:0!important;box-shadow:none!important}.admin-image-block-grid{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;padding:14px}.admin-image-block-grid>img{width:100%;height:150px;border-radius:9px;background:#eef2f6;object-fit:cover}.admin-image-block-grid>div{display:grid;gap:10px}.admin-article-preview-wrap{margin-top:16px;border:1px solid #d8e2ed;border-radius:12px;background:#fff}.admin-article-preview-wrap summary{padding:13px 15px;color:#193b6a;font-weight:800;cursor:pointer}.admin-article-preview{max-width:680px;margin:0 auto;padding:22px;font-size:1rem}.admin-article-preview:empty:before{color:#7a8595;content:"Nội dung xem trước sẽ xuất hiện tại đây."}.admin-article-preview .article-inline-image{margin:24px 0}.admin-article-preview .article-inline-image img{display:block;width:100%;height:auto;border-radius:10px}.admin-article-preview h2{font-size:1.5rem}.admin-article-preview h3{font-size:1.2rem}
.admin-audit-overview{margin-bottom:18px;padding:20px;border:1px solid #d9e3ef;border-radius:14px;background:#fff;box-shadow:0 5px 20px rgba(25,51,84,.045)}.admin-audit-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.admin-audit-overview-head p{margin:0 0 4px;color:#1769e0;font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.admin-audit-overview-head h2{margin:0;color:#172b46;font-size:20px}.admin-audit-overview-head>div>span{display:block;margin-top:5px;color:#66758a;font-size:12px}.admin-audit-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.admin-audit-legend span{display:inline-flex;align-items:center;gap:6px;color:#4f5f73;font-size:11px;font-weight:700}.admin-audit-legend span:before{width:8px;height:8px;border-radius:50%;content:""}.admin-audit-legend .is-critical:before{background:#d92d20}.admin-audit-legend .is-warning:before{background:#d97706}.admin-audit-legend .is-good:before{background:#178653}.admin-audit-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.admin-audit-metrics button{display:grid;grid-template-columns:1fr auto;gap:3px 12px;min-height:82px;padding:13px 14px;border:1px solid #dce4ed;border-radius:10px;background:#f8fafc;color:#31435c;text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.admin-audit-metrics button:hover,.admin-audit-metrics button.is-active{border-color:#84afe9;background:#f1f6ff;box-shadow:0 0 0 3px rgba(23,105,224,.08)}.admin-audit-metrics button:focus-visible,.admin-audit-filters button:focus-visible,.admin-audit-pill:focus-visible{outline:3px solid rgba(23,105,224,.24);outline-offset:2px}.admin-audit-metrics button>span{font-size:12px;font-weight:800}.admin-audit-metrics button>strong{grid-row:1/3;grid-column:2;color:#132d52;font-size:27px;font-variant-numeric:tabular-nums}.admin-audit-metrics button>small{color:#6a788b;font-size:11px}.admin-audit-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 12px}.admin-audit-toolbar .admin-search{flex:1;max-width:460px}.admin-audit-filters{display:flex;gap:5px;padding:4px;border:1px solid #dce4ed;border-radius:10px;background:#f4f7fa}.admin-audit-filters button{min-height:36px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#56667a;font-size:11px;font-weight:800;cursor:pointer}.admin-audit-filters button span{display:inline-flex;min-width:21px;justify-content:center;margin-left:4px;padding:2px 5px;border-radius:999px;background:#e5ebf2;font-size:10px}.admin-audit-filters button.is-active{background:#fff;color:#1769e0;box-shadow:0 1px 4px rgba(25,51,84,.12)}.admin-audit-pill{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:5px;min-height:36px;padding:5px 8px;border:1px solid transparent;border-radius:8px;background:#eef2f6;cursor:pointer}.admin-audit-pill strong{font-size:13px;font-variant-numeric:tabular-nums}.admin-audit-pill span{font-size:10px;font-weight:750;white-space:nowrap}.admin-audit-pill--critical{border-color:#f3bbb5;background:#fff1f0;color:#a8281d}.admin-audit-pill--warning{border-color:#f0d09a;background:#fff8e8;color:#895500}.admin-audit-pill--good{border-color:#afd9c3;background:#eef9f3;color:#12683d}.admin-audit-pill:hover{filter:brightness(.98)}.admin-audit-modal{width:min(680px,calc(100vw - 32px))}.admin-audit-modal-body{min-height:0;overflow-y:auto;padding:20px}.admin-audit-score{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid #dce4ed;border-radius:11px;background:#f8fafc}.admin-audit-score>strong{font-size:32px;font-variant-numeric:tabular-nums}.admin-audit-score>span{display:grid;gap:2px}.admin-audit-score small{color:#6c7888}.admin-audit-score--critical>strong{color:#b42318}.admin-audit-score--warning>strong{color:#a15f00}.admin-audit-score--good>strong{color:#147247}.admin-audit-group{margin-top:18px}.admin-audit-group h3{display:flex;align-items:center;gap:7px;margin:0 0 8px;color:#263951;font-size:13px}.admin-audit-group h3 span{padding:2px 6px;border-radius:999px;background:#e9eef4;font-size:10px}.admin-audit-issue{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid #e8edf2}.admin-audit-issue>span{display:grid;flex:0 0 24px;width:24px;height:24px;place-items:center;border-radius:7px;font-size:11px;font-weight:900}.admin-audit-issue--critical>span{background:#fee4e2;color:#b42318}.admin-audit-issue--warning>span{background:#fff0cf;color:#8a5700}.admin-audit-issue strong{display:block;color:#263951;font-size:12px}.admin-audit-issue p{margin:3px 0 0;color:#657389;font-size:11px;line-height:1.45}.admin-audit-limit,.admin-audit-perfect{margin-top:18px;padding:12px 14px;border-radius:9px;background:#edf5ff;color:#244d7e}.admin-audit-limit strong,.admin-audit-perfect strong{font-size:12px}.admin-audit-limit p,.admin-audit-perfect p{margin:4px 0 0;font-size:11px;line-height:1.5}.admin-audit-perfect{background:#edf9f2;color:#17623e}

/* UI/UX Pro Max — editorial workspace */
.admin-editor-meta{display:flex;align-items:center;gap:9px;margin-top:5px}.admin-editor-meta small{margin-top:0}.admin-editor-meta>[data-admin-save-state]{flex:0 0 auto;padding-left:9px;border-left:1px solid #dce4ee;color:#28714b;font-size:11px;font-weight:750}.admin-editor-meta>[data-admin-save-state].is-dirty{color:#9a6200}.admin-editor-workspace>.admin-modal-actions .btn:disabled{cursor:wait;opacity:.55}.admin-content-block-actions button:disabled{cursor:not-allowed;opacity:.38}
.admin-article-modal{width:min(1280px,calc(100vw - 32px));height:min(920px,calc(100dvh - 32px));max-height:none;border-radius:18px;background:#f4f7fb}.admin-editor-head{min-height:82px;padding:16px 22px;background:#fff}.admin-editor-head>div{min-width:0}.admin-editor-head p{margin:0 0 5px;color:#1769e0;font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.admin-editor-head small{display:block;max-width:760px;margin-top:5px;overflow:hidden;color:#69778b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.admin-editor-title-row{display:flex;align-items:center;gap:10px;min-width:0}.admin-editor-title-row h2{overflow:hidden;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.admin-editor-status{flex:0 0 auto;padding:4px 8px;border:1px solid #c9daf6;border-radius:999px;background:#eff5ff;color:#245b9d;font-size:10px;font-weight:800}.admin-editor-head>button{width:44px;height:44px;transition:background .18s ease,color .18s ease}.admin-editor-head>button:hover{background:#e8eef6;color:#172b46}.admin-editor-head>button:focus-visible{outline:3px solid rgba(23,105,224,.28);outline-offset:2px}
.admin-article-modal .admin-editor-workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-template-rows:minmax(0,1fr) auto;gap:0;overflow:hidden;padding:0;background:#f4f7fb}.admin-editor-main,.admin-editor-inspector{min-height:0;overflow-y:auto;scrollbar-gutter:stable}.admin-editor-main{grid-row:1;grid-column:1;margin:0!important;padding:22px 24px 40px!important;border:0!important;border-right:1px solid #dce4ee!important;border-radius:0!important;background:#fff!important}.admin-editor-inspector{grid-row:1;grid-column:2;padding:18px;background:#f4f7fb}.admin-editor-side{gap:14px!important;margin:0!important;padding:16px!important;border:1px solid #dce4ee!important;border-radius:12px!important;background:#fff!important;box-shadow:0 5px 18px rgba(25,51,84,.045)}.admin-editor-side+.admin-editor-side{margin-top:14px!important}.admin-editor-workspace>.admin-modal-actions{grid-row:2;grid-column:1/-1;z-index:3;margin:0!important;padding:12px 20px;border-top:1px solid #d8e1eb;background:rgba(255,255,255,.98);box-shadow:0 -8px 24px rgba(25,51,84,.06)}.admin-editor-workspace>.admin-modal-actions .btn{min-height:44px}.admin-editor-workspace>.admin-modal-actions .btn.primary{min-width:150px}
.admin-editor-section-title{display:flex;align-items:flex-start;gap:10px}.admin-editor-section-title>span{display:grid;flex:0 0 30px;width:30px;height:30px;place-items:center;border-radius:8px;background:#eaf2ff;color:#1769e0;font-size:10px;font-weight:900}.admin-editor-section-title h3{font-size:15px}.admin-editor-section-title p{margin-top:2px}.admin-editor-main>.admin-form-section-head{margin-bottom:18px}.admin-editor-main>label>span,.admin-editor-main>.admin-form-grid label>span,.admin-editor-side label>span{font-size:12px;font-weight:750}.admin-editor-side>.admin-form-section-head{margin-bottom:2px}.admin-editor-side>.admin-form-grid{grid-template-columns:1fr!important;gap:12px!important}.admin-editor-side>label{display:block;margin:0!important}.admin-editor-side input,.admin-editor-side select{min-height:42px!important}.admin-editor-side textarea{min-height:84px}.admin-editor-main input:focus-visible,.admin-editor-main select:focus-visible,.admin-editor-main textarea:focus-visible,.admin-editor-side input:focus-visible,.admin-editor-side select:focus-visible,.admin-editor-side textarea:focus-visible{outline:0;border-color:#1769e0;box-shadow:0 0 0 3px rgba(23,105,224,.14)}.admin-editor-main input[aria-invalid="true"],.admin-editor-side input[aria-invalid="true"]{border-color:#d92d20;background:#fff8f7}
.admin-block-builder-head{position:sticky;z-index:2;top:-22px;margin:22px -24px 12px;padding:12px 24px;border-top:1px solid #e3e9f0;border-bottom:1px solid #e3e9f0;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.admin-block-builder-head>div:first-child{display:flex;align-items:center;gap:12px}.admin-editor-metrics{display:flex;gap:6px}.admin-editor-metrics small{padding:3px 7px;border-radius:999px;background:#eef3f8;color:#55657b;font-weight:700}.admin-block-builder-head button,.admin-content-block-actions button{min-height:40px;transition:border-color .18s ease,background .18s ease,color .18s ease}.admin-block-builder-head button:hover,.admin-content-block-actions button:hover{border-color:#8eb6ed;background:#eef5ff}.admin-block-builder-head button:focus-visible,.admin-content-block-actions button:focus-visible{outline:3px solid rgba(23,105,224,.22);outline-offset:2px}.admin-block-builder-head button:last-child:hover{background:#0e5fcf;color:#fff}.admin-content-block{border-color:#d5e0eb;border-radius:11px;box-shadow:0 2px 8px rgba(25,51,84,.035);transition:border-color .18s ease,box-shadow .18s ease}.admin-content-block:focus-within{border-color:#91b9ef;box-shadow:0 0 0 3px rgba(23,105,224,.08)}.admin-content-block>header{min-height:48px;padding:7px 10px 7px 14px}.admin-content-block>textarea{min-height:210px;padding:16px!important;font-family:Roboto,Arial,sans-serif;font-size:14px;line-height:1.65}.admin-content-block-actions button{min-width:52px}.admin-content-block-actions .danger:hover{border-color:#f1b5ae;background:#fff1f0;color:#b42318}.admin-image-block-grid{grid-template-columns:220px minmax(0,1fr);padding:16px}.admin-image-block-grid>img{height:166px;border:1px solid #dce4ee}.admin-article-preview-wrap{overflow:hidden;margin-top:18px;border-color:#cbd9e8}.admin-article-preview-wrap summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;gap:14px;padding:11px 15px;background:#f8fafc;list-style-position:inside}.admin-article-preview-wrap summary small{color:#6e7b8e;font-size:11px;font-weight:500}.admin-article-preview-wrap[open] summary{border-bottom:1px solid #dce4ee}.admin-cover-field{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:end;gap:10px}.admin-cover-field>img{width:92px;height:72px;border:1px solid #d8e1eb;border-radius:8px;background:#edf1f5;object-fit:cover}.admin-cover-field label{min-width:0}.admin-seo-score{align-items:flex-start;flex-direction:column;gap:4px;margin-top:2px;padding:12px}.admin-seo-score strong{font-size:13px}.admin-seo-score span{line-height:1.45}.admin-editor-publish .admin-featured-check{align-items:flex-start;margin:0;padding:11px;border:1px solid #dce5ee;border-radius:9px;background:#f8fafc}.admin-editor-publish .admin-featured-check input{flex:0 0 18px;margin-top:1px}
@media(max-width:1024px){.admin-article-modal{width:min(900px,calc(100vw - 24px));height:calc(100dvh - 24px)}.admin-article-modal .admin-editor-workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;overflow-y:auto}.admin-editor-main,.admin-editor-inspector{overflow:visible}.admin-editor-main{grid-row:auto;grid-column:1;padding:18px 20px 28px!important;border-right:0!important}.admin-editor-inspector{grid-row:auto;grid-column:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 20px 24px;background:#fff}.admin-editor-side+.admin-editor-side{margin-top:0!important}.admin-editor-workspace>.admin-modal-actions{position:sticky;bottom:0}.admin-block-builder-head{top:0;margin-inline:-20px;padding-inline:20px}}
@media(max-width:680px){.admin-article-modal{width:100%;height:94dvh;max-height:94dvh;border-radius:18px 18px 0 0}.admin-editor-head{min-height:72px;padding:12px 16px}.admin-editor-title-row h2{font-size:17px}.admin-editor-status{display:none}.admin-editor-head small{max-width:260px}.admin-editor-main{padding:16px!important}.admin-editor-inspector{grid-template-columns:1fr;padding:0 16px 20px}.admin-block-builder-head{align-items:stretch;top:0;margin-inline:-16px;padding:10px 16px}.admin-block-builder-head>div:first-child{justify-content:space-between}.admin-block-builder-head>div:last-child{width:100%}.admin-block-builder-head button{min-height:44px}.admin-content-block>header{align-items:center;flex-direction:row}.admin-content-block-actions{width:auto}.admin-content-block-actions button{min-width:56px;min-height:44px;flex:0 0 auto}.admin-image-block-grid{grid-template-columns:1fr}.admin-image-block-grid>img{height:210px}.admin-article-preview-wrap summary{align-items:flex-start;flex-direction:column}.admin-editor-workspace>.admin-modal-actions{display:grid;grid-template-columns:1fr 1fr;padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.admin-editor-workspace>.admin-modal-actions .btn.primary{grid-row:1;grid-column:1/-1}.admin-cover-field{grid-template-columns:84px minmax(0,1fr)}.admin-cover-field>img{width:84px;height:66px}}
@media(max-width:900px){.news-featured .news-card{grid-template-columns:1fr}.news-featured .news-card-image{aspect-ratio:16/9}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:1fr;gap:26px}.article-layout aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.article-toc{position:static}.article-fact-note{margin-top:0}.article-prose{max-width:720px;margin:auto}}
@media(max-width:640px){.news-hero{padding:30px 0 46px}.news-hero h1{font-size:2.85rem}.news-content{padding-top:28px}.news-featured{margin-bottom:42px}.news-featured .news-card-body{padding:24px}.news-grid{grid-template-columns:1fr}.news-section-head{align-items:flex-start;flex-direction:column}.article-header{padding-top:30px}.article-header .service-breadcrumb{margin-bottom:24px}.article-header h1{font-size:2.55rem}.article-cover{margin-inline:0;margin-bottom:30px;border-radius:0}.article-layout{padding-inline:18px}.article-layout aside{grid-template-columns:1fr}.article-prose{font-size:1.08rem}.article-prose h2{font-size:1.72rem}.article-cta{grid-template-columns:auto 1fr}.article-cta a{grid-column:1/-1;text-align:center}.admin-seo-score{align-items:flex-start;flex-direction:column}.admin-article-modal .admin-modal-actions{grid-template-columns:1fr 1fr}.admin-article-modal .admin-modal-actions .btn.primary{grid-row:1;grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.news-card-image img{transition:none}.news-card:hover .news-card-image img{transform:none}}
@media(max-width:640px){.admin-article-preview{padding:16px}}
@media(max-width:760px){.admin-audit-overview{margin-inline:-4px;padding:16px}.admin-audit-overview-head{flex-direction:column}.admin-audit-legend{justify-content:flex-start}.admin-audit-metrics{grid-template-columns:1fr}.admin-audit-metrics button{min-height:72px}.admin-audit-toolbar{align-items:stretch;flex-direction:column}.admin-audit-toolbar .admin-search{max-width:none}.admin-audit-filters{overflow-x:auto}.admin-audit-filters button{min-height:44px;white-space:nowrap}.admin-audit-modal{width:100%;max-height:92dvh}.admin-audit-modal-body{padding:16px}}
/* Editor scroll architecture: one content viewport + persistent action bar */
.admin-article-modal .admin-editor-workspace{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;min-width:0;overflow:hidden}.admin-editor-scroll{grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) 360px;min-width:0;min-height:0;overflow:hidden}.admin-editor-scroll>.admin-editor-main{grid-row:auto;grid-column:auto;min-width:0}.admin-editor-scroll>.admin-editor-inspector{grid-row:auto;grid-column:auto;min-width:0}.admin-editor-workspace>.admin-modal-actions{grid-row:2;grid-column:1;min-width:0;position:static}
@media(max-width:1024px){.admin-article-modal .admin-editor-workspace{overflow:hidden}.admin-editor-scroll{display:block;min-height:0;overflow-y:auto;background:#fff}.admin-editor-scroll>.admin-editor-main,.admin-editor-scroll>.admin-editor-inspector{overflow:visible}.admin-editor-workspace>.admin-modal-actions{position:static}}
@media(max-width:680px){.admin-article-modal{box-sizing:border-box;max-width:100vw;overflow:hidden}.admin-editor-head>div{max-width:calc(100% - 52px)}.admin-editor-title-row h2{min-width:0}.admin-editor-scroll{width:100%;max-width:100%}.admin-editor-scroll>.admin-editor-main{width:100%;max-width:100%;padding:16px!important}.admin-editor-scroll>.admin-editor-inspector{display:grid;width:100%;max-width:100%;grid-template-columns:minmax(0,1fr);padding:0 16px 20px}.admin-editor-workspace>.admin-modal-actions{width:100%;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.admin-editor-head>button,.admin-block-builder-head button,.admin-content-block-actions button,.admin-content-block{transition:none}}

/* Brand typography and shared header rhythm across every non-V2 route. */
*,*::before,*::after{font-family:"Baloo 2",sans-serif!important}
.site-header{height:122px!important;width:1120px!important;max-width:calc(100% - 32px)!important;margin-inline:auto!important;padding-inline:0!important}
.site-header .brand-wordmark{flex:0 0 190px;width:190px;max-width:190px;height:100px!important}
.site-header .brand-logo{width:92px!important;height:92px!important;max-width:92px!important;object-fit:cover!important;border-radius:22px}
.site-header .desktop-links{gap:26px;margin-left:18px}
@media(max-width:699px){.site-header{width:100%;height:86px!important;padding-inline:16px!important}.site-header .brand-wordmark{flex-basis:70px;width:70px;max-width:70px;height:70px!important}.site-header .brand-logo{width:64px!important;height:64px!important;max-width:64px!important;border-radius:17px}}

/* Mobile-first containment: restore the shared header and shell gutters on phones. */
@media(max-width:699px){
  .site-header{width:100%!important;max-width:none!important;height:76px!important;margin-inline:0!important;padding-inline:12px!important}
  .site-header .brand-wordmark{flex:0 0 60px!important;width:60px!important;max-width:60px!important;height:60px!important}
  .site-header .brand-logo{width:56px!important;height:56px!important;max-width:56px!important;border-radius:15px}
  .site-header .desktop-links{display:none!important}
  .site-header .header-call{min-width:44px;min-height:44px;padding-inline:10px}
  .site-header .header-call span{font-size:0}
  .site-header .header-call span:after{font-size:12px}
  .site-header~main .shell,
  .site-header~.site-footer .shell{width:calc(100% - 24px);max-width:none;margin-inline:auto}
}
@media(min-width:700px) and (max-width:900px){
  .site-header{width:100%!important;max-width:none!important;height:76px!important;margin-inline:0!important;padding-inline:16px!important}
  .site-header .brand-wordmark{flex:0 0 70px!important;width:70px!important;max-width:70px!important;height:70px!important}
  .site-header .brand-logo{width:64px!important;height:64px!important;max-width:64px!important;border-radius:17px}
  .site-header .desktop-links{display:none!important}
  .site-header .header-call{margin-left:auto;min-height:44px}
}

/* Magazine editorial refinement — inspired by modern Vietnamese travel media. */
.news-magazine,.article-magazine{background:#fff}
.news-magazine:focus,.article-magazine:focus{outline:none}
.news-category-header{padding:44px 0 40px;border-bottom:1px solid #e7e9ee;background:#f3f9ff url("/assets/elements/news-hero-halong.webp") center/cover no-repeat;text-align:center}
.news-category-header .service-breadcrumb{justify-content:flex-start;margin-bottom:32px;text-align:left}
.news-category-header .news-eyebrow{margin:0 0 9px;color:#3152ed;font-size:.72rem;letter-spacing:.14em}
.news-category-header h1{margin:0;color:#15171c;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:clamp(3rem,5vw,4.15rem);font-weight:800;line-height:1;letter-spacing:-.035em}
.news-title-rule{display:block;width:58px;height:5px;margin:17px auto 18px;border-radius:999px;background:#3152ed}
.news-category-header p:last-child{max-width:650px;margin:0 auto;color:#606875;font-family:"Newsreader",Georgia,serif;font-size:1.08rem;line-height:1.55}
.news-magazine .news-content{padding-top:46px;padding-bottom:96px}
.news-lead-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;gap:38px;padding-bottom:60px;border-bottom:1px solid #dfe2e8}
.news-lead-story{min-width:0}
.news-lead-image{display:block;overflow:hidden;aspect-ratio:3/2;background:#e7eaee}
.news-lead-image img,.news-compact-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .28s ease}
.news-lead-story:hover .news-lead-image img,.news-compact-item:hover .news-compact-image img{transform:scale(1.018)}
.news-lead-copy{padding-top:21px}
.news-magazine .news-category,.article-category{display:inline-block;padding:0;border-radius:0;background:transparent;color:#3152ed;font-size:.71rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.news-lead-copy h2{max-width:780px;margin:9px 0 12px;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:clamp(2.25rem,3.5vw,3.2rem);font-weight:800;line-height:1.02;letter-spacing:-.035em}
.news-lead-copy h2 a,.news-compact-item h3 a,.news-card h3 a{color:#17191e;text-decoration:none}
.news-lead-copy h2 a:hover,.news-compact-item h3 a:hover,.news-card h3 a:hover{color:#3152ed}
.news-lead-copy>p{max-width:720px;margin:0 0 17px;color:#59616e;font-family:"Newsreader",Georgia,serif;font-size:1.05rem;line-height:1.55}
.news-latest{min-width:0;border-top:4px solid #17191e}
.news-latest-head{display:flex;align-items:center;justify-content:space-between;height:54px;border-bottom:1px solid #cfd3da}
.news-latest-head h2{margin:0;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:1.55rem;font-weight:800;text-transform:uppercase}
.news-latest-head a{color:#3152ed;font-size:.72rem;font-weight:800;text-decoration:none}
.news-compact-item{display:grid;grid-template-columns:124px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid #e0e3e8}
.news-compact-image{display:block;overflow:hidden;aspect-ratio:3/2;background:#e7eaee}
.news-compact-category{display:block;margin-bottom:5px;color:#3152ed;font-size:.62rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.news-compact-item h3{display:-webkit-box;margin:0 0 8px;overflow:hidden;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:1.14rem;font-weight:700;line-height:1.13;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.news-compact-item time{color:#7b818b;font-size:.7rem}
.news-archive{padding-top:58px}
.news-magazine .news-section-head{align-items:flex-end;margin-bottom:26px;padding-top:0;border-top:0}
.news-magazine .news-section-head h2{font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:clamp(2.15rem,4vw,3.1rem);font-weight:800;line-height:1;letter-spacing:-.03em}
.news-magazine .news-grid{gap:30px 22px}
.news-magazine .news-card{border:0;border-radius:0;background:transparent}
.news-magazine .news-card-image{aspect-ratio:3/2}
.news-magazine .news-card-image img{min-height:0}
.news-magazine .news-card-body{padding:17px 0 0}
.news-magazine .news-card h3{margin:9px 0 10px;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:1.55rem;font-weight:750;line-height:1.08;letter-spacing:-.025em}
.news-magazine .news-card p{margin-bottom:17px;font-family:"Newsreader",Georgia,serif;line-height:1.55;-webkit-line-clamp:2}

.article-magazine .article-header{max-width:816px;padding-top:56px;padding-bottom:34px}
.article-magazine .article-header .service-breadcrumb{margin-bottom:42px}
.article-category{margin-bottom:12px}
.article-magazine .article-header h1{max-width:790px;margin:0 0 21px;font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:clamp(3.3rem,5.6vw,4.45rem);font-weight:800;line-height:1.025;letter-spacing:-.042em}
.article-magazine .article-deck{max-width:750px;color:#646971;font-family:"Newsreader",Georgia,serif;font-size:1.25rem;line-height:1.58}
.article-magazine .article-byline{padding-top:3px}
.article-magazine .article-byline img{width:44px;height:44px}
.article-magazine .article-byline strong{font-size:.86rem}
.article-magazine .article-byline small{font-size:.76rem}
.article-magazine .article-cover{max-width:1000px;margin-bottom:58px;border-radius:2px}
.article-magazine .article-layout{display:block;max-width:700px;padding-bottom:100px}
.article-reading-tools{display:grid;gap:16px;margin-bottom:34px}
.article-magazine .article-toc{position:static;padding:0;border:1px solid #dfe3e9;border-left:4px solid #3152ed;background:#fff;font-family:Roboto,Arial,sans-serif}
.article-magazine .article-toc summary{padding:15px 18px;color:#1d2634;font-size:.78rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.article-magazine .article-toc nav{padding:0 18px 16px}
.article-magazine .article-toc ol{display:grid;gap:8px;margin:0;padding-left:20px}
.article-magazine .article-toc a{color:#4e5969;font-size:.85rem;line-height:1.4;text-decoration:none}
.article-magazine .article-toc a:hover{color:#3152ed;text-decoration:underline}
.article-magazine .article-fact-note{margin:0;border-radius:2px}
.article-magazine .article-prose{max-width:680px;margin:0 auto;color:#25272c;font-size:1.17rem;line-height:1.78}
.article-magazine .article-prose>p:first-child{font-size:1.25rem;line-height:1.7}
.article-magazine .article-prose h2{font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-size:2.12rem;font-weight:800;line-height:1.1;letter-spacing:-.025em}
.article-magazine .article-prose h3{font-family:"Roboto Condensed",Roboto,Arial,sans-serif;font-weight:750}
.article-magazine .article-prose blockquote{font-size:1.2rem}
.article-magazine .article-cta{border-radius:2px}

@media(max-width:900px){
  .news-lead-grid{grid-template-columns:1fr;gap:44px}
  .news-latest{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}
  .news-latest-head{grid-column:1/-1}
  .news-compact-item:nth-child(even){border-right:1px solid #e0e3e8;padding-right:24px}
  .article-magazine .article-layout{display:block}
  .article-magazine .article-prose{max-width:680px}
}
@media(max-width:640px){
  .news-category-header{padding:25px 0 31px}
  .news-category-header .service-breadcrumb{margin-bottom:27px}
  .news-category-header h1{font-size:2.75rem}
  .news-category-header p:last-child{font-size:1rem}
  .news-magazine .news-content{padding-top:25px;padding-bottom:70px}
  .news-lead-grid{gap:38px;padding-bottom:42px}
  .news-lead-image{margin-inline:-16px}
  .news-lead-copy h2{font-size:2.05rem}
  .news-latest{grid-template-columns:1fr}
  .news-latest-head{grid-column:auto}
  .news-compact-item:nth-child(even){border-right:0;padding-right:0}
  .news-compact-item{grid-template-columns:112px minmax(0,1fr)}
  .news-archive{padding-top:42px}
  .news-magazine .news-grid{grid-template-columns:1fr;gap:36px}
  .article-magazine .article-header{padding-top:29px;padding-bottom:27px}
  .article-magazine .article-header .service-breadcrumb{margin-bottom:30px}
  .article-magazine .article-header h1{font-size:2.55rem;line-height:1.03}
  .article-magazine .article-deck{font-size:1.08rem}
  .article-magazine .article-cover{margin-bottom:31px}
  .article-magazine .article-layout{padding-inline:18px;padding-bottom:72px}
  .article-magazine .article-prose{font-size:1.08rem}
  .article-magazine .article-prose>p:first-child{font-size:1.14rem}
  .article-magazine .article-prose h2{font-size:1.82rem}
}
@media(prefers-reduced-motion:reduce){.news-lead-image img,.news-compact-image img{transition:none}.news-lead-story:hover .news-lead-image img,.news-compact-item:hover .news-compact-image img{transform:none}}

/* News V3 — inherits the homepage design language. */
.news-home-ui,.article-home-ui{--news-blue:#0878f9;--news-blue-deep:#0a2b59;--news-canvas:#f7fafe;--news-border:#e3eaf4;--news-muted:#6c7d95;--news-shadow:0 10px 28px rgba(24,75,130,.09);background:var(--news-canvas);color:var(--news-blue-deep);font-family:Roboto,Arial,sans-serif}
.news-home-ui:focus,.article-home-ui:focus{outline:none}
.news-home-hero{position:relative;overflow:hidden;padding:30px 0 54px;border-bottom:1px solid #dce9f6;background:#f3f9ff url("/assets/elements/news-hero-halong.webp") center/cover no-repeat}
.news-home-hero:after{position:absolute;right:-50px;bottom:-95px;width:270px;height:270px;border:46px solid rgba(8,120,249,.07);border-radius:50%;content:""}
.news-home-hero .shell{position:relative;z-index:1}
.news-home-hero .service-breadcrumb{margin-bottom:34px}
.news-home-hero-copy{max-width:780px}
.news-home-hero .news-eyebrow{margin:0 0 8px;color:var(--news-blue);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.news-home-hero h1{margin:0;color:var(--news-blue-deep);font-family:Roboto,Arial,sans-serif;font-size:clamp(38px,5vw,54px);font-weight:700;line-height:1.08;letter-spacing:-1.5px}
.news-home-hero-copy>p:nth-of-type(2){max-width:700px;margin:15px 0 0;color:#526782;font-size:17px;line-height:1.65}
.news-home-hero-copy>div{display:flex;flex-wrap:wrap;gap:10px 20px;margin-top:22px;color:#315477;font-size:13px;font-weight:600}
.news-home-hero-copy>div span{display:flex;align-items:center;gap:7px}
.news-home-hero-copy>div .ui-icon{width:19px;height:19px;color:#138f79}
.news-home-ui .service-breadcrumb>span,.article-home-ui .service-breadcrumb>span{color:#0878f9}
.news-home-ui .service-breadcrumb>span .ui-icon,.article-home-ui .service-breadcrumb>span .ui-icon{color:#0878f9;stroke-width:2.4}
.news-home-ui .news-content{padding-top:0;padding-bottom:80px}
.news-tabs-wrap{position:relative;z-index:3;margin-top:-25px;padding:8px;border:1px solid rgba(213,229,246,.95);border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 12px 30px rgba(24,75,130,.1)}
.news-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none}
.news-tabs::-webkit-scrollbar{display:none}
.news-tab{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:12px;background:transparent;color:#526782;font-size:14px;font-weight:600;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.news-tab small{min-width:24px;padding:3px 6px;border-radius:999px;background:#edf4fc;color:#71829a;font-size:10px;font-weight:700}
.news-tab:hover{border-color:#cfe1f6;background:#f3f8fe;color:var(--news-blue)}
.news-tab.is-active{background:var(--news-blue);color:#fff;box-shadow:0 6px 16px rgba(8,120,249,.22)}
.news-tab.is-active small{background:rgba(255,255,255,.2);color:#fff}
.news-tab:focus-visible,.news-pagination a:focus-visible{outline:3px solid #61baf8;outline-offset:3px}
.news-home-feature{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:22px;margin-top:36px}
.news-home-feature>.news-lead-story,.news-home-feature>aside{overflow:hidden;border:1px solid var(--news-border);border-radius:18px;background:#fff;box-shadow:var(--news-shadow)}
.news-home-feature .news-lead-image{aspect-ratio:16/9}
.news-home-feature .news-lead-copy{padding:24px 26px 27px}
.news-home-ui .news-category,.article-home-ui .article-category{padding:0;border-radius:0;background:transparent;color:var(--news-blue);font:700 11px/1.3 Roboto,Arial,sans-serif;letter-spacing:.075em;text-transform:uppercase}
.news-home-feature .news-lead-copy h2{max-width:760px;margin:9px 0 10px;font-family:Roboto,Arial,sans-serif;font-size:clamp(27px,3vw,36px);font-weight:700;line-height:1.18;letter-spacing:-.6px}
.news-home-feature .news-lead-copy h2 a,.news-home-ui .news-compact-item h3 a,.news-home-ui .news-card h3 a{color:var(--news-blue-deep);text-decoration:none}
.news-home-feature .news-lead-copy h2 a:hover,.news-home-ui .news-compact-item h3 a:hover,.news-home-ui .news-card h3 a:hover{color:var(--news-blue)}
.news-home-feature .news-lead-copy>p{max-width:720px;margin:0 0 17px;color:#5d7089;font-family:Roboto,Arial,sans-serif;font-size:15px;line-height:1.6}
.news-home-feature>aside{padding:18px}
.news-feature-side-head{padding:2px 0 12px;border-bottom:1px solid var(--news-border)}
.news-feature-side-head span{color:var(--news-blue);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.news-feature-side-head h2{margin:4px 0 0;color:var(--news-blue-deep);font-size:19px;font-weight:700;line-height:1.25}
.news-feature-note{display:flex;align-items:flex-start;gap:11px;margin-bottom:3px;padding:15px;border-radius:14px;background:#e9f7f6;color:#174e55}
.news-feature-note>span{flex:0 0 23px}.news-feature-note .ui-icon{width:23px;height:23px}
.news-feature-note strong{display:block;font-size:14px}.news-feature-note p{margin:3px 0 0;color:#54777a;font-size:12px;line-height:1.45}
.news-home-ui .news-compact-item{grid-template-columns:112px minmax(0,1fr);gap:13px;padding:15px 0;border-bottom:1px solid var(--news-border)}
.news-home-ui .news-compact-item:last-child{border-bottom:0}
.news-home-ui .news-compact-image{border-radius:11px}
.news-home-ui .news-compact-category{margin-bottom:5px;color:var(--news-blue);font-size:10px;font-weight:700}
.news-home-ui .news-compact-item h3{margin:0 0 7px;font-family:Roboto,Arial,sans-serif;font-size:15px;font-weight:700;line-height:1.3}
.news-library{margin-top:56px}
.news-tabs-wrap+.news-library{margin-top:42px}
.news-library-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}
.news-library-head span{color:var(--news-blue);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.news-library-head h2{margin:4px 0 0;font-family:Roboto,Arial,sans-serif;font-size:28px;font-weight:700;line-height:1.2;letter-spacing:-.5px}
.news-library-head>p{margin:0;color:var(--news-muted);font-size:14px;font-weight:600}
.news-home-ui .news-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.news-home-ui .news-card{overflow:hidden;border:1px solid var(--news-border);border-radius:16px;background:#fff;box-shadow:var(--news-shadow);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.news-home-ui .news-card:hover{transform:translateY(-4px);border-color:#c5dcf6;box-shadow:0 17px 34px rgba(24,75,130,.14)}
.news-home-ui .news-card-image{aspect-ratio:4/3}
.news-home-ui .news-card-image img{min-height:0}
.news-home-ui .news-card-body{padding:17px 18px 19px}
.news-home-ui .news-card h3{display:-webkit-box;margin:8px 0 9px;overflow:hidden;font-family:Roboto,Arial,sans-serif;font-size:18px;font-weight:700;line-height:1.35;letter-spacing:-.15px;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.news-home-ui .news-card p{margin:0 0 16px;color:#63758c;font-family:Roboto,Arial,sans-serif;font-size:14px;line-height:1.55;-webkit-line-clamp:2}
.news-home-ui .news-card-meta{color:#8390a2;font-size:11px}
.news-load-wrap{display:flex;justify-content:center;margin-top:30px}
.news-load-more{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 20px;border:1px solid #bdd8f6;border-radius:999px;background:#fff;color:var(--news-blue);font-size:14px;font-weight:700;cursor:pointer;transition:background-color .18s ease,transform .18s ease}
.news-load-more:hover{transform:translateY(-2px);background:#edf6ff}
.news-load-more .ui-icon{width:18px;height:18px;transform:rotate(90deg)}
.news-pagination{margin-top:34px;margin-bottom:0;scroll-margin-top:24px}

.article-home-ui{background:#fff}
.article-home-ui .article-header{background:#f3f9ff url("/assets/elements/news-hero-halong.webp") center/cover no-repeat;border-bottom:1px solid #dce9f6}
.article-home-ui .article-header{max-width:880px;padding-top:48px;padding-bottom:32px}
.article-home-ui .article-header .service-breadcrumb{margin-bottom:36px}
.article-home-ui .article-category{display:block;margin-bottom:11px}
.article-home-ui .article-header h1{max-width:850px;margin:0 0 18px;color:var(--news-blue-deep);font-family:Roboto,Arial,sans-serif;font-size:clamp(38px,5vw,52px);font-weight:700;line-height:1.14;letter-spacing:-1.15px}
.article-home-ui .article-deck{max-width:780px;margin:0;color:#5d7089;font-family:Roboto,Arial,sans-serif;font-size:18px;font-weight:400;line-height:1.65}
.article-home-ui .article-byline{margin-top:24px}.article-home-ui .article-byline img{width:46px;height:46px}.article-home-ui .article-byline strong{font-size:14px;font-weight:700}.article-home-ui .article-byline small{font-size:12px}
.article-home-ui .article-cover{max-width:1080px;margin-bottom:46px;border-radius:18px;box-shadow:var(--news-shadow)}
.article-home-ui .article-cover{position:relative;background:#eaf2f9}.article-home-ui .article-cover img{max-height:720px;object-fit:contain}.article-home-ui .article-cover figcaption{position:absolute;right:12px;bottom:12px;padding:7px 10px;border-radius:999px;background:rgba(9,39,78,.78);color:#fff;font:600 11px/1.2 Roboto,Arial,sans-serif;backdrop-filter:blur(8px)}
.article-home-ui .article-layout{display:block;max-width:740px;padding-bottom:88px}
.article-home-ui .article-reading-tools{display:grid;gap:14px;margin-bottom:30px}
.article-home-ui .article-toc{position:static;padding:0;border:1px solid var(--news-border);border-left:4px solid var(--news-blue);border-radius:12px;background:#f8fbff;font-family:Roboto,Arial,sans-serif}
.article-home-ui .article-toc summary{min-height:46px;padding:14px 16px;color:var(--news-blue-deep);font-size:13px;font-weight:700;cursor:pointer}
.article-home-ui .article-toc nav{padding:0 17px 16px}.article-home-ui .article-toc ol{display:grid;gap:8px;margin:0;padding-left:20px}.article-home-ui .article-toc a{color:#526782;font-size:13px;line-height:1.45;text-decoration:none}.article-home-ui .article-toc a:hover{color:var(--news-blue);text-decoration:underline}
.article-home-ui .article-fact-note{margin:0;border-radius:12px;background:#eaf8f5}
.article-home-ui .article-prose{max-width:700px;margin:0 auto;color:#253a56;font-family:Roboto,Arial,sans-serif;font-size:17px;font-weight:400;line-height:1.75}
.article-home-ui .article-prose>p:first-child{font-size:18px;line-height:1.72}
.article-home-ui .article-prose h2{margin:2.15em 0 .65em;color:var(--news-blue-deep);font-family:Roboto,Arial,sans-serif;font-size:28px;font-weight:700;line-height:1.25;letter-spacing:-.35px}
.article-home-ui .article-prose h3{color:var(--news-blue-deep);font-family:Roboto,Arial,sans-serif;font-size:21px;font-weight:700;line-height:1.35}
.article-home-ui .article-prose blockquote{border-radius:0 12px 12px 0;background:#eef6ff;font-size:17px}
.article-home-ui .article-cta{border-radius:18px;background:#0a2b59;font-family:Roboto,Arial,sans-serif}
.article-home-ui .article-cta h2{font-family:Roboto,Arial,sans-serif;font-size:16px;letter-spacing:0}
.article-home-ui .article-cta-actions{display:flex;align-items:center;gap:8px}
.article-home-ui .article-cta-actions a{min-height:44px;display:flex;align-items:center;justify-content:center}
.article-home-ui .article-cta-actions a:first-child{border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff}
.article-related{margin-top:54px;padding-top:32px;border-top:1px solid var(--news-border);font-family:Roboto,Arial,sans-serif}
.article-related-head>span{color:var(--news-blue);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.article-related-head h2{margin:5px 0 20px;color:var(--news-blue-deep);font-size:26px;line-height:1.22}
.article-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.article-related-grid article{overflow:hidden;border:1px solid var(--news-border);border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(24,75,130,.07)}
.article-related-image{display:block;overflow:hidden;aspect-ratio:3/2;background:#e8f0f8}
.article-related-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.article-related-grid article:hover img{transform:scale(1.025)}
.article-related-grid article>div{padding:13px}
.article-related-grid article span{color:var(--news-blue);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.article-related-grid h3{margin:6px 0 10px;font-size:15px;line-height:1.35}
.article-related-grid h3 a{color:var(--news-blue-deep);text-decoration:none}
.article-related-grid h3 a:hover{color:var(--news-blue)}
.article-related-grid small{color:#7a899c;font-size:11px}
.article-related-all{min-height:44px;display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:var(--news-blue);font-size:13px;font-weight:700;text-decoration:none}
.article-related-all .ui-icon{width:17px;height:17px}
.article-image-gallery{margin-top:50px;padding-top:30px;border-top:1px solid var(--news-border)}
.article-gallery-head>span{color:var(--news-blue);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.article-gallery-head h2{margin:5px 0 18px!important;font-size:26px!important}
.article-image-gallery>div:nth-of-type(2){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.article-image-gallery figure{margin:0;overflow:hidden;border-radius:14px;background:#e7eef6;aspect-ratio:4/3}
.article-image-gallery img{display:block;width:100%;height:100%;object-fit:cover}
.article-image-gallery>small{display:block;margin-top:12px;color:#77869a;font:400 11px/1.5 Roboto,Arial,sans-serif}
.article-home-ui .article-inline-image{margin:34px 0 38px;overflow:hidden;border:1px solid var(--news-border);border-radius:16px;background:#eef5fb;box-shadow:0 10px 26px rgba(24,75,130,.08)}
.article-home-ui .article-inline-image img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.article-home-ui .article-inline-image figcaption{padding:10px 13px;color:#73839a;font:500 11px/1.45 Roboto,Arial,sans-serif}
.article-home-ui .article-image-credit{margin:42px 0 0;padding:14px 16px;border-radius:12px;background:#f2f7fc;color:#64758b;font-size:12px;line-height:1.55}

@media(max-width:900px){.news-home-feature{grid-template-columns:1fr}.news-home-feature>aside{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.news-feature-side-head{grid-column:1/-1}.news-feature-note{grid-column:1/-1}.news-home-ui .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .news-home-hero{padding:20px 0 44px}.news-home-hero .service-breadcrumb{margin-bottom:28px}.news-home-hero h1{font-size:36px;letter-spacing:-.8px}.news-home-hero-copy>p:nth-of-type(2){font-size:15px}.news-home-hero-copy>div{font-size:12px}
  .news-tabs-wrap{margin-top:-23px;margin-inline:-4px;padding:6px;border-radius:15px}.news-tab{min-height:44px;padding:0 13px;font-size:13px}.news-home-feature{margin-top:25px}.news-home-feature .news-lead-story{margin-inline:-16px;border-radius:0}.news-home-feature .news-lead-copy{padding:20px 18px 22px}.news-home-feature .news-lead-copy h2{font-size:26px}.news-home-feature>aside{grid-template-columns:1fr;padding:15px}.news-feature-side-head{grid-column:auto}.news-feature-note{grid-column:auto}.news-home-ui .news-compact-item{grid-template-columns:105px minmax(0,1fr)}
  .news-library{margin-top:42px}.news-library-head h2{font-size:24px}.news-home-ui .news-grid{grid-template-columns:1fr;gap:16px}.news-home-ui .news-card{display:grid;grid-template-columns:122px minmax(0,1fr);border-radius:14px}.news-home-ui .news-card-image{aspect-ratio:auto;min-height:100%}.news-home-ui .news-card-body{padding:14px}.news-home-ui .news-card h3{margin:6px 0 9px;font-size:16px}.news-home-ui .news-card p{display:none}.news-home-ui .news-card-meta span{display:none}
  .article-home-ui .article-header{padding-top:28px;padding-bottom:25px}.article-home-ui .article-header .service-breadcrumb{margin-bottom:28px}.article-home-ui .article-header h1{font-size:34px;line-height:1.16;letter-spacing:-.65px}.article-home-ui .article-deck{font-size:16px}.article-home-ui .article-cover{margin-inline:0;margin-bottom:30px;border-radius:0;box-shadow:none}.article-home-ui .article-cover figcaption{right:9px;bottom:9px;font-size:10px}.article-home-ui .article-layout{padding-inline:18px;padding-bottom:72px}.article-home-ui .article-prose{font-size:16px;line-height:1.72}.article-home-ui .article-prose>p:first-child{font-size:17px}.article-home-ui .article-prose h2{font-size:24px}.article-home-ui .article-prose h3{font-size:19px}.article-image-gallery>div:nth-of-type(2){display:flex;gap:10px;margin-inline:-18px;padding:0 18px 10px;overflow-x:auto;scroll-snap-type:x mandatory}.article-image-gallery figure{flex:0 0 78vw;scroll-snap-align:start}.article-home-ui .article-cta{grid-template-columns:auto 1fr}.article-home-ui .article-cta-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.article-home-ui .article-cta-actions a{grid-column:auto}.article-related-grid{grid-template-columns:1fr}.article-related-grid article{display:grid;grid-template-columns:112px minmax(0,1fr)}.article-related-image{height:100%;aspect-ratio:auto}
  .article-home-ui .article-inline-image{margin:28px -18px 32px;border-radius:0;border-inline:0;box-shadow:none}.article-home-ui .article-inline-image figcaption{padding-inline:18px}
}
@media(prefers-reduced-motion:reduce){.news-tab,.news-home-ui .news-card,.news-load-more,.article-related-image img{transition:none}.news-home-ui .news-card:hover,.news-load-more:hover,.article-related-grid article:hover img{transform:none}}

/* Editorial verification fields: progressive disclosure keeps the inspector compact. */
.admin-editor-advanced{margin-top:14px;border:1px solid #dbe7f5;border-radius:14px;background:#f8fbff}
.admin-editor-advanced summary{min-height:44px;padding:11px 13px;display:flex;align-items:center;cursor:pointer;color:#123d72;font-size:13px;font-weight:700}
.admin-editor-advanced[open] summary{border-bottom:1px solid #dbe7f5}
.admin-editor-advanced>label,.admin-editor-advanced>.admin-form-grid{margin:12px}
.admin-editor-advanced textarea{resize:vertical}

/* Notes 10/08/2026 — area navigation, price clarity and villa/day-cruise links. */
.listing-area-tabs{
  display:flex;
  gap:8px;
  margin:18px 0 14px;
  padding:7px;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  border:1px solid #d7e6f7;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 28px rgba(28,72,124,.06);
}
.listing-area-tabs::-webkit-scrollbar{display:none}
.listing-area-tab{
  flex:0 0 auto;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 14px;
  border:1px solid transparent;
  border-radius:12px;
  color:#355a87;
  font-size:13px;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
}
.listing-area-tab small{min-width:24px;padding:4px 7px;border-radius:999px;background:#edf4fc;color:#5d7695;font-size:10px;text-align:center}
.listing-area-tab:hover{border-color:#b9d7f8;background:#f6faff;color:#0c65d5}
.listing-area-tab:focus-visible{outline:3px solid rgba(20,117,245,.28);outline-offset:2px}
.listing-area-tab.is-active{background:#1475f5;color:#fff;box-shadow:0 7px 17px rgba(20,117,245,.22)}
.listing-area-tab.is-active small{background:rgba(255,255,255,.2);color:#fff}
.listing-area-toggle{display:none}

.detail-booking-card h1{margin:0 0 16px;color:#0f3372;font-size:clamp(25px,3vw,32px);font-weight:750;line-height:1.14;letter-spacing:-.55px}
.detail-booking-card .detail-property-meta{grid-template-columns:72px minmax(0,1fr);gap:10px;margin:0 0 16px}
.detail-booking-card .detail-property-meta>div{min-height:72px;padding:10px 11px}
.detail-booking-card .detail-property-meta>div:first-child{text-align:center}
.detail-booking-card .detail-property-meta strong{font-size:13px;line-height:1.4}
.detail-booking-card .detail-property-meta>div:first-child strong{font-size:21px}
.detail-booking-card .detail-property-meta small{font-size:9px;line-height:1.25}
.detail-price-link .ui-icon{width:17px;height:17px}
.detail-price-breakdown{display:grid;gap:12px;padding:16px;border:1px solid #dbe9f7;border-radius:16px;background:#f7fbff}
.detail-price-breakdown>div{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.detail-price-breakdown small{color:#637993;font-size:12px;font-weight:700}
.detail-price-breakdown strong{color:#0f3372;font-size:25px;line-height:1;font-variant-numeric:tabular-nums}
.detail-price-breakdown span{color:#657994;font-size:13px}
.detail-price-breakdown p{font-size:12px!important;line-height:1.55!important}
.detail-combo-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px 16px;border-color:#b9e1d8;background:linear-gradient(135deg,#f1fbf8,#f7fbff)}
.detail-combo-icon,.villa-cruise-combo-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#dff5ef;color:#107966}
.detail-combo-icon .ui-icon,.villa-cruise-combo-icon .ui-icon{width:27px;height:27px}
.service-kicker{display:block;margin-bottom:5px;color:#138f79;font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.detail-combo-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.detail-combo-actions .btn{min-height:46px;text-align:center}
.cruise-day-service{border-color:#cfe7e2;background:linear-gradient(135deg,#fff,#f1fbf8)}
.villa-cruise-combo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;margin-top:18px;padding:22px;border:1px solid #c6e5de;border-radius:22px;background:#fff;box-shadow:0 12px 32px rgba(25,74,118,.07)}
.villa-cruise-combo h2{margin:0 0 7px;color:#12396d;font-size:22px}
.villa-cruise-combo p{margin:0;color:#60738b;line-height:1.6}
.villa-cruise-combo-actions{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end}
.villa-cruise-combo-actions .btn{min-width:142px}

@media(max-width:699px){
  .detail-layout{display:flex!important;flex-direction:column;margin-top:16px!important}
  .detail-booking-card{order:-1;position:static;display:flex!important;flex-direction:column;gap:12px;margin:0 0 14px;padding:18px}
  .detail-booking-card h1{margin-bottom:3px}
  .detail-booking-person{margin-bottom:2px}
  .detail-booking-card .btn{width:100%}
  .detail-booking-card>a{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cfe2fa;border-radius:13px;color:#145fbf;text-decoration:none;font-size:13px;font-weight:750}
  .detail-booking-card>a.btn{border:0;color:#fff}
  .detail-booking-card>small{display:block;color:#78869b;font-size:11px;line-height:1.45;text-align:center}
  .detail-combo-actions{grid-template-columns:1fr}
  .villa-cruise-combo{grid-template-columns:1fr;padding:18px}
  .villa-cruise-combo-icon{width:44px;height:44px}
  .villa-cruise-combo-actions{grid-column:auto;display:grid;grid-template-columns:1fr}
  .villa-cruise-combo-actions .btn{width:100%}
}
@media(min-width:700px){
  .listing-area-tabs{flex-wrap:wrap;padding:8px}
  .detail-booking-card{gap:0!important}
  .detail-booking-card h1{margin-bottom:18px}
}
@media(min-width:1024px){
  .listing-area-tabs{justify-content:flex-start}
  .listing-area-tab{flex:1 1 auto}
  .villa-cruise-combo{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
  .villa-cruise-combo-actions{grid-column:auto}
  .detail-main-column{grid-column:1;grid-row:1}
  .detail-booking-card{grid-column:2;grid-row:1}
}
@media(prefers-reduced-motion:reduce){.listing-area-tab{transition:none}}

/* Mobile catalogue and booking detail: compact, touch-safe and overflow-proof. */
@media(max-width:699px){
  .list-layout .listing-property-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  .listing-property-grid .listing-property-card{min-width:0;border-radius:15px}
  .listing-property-grid .property-image{aspect-ratio:4 / 3!important;border-radius:14px 14px 0 0!important}
  .listing-property-grid .synced-data-badge{top:7px;left:7px;max-width:calc(100% - 52px);padding:4px 6px;font-size:9px;line-height:1.1}
  .listing-property-grid .favorite{top:6px;right:6px;width:40px;height:40px}
  .listing-property-grid .favorite .favorite-heart{width:18px;height:18px}
  .listing-property-grid .property-body{min-width:0;padding:10px 10px 11px!important}
  .listing-property-grid .property-title{min-height:34px;margin:0!important;font-size:14px!important;line-height:1.22!important}
  .listing-property-grid .property-title a{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .listing-property-grid .location-line{min-width:0;margin:6px 0 0!important;font-size:10px!important;line-height:1.3!important}
  .listing-property-grid .location-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .listing-property-grid .location-line .ui-icon{width:12px!important;height:12px!important;flex:0 0 12px!important}
  .listing-property-grid .synced-capacity{display:none!important}
  .listing-property-grid .synced-price{display:flex;align-items:baseline;gap:3px;min-width:0;margin:8px 0 0!important;white-space:nowrap}
  .listing-property-grid .synced-price small{display:none}
  .listing-property-grid .synced-price .price{overflow:hidden;text-overflow:ellipsis;font-size:13px!important;line-height:1.2!important}
  .listing-property-grid .synced-price span{font-size:10px!important}

  .detail-v2{padding-bottom:184px!important}
  .detail-v2 .detail-shell{padding-right:12px!important;padding-left:12px!important}
  .detail-breadcrumb{min-height:42px;padding-right:4px;padding-left:4px;font-size:11px}
  .detail-gallery-suite{margin-right:0!important;margin-left:0!important;border-radius:18px!important}
  .detail-layout{width:100%!important;margin-top:12px!important}
  .detail-booking-card{width:100%!important;gap:10px!important;margin:0 0 12px!important;padding:16px!important}
  .detail-booking-card>*{flex:0 0 auto!important}
  .detail-booking-card h1{margin:0!important;font-size:25px!important;line-height:1.15!important}
  .detail-booking-person{margin:0!important}
  .detail-booking-card .detail-property-meta{grid-template-columns:66px minmax(0,1fr);gap:8px;margin:0!important}
  .detail-booking-card .detail-property-meta>div{min-height:66px;padding:8px 9px}
  .detail-booking-card .detail-property-meta>div:first-child strong{font-size:19px}
  .detail-booking-card .detail-property-meta strong{font-size:12px;line-height:1.35}
  .detail-booking-card .detail-price{margin:1px 0!important;font-size:21px!important;line-height:1.2!important}
  .detail-booking-card>a,
  .detail-booking-card>a.btn{
    flex:0 0 46px!important;
    width:100%!important;
    min-height:46px!important;
    height:46px!important;
    margin:0!important;
  }
  .detail-booking-card .detail-phone-link{display:flex!important;flex:0 0 46px!important;min-height:46px!important;height:46px!important}
  .detail-booking-card>small{margin:0!important;font-size:10.5px!important;line-height:1.35!important}
  .detail-main-column{width:100%!important}
  .detail-main-column .detail-card{margin-top:10px!important;padding:16px!important;border-radius:16px!important}
  .unit-gallery-grid{gap:7px!important}
  .unit-gallery-grid figure{height:116px!important}
}
@media(max-width:350px){
  .list-layout .listing-property-grid{gap:8px!important}
  .listing-property-grid .property-body{padding:9px!important}
  .listing-property-grid .property-title{font-size:13px!important}
  .listing-property-grid .synced-price .price{font-size:12px!important}
}

@media(min-width:1024px){
  .listing-area-tabs{flex-wrap:nowrap!important}
  .listing-area-tab{min-width:0}
}

@media(min-width:700px){
  .listing-controls-panel .toolbar{display:flex!important;flex-wrap:nowrap!important;align-items:center!important}
  .listing-controls-panel .toolbar button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-width:108px!important;white-space:nowrap!important}
  .listing-controls-panel .toolbar button .ui-icon{width:17px!important;height:17px!important;flex:0 0 17px!important}
}

/* Follow-up mobile refinements: short destination cards, one-row controls and full unit content. */
@media(max-width:699px){
  .listing-destination-picker{margin-bottom:12px!important}
  .listing-destination-heading{margin-bottom:9px!important}
  .listing-destination-heading h1{font-size:28px!important}
  .listing-destination-heading>span{margin-top:3px!important;font-size:13px!important;line-height:1.35!important}
  .listing-destination-grid{gap:10px!important;margin-right:-12px!important;padding:4px 12px 8px 4px!important}
  .listing-destination-card{flex:0 0 clamp(132px,31vw,156px)!important;min-height:108px!important;border-width:2px!important;border-radius:18px!important}
  .listing-destination-card.is-selected{box-shadow:0 0 0 4px rgba(114,216,215,.24),0 9px 20px rgba(17,55,95,.12)!important}
  .listing-destination-status{top:9px!important;right:9px!important;padding:5px 8px!important;font-size:10px!important}
  .listing-destination-copy{left:11px!important;bottom:10px!important;gap:3px!important}
  .listing-destination-copy strong{font-size:18px!important}
  .listing-destination-copy small{padding:3px 7px!important;font-size:10px!important}

  /* Khu vực: một hàng chọn nhanh; bấm mở rộng mới hiện toàn bộ lựa chọn. */
  .listing-area-picker{margin:14px 0!important}
  .listing-area-tabs{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    align-items:center!important;
    gap:8px!important;
    margin:0!important;
    padding:8px!important;
    overflow:visible!important;
    overscroll-behavior-inline:auto!important;
  }
  .listing-area-tab{
    display:inline-flex!important;
    flex:1 1 0!important;
    min-width:0!important;
    min-height:44px!important;
    padding:7px 6px!important;
    gap:4px!important;
    font-size:11px!important;
    line-height:1.15!important;
    text-align:center!important;
    white-space:normal!important;
  }
  .listing-area-tab:not(.is-active){border-color:#b9d7f8!important;background:#f6faff!important;color:#0c65d5!important}
  .listing-area-tab:not(.is-active) small{background:#e8f2fd!important;color:#3f6f9f!important}
  .listing-area-tab>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .listing-area-tab small{min-width:20px!important;padding:3px 5px!important;font-size:9px!important;line-height:1!important}

  .listing-controls-panel{grid-template-columns:minmax(0,1fr) 46px 46px!important;gap:7px!important;margin:14px 0 22px!important;padding:8px!important}
  .listing-controls-panel .listing-name-search{min-width:0;min-height:46px!important;padding-left:11px!important}
  .listing-controls-panel .listing-name-search>span,.listing-controls-panel .listing-name-search .ui-icon{width:20px!important;height:20px!important;flex-basis:20px!important}
  .listing-controls-panel .listing-name-search input{font-size:12px!important}
  .listing-controls-panel .toolbar{display:contents!important}
  .listing-controls-panel .toolbar button{position:relative!important;display:grid!important;place-items:center!important;width:46px!important;min-width:46px!important;min-height:46px!important;padding:0!important;font-size:0!important;line-height:1!important;text-align:center!important}
  .listing-controls-panel .toolbar button>.ui-icon{display:block!important;width:19px!important;height:19px!important;min-width:19px!important;color:currentColor!important;transform:none!important}
  .listing-controls-panel .toolbar button>span:not(.toolbar-badge){display:none!important}
  .listing-controls-panel .toolbar-badge{position:absolute;right:-4px;top:-4px;min-width:17px!important;padding:2px 4px!important;font-size:9px!important}
  .listing-result-heading{flex-direction:row!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin-bottom:14px!important}
  .listing-result-heading>div{min-width:0}
  .listing-result-heading h2{font-size:25px!important;line-height:1.15!important}
  .listing-result-heading small{font-size:12px!important}
  .listing-result-heading .result-count{flex:0 0 auto;margin:4px 0 0!important;font-size:12px!important;font-weight:750!important;white-space:nowrap}
  .listing-property-card:nth-child(n+5){content-visibility:auto;contain-intrinsic-size:auto 240px}

  .detail-v2{padding-bottom:96px!important}
  .detail-booking-card .detail-property-meta>div:first-child small{white-space:nowrap!important;font-size:9px!important;letter-spacing:0!important}
  .detail-booking-card .detail-property-meta>div:nth-child(2) strong{font-size:14px!important;line-height:1.28!important}
  .detail-booking-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important}
  .detail-booking-actions>a,.detail-booking-actions>a.btn{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-width:0!important;width:100%!important;min-height:48px!important;height:48px!important;margin:0!important;padding:0 10px!important;border-radius:14px!important;font-size:14px!important;font-weight:750!important;line-height:1.2!important;text-align:center!important;text-decoration:none!important;box-shadow:none!important;overflow:hidden!important}
  .detail-booking-actions .detail-price-link{border:1px solid #b9d7f8!important;background:#fff!important;color:#0d62c6!important}
  .detail-booking-actions>a.btn{border:1px solid #1475f5!important;background:#1475f5!important;color:#fff!important;box-shadow:0 7px 16px rgba(20,117,245,.18)!important}
  .detail-booking-actions .detail-phone-link{grid-column:1 / -1!important;border:1px solid #b9d7f8!important;white-space:nowrap!important;font-size:15px!important;letter-spacing:0!important;background:#f5faff!important;background-image:none!important;color:#0c61c9!important}
  .detail-booking-actions .detail-price-link .ui-icon,.detail-booking-actions .detail-phone-link .ui-icon{display:block!important;flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;max-height:18px!important;object-fit:contain!important;transform:none!important;animation:none!important}
  .detail-booking-actions .detail-phone-link::before,.detail-booking-actions .detail-phone-link::after{content:none!important;display:none!important;background:none!important;background-image:none!important;animation:none!important}
  .unit-gallery-section .detail-section-heading{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important}
  .unit-gallery-section .detail-section-heading h2{min-width:0!important;margin:0!important;font-size:22px!important}
  .unit-gallery-section .gallery-drive-button--inline{flex:0 0 auto!important;min-height:32px!important;padding:7px 9px!important;border-radius:10px!important;font-size:11px!important;line-height:1!important;white-space:nowrap!important}
  .detail-policy-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .detail-policy-grid .policy:last-child{grid-column:1 / -1!important}
  .unit-gallery-grid figure:nth-child(n){display:block!important;height:108px!important}
}

/* Booking controls are a grouped decision flow, kept compact on desktop and two-row on mobile. */
.property-gallery-dialog{width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:22px;background:#f7fbff;color:#0d3769;box-shadow:0 28px 90px rgba(5,36,76,.35);overflow:hidden}
.property-gallery-dialog::backdrop{background:rgba(4,22,45,.72);backdrop-filter:blur(4px)}
.property-gallery-dialog-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid #d9e8f8;background:rgba(255,255,255,.96)}
.property-gallery-dialog-head>div:first-child{min-width:0;margin-right:auto}
.property-gallery-dialog-head small{display:block;margin-bottom:2px;color:#627b99;font-size:12px;font-weight:700}
.property-gallery-dialog-head h2{margin:0;font-size:26px;line-height:1.15}
.property-gallery-dialog-head button{display:grid;width:42px;height:42px;padding:0;border:1px solid #cfe1f5;border-radius:50%;background:#fff;color:#0d62c6;font:700 28px/1 inherit;place-items:center;cursor:pointer}
.property-gallery-zalo-cta{display:grid;min-height:44px;padding:6px 12px;border-radius:13px;background:#1475f5;color:#fff;text-decoration:none;box-shadow:0 6px 14px rgba(20,117,245,.2);transition:transform 160ms ease,box-shadow 160ms ease;white-space:nowrap}
.property-gallery-zalo-cta:hover{box-shadow:0 9px 18px rgba(20,117,245,.28)}
.property-gallery-zalo-cta:active{transform:scale(.98)}
.property-gallery-zalo-cta:focus-visible{outline:3px solid rgba(20,117,245,.35);outline-offset:3px}
.property-gallery-zalo-cta span{font-size:10px;line-height:1.15;font-weight:700;opacity:.88}
.property-gallery-zalo-cta strong{font-size:12px;line-height:1.2;font-weight:800}
.property-gallery-dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-height:calc(100dvh - 118px);padding:16px;overflow:auto;overscroll-behavior:contain}
.property-gallery-dialog-grid figure{margin:0;overflow:hidden;border-radius:16px;background:#e9f2fb;aspect-ratio:4/3}
.property-gallery-dialog-grid img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:699px){
  .property-gallery-dialog{width:100vw;max-height:100dvh;border-radius:0}
  .property-gallery-dialog-head{gap:8px;padding:14px 16px}
  .property-gallery-dialog-head h2{font-size:22px}
  .property-gallery-zalo-cta{min-height:44px;padding:6px 10px;border-radius:12px}
  .property-gallery-zalo-cta span{font-size:9px}
  .property-gallery-zalo-cta strong{font-size:11px}
  .property-gallery-dialog-grid{grid-template-columns:1fr;max-height:calc(100dvh - 76px);padding:10px}
}
@media(min-width:700px){
  .detail-booking-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px}
  .detail-booking-actions>a{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #cfe2fa;border-radius:14px;color:#145fbf;text-decoration:none;font-size:14px;font-weight:700}
  .detail-booking-actions>a.btn{margin-top:0!important;border:0;background:#1776ee;color:#fff}
  .detail-booking-actions .detail-phone-link{position:relative;overflow:hidden;white-space:nowrap;background:#f5faff;background-image:none;color:#0c61c9}
  .detail-booking-actions .detail-phone-link .ui-icon{display:block!important;flex:0 0 18px!important;width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;max-height:18px!important;object-fit:contain!important;transform:none!important;animation:none!important}
  .detail-booking-actions .detail-phone-link::before,.detail-booking-actions .detail-phone-link::after{content:none!important;display:none!important;background:none!important;background-image:none!important;animation:none!important}
}
