/* Generated by tools/design/sync-marketplace.mjs from the files below, in this order. Do not edit. */
/* tokens.css */
/* Easycoliv v1.0 — shared foundation for marketplace, admin and operator. */
/* One family everywhere, Google Sans Flex from Google Fonts (user choice, 19 Oct 2026). */

:root{--ec-plum:#48213F;--ec-plum-hover:#613552;--ec-plum-pressed:#35162E;--ec-cream:#FFF6EE;--ec-apricot:#FFAE80;--ec-lilac:#C9BAEA;--ec-white:#FFFFFF;--ec-ink:#2B2028;--ec-muted:#756470;--ec-line:#E6DEE3;--ec-border:#AFA0AA;--ec-subtle:#F8F5F7;--ec-success:#176448;--ec-success-soft:#EAF5EF;--ec-warning:#84520D;--ec-warning-soft:#FFF3D9;--ec-danger:#AE2D3C;--ec-danger-soft:#FFF0F1;--ec-info:#2D5C93;--ec-info-soft:#EDF3FB;--ec-font-heading:'Google Sans Flex',Arial,sans-serif;--ec-font-body:'Google Sans Flex',Arial,sans-serif;--ec-text-display:48px;--ec-text-page:32px;--ec-text-section:24px;--ec-text-title:20px;--ec-text-body:16px;--ec-text-small:14px;--ec-text-caption:12px;--ec-space-1:4px;--ec-space-2:8px;--ec-space-3:12px;--ec-space-4:16px;--ec-space-6:24px;--ec-space-8:32px;--ec-space-12:48px;--ec-space-16:64px;--ec-radius-control:16px;--ec-radius-card:16px;--ec-radius-panel:24px;--ec-radius-pill:999px;--ec-control-sm:44px;--ec-control-md:48px;--ec-control-lg:56px;--ec-touch-target:44px;--ec-search-home:64px;--ec-search-listing:48px;--ec-header:80px;--ec-sidebar:232px;--ec-content:1280px;--ec-shadow-card:0 2px 8px #48213F08;--ec-shadow-overlay:0 16px 48px #48213F24;--ec-focus:0 0 0 2px white,0 0 0 4px #48213F;--ec-duration:180ms;--ec-ease:cubic-bezier(.2,0,0,1)}
@media(prefers-reduced-motion:reduce){:root{--ec-duration:0ms}*{scroll-behavior:auto!important;animation:none!important}}

:root{--ec-radius-action:999px;--ec-radius-overlay:28px;--ec-control-border:#D7CDD3;--ec-selected:#FFF6EE;--ec-hover:#F5F1F4}

/* v2.1 (2 Oct 2026): text fields have a 3:1 boundary (WCAG 1.4.11) against white and the subtle surface. */
:root{--ec-field-border:#958591}

:root{--ec-mauve:#855272;--ec-z-popover:100;--ec-z-toast:6000;--ec-radius-tooltip:10px}

/* v1.9: one visual contract for all workspace and library components. */
:root{--ec-surface:var(--ec-white);--ec-surface-muted:var(--ec-subtle);--ec-text-panel:18px;--ec-text-metric:32px;--ec-table-control:var(--ec-control-sm);--ec-table-head:48px;--ec-table-row:72px;--ec-table-row-compact:58px;--ec-table-cell-x:16px;--ec-table-cell-y:12px;--ec-table-cell-compact-y:6px;--ec-table-header-bg:var(--ec-subtle);--ec-table-hover:var(--ec-hover);--ec-table-selected:var(--ec-selected);--ec-chart-primary:var(--ec-plum);--ec-chart-secondary:var(--ec-mauve);--ec-chart-accent:var(--ec-apricot)}

/* Field labels: 20% smaller, in the muted brand tone. Values keep their own type scale. */
:root{--ec-label-scale:.8;--ec-label-size:11.2px;--ec-label-color:var(--ec-muted)}

/* Header links and dropdown items share one navigation type scale. */
:root{--ec-nav-size:14px;--ec-nav-weight:700;--ec-nav-leading:1.5}

/* components.css */
*{box-sizing:border-box}body{margin:0;font:16px/1.55 var(--ec-font-body);color:var(--ec-ink);background:#fff}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--ec-font-heading);color:var(--ec-plum);letter-spacing:-.035em}h1{font-size:32px;line-height:1.2}h2{font-size:24px;line-height:1.25}h3{font-size:18px}h4{font-size:16px}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:none;box-shadow:var(--ec-focus)}[hidden]{display:none!important}.ec-icon{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.ec-logo{width:148px;height:auto;display:block}.ec-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:var(--ec-control-md);padding:0 20px;border:1px solid transparent;border-radius:var(--ec-radius-action);font:700 14px/1.2 var(--ec-font-heading);text-decoration:none;background:var(--ec-plum);color:white;transition:background var(--ec-duration),transform var(--ec-duration);white-space:nowrap}.ec-btn:hover{background:var(--ec-plum-hover)}.ec-btn:active{background:var(--ec-plum-pressed);transform:scale(.98)}.ec-btn .arrow{transition:transform var(--ec-duration)}.ec-btn:hover .arrow{transform:translateX(3px)}[dir=rtl] .ec-btn .arrow{transform:scaleX(-1)}[dir=rtl] .ec-btn:hover .arrow{transform:scaleX(-1) translateX(3px)}.ec-btn.secondary{background:white;border-color:var(--ec-plum);color:var(--ec-plum)}.ec-btn.secondary:hover{background:var(--ec-subtle)}.ec-btn.soft{background:var(--ec-apricot);color:var(--ec-plum)}.ec-btn.soft:hover{background:#ffc19f}.ec-btn.ghost{background:transparent;color:var(--ec-plum)}.ec-btn.ghost:hover{background:var(--ec-subtle)}.ec-btn.danger{background:var(--ec-danger);color:#fff}.ec-btn.sm{min-height:var(--ec-control-sm);padding:0 16px}.ec-btn.lg{min-height:56px;padding:0 24px;font-size:16px}.ec-btn.pill{border-radius:999px}.ec-btn.icon-only{padding:0;width:44px;min-height:44px;border-radius:50%}.ec-btn:disabled,.ec-btn[aria-disabled=true]{background:#EEE8EC;color:#8A7C86;border-color:transparent;transform:none;pointer-events:none}.ec-btn.busy{min-width:156px}.ec-spinner{width:17px;height:17px;border:2px solid #ffffff66;border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ec-link{display:inline-flex;align-items:center;gap:8px;padding:10px 0;border:0;background:none;font:700 14px var(--ec-font-heading);color:var(--ec-plum);text-decoration:underline;text-underline-offset:4px}.ec-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:var(--ec-subtle);color:var(--ec-muted);padding:4px 10px;font-size:12px;white-space:nowrap}.ec-badge.success{background:var(--ec-success-soft);color:var(--ec-success)}.ec-badge.warning{background:var(--ec-warning-soft);color:var(--ec-warning)}.ec-badge.danger{background:var(--ec-danger-soft);color:var(--ec-danger)}.ec-badge.info{background:var(--ec-info-soft);color:var(--ec-info)}.ec-badge.brand{background:var(--ec-lilac);color:var(--ec-plum)}.ec-card{background:white;border:1px solid var(--ec-line);border-radius:16px;padding:24px}.ec-field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:14px}.ec-field>span:first-child,.ec-field>label,.ec-field-label{font-family:var(--ec-font-heading);font-weight:700;color:var(--ec-label-color);font-size:var(--ec-label-size)}.ec-input{width:100%;min-height:48px;border:1px solid var(--ec-field-border);border-radius:12px;background:white;padding:12px 14px;font-size:16px;line-height:1.4}.ec-input:hover{border-color:var(--ec-plum)}.ec-input:disabled{background:var(--ec-subtle);color:var(--ec-muted)}.ec-input[aria-invalid=true]{border-color:var(--ec-danger);background:#fffcfc}.ec-helper{font-size:12px;color:var(--ec-muted)}.ec-helper.error{color:var(--ec-danger)}textarea.ec-input{min-height:108px;resize:vertical}.ec-choice{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;cursor:pointer}.ec-choice input{width:20px;height:20px;accent-color:var(--ec-plum)}.ec-switch{appearance:none;width:44px!important;height:26px!important;border-radius:99px;background:#b9acb5;position:relative;transition:background var(--ec-duration)}.ec-switch:after{content:'';position:absolute;width:20px;height:20px;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002}.ec-switch:checked{background:var(--ec-plum)}.ec-switch:checked:after{left:21px}.ec-chip{display:inline-flex;gap:7px;align-items:center;border:1px solid var(--ec-line);border-radius:999px;background:white;padding:9px 15px;min-height:40px;font-size:14px}.ec-chip[aria-pressed=true]{background:var(--ec-plum);border-color:var(--ec-plum);color:#fff}.ec-tabs{display:flex;gap:20px;border-bottom:1px solid var(--ec-line);overflow-x:auto}.ec-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:14px 0;font-weight:700;white-space:nowrap;font-size:14px}.ec-tabs button[aria-selected=true]{border-color:var(--ec-plum);color:var(--ec-plum)}.ec-segment{display:inline-flex;gap:4px;padding:4px;background:var(--ec-subtle);border-radius:12px}.ec-segment button{border:0;background:transparent;border-radius:8px;padding:8px 16px;font-size:14px}.ec-segment button[aria-pressed=true]{background:white;box-shadow:0 1px 4px #48213f12;color:var(--ec-plum);font-weight:700}.ec-search{display:flex;align-items:center;min-height:64px;padding:6px;border:1px solid var(--ec-line);border-radius:999px;background:white;box-shadow:0 4px 14px #48213f0b;max-width:820px;width:100%;margin:auto}.ec-search .part{border:0;border-right:1px solid var(--ec-line);background:none;text-align:start;flex:1;padding:0 22px;min-width:0}.ec-search .part strong,.ec-search .part small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-search .part strong{font-size:14px}.ec-search .part small{font-size:12px;color:var(--ec-muted)}.ec-search .ec-btn{min-height:48px;flex:none}.ec-search.compact{min-height:48px;padding:4px;max-width:500px}.ec-search.compact .part{padding:0 16px;font-size:14px}.ec-search.compact .ec-btn{min-height:40px;width:40px}/* Shared table recipe: listing management, analytics, admin records, billing and roles. */
.ec-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);background:var(--ec-surface);scrollbar-width:thin}
.ec-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--ec-surface);color:var(--ec-ink);text-align:start;font:400 var(--ec-text-small)/1.5 var(--ec-font-body);white-space:nowrap;font-variant-numeric:tabular-nums}
.ec-table :is(th,td){padding:var(--ec-table-cell-y) var(--ec-table-cell-x);border-bottom:1px solid var(--ec-line);vertical-align:middle;text-align:start;font-weight:400}
.ec-table thead th{height:var(--ec-table-head);padding-block:0;background:var(--ec-table-header-bg);color:var(--ec-muted);font:700 var(--ec-text-caption)/1.5 var(--ec-font-heading);white-space:nowrap}
.ec-table tbody tr{height:var(--ec-table-row);transition:background var(--ec-duration)}
.ec-table tbody tr>:is(th,td){border-radius:0}
.ec-table tbody th{background:transparent;color:var(--ec-plum);font:700 var(--ec-text-small)/1.5 var(--ec-font-heading)}
.ec-table tbody tr:last-child>:is(th,td){border-bottom:0}
.ec-table tbody tr:hover{background:var(--ec-table-hover)}
.ec-table tbody tr.is-selected{background:var(--ec-table-selected)}
.ec-table :is(th,td).numeric{text-align:end}
.ec-table small{display:block;color:var(--ec-muted);font:400 var(--ec-text-caption)/1.5 var(--ec-font-body);margin-top:4px}
.ec-table strong{display:block;font:700 var(--ec-text-small)/1.5 var(--ec-font-heading);color:var(--ec-plum)}
.ec-table caption{text-align:start;padding:16px;font:400 var(--ec-text-caption)/1.5 var(--ec-font-body);color:var(--ec-muted)}
.ec-table-link{display:inline-flex;align-items:center;gap:12px;min-height:var(--ec-touch-target);max-width:100%;padding:0;border:0;border-radius:6px;background:transparent;text-align:start;color:var(--ec-plum);font:700 var(--ec-text-small)/1.5 var(--ec-font-heading);cursor:pointer;text-decoration:none}
.ec-table-link>span{min-width:0}.ec-table-link:hover>span{text-decoration:underline;text-underline-offset:3px}.ec-table-link .ec-icon{width:16px;height:16px;flex:none}
.ec-table input[type=checkbox]{width:18px;height:18px;accent-color:var(--ec-plum)}
.ec-table--compact tbody tr,[data-density=compact] .ec-table tbody tr,.density-compact .ec-table tbody tr{height:var(--ec-table-row-compact)}
.ec-table--compact :is(th,td),[data-density=compact] .ec-table tbody :is(th,td),.density-compact .ec-table tbody :is(th,td){padding-block:var(--ec-table-cell-compact-y)}
.ec-stat{padding:20px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);background:white}.ec-stat .value{font:700 var(--ec-text-metric)/1.25 var(--ec-font-heading);color:var(--ec-plum);margin:12px 0 6px}.ec-stat p{font-size:14px;color:var(--ec-muted)}.ec-stat small{color:var(--ec-success);font-size:12px}.ec-alert{padding:16px;display:flex;align-items:flex-start;gap:12px;background:var(--ec-info-soft);border-radius:12px;font-size:14px;color:var(--ec-info)}.ec-alert.warning{background:var(--ec-warning-soft);color:var(--ec-warning)}.ec-alert.success{background:var(--ec-success-soft);color:var(--ec-success)}.ec-alert.danger{background:var(--ec-danger-soft);color:var(--ec-danger)}.ec-avatar{width:40px;height:40px;border-radius:50%;background:#efe7f5;color:var(--ec-plum);display:inline-grid;place-items:center;font:700 14px 'Google Sans Flex';flex:none}.ec-property{padding:0;overflow:hidden;border-radius:17px}.ec-property .photo{position:relative;height:200px}.ec-property .photo img{width:100%;height:100%;object-fit:cover}.ec-property .photo .ec-badge{position:absolute;left:14px;top:14px;background:#fffffff2;color:var(--ec-plum)}.ec-property .photo .save{position:absolute;right:12px;top:12px;background:white;color:var(--ec-plum)}.ec-property .copy{padding:18px 20px}.ec-property h3{font-size:18px}.ec-property .place{font-size:12px;color:var(--ec-muted);margin-bottom:5px}.ec-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}.ec-tags span{font-size:12px;border:1px solid var(--ec-line);border-radius:5px;padding:3px 7px;color:var(--ec-muted)}.ec-price{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--ec-line);padding-top:12px}.ec-price strong{font:700 18px 'Google Sans Flex';color:var(--ec-plum)}.ec-price small{font-size:12px;color:var(--ec-muted)}.ec-progress{height:8px;background:#eee8ec;border-radius:99px;overflow:hidden}.ec-progress span{display:block;height:100%;background:var(--ec-plum);border-radius:99px}.ec-skeleton{border-radius:8px;background:linear-gradient(100deg,#f2edef,#e6dfe4,#f2edef);background-size:200%;animation:shimmer 2s linear infinite;height:16px}@keyframes shimmer{to{background-position:200%}}.ec-dropzone{border:1px dashed var(--ec-border);border-radius:16px;padding:24px;text-align:center;background:var(--ec-subtle)}.ec-stepper{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}.ec-stepper span{display:flex;align-items:center;gap:8px;color:var(--ec-muted)}.ec-stepper b{width:28px;height:28px;display:grid;place-items:center;background:var(--ec-subtle);border-radius:50%}.ec-stepper .active{color:var(--ec-plum);font-weight:700}.ec-stepper .active b{background:var(--ec-plum);color:white}.ec-dialog{border:0;border-radius:24px;padding:0;width:min(540px,calc(100% - 32px));max-height:85vh;box-shadow:var(--ec-shadow-overlay);color:var(--ec-ink)}.ec-dialog::backdrop{background:#23131e66;backdrop-filter:blur(3px)}.ec-dialog>header,.ec-dialog>footer{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--ec-line)}.ec-dialog>footer{border:0;border-top:1px solid var(--ec-line)}.ec-dialog .body{padding:24px}.ec-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:90;background:var(--ec-plum);color:#fff;padding:14px 22px;border-radius:12px;box-shadow:var(--ec-shadow-overlay);font-size:14px;max-width:calc(100% - 32px)}.ec-empty{text-align:center;padding:28px 20px;border:1px dashed var(--ec-line);border-radius:16px}.ec-empty p{margin:8px 0 18px;font-size:14px;color:var(--ec-muted)}.ec-breadcrumb{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--ec-muted)}.ec-pager{display:flex;align-items:center;gap:4px}.ec-pager button{border:0;background:white;min-width:40px;height:40px;border-radius:50%;font-size:14px}.ec-pager button[aria-current=page]{background:var(--ec-plum);color:white}.ec-metric-chart{display:flex;align-items:end;gap:10px;height:150px;border-bottom:1px solid var(--ec-line);padding-top:15px}.ec-metric-chart div{flex:1;background:var(--ec-lilac);border-radius:5px 5px 0 0;position:relative;min-width:8px}.ec-metric-chart div:nth-child(3n){background:var(--ec-plum)}.ec-metric-chart small{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:12px;color:var(--ec-muted)}.ec-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.ec-calendar>div,.ec-calendar>button{border:1px solid var(--ec-line);border-radius:8px;background:white;min-height:44px;padding:6px;font-size:14px}.ec-calendar>div{border:0;color:var(--ec-muted);text-align:center;min-height:26px;font-size:12px}.ec-calendar>button[aria-pressed=true]{background:var(--ec-plum);color:white}.ec-calendar>button.booked{background:#eee8ec;color:var(--ec-muted)}.ec-calendar>button small{display:block;font-size:10px}.ec-sidebar{padding:20px;background:#fff;border-right:1px solid var(--ec-line);width:196px;flex:none}.ec-sidebar p{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ec-muted);margin:24px 0 10px}.ec-sidebar a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:10px 12px;border-radius:9px;font-size:13px;margin:3px 0}.ec-sidebar a.active{background:var(--ec-cream);font-weight:700;color:var(--ec-plum)}.ec-page-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.ec-page-head p{font-size:14px;color:var(--ec-muted);margin-top:6px}.ec-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ec-between{justify-content:space-between}.ec-stack{display:grid;gap:16px}.ec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.ec-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ec-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.ec-caption{font-size:12px;color:var(--ec-muted)}.ec-muted{color:var(--ec-muted);font-size:14px}.ec-divider{height:1px;background:var(--ec-line);margin:20px 0}.ec-list{display:grid;gap:0}.ec-list>div{padding:14px 0;border-bottom:1px solid var(--ec-line)}.ec-list>div:last-child{border:0}.ec-message{padding:12px 16px;border-radius:16px 16px 16px 4px;background:var(--ec-subtle);max-width:80%;font-size:14px}.ec-message.mine{margin-left:auto;background:var(--ec-plum);color:white;border-radius:16px 16px 4px 16px}.ec-menu{position:relative}.ec-menu summary{list-style:none}.ec-menu>div{position:absolute;right:0;z-index:6;background:white;padding:6px;border:1px solid var(--ec-line);border-radius:12px;box-shadow:var(--ec-shadow-overlay);min-width:150px}.ec-menu>div button{display:block;width:100%;padding:10px;border:0;background:none;text-align:left;font-size:14px}.ec-menu>div button:hover{background:var(--ec-subtle)}.ec-upload-thumb{width:90px;height:64px;object-fit:cover;border-radius:8px}.ec-kbd{border:1px solid var(--ec-line);border-bottom-width:3px;padding:2px 6px;border-radius:4px;font-size:12px;font-family:inherit}.ec-counter{display:flex;align-items:center;gap:18px}.ec-counter output{min-width:18px;text-align:center}progress{width:100%;height:10px;accent-color:var(--ec-plum)}
@media(max-width:760px){.ec-grid,.ec-grid.three,.ec-grid.four{grid-template-columns:1fr}.ec-search{border-radius:24px;flex-wrap:wrap;gap:12px;padding:12px}.ec-search .part{flex-basis:40%;padding:0 8px}.ec-search .ec-btn{width:100%}.ec-search.compact{flex-wrap:nowrap;gap:0;border-radius:999px}.ec-search.compact .part{flex-basis:auto;padding:0 10px}.ec-search.compact .part:nth-child(2){display:none}.ec-search.compact .ec-btn{width:40px}.ec-page-head{align-items:flex-start;flex-direction:column}.ec-sidebar{display:none}.ec-btn.sm{min-height:44px}.ec-property .photo{height:240px}}

/* Related searches (29 September 2026): the page's target keywords as pill links; the same on marketplace and support pages. */
.related-searches h2{margin:0;font:700 16px/1.4 var(--ec-font-heading);color:var(--ec-plum)}
.related-searches ul{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.related-searches .ec-chip{color:var(--ec-plum);text-decoration:none}
.related-searches .ec-chip:hover{border-color:var(--ec-plum)}
.property-image-placeholder svg{width:40px;height:40px}

/* refinements.css */
/* v1.1 — unified action geometry and contextual search interactions. */
:root{--ec-radius-control:16px;--ec-radius-action:999px;--ec-radius-overlay:28px;--ec-control-sm:44px;--ec-duration:180ms;--ec-control-border:#D7CDD3;--ec-selected:#FFF6EE;--ec-hover:#F5F1F4}
.ec-btn{border-radius:var(--ec-radius-action);padding-inline:22px;gap:12px;min-height:var(--ec-control-md,48px);letter-spacing:-.01em;transition:background var(--ec-duration),box-shadow var(--ec-duration),transform calc(var(--ec-duration) * 2 / 3)}
.ec-btn.secondary{border-color:var(--ec-control-border);background:white}.ec-btn.secondary:hover{border-color:var(--ec-state-border,#101114);background:var(--ec-state-fill,rgba(16,17,20,.04))}.ec-btn:hover{box-shadow:0 3px 10px #48213f0d}.ec-btn:active{transform:scale(.97);box-shadow:none}.ec-btn:disabled,.ec-btn[aria-disabled=true]{box-shadow:none;opacity:1}.ec-btn.sm{min-height:44px;padding:0 18px}.ec-btn.lg{min-height:56px;padding:0 26px}.ec-btn.icon-only{padding:0;width:44px;height:44px;min-height:44px}.ec-btn.ghost.icon-only{background:var(--ec-subtle)}.ec-btn.ghost.icon-only:hover{background:#EDE7EB}.ec-btn .arrow{width:20px;height:20px}.ec-btn:disabled .arrow{transform:none}.ec-btn.secondary:focus-visible,.ec-btn:focus-visible{box-shadow:var(--ec-focus)}
.ec-input{border-color:var(--ec-field-border);border-radius:var(--ec-radius-control);transition:border-color var(--ec-duration),box-shadow var(--ec-duration)}.ec-input:focus{outline:none;border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.ec-input:focus-visible{outline:2px solid var(--ec-plum);outline-offset:3px;box-shadow:none}.ec-chip{min-height:44px;padding:10px 16px;border-color:var(--ec-control-border);transition:background var(--ec-duration),border-color var(--ec-duration)}.ec-chip:hover{border-color:var(--ec-plum);background:var(--ec-hover)}.ec-chip[aria-pressed=true]{background:var(--ec-cream);border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum);color:var(--ec-plum);font-weight:700}.ec-dialog{border-radius:var(--ec-radius-overlay)}.ec-dialog>header{padding:18px 24px;justify-content:flex-start;flex-direction:row-reverse}.ec-dialog>header h3{flex:1;text-align:center;padding-right:44px}.ec-dialog>footer{position:sticky;bottom:0;background:white}.ec-dialog .body{max-height:65vh;overflow-y:auto}.ec-dialog.drawer>header h3{text-align:left;padding:0}.ec-dialog.drawer>header{flex-direction:row}.ec-dialog.drawer .body{max-height:none;min-height:calc(100dvh - 170px)}.ec-dialog::backdrop{background:#20141b66;backdrop-filter:blur(2px)}
.action-feature{background:var(--ec-cream);padding:28px;border-radius:24px;display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;border:1px solid #edddd1;margin:18px 0}.action-feature p{max-width:500px;margin-top:8px;font-size:14px;color:var(--ec-muted)}.action-feature h3{font-size:24px}.action-feature .ec-row{flex-wrap:nowrap}.action-family{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.action-family>div{border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);padding:20px;background:white;display:grid;gap:14px;justify-items:start}.action-family strong{font:700 13px 'Google Sans Flex'}.action-family p{font-size:12px;color:var(--ec-muted)}.radius-reference{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.radius-reference span{font-size:12px;color:var(--ec-muted)}.radius-reference b{display:inline-grid;place-items:center;padding:12px 18px;border:1px solid var(--ec-control-border);font-size:12px;font-weight:400}.state-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.state-strip .state{flex:1;min-width:135px}.section-forward{display:inline-flex;gap:10px;align-items:center;color:var(--ec-plum);text-decoration:none;font:700 20px 'Google Sans Flex'}.section-forward .circle{background:var(--ec-subtle);width:32px;height:32px;display:grid;place-items:center;border-radius:50%;transition:background 180ms,transform 180ms}.section-forward:hover .circle{background:#e9e0e6;transform:translateX(3px)}
.ec-search{min-height:64px;height:64px;padding:6px;border:1px solid var(--ec-field-border);box-shadow:0 4px 18px #48213f0b;gap:0;max-width:850px;transition:box-shadow 180ms}.ec-search:hover{box-shadow:0 5px 22px #48213f14}.ec-search .part{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:0 24px;border:0;border-radius:999px;transition:background 180ms,box-shadow 180ms}.ec-search .part:after{content:'';height:30px;width:1px;background:var(--ec-line);position:absolute;right:0;top:50%;transform:translateY(-50%)}.ec-search .part:hover{background:var(--ec-hover)}.ec-search .part:hover:after,.ec-search .part[aria-expanded=true]:after{opacity:0}.ec-search .part[aria-expanded=true]{background:#fff;box-shadow:0 4px 18px #48213f25}.ec-search:has([aria-expanded=true]){background:#F0EBEE}.ec-search .part strong{font:700 12px/1.6 'Google Sans Flex'}.ec-search .part small{font:400 14px/1.5 'Google Sans Flex';color:var(--ec-muted);max-width:100%}.ec-search>.search-go{width:48px;height:48px;min-height:48px;padding:0;border-radius:50%;flex:none;margin-left:6px}.ec-search>.search-go .ec-icon{width:20px;height:20px}.ec-search.compact{height:48px;min-height:48px;padding:3px;max-width:530px}.ec-search.compact .part{padding-inline:18px;white-space:nowrap}.ec-search.compact .part small{display:none}.ec-search.compact .part strong{font-size:13px}.ec-search.compact>.search-go{width:40px;height:40px;min-height:40px}.ec-search.compact .part:after{height:22px}.ec-search-group{position:relative}.ec-search .mobile-summary{display:none}.search-result-note{font-size:13px;color:var(--ec-muted);margin-top:18px;display:flex;justify-content:space-between;gap:16px;align-items:center}.search-result-note strong{color:var(--ec-plum)}.filter-count{background:var(--ec-plum);color:white;font-size:11px;display:grid;place-items:center;min-width:20px;height:20px;border-radius:99px}.active-filter-list{display:flex;gap:8px;flex-wrap:wrap;min-height:44px;align-items:center;margin-top:16px}.ec-filter-tag{border:1px solid var(--ec-line);background:var(--ec-cream);color:var(--ec-plum);border-radius:999px;padding:8px 12px;font-size:12px;min-height:36px;display:flex;align-items:center;gap:7px}.ec-filter-tag .ec-icon{width:14px;height:14px}.ec-filter-tag:hover{border-color:var(--ec-plum)}.interaction-hint{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--ec-muted);padding:14px 18px;background:var(--ec-subtle);border-radius:14px;margin:18px 0}.ec-segment{border-radius:999px;padding:4px;background:#F0EBEE}.ec-segment button{border-radius:999px;min-height:40px}.ec-segment button[aria-pressed=true]{box-shadow:0 2px 5px #48213f1a}.interaction-preview{border:1px solid var(--ec-line);border-radius:24px;overflow:hidden;background:#fff}.interaction-preview>header{padding:18px 22px;border-bottom:1px solid var(--ec-line);display:flex;align-items:center;justify-content:space-between}.interaction-preview>div{padding:24px}.interaction-preview>footer{padding:16px 24px;border-top:1px solid var(--ec-line);display:flex;align-items:center;justify-content:space-between}.choice-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice-tile{position:relative;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:8px;min-height:92px;padding:16px;border:1px solid var(--ec-control-border);border-radius:16px;cursor:pointer;background:#fff;font:700 14px 'Google Sans Flex';transition:background 150ms,border-color 150ms}.choice-tile small{font:400 12px 'Google Sans Flex';color:var(--ec-muted)}.choice-tile:has(input:checked){border:2px solid var(--ec-plum);padding:15px;background:var(--ec-cream)}.choice-tile input{position:absolute;opacity:0;width:1px;height:1px}.choice-tile:focus-within{outline:2px solid var(--ec-plum);outline-offset:3px}.choice-tile:hover{border-color:var(--ec-plum)}
.ec-search-popover{position:fixed;inset:auto;margin:0;width:440px;max-width:calc(100vw - 32px);padding:24px;border:1px solid var(--ec-line);border-radius:28px;box-shadow:0 16px 50px #48213f26;background:#fff;color:var(--ec-ink);max-height:min(660px,75vh);overflow-y:auto}.ec-search-popover::backdrop{background:transparent}.ec-search-popover h3{font-size:19px;margin-bottom:20px}.ec-search-popover .ec-field{margin-bottom:16px}.destination-list{display:grid;gap:3px;margin-top:12px}.destination-option{border:0;background:white;border-radius:14px;padding:12px;display:flex;gap:14px;align-items:center;text-align:left;width:100%}.destination-option:hover,.destination-option[aria-selected=true]{background:var(--ec-hover)}.destination-option .pin-box{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--ec-cream);color:var(--ec-plum)}.destination-option strong{font:700 14px 'Google Sans Flex'}.destination-option small{display:block;font-size:12px;color:var(--ec-muted);margin-top:3px}.search-panel-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--ec-line);padding-top:18px;margin-top:20px}.budget-histogram{display:flex;align-items:end;gap:4px;height:66px;margin:15px 0 6px}.budget-histogram span{flex:1;background:var(--ec-lilac);border-radius:3px 3px 0 0}.budget-histogram span.on{background:var(--ec-plum)}input[type=range]{accent-color:var(--ec-plum);width:100%;min-height:28px;cursor:pointer}.price-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}.filter-section{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid var(--ec-line)}.filter-section h4{font-size:18px;margin-bottom:14px}.filter-section p{font-size:13px;color:var(--ec-muted);margin:5px 0 16px}.filter-section:last-child{border:0;margin:0;padding:0}.stepper-row{display:flex;align-items:center;justify-content:space-between;min-height:66px;gap:20px}.stepper-row small{display:block;color:var(--ec-muted);font-size:12px}.ec-counter button{width:36px!important;height:36px!important;min-height:36px!important;border:1px solid var(--ec-control-border);border-radius:50%;background:white;display:grid;place-items:center;padding:0}.ec-counter button:disabled{opacity:.35;cursor:not-allowed}.ec-counter button:hover:not(:disabled){border-color:var(--ec-plum)}.ec-counter output{font-size:14px;width:24px}.amenity-choice{display:flex;justify-content:space-between;align-items:center;gap:15px;min-height:54px;font-size:14px}.amenity-choice input{width:22px;height:22px;accent-color:var(--ec-plum)}.amenity-choice span{display:flex;gap:12px;align-items:center}.ec-filter-dialog{width:min(650px,calc(100% - 32px))}.ec-filter-dialog .body{max-height:65vh}.filter-footer-copy{font-size:12px;color:var(--ec-muted)}.ec-search-sheet{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;padding:0;background:var(--ec-subtle);color:var(--ec-ink)}.ec-search-sheet::backdrop{background:#25132270}.search-sheet-top{padding:16px;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--ec-line)}.search-sheet-top strong{font:700 16px 'Google Sans Flex'}.search-sheet-tabs{padding:16px;display:flex;gap:8px}.search-sheet-tabs button{flex:1}.search-sheet-content{margin:0 16px 100px;padding:24px;background:white;border-radius:24px}.search-sheet-bottom{position:fixed;bottom:0;background:white;border-top:1px solid var(--ec-line);padding:16px 20px calc(16px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:20px;width:100%}.selected-check{color:var(--ec-plum);margin-left:auto}.mobile-spec{display:flex;align-items:center;gap:16px;border:1px solid var(--ec-line);border-radius:999px;padding:10px 12px 10px 20px;background:white;box-shadow:0 4px 14px #48213f0b}.mobile-spec .ec-icon{flex:none}.mobile-spec>div{flex:1}.mobile-spec strong{font-size:14px}.mobile-spec small{display:block;color:var(--ec-muted);font-size:12px}.ec-results-status{margin:18px 0;font-size:14px;color:var(--ec-muted)}.ec-results-status strong{color:var(--ec-plum)}.ec-results-empty{grid-column:1/-1;padding:45px;text-align:center;border:1px dashed var(--ec-line);border-radius:20px}.ec-results-empty p{color:var(--ec-muted);margin:10px 0 20px;font-size:14px}.ec-btn[aria-busy=true] .arrow{display:none}
@media(max-width:1000px){.action-family{grid-template-columns:repeat(2,1fr)}.action-feature{grid-template-columns:1fr}.ec-search .part{padding-inline:16px}}
@media(max-width:760px){.action-feature{padding:22px}.action-feature .ec-row{flex-wrap:wrap}.action-family{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}.action-family>div{padding:16px}.action-family .ec-btn{font-size:var(--ec-text-small);padding-inline:18px}.ec-search,.ec-search.compact{height:56px;min-height:56px;flex-wrap:nowrap;border-radius:999px;padding:5px;gap:0;max-width:none}.ec-search .part{display:none!important}.ec-search .part:first-child{display:flex!important;flex:1;border:0;padding:0 14px}.ec-search .part:first-child:after{display:none}.ec-search .part:first-child strong{font-size:14px}.ec-search .part:first-child small{display:none}.ec-search .part:first-child .mobile-summary{display:block;font-size:11px;line-height:1.6}.ec-search>.search-go,.ec-search.compact>.search-go{width:44px;height:44px;min-height:44px}.state-strip{gap:22px}.state-strip .state{min-width:100px;flex-basis:35%}.ec-dialog{width:100%;max-width:100%;margin:auto 0 0;border-radius:28px 28px 0 0;max-height:92dvh}.ec-dialog .body{max-height:calc(92dvh - 158px);padding:20px}.ec-dialog>header,.ec-dialog>footer{padding:16px 20px}.ec-dialog>footer{padding-bottom:calc(16px + env(safe-area-inset-bottom))}.ec-dialog>header h3{font-size:17px}.choice-tiles{gap:8px}.choice-tile{padding:12px;min-height:88px;font-size:12px}.choice-tile:has(input:checked){padding:11px}.choice-tile small{font-size:10px}.ec-counter button{width:44px!important;height:44px!important;min-height:44px!important}.ec-counter{gap:10px}.ec-filter-tag{min-height:44px}.search-result-note{align-items:flex-start;flex-direction:column;gap:8px}.interaction-preview>div{padding:20px}.interaction-preview>footer{padding:16px}.price-controls .ec-input{font-size:16px}.ec-search-sheet .choice-tiles{grid-template-columns:1fr 1fr}.search-sheet-content .destination-option{padding-inline:6px}.ec-results-empty{padding:28px 20px}}
@media(prefers-reduced-motion:reduce){.section-forward:hover .circle{transform:none}.ec-btn:hover .arrow{transform:none}}
@media print{.ec-search-popover,.ec-search-sheet{display:none!important}.action-family{grid-template-columns:repeat(4,1fr)}.action-feature{grid-template-columns:1fr auto;padding:22px}.action-feature h3{font-size:22px}.action-family>div{padding:16px}.state-strip .state{min-width:125px}.ec-search,.ec-search.compact{flex-wrap:nowrap}.ec-search .part{display:flex!important}.ec-search .mobile-summary{display:none}.ec-search.compact .part small{display:none}.ec-search>.search-go{width:48px;height:48px}.ec-search.compact>.search-go{width:40px;height:40px}.ec-btn{white-space:nowrap}.interaction-preview>div{padding:20px}.ec-results-status{font-size:12px}.no-print{display:none!important}}

@media(max-width:760px){.ec-filter-dialog>footer{justify-content:space-between;gap:20px}.ec-filter-dialog>footer>.ec-link{white-space:nowrap;flex:none}.ec-filter-dialog>footer>.ec-row{flex-wrap:nowrap}.ec-filter-dialog .filter-footer-copy{display:none}.ec-search .part:first-child strong{display:none}.ec-search .part:first-child small{display:block;font:700 14px/1.4 'Google Sans Flex';color:var(--ec-plum)}}
/* This file sets --ec-duration again after tokens.css, which overrode the reduced-motion value: keep motion off for people who ask (WCAG 2.3.3). */
@media(prefers-reduced-motion:reduce){:root{--ec-duration:0ms}}

/* marketplace/styles.css */
/* Shared public/workspace header controls. Synced to @coliv/ui by tokens:sync. */
.ec-header-tools {
  --ec-header-control-size: 48px;
  --ec-header-tools-gap: 12px;
  display: flex;
  flex: none;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ec-header-tools-gap);
  min-height: 44px;
}

.ec-header-actions {
  --ec-header-control-size: 48px;
  position: relative;
  display: flex;
  flex: none;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  color: var(--ec-plum);
  font-family: var(--ec-font-heading, 'Google Sans Flex', Arial, sans-serif);
}

.ec-header-actions .ec-header-login {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 4px 8px;
  border-radius: var(--ec-radius-action);
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}

.ec-header-actions .ec-header-icon,
.ec-header-actions .ec-header-loading {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: var(--ec-header-control-size);
  height: var(--ec-header-control-size);
  min-height: var(--ec-header-control-size);
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--surface-secondary, var(--ec-subtle));
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.ec-header-actions .ec-header-icon svg {
  width: 22px;
  height: 22px;
  flex: none;
}

.ec-header-actions .ec-header-loading {
  cursor: default;
}

/* The visible avatar is 25% smaller; its transparent hit area stays at least 44px. */
.ec-header-actions .ec-header-avatar,
.ec-header-actions .ec-header-loading {
  position: relative;
  width: calc(var(--ec-header-control-size) * 0.75);
  height: calc(var(--ec-header-control-size) * 0.75);
  min-height: calc(var(--ec-header-control-size) * 0.75);
  background: var(--ec-selected);
  color: var(--ec-plum);
  box-shadow: inset 0 0 0 1px var(--ec-line);
}

.ec-header-actions .ec-header-avatar::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100%, 44px);
  height: max(100%, 44px);
  transform: translate(-50%, -50%);
  border-radius: 50%;
}

.ec-header-actions .ec-header-avatar svg {
  width: 18px;
  height: 18px;
}

.ec-header-actions .ec-header-icon:hover,
.ec-header-actions .ec-header-icon[aria-expanded='true'],
.ec-header-actions .ec-header-login:hover {
  background: var(--surface-tertiary, var(--ec-hover));
}

.ec-header-actions :is(a, button):focus-visible {
  outline: 2px solid var(--ec-plum, #48213f);
  outline-offset: 3px;
}

.ec-header-actions .ec-header-menu {
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  z-index: 60;
  width: 280px;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 104px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px;
  border: 1px solid var(--border, var(--ec-line, #e6dee3));
  border-radius: var(--ec-radius-panel, 24px);
  background: var(--surface, var(--ec-white, #fff));
  box-shadow: var(--ec-shadow-overlay, 0 16px 48px #48213f24);
  text-align: left;
}

.ec-header-actions .ec-header-menu[hidden] {
  display: none;
}

.ec-header-actions .ec-header-menu :is(a, button) {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 44px;
  padding: 12px;
  border: 0;
  border-radius: var(--ec-radius-action);
  background: transparent;
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.ec-header-actions .ec-header-menu :is(a, button):hover {
  background: var(--surface-secondary, var(--ec-hover, #f5f1f4));
}

.ec-header-actions .ec-header-menu button:disabled {
  opacity: 0.6;
  cursor: wait;
}

.ec-header-actions .ec-header-menu svg {
  width: 18px;
  height: 18px;
  flex: none;
}

.ec-header-actions .ec-header-account-name {
  margin: 0 4px 4px;
  padding: 12px 8px 16px;
  border-bottom: 1px solid var(--border, var(--ec-line, #e6dee3));
  overflow-wrap: anywhere;
  font-size: 14px;
  font-weight: 700;
}

.ec-header-actions .ec-header-menu p {
  margin: 0;
  padding: 8px 12px;
  color: var(--muted, var(--ec-muted, #756470));
  font-size: 13px;
  line-height: 1.5;
}

.ec-header-actions .ec-header-menu [role='alert'] {
  color: var(--ec-danger, #ae2d3c);
}

.ec-header-actions .ec-header-menu-divider {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid var(--border, var(--ec-line, #e6dee3));
}

/* Account tools share the avatar dropdown so signed-in headers stay icon-only. */
.ec-header-actions .ec-header-notifications .live-bell {
  display: block;
  width: 100%;
}

.ec-header-actions .ec-header-notifications .live-bell-trigger {
  justify-content: flex-start;
  height: auto;
}

.ec-header-actions .ec-header-notifications .live-bell-trigger::after {
  content: 'Notifications';
}

.ec-header-actions .ec-header-notifications .live-bell-panel {
  position: static;
  width: 100%;
  max-width: none;
  margin-block: 4px 8px;
  box-shadow: none;
}

@media (max-width: 600px) {
  .ec-header-tools {
    --ec-header-control-size: 44px;
    --ec-header-tools-gap: 10px;
  }

  .ec-header-actions {
    --ec-header-control-size: 44px;
    gap: 8px;
  }

  .ec-header-actions .ec-header-login {
    max-width: 80px;
    padding-inline: 4px;
    text-align: center;
    white-space: normal;
  }
}

/* One brand treatment for public header links, mobile navigation and account menus.
   Group labels and supporting descriptions retain their quieter hierarchy. */
.site-header .desktop-nav a,
.site-header .mobile-nav a,
.site-header .header-login,
.site-header .world-button,
.operator-site-header .operator-primary-nav a,
.op-header .op-desktop-nav a,
.op-header .op-mobile-nav a,
.op-header .op-login,
.city-header .city-desktop-nav a,
.city-header .city-mobile-nav a,
.ec-header-actions .ec-header-login,
.ec-header-actions .ec-header-menu :is(a, button) {
  font: var(--ec-nav-weight) var(--ec-nav-size) / var(--ec-nav-leading) var(--ec-font-heading);
  color: var(--ec-plum);
  letter-spacing: 0;
  text-transform: none;
}

/* Mega menu (Figma "Mega menu / Easycoliv", 613:1784; packages/ui mega-menu.tsx): the guest menu of the operator site
   and the marketplace as link groups and a photo card. The panel is right-aligned under the menu button like the plain
   menu; 160px off the viewport width keeps its left edge on screen for any page gutter up to 160px. */
.ec-header-actions .ec-header-menu:has(> .ec-mega-menu) {
  width: min(1120px, calc(100vw - 160px));
  max-width: none;
  padding: 0;
  box-shadow: 0 16px 48px rgba(72, 33, 63, 0.07);
}

.ec-mega-menu {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 246px;
  gap: 24px;
  padding: 40px;
}

.ec-mega-group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}

.ec-header-actions .ec-mega-group > p {
  margin-bottom: 8px;
  padding: 0;
  color: var(--ec-muted, #756a73);
  font: 400 13px/1.5 var(--ec-font-body, 'Google Sans Flex', Arial, sans-serif);
}

.ec-header-actions .ec-header-menu .ec-mega-group :is(a, button) {
  width: auto;
  min-height: 37px;
  padding: 8px 0;
  border-radius: 0;
  background: none;
  font: 600 14px/21px var(--ec-font-heading, 'Google Sans Flex', Arial, sans-serif);
  text-underline-position: from-font;
}

.ec-header-actions .ec-header-menu .ec-mega-group :is(a, button):hover,
.ec-header-actions .ec-header-menu .ec-mega-group a[aria-current='page'] {
  background: none;
  text-decoration: underline;
}

.ec-header-actions .ec-mega-group svg {
  width: 16px;
  height: 16px;
}

.ec-mega-promo {
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  min-height: 287px;
  padding: 16px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--ec-plum, #48213f);
}

.ec-mega-promo > img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ec-mega-promo::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0.4);
}

.ec-header-actions .ec-mega-promo .ec-mega-promo-title {
  padding: 0;
  color: var(--ec-white, #fff);
  font: 500 36px/1.2 var(--ec-font-heading, 'Google Sans Flex', Arial, sans-serif);
  letter-spacing: -0.02em;
}

.ec-mega-promo-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ec-header-actions .ec-mega-promo .ec-mega-promo-primary {
  justify-content: space-between;
  gap: 16px;
  min-height: 45px;
  padding: 12px 16px;
  border-radius: 8px;
  background: var(--ec-white, #fff);
  color: #101114;
  font: 600 14px/21px var(--ec-font-heading, 'Google Sans Flex', Arial, sans-serif);
}

.ec-header-actions .ec-mega-promo .ec-mega-promo-primary:hover {
  background: var(--ec-selected, #fff6ee);
}

.ec-header-actions .ec-mega-promo .ec-mega-promo-secondary {
  justify-content: center;
  min-height: 24px;
  padding: 0;
  background: none;
  color: var(--ec-white, #fff);
  font: 600 14px/21px var(--ec-font-heading, 'Google Sans Flex', Arial, sans-serif);
  text-decoration: underline;
  text-underline-position: from-font;
}

.ec-header-actions .ec-mega-promo :is(a):focus-visible {
  outline-color: var(--ec-white, #fff);
}

/* Confetti from the frame (612:1786 to 612:1792): apricot and lilac flecks, placed across the card's width. */
.ec-mega-confetti {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.ec-mega-confetti i {
  position: absolute;
  width: 10px;
  height: 15px;
  background: var(--ec-apricot, #ffae80);
  transform: rotate(37.48deg);
}
.ec-mega-confetti i:nth-child(1) { left: 89.6%; top: 27.5px; }
.ec-mega-confetti i:nth-child(2) { left: 49.9%; top: 107px; width: 7.6px; height: 11.4px; }
.ec-mega-confetti i:nth-child(3) { left: 44.4%; top: -3px; width: 5.8px; height: 8.7px; }
.ec-mega-confetti i:nth-child(4) { left: 7.9%; top: 128.5px; transform: rotate(142.52deg); }
.ec-mega-confetti i:nth-child(5) { left: 66.3%; top: 67px; background: var(--ec-lilac, #c9baea); transform: rotate(160.56deg); }
.ec-mega-confetti i:nth-child(6) { left: 94.4%; top: 116px; background: var(--ec-lilac, #c9baea); transform: rotate(-159.8deg); }
.ec-mega-confetti i:nth-child(7) { left: 76.5%; top: 18px; background: var(--ec-lilac, #c9baea); transform: rotate(-159.8deg); }

@media (max-width: 1099px) {
  .ec-mega-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 24px;
  }

  .ec-mega-promo {
    grid-column: 1 / -1;
    min-height: 220px;
  }
}

@media (max-width: 760px) {
  .ec-header-actions .ec-header-menu:has(> .ec-mega-menu) {
    width: calc(100vw - 32px);
  }

  .ec-mega-menu {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
  }

  .ec-header-actions .ec-header-menu .ec-mega-group :is(a, button) {
    min-height: 44px;
    padding-block: 11px;
  }

  .ec-header-actions .ec-mega-promo .ec-mega-promo-title {
    font-size: 28px;
  }
}

:root{--plum:#48213f;--cream:#fff6ee;--apricot:#ffae80;--lilac:#c9baea;--muted:#796574;--line:#e4d7de;--white:#fffdfb;--max:1280px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:115px}body{margin:0;background:var(--cream);color:var(--plum);font:16px/1.65 'Google Sans Flex',Arial,sans-serif}body.dialog-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3,.button,.eyebrow{font-family:'Google Sans Flex',Arial,sans-serif}h1,h2,h3{font-weight:700}h2{font-size:clamp(1.65rem,2.5vw,2.3rem);line-height:1.22;letter-spacing:-.035em}h3{font-size:1.15rem;line-height:1.4;letter-spacing:-.02em}.wrap{width:min(var(--max),calc(100% - 96px));margin-inline:auto}.section{padding-block:76px}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.11em;margin-bottom:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:23px;background:var(--plum);color:var(--cream);border:1px solid var(--plum);border-radius:12px;padding:15px 23px;font-size:.875rem;font-weight:700;line-height:1.4;transition:background .2s,transform .2s}.button:hover{background:#653556;transform:translateY(-1px)}.button-small{padding:12px 20px;border-radius:100px}.button-light{background:var(--apricot);color:var(--plum);border:0}.button-light:hover{background:#ffc09c}.text-link{display:inline-flex;align-items:center;gap:12px;background:transparent;border:0;border-bottom:1px solid currentColor;padding:0 0 3px;font-size:.875rem;font-weight:700;line-height:1.7}.text-link:hover{color:#8a4e73}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px}.section-description{max-width:290px;font-size:1rem;color:var(--muted)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9b6dc1;outline-offset:4px}h2:focus{outline:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:100;top:-80px;left:20px;background:var(--plum);color:white;padding:12px 20px}.skip-link:focus{top:15px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,246,238,.96);border-bottom:1px solid #48213f12;backdrop-filter:blur(16px)}.nav-wrap{height:86px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{position:relative;display:block;width:174px;height:47px;overflow:hidden;flex:none}.brand img{position:absolute;width:203px;max-width:none;height:auto;left:-13px;top:-14px}.desktop-nav{display:flex;gap:28px;align-items:center;font-size:.875rem;font-family:'Google Sans Flex',sans-serif;font-weight:700}.desktop-nav a{padding:13px 0;border-bottom:2px solid transparent}.desktop-nav .active{border-color:var(--plum)}.desktop-nav a:hover{border-color:var(--apricot)}.header-actions{display:flex;align-items:center;gap:22px}.world-button{display:flex;align-items:center;gap:7px;border:0;background:transparent;font-size:.875rem;padding:5px 0}.world-button svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.5}.menu-toggle{display:none;border:0;background:transparent;width:44px;height:44px;padding:9px}.menu-toggle span{display:block;height:2px;width:24px;background:currentColor;margin-block:7px}.mobile-nav{border-top:1px solid var(--line);padding:8px 24px 20px}.mobile-nav a{display:block;padding:13px 0}
.market-hero{text-align:center;padding:49px 0 45px}.market-hero .eyebrow{margin-bottom:18px;letter-spacing:.14em}.market-hero h1{font-size:clamp(2.7rem,4.5vw,4.25rem);line-height:1.13;letter-spacing:-.045em}.market-hero h1 span{color:#855272}.hero-description{margin:20px auto 29px;font-size:1rem;color:var(--muted);line-height:1.7}.search-bar{display:flex;align-items:stretch;text-align:left;max-width:1060px;margin:auto;padding:9px;background:white;border:1px solid #d7c7d0;border-radius:18px;box-shadow:0 8px 24px #48213f08}.search-field{display:flex;flex-direction:column;padding:10px 23px;flex:1;border-right:1px solid var(--line);min-width:0}.destination-field{flex:1.4}.search-field>span{font-family:'Google Sans Flex',sans-serif;font-weight:700;font-size:calc(.875rem * var(--ec-label-scale));margin-bottom:3px;color:var(--ec-label-color)}.search-field input,.search-field select{width:100%;border:0;background:transparent;color:var(--muted);font-size:1rem;min-height:27px;padding:0}.search-field input::placeholder{color:var(--muted);opacity:1}.search-submit{margin-left:9px;border-radius:12px;gap:11px;padding-inline:25px}.search-submit svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8}.quick-search{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:19px;font-size:.8125rem}.quick-search>span{color:var(--muted)}.quick-search button{font-size:.8125rem;background:transparent;border:0;padding:4px 0}.quick-search button:hover{text-decoration:underline}.quick-search button:last-child{border-left:1px solid var(--line);padding-left:16px}
.destinations-section{padding-top:22px}.destination-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:17px}.destination-card{position:relative;overflow:hidden;isolation:isolate;min-height:228px;border-radius:14px;text-align:left;padding:0;border:0;background:var(--plum);color:white}.destination-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#251421d9);z-index:1}.destination-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}.destination-card:hover img{transform:scale(1.05)}.destination-caption{position:absolute;z-index:2;bottom:18px;left:18px;right:12px}.destination-caption strong{display:block;font:700 1.24rem/1.35 'Google Sans Flex',sans-serif;letter-spacing:-.025em}.destination-caption small{display:block;font-size:.8125rem;margin-top:3px;color:#fff7f0}.destination-card .destination-arrow{position:absolute;right:14px;top:13px;z-index:2;width:29px;height:29px;display:grid;place-items:center;background:#fffdfbdc;border-radius:50%;color:var(--plum);font-size:1.1rem}
.homes-section{padding-top:65px}.preview-label{font-size:.8125rem;background:#f0e6f5;border:1px solid #e0d2e9;border-radius:30px;padding:6px 12px;white-space:nowrap;display:flex;align-items:center;gap:8px}.info-dot{border:1px solid currentColor;border-radius:50%;width:15px;height:15px;display:inline-grid;place-items:center;font-size:.7rem;line-height:1}.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:17px}.region-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.region-filters button{background:transparent;border:1px solid transparent;border-radius:100px;font-size:.875rem;padding:8px 15px;white-space:nowrap}.region-filters button[aria-pressed=true]{background:var(--plum);color:var(--cream)}.region-filters button:hover{border-color:var(--plum)}.sort-control{display:flex;gap:8px;font-size:.8125rem;color:var(--muted);white-space:nowrap;align-items:center}.sort-control select{border:0;background:transparent;font-size:.8125rem;max-width:150px;padding:8px 0;color:var(--plum)}.results-context{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:56px;font-size:.8125rem;color:var(--muted)}.results-context .text-link{font-size:.8125rem}.home-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px}.home-card{border:1px solid var(--line);border-radius:17px;overflow:hidden;background:var(--white);transition:box-shadow .2s,transform .2s}.home-card:hover{box-shadow:0 8px 22px #48213f0b;transform:translateY(-3px)}.home-card-main{display:block;width:100%;text-align:left;background:none;border:0;padding:0}.home-image{height:220px;position:relative;overflow:hidden}.home-image img{width:100%;height:100%;object-fit:cover}.home-image .room-label{position:absolute;left:14px;top:14px;background:#fffdfbeF;padding:4px 10px;border-radius:20px;font-size:.75rem}.home-copy{padding:18px 20px 17px}.home-location{font-size:.8125rem;color:var(--muted);margin-bottom:7px}.home-copy h3{font-size:1.15rem}.home-amenities{display:flex;flex-wrap:wrap;gap:7px;margin:13px 0 17px}.home-amenities span{font-size:.75rem;border:1px solid var(--line);border-radius:5px;padding:3px 7px;color:#70566b}.home-price-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eee3e8;padding-top:13px;gap:10px}.home-price-row strong{font:700 1.12rem 'Google Sans Flex',sans-serif}.home-price-row small{font-size:.75rem;color:var(--muted)}.home-price-row .view-home{width:31px;height:31px;background:var(--cream);border-radius:50%;display:grid;place-items:center}.collection-note{font-size:.8125rem;color:var(--muted);margin-top:25px;line-height:1.7}.empty-results{text-align:center;background:#f2e9f0;border-radius:17px;padding:45px 25px}.empty-results p{max-width:540px;margin:14px auto 24px;color:var(--muted);font-size:1rem}.empty-globe{display:block;font-size:2rem;margin-bottom:14px}
.world-section{background:var(--plum);color:var(--cream);padding:66px 0}.world-inner{display:grid;grid-template-columns:1fr 1.6fr;gap:90px;align-items:center}.world-copy .eyebrow{color:var(--apricot);max-width:260px;line-height:1.6}.world-copy h2{font-size:2.7rem}.world-copy>p:not(.eyebrow){color:#deccd9;font-size:1rem;max-width:325px;margin:22px 0 26px}.world-copy .button{font-size:.8125rem;padding:15px 17px;gap:12px}.country-regions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:33px 32px}.country-regions h3{font-size:1rem;color:var(--apricot);margin-bottom:11px}.country-regions button{display:block;border:0;background:none;color:var(--cream);font-size:.875rem;padding:5px 0;text-align:left}.country-regions button:hover{text-decoration:underline}.country-regions .region-more{font-size:.75rem;color:var(--lilac);padding-top:12px}.everywhere-card{border:1px solid #806076;border-radius:12px;padding:14px 15px}.everywhere-card>span{float:right;color:var(--apricot)}.everywhere-card h3{font-size:.875rem}.everywhere-card p{font-size:.8125rem;color:#deccd9;line-height:1.6}.everywhere-card button{font-size:.75rem;text-decoration:underline;margin-top:9px}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:50px;margin-top:42px}.steps article{position:relative;padding-left:57px}.step-number{position:absolute;top:0;left:0;display:grid;place-items:center;width:37px;height:37px;background:var(--apricot);border-radius:50%;font:700 .75rem 'Google Sans Flex',sans-serif}.steps article:nth-child(2) .step-number{background:var(--lilac)}.steps article:nth-child(3) .step-number{background:var(--plum);color:var(--cream)}.steps h3{font-size:1.12rem}.steps p{font-size:1rem;color:var(--muted);margin-top:11px}.host-panel{display:grid;grid-template-columns:1.1fr 1fr;background:var(--apricot);border-radius:21px;overflow:hidden}.host-panel>div:first-child{padding:44px 45px}.host-panel h2{font-size:2.5rem}.host-panel p:not(.eyebrow){font-size:1rem;color:#63384d;max-width:440px;margin:21px 0 23px}.host-photo{min-height:350px;position:relative}.host-photo img{inset:0;width:100%;height:100%;object-fit:cover;position:absolute}.host-photo>span{position:absolute;bottom:22px;right:20px;left:20px;z-index:1;background:var(--cream);border-radius:10px;padding:13px 15px;font:700 .875rem 'Google Sans Flex',sans-serif;text-align:center}.faq-section{display:grid;grid-template-columns:1fr 1.65fr;gap:95px}.faq-section h2{font-size:2.5rem}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:22px;cursor:pointer;font:700 .9375rem/1.6 'Google Sans Flex',sans-serif;list-style:none;padding:21px 0}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:1.3rem;font-weight:400}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:1rem;padding:0 25px 23px 0;color:var(--muted)}
.site-footer{background:#f3e9ed;padding:45px 0 24px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:50px;padding-bottom:35px}.footer-about p{font-size:.875rem;color:var(--muted);margin-top:15px}.footer-top h3{font-size:.875rem;margin:5px 0 14px}.footer-top a:not(.brand),.footer-top button{display:block;background:none;border:0;font-size:.8125rem;padding:5px 0;text-align:left;color:#70566b}.footer-top a:hover,.footer-top button:hover{text-decoration:underline}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #dccbd6;padding-top:20px;font-size:.75rem;color:var(--muted)}.footer-bottom button{background:none;border:0;font-size:.75rem;padding:0;color:var(--muted);text-decoration:underline}
/* Accessible native dialogs */
dialog{border:1px solid var(--line);border-radius:22px;background:var(--cream);color:var(--plum);padding:32px;max-height:88dvh;width:min(850px,calc(100% - 32px));box-shadow:0 28px 100px #160d2260}dialog::backdrop{background:#251621a8;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.dialog-heading h2{font-size:1.8rem}.dialog-heading .eyebrow{margin-top:4px}.close-dialog{flex:none;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:var(--white);font:400 1.6rem/1 Arial,sans-serif;display:grid;place-items:center}.dialog-intro{color:var(--muted);font-size:1rem;margin:14px 0 23px}.country-search-label input{width:100%;border:1px solid #c7b3c0;border-radius:10px;background:white;padding:14px 16px;font-size:1rem}.country-dialog .region-filters{margin-top:20px;gap:4px}.country-dialog .region-filters button{padding:7px 12px;font-size:.8125rem}.country-count{margin:16px 0;font-size:.8125rem;color:var(--muted)}.country-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px}.country-list button{border:1px solid transparent;border-radius:7px;padding:9px 11px;text-align:left;background:transparent;font-size:.875rem}.country-list button:hover{background:var(--lilac)}.country-list .country-empty{grid-column:1/-1;padding:15px 0;font-size:1rem}.home-dialog{padding:0;width:min(710px,calc(100% - 32px))}.floating-close{position:absolute;right:17px;top:17px;z-index:2;background:var(--cream)}.detail-photo{width:100%;height:300px;object-fit:cover}.detail-body{padding:28px 32px}.detail-body h2{margin:8px 0 14px;font-size:2rem}.detail-body>p{color:var(--muted);font-size:1rem}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;border-block:1px solid var(--line);margin:22px 0;padding:18px 0}.detail-facts div{font-size:.875rem;color:var(--muted)}.detail-facts strong{display:block;color:var(--plum);font-size:1rem}.detail-body h3{margin-top:20px}.detail-body .home-amenities span{font-size:.875rem}.info-note{background:#f0e6f3;border-radius:10px;font-size:.875rem!important;padding:16px;margin-top:22px;color:#70566b!important}.info-dialog{width:min(610px,calc(100% - 32px))}.info-dialog h2{font-size:2rem}.host-checklist{list-style:none;counter-reset:host;padding:0;margin:25px 0}.host-checklist li{counter-increment:host;position:relative;padding:0 0 23px 42px}.host-checklist li:before{content:counter(host);position:absolute;left:0;top:1px;width:27px;height:27px;background:var(--apricot);border-radius:50%;display:grid;place-items:center;font-size:.8125rem}.host-checklist strong{display:block;font-family:'Google Sans Flex',sans-serif;margin-bottom:6px}.host-checklist span{font-size:1rem;color:var(--muted)}#photo-credits>p{margin:19px 0;font-size:.875rem}#photo-credits a{text-decoration:underline;text-underline-offset:3px}
@media(min-width:1600px){.market-hero{padding-top:60px}.destination-card{min-height:240px}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.desktop-nav{gap:19px}.header-actions .world-button{display:none}.destination-grid{gap:13px}.destination-card{min-height:210px}.destination-caption{left:13px}.destination-caption strong{font-size:1.05rem}.destination-caption small{font-size:.75rem}.world-inner{gap:40px;grid-template-columns:1fr 1.55fr}.world-copy h2{font-size:2.3rem}.country-regions{gap:27px 22px}.steps{gap:25px}.host-panel>div:first-child{padding:36px}.host-panel h2{font-size:2.15rem}.faq-section{gap:55px}.home-image{height:200px}.footer-top{gap:30px}.sort-control>select{max-width:140px}.region-filters button{padding:8px 12px}}
@media(max-width:900px){.nav-wrap{height:77px}.desktop-nav{display:none}.header-actions{margin-left:auto}.menu-toggle{display:block}.market-hero{padding-top:40px}.destination-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.destination-card{min-height:205px}.destination-caption strong{font-size:1.2rem}.destination-caption small{font-size:.8125rem}.search-field{padding:10px 15px}.search-submit{padding:15px 17px;gap:7px}.search-bar{flex-wrap:wrap}.destination-field{flex-basis:100%;border-right:0;border-bottom:1px solid var(--line);margin-bottom:8px}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.results-toolbar{flex-wrap:wrap;gap:10px}.sort-control{margin-left:auto}.world-inner{grid-template-columns:1fr;gap:37px}.world-copy h2 br{display:none}.world-copy>p:not(.eyebrow){max-width:560px}.world-copy .eyebrow{max-width:none}.country-regions{gap:32px}.steps{grid-template-columns:1fr;gap:30px}.steps p{max-width:620px}.steps article{padding-left:59px}.host-panel>div:first-child{padding:31px}.host-panel h2{font-size:2rem}.host-panel .eyebrow{font-size:.75rem;line-height:1.7}.host-panel .button{gap:12px}.faq-section{grid-template-columns:1fr;gap:29px}.faq-section h2 br{display:none}.footer-top{grid-template-columns:1.2fr 1fr;gap:30px}.section{padding-block:58px}}
@media(max-width:590px){html{scroll-padding-top:98px}.wrap{width:calc(100% - 40px)}.nav-wrap{height:73px}.brand{width:156px;height:41px}.brand img{width:184px;left:-12px;top:-13px}.header-actions{display:none}.menu-toggle{margin-left:auto}.market-hero{padding-top:32px;padding-bottom:31px}.market-hero .eyebrow{font-size:.75rem;letter-spacing:.08em;margin-bottom:16px}.market-hero h1{font-size:clamp(2.25rem,9.5vw,3.2rem);line-height:1.17;letter-spacing:-.045em}.hero-description{font-size:1rem;margin:19px auto 25px;max-width:365px}.desktop-break{display:none}.search-bar{border-radius:15px;padding:8px}.search-field{padding:9px 10px}.search-field select,.search-field input{font-size:1rem}.search-field>span{font-size:calc(.875rem * var(--ec-label-scale));color:var(--ec-label-color)}.destination-field{padding-bottom:12px}.search-field:nth-child(3){border:0}.search-submit{width:100%;margin:9px 0 0;padding:15px;font-size:.9375rem}.quick-search{flex-wrap:wrap;gap:4px 15px;font-size:.8125rem;margin-top:14px}.quick-search>span{width:100%}.quick-search button{min-height:36px}.quick-search button:last-child{border:0;padding-left:0;flex-basis:100%}.destinations-section{padding-top:18px}.section-heading{display:block;margin-bottom:23px}.section-heading .text-link{margin-top:15px}.section-heading h2{font-size:1.7rem;max-width:340px}.destination-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.destination-card{min-height:204px}.destination-caption{bottom:15px;left:13px}.destination-caption strong{font-size:1.13rem}.destination-caption small{font-size:.75rem}.destination-arrow{right:10px!important;top:10px!important}.homes-section{padding-top:45px}.preview-label{display:inline-flex;margin-top:15px}.region-filters{gap:5px}.region-filters button{padding:8px 11px;font-size:.8125rem}.sort-control{margin:0}.results-toolbar{gap:9px}.results-context{font-size:.75rem;align-items:flex-start;padding-top:14px;padding-bottom:14px;min-height:0}.results-context .text-link{font-size:.75rem;white-space:nowrap}.home-grid{grid-template-columns:minmax(0,1fr);gap:20px}.home-image{height:235px}.home-copy{padding:18px 20px}.home-copy h3{font-size:1.2rem}.collection-note{font-size:.8125rem;margin-top:21px}.section{padding-block:48px}.world-section{padding-block:43px}.world-copy h2{font-size:2.2rem}.world-copy h2 br{display:block}.world-inner{gap:33px}.country-regions{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px}.everywhere-card{padding:13px}.world-copy .button{font-size:.8125rem;gap:10px}.world-copy .eyebrow{max-width:270px}.country-regions .region-more{font-size:.75rem}.steps{margin-top:30px;gap:29px}.steps h3{font-size:1.12rem}.section-description{max-width:none;margin-top:15px}.host-panel{grid-template-columns:minmax(0,1fr)}.host-panel>div:first-child{padding:29px 25px}.host-panel h2{font-size:2.1rem}.host-photo{min-height:270px}.host-panel .button{font-size:.8125rem;padding:15px 17px;gap:16px}.host-photo>span{font-size:.8125rem;bottom:17px}.faq-section h2{font-size:2.2rem}.faq-list summary{font-size:.9375rem}.site-footer{padding-top:34px}.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}.footer-about{grid-column:1/-1}.footer-bottom{flex-wrap:wrap;gap:12px}.footer-bottom span:nth-child(2){order:3;width:100%}.footer-bottom button{margin-left:auto}dialog{padding:24px 20px;border-radius:16px;max-height:90dvh}.dialog-heading h2{font-size:1.5rem}.country-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px}.country-list button{font-size:.8125rem;padding:10px 7px}.country-dialog .region-filters button{padding:6px 10px}.dialog-intro{font-size:1rem}.country-search-label input{font-size:1rem;padding:13px}.detail-photo{height:230px}.detail-body{padding:24px 21px}.detail-body h2{font-size:1.65rem}.detail-facts{gap:14px 10px}.info-dialog h2{font-size:1.7rem}.empty-results{padding:31px 20px}.empty-results .button{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* Interactive marketplace search */
.enhanced-search{position:relative;z-index:12;max-width:1130px;padding:6px;gap:3px;align-items:center;border-radius:999px}.enhanced-search .search-field{position:relative;display:block;padding:0;border:0;border-radius:999px;transition:background .18s,box-shadow .18s;flex:1;min-width:0}.enhanced-search .destination-field{flex:1.3}.enhanced-search .search-field:hover{background:#faf3f8}.enhanced-search .search-field.is-open{background:#f0e7f7;box-shadow:inset 0 0 0 1.5px #b399ca}.enhanced-search .search-field:not(:nth-child(3)):after{content:"";position:absolute;right:-2px;top:12px;bottom:12px;width:1px;background:var(--line)}.search-trigger,.destination-input-wrap{width:100%;min-height:60px;display:flex;align-items:center;gap:10px;padding:8px 14px;text-align:left;border:0;background:transparent;border-radius:999px}.field-icon{width:21px;height:21px;stroke:var(--plum);stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.8}.field-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.field-label,.field-text label{font-family:'Google Sans Flex',sans-serif;font-weight:700;font-size:calc(.875rem * var(--ec-label-scale));line-height:1.35;color:var(--ec-label-color)}.field-value{font-size:.875rem;line-height:1.6;color:var(--muted)}.field-value.has-value{color:var(--plum);font-weight:700}.enhanced-search .destination-field input{font-size:1rem;line-height:1.6;min-height:23px;outline:none;padding:0;color:var(--plum);text-overflow:ellipsis}.enhanced-search .destination-field:focus-within{box-shadow:inset 0 0 0 1.5px #b399ca}.enhanced-search .destination-field input::placeholder{color:var(--muted)}.chevron{width:15px;height:15px;flex:none;stroke:currentColor;stroke-width:1.5;transition:transform .2s}.is-open .chevron{transform:rotate(180deg)}.clear-destination{width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:50%;background:#e8dbe7;font:1.2rem Arial,sans-serif;flex:none;padding:0}.enhanced-search .search-submit{margin-left:5px;white-space:nowrap;min-height:50px;padding:12px 20px;align-self:center;border-radius:999px}.search-popover{position:absolute;top:calc(100% + 17px);left:0;width:420px;background:var(--white);border:1px solid #e4d6df;border-radius:20px;box-shadow:0 15px 50px #48213f24;padding:20px;z-index:30;animation:search-in .16s ease-out;isolation:isolate}.popover-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:14px}.popover-header>span:first-child{font:700 .8125rem 'Google Sans Flex',sans-serif}.popover-header .popover-hint{font-size:.75rem;color:var(--muted)}.popover-header h3{font-size:1.15rem;letter-spacing:-.025em;line-height:1.4}.popover-description{font-size:.875rem;color:var(--muted);line-height:1.7;margin:-5px 0 20px}.popover-close{width:29px;height:29px;border:0;border-radius:50%;background:#f1e9ef;font:1.3rem Arial,sans-serif;flex:none;display:grid;place-items:center}.destination-popover{padding:19px 12px 13px}.destination-popover .popover-header{padding-inline:10px}.destination-option{display:flex;align-items:center;gap:12px;padding:9px 10px;min-height:66px;cursor:pointer;border-radius:12px;text-align:left}.destination-option:hover,.destination-option[aria-selected=true]{background:#f0e7f7}.suggestion-image,.suggestion-icon{height:47px;width:47px;border-radius:11px;flex:none;object-fit:cover}.suggestion-icon{display:grid;place-items:center;background:#efe5f5;color:var(--plum)}.suggestion-icon svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.5;fill:none}.suggestion-text{display:flex;flex-direction:column;flex:1;gap:3px;min-width:0}.suggestion-text strong{font:700 .9375rem/1.4 'Google Sans Flex',sans-serif}.suggestion-text small{font-size:.75rem;line-height:1.5;color:var(--muted)}.suggestion-arrow{font-size:1.2rem;color:#9e8395;margin-right:4px}.destination-popover-footer{border-top:1px solid var(--line);margin:11px 9px 0;padding-top:13px;display:flex;justify-content:space-between;align-items:center;gap:15px}.destination-popover-footer .text-link{font-size:.8125rem;border:0;gap:9px}.destination-popover-footer>span{font-size:.6875rem;color:var(--muted)}.choice-popover{left:50%;transform:translateX(-50%);width:390px;padding:23px}.budget-popover{width:365px}.stay-options{padding:0;border:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stay-option{position:relative;display:flex;flex-direction:column;text-align:left;border:1px solid var(--line);border-radius:12px;padding:35px 13px 15px;cursor:pointer;transition:background .16s,border-color .16s}.stay-option input{position:absolute;opacity:0;width:1px;height:1px}.stay-option:has(input:checked){background:#f0e7f7;border:1.5px solid #8f699f;padding:34.5px 12.5px 14.5px}.stay-option:has(input:focus-visible){outline:3px solid #9b6dc1;outline-offset:3px}.stay-option strong{font:700 .9375rem 'Google Sans Flex',sans-serif}.stay-option small{font-size:.75rem;color:var(--muted);margin-top:5px}.choice-check{position:absolute;top:12px;right:12px;width:17px;height:17px;border:1px solid #c7b5c4;border-radius:50%;background:var(--white)}.stay-option:has(input:checked) .choice-check{background:var(--plum);border-color:var(--plum)}.stay-option:has(input:checked) .choice-check:after{content:"";position:absolute;left:5px;top:3px;width:4px;height:7px;border:solid white;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}.popover-actions{border-top:1px solid var(--line);margin-top:20px;padding-top:15px;display:flex;align-items:center;justify-content:space-between;gap:20px}.popover-actions .button{padding:11px 19px;font-size:.8125rem;border-radius:9px}.popover-reset{background:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:.8125rem;padding:8px 0}.budget-amount{display:flex;align-items:baseline;gap:7px;margin:17px 0 25px}.budget-amount>span{font-size:.8125rem;color:var(--muted)}.budget-amount output{font:700 1.65rem 'Google Sans Flex',sans-serif;letter-spacing:-.03em}.budget-amount.no-limit>span{display:none}.enhanced-search .search-field input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;min-height:6px;border-radius:10px;background:linear-gradient(to right,var(--plum) var(--range-fill,100%),#ebdeea var(--range-fill,100%));display:block;margin:0;cursor:pointer}.enhanced-search .search-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:23px;height:23px;border:3px solid var(--plum);border-radius:50%;background:var(--white);box-shadow:0 2px 5px #48213f30}.enhanced-search .search-field input[type=range]::-moz-range-thumb{width:17px;height:17px;border:3px solid var(--plum);border-radius:50%;background:var(--white)}.range-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);margin-top:13px}.budget-presets{display:flex;gap:7px;margin-top:20px}.budget-presets button{flex:1;border:1px solid var(--line);background:transparent;border-radius:9px;padding:9px 4px;font-size:.8125rem;white-space:nowrap}.budget-presets button[aria-pressed=true]{background:#f0e7f7;border-color:#8f699f;color:var(--plum);font-weight:700}.budget-presets button:hover{border-color:var(--plum)}.search-feedback{max-width:1130px;display:flex;align-items:center;justify-content:center;gap:15px;margin:13px auto -4px;font-size:.8125rem;color:var(--muted)}.search-feedback button{font-size:.8125rem;background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;padding:3px;color:var(--plum)}
@keyframes search-in{from{opacity:0;margin-top:5px}to{opacity:1;margin-top:0}}
@media(max-width:1150px){.search-trigger,.destination-input-wrap{padding:8px 12px;gap:8px}.enhanced-search .search-submit{padding-inline:19px}.field-icon{width:19px;height:19px}}
@media(max-width:900px){.enhanced-search .destination-field{flex-basis:100%;margin:0}.enhanced-search .destination-field:after{display:none}.enhanced-search .search-field{min-width:0}.destination-popover{width:420px}.choice-popover{left:0;transform:none}.budget-popover{left:auto;right:0}.enhanced-search .search-submit{flex:0 0 auto}.search-trigger,.destination-input-wrap{min-height:60px}.enhanced-search{gap:4px;border-radius:26px}.enhanced-search .destination-field{border-bottom:1px solid var(--line);border-radius:20px 20px 0 0}}
@media(max-width:590px){.enhanced-search{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:6px}.enhanced-search .destination-field{grid-column:1/-1;border:0;position:static}.enhanced-search .search-field{position:static}.enhanced-search .search-field:after{display:none}.search-trigger,.destination-input-wrap{padding:8px 10px;gap:8px;min-height:60px}.enhanced-search .destination-field{border-bottom:1px solid var(--line);border-radius:20px 20px 0 0}.enhanced-search .search-field:nth-child(2){border-right:1px solid var(--line);border-radius:0}.enhanced-search .search-field:nth-child(3){border-radius:0}.field-icon{display:none}.destination-input-wrap .field-icon{display:block}.field-value{font-size:.875rem}.field-label,.field-text label{font-size:calc(.875rem * var(--ec-label-scale));color:var(--ec-label-color)}.enhanced-search .search-submit{grid-column:1/-1;margin:4px 0 0;width:100%;min-height:44px;padding:10px 14px}.search-popover,.choice-popover,.budget-popover{left:-1px;right:-1px;top:calc(100% + 9px);width:auto;transform:none;border-radius:16px;padding:19px;box-shadow:0 16px 32px #48213f25}.destination-popover{padding:15px 9px 12px}.destination-popover .popover-hint{display:none}.destination-option{min-height:62px;padding:8px 10px}.suggestion-image,.suggestion-icon{width:43px;height:43px}.destination-popover-footer{gap:10px}.destination-popover-footer>span{font-size:.6875rem}.popover-header h3{font-size:1.08rem}.popover-description{font-size:.875rem}.stay-option small{font-size:.75rem}.stay-option strong{font-size:.9375rem}.search-feedback{font-size:.75rem;gap:9px;margin-bottom:3px}.search-feedback button{font-size:.75rem;white-space:nowrap}.budget-amount{margin-top:19px}.budget-presets button{font-size:.8125rem}.popover-actions .button{font-size:.875rem;padding:12px 20px}.popover-reset{font-size:.875rem}.search-trigger:focus-visible{outline-offset:-4px}}

.enhanced-search{scroll-margin-top:12px}
@media(prefers-reduced-motion:reduce){.search-popover{animation:none}}

/* form-components.css */
:root{--ec-phone-height:52px;--ec-select-chevron-size:18px}
/* Easycoliv v1.4 — shared selects, phone fields and local upload previews. */
.ec-input{min-height:48px;font-size:16px;border-radius:16px;border-color:var(--ec-field-border);line-height:1.5}select.ec-input:not(.ec-select-native){appearance:none;padding-inline-end:46px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%2348213f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 7 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center}.ec-select{position:relative;width:100%;min-width:0}.ec-select-native{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;pointer-events:none;overflow:hidden}.ec-select-trigger{width:100%;height:48px;border:1px solid var(--ec-field-border);border-radius:16px;display:flex;align-items:center;gap:10px;background:#fff;color:var(--ec-ink);padding:0 15px;font:400 16px/1.3 var(--ec-font-body);text-align:left;cursor:pointer;transition:border-color 160ms,box-shadow 160ms;min-width:0}.ec-select-trigger:hover{border-color:var(--ec-muted)}.ec-select-trigger[aria-expanded=true]{border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.ec-select-trigger:focus-visible{outline:2px solid var(--ec-plum);outline-offset:3px;box-shadow:none}.ec-select-trigger:disabled{background:var(--ec-subtle);color:#897c86;cursor:not-allowed;border-color:var(--ec-line)}.ec-select-trigger[aria-invalid=true]{border-color:var(--ec-danger);background:#fffafa}.ec-select-value{display:block;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ec-select-value.placeholder{color:var(--ec-muted)}.ec-select-chevron{width:var(--ec-select-chevron-size);height:var(--ec-select-chevron-size);flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;margin-inline-start:auto;color:var(--ec-plum);transition:transform 160ms}.ec-select-trigger[aria-expanded=true] .ec-select-chevron{transform:rotate(180deg)}.ec-select-leading{width:22px;height:22px;flex:none;color:var(--ec-muted)}
.ec-select-popover{position:fixed;z-index:5000;background:#fff;border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);padding:8px;box-shadow:0 12px 38px #48213f20;overflow:hidden;color:var(--ec-ink);font:14px/1.5 var(--ec-font-body);box-sizing:border-box}.ec-select-popover *{box-sizing:border-box}.ec-select-popover[hidden]{display:none}.ec-select-popover .ec-icon{width:18px;height:18px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;fill:none;flex:none}.ec-select-search{display:flex;align-items:center;gap:10px;border:1px solid var(--ec-field-border);border-radius:12px;padding:0 12px;height:44px;margin:3px 3px 10px;color:var(--ec-muted)}.ec-select-search:focus-within{border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.ec-select-search input{width:100%;min-width:0;outline:0!important;border:0!important;box-shadow:none!important;background:transparent;padding:0;font:16px var(--ec-font-body);color:var(--ec-ink)}.ec-select-list{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;max-height:264px;padding:0 3px;outline:none}.ec-select-option{display:flex;align-items:center;gap:10px;min-height:44px;padding:11px 12px;border-radius:12px;cursor:pointer;margin-bottom:2px}.ec-select-option:last-child{margin-bottom:0}.ec-select-option.active{background:var(--ec-hover);outline:1px solid #d9cdd5;outline-offset:-1px}.ec-select-option[aria-selected=true]{background:var(--ec-cream);color:var(--ec-plum);font-weight:700}.ec-select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ec-select-option .option-name{flex:1;min-width:0}.ec-select-option .option-detail{font-size:12px;color:var(--ec-muted);font-weight:400;white-space:nowrap}.ec-select-option>.ec-icon{margin-inline-start:auto}.ec-select-category{font:700 10px var(--ec-font-heading);color:var(--ec-muted);letter-spacing:1px;text-transform:uppercase;padding:10px 12px 7px}.ec-select-empty{padding:22px 14px;text-align:center;font-size:13px;color:var(--ec-muted)}.ec-select-foot{font-size:10px;color:var(--ec-muted);border-top:1px solid var(--ec-line);margin:8px 3px 0;padding:8px 8px 3px;display:flex;justify-content:space-between}.ec-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ec-region-tag{display:grid;place-items:center;width:28px;height:24px;flex:none;background:var(--ec-subtle);border:1px solid var(--ec-line);border-radius:6px;font:700 10px var(--ec-font-heading);color:var(--ec-plum)}
.ec-phone{display:flex;align-items:center;height:var(--ec-phone-height);border:1px solid var(--ec-field-border);border-radius:16px;background:#fff}.ec-phone:focus-within{border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.ec-phone .ec-select{width:126px;flex:none}.ec-phone .ec-select-trigger{height:50px;border:0;background:none!important;box-shadow:none;border-radius:16px 0 0 16px;font-size:16px;gap:8px;padding:0 12px}.ec-phone .ec-select-chevron{width:15px;height:15px}.ec-phone .ec-region-tag{background:#fff}.ec-phone .ec-select-value{flex:none;font-size:13px}.ec-phone input[type=tel]{border:0;border-inline-start:1px solid var(--ec-line);outline:none;box-shadow:none;padding:0 16px;border-radius:0;width:100%;min-width:0;height:26px;background:transparent;font-size:16px}.ec-phone[aria-invalid=true]{border-color:var(--ec-danger);background:#fffafa}.ec-phone-help{min-height:18px;display:block;font-size:12px;color:var(--ec-muted);margin-top:7px;line-height:1.6}.ec-phone-help.error{color:var(--ec-danger)}.ec-phone-help.success{color:var(--ec-success)}.ec-phone-field .ec-field-label{display:block;font:700 var(--ec-label-size) var(--ec-font-heading);margin-bottom:8px;color:var(--ec-label-color)}.ec-phone-caption{font-size:11px;color:var(--ec-muted);margin-top:12px}.ec-upload{min-width:0}.ec-upload-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.ec-upload-head strong{font:700 var(--ec-label-size) var(--ec-font-heading);color:var(--ec-label-color)}.ec-upload-head small{font-size:11px;color:var(--ec-muted)}.ec-upload-zone{border:1px dashed #bba8b5;border-radius:var(--ec-radius-card);background:var(--ec-subtle);text-align:center;padding:24px;display:flex;flex-direction:column;align-items:center;gap:9px;transition:background 180ms,border-color 180ms}.ec-upload-zone.dragging{background:var(--ec-cream);border:2px solid var(--ec-plum);padding:23px}.ec-upload-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:var(--ec-radius-control);border:1px solid var(--ec-line);background:#fff;color:var(--ec-plum);margin-bottom:4px}.ec-upload-symbol .ec-icon{width:22px;height:22px}.ec-upload-zone strong{font:700 14px var(--ec-font-heading)}.ec-upload-zone p{font-size:12px;color:var(--ec-muted);margin:0}.ec-upload-zone .ec-btn{min-height:44px;margin-top:6px;font-size:var(--ec-text-small);padding-inline:18px}.ec-upload-list{display:grid;gap:8px;margin-top:12px}.ec-upload-file{display:flex;align-items:center;gap:12px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);padding:10px 10px 10px 12px;min-width:0;background:#fff}.ec-upload-thumb{width:42px;height:42px;object-fit:cover;border-radius:9px;background:var(--ec-subtle);display:grid;place-items:center;color:var(--ec-plum);flex:none}.ec-upload-copy{flex:1;min-width:0}.ec-upload-copy strong{display:block;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-upload-copy small{display:block;font-size:10px;line-height:1.6;color:var(--ec-muted)}.ec-upload-file .ec-btn{width:36px;height:36px;min-height:36px}.ec-upload-error{margin:10px 0 0;list-style:none;padding:0;color:var(--ec-danger);font-size:12px;line-height:1.7}.ec-upload-error li{display:flex;gap:7px;margin-top:6px}.ec-upload-error .ec-icon{width:16px;height:16px;flex:none;margin-top:2px}.ec-upload-status{font-size:11px;line-height:1.6;color:var(--ec-muted);margin-top:10px;min-height:18px}.ec-upload-compact .ec-upload-zone{flex-direction:row;text-align:left;gap:14px;padding:18px}.ec-upload-compact .ec-upload-zone .ec-upload-symbol{margin:0}.ec-upload-compact .ec-upload-zone>div:not(.ec-upload-symbol){flex:1}.ec-upload-compact .ec-upload-zone .ec-btn{margin:0}.ec-upload-compact .ec-upload-zone strong{font-size:13px}.ec-upload-file .ec-upload-check{color:var(--ec-success);width:17px;height:17px}.ec-report-controls{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:16px}.ec-report-controls .ec-btn{height:48px}.ec-controls-status{font-size:12px;color:var(--ec-muted);margin-top:14px;min-height:20px}.ec-open-preview{border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);padding:8px;background:white;box-shadow:0 8px 20px #48213f08;margin-top:10px}.ec-open-preview .ec-select-option{cursor:default;font-size:13px}.ec-open-preview .ec-select-search{font-size:12px}.ec-form-state-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.ec-fields-note{padding:14px 18px;border-radius:var(--ec-radius-card);background:var(--ec-cream);font-size:12px;color:var(--ec-muted);line-height:1.7}.ec-fields-note strong{color:var(--ec-plum)}
@media(max-width:760px){.ec-select-trigger{font-size:16px}.ec-select-search input{font-size:16px}.ec-select-popover{border-radius:var(--ec-radius-panel)}.ec-select-option{min-height:48px}.ec-report-controls{grid-template-columns:1fr 1fr}.ec-report-controls .ec-btn{grid-column:1/-1}.ec-form-state-grid{grid-template-columns:1fr}.ec-upload-zone{padding:22px 16px}.ec-upload-compact .ec-upload-zone{flex-wrap:wrap}.ec-upload-compact .ec-upload-zone .ec-btn{width:100%}.ec-phone input[type=tel]{font-size:16px;padding-inline:12px}.ec-phone .ec-select{width:126px}.ec-upload-file .ec-btn{width:44px;height:44px;min-height:44px}.ec-select-foot{font-size:9px}}
@media print{.ec-select-popover{display:none!important}.ec-select-trigger{height:46px;font-size:16px}.ec-select-native{display:none!important}.ec-upload-zone{padding:18px}.ec-upload-status{font-size:10px}.ec-upload-zone .ec-btn{min-height:38px}.ec-open-preview{box-shadow:none}.ec-phone{height:48px}.ec-phone .ec-select-trigger{height:46px}.ec-phone input[type=tel]{font-size:16px}.ec-report-controls .ec-btn{height:46px}.ec-upload-file .ec-btn{display:none}.ec-control-live-only{display:none!important}}

/* Decorative flag slots preserve every flag silhouette and align phone-code options. */
.ec-country-flag{display:block;width:28px;height:21px;flex:none;object-fit:contain;object-position:center;border-radius:2px}

/* complete-components.css */
/* Easycoliv 1.6: complete input, selection, overlay and workflow recipes. */
:root{--ec-mauve:#855272;--ec-z-popover:100;--ec-z-toast:6000;--ec-radius-tooltip:10px}
.cp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.cp-card{border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);padding:26px;min-width:0;background:white}.cp-card h3{font-size:18px;margin-bottom:6px}.cp-card>p{font-size:12px;color:var(--ec-muted);line-height:1.8;margin-bottom:22px}.cp-card.cream{background:var(--ec-cream)}.cp-wide{grid-column:1/-1}.cp-stack{display:grid;gap:18px}.cp-label{font:700 var(--ec-label-size) var(--ec-font-heading);display:block;margin-bottom:8px;color:var(--ec-label-color)}.cp-note{font-size:12px;color:var(--ec-muted);line-height:1.8}.cp-foot{border-top:1px solid var(--ec-line);margin-top:18px;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:var(--ec-muted)}.cp-fieldset{border:0;padding:0;margin:0;min-width:0}.cp-fieldset legend{font:700 var(--ec-label-size) var(--ec-font-heading);color:var(--ec-label-color);margin-bottom:12px}.cp-choice{display:flex;align-items:center;gap:11px;min-height:44px;font-size:13px;cursor:pointer}.cp-choice input{width:18px;height:18px;accent-color:var(--ec-plum);flex:none}.cp-choice:has(:disabled){color:var(--ec-muted);cursor:not-allowed}.cp-check-all{border-bottom:1px solid var(--ec-line);padding-bottom:10px;margin-bottom:7px}.cp-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;border-bottom:1px solid var(--ec-line);font-size:13px}.cp-toggle-row:last-child{border:0}.cp-toggle-row strong{display:block;color:var(--ec-plum);font-size:13px}.cp-toggle-row small{display:block;color:var(--ec-muted);font-size:11px;margin-top:4px}.cp-toggle{display:grid;place-items:center;min-width:44px;min-height:44px}.cp-toggle input{appearance:none;width:44px;height:26px;background:#a08b99;border:0;border-radius:99px;position:relative;cursor:pointer;flex:none;margin:0}.cp-toggle input:after{content:'';width:20px;height:20px;background:white;border-radius:50%;position:absolute;left:3px;top:3px;transition:transform var(--ec-duration);box-shadow:0 1px 3px #48213f30}.cp-toggle input:checked{background:var(--ec-plum)}.cp-toggle input:checked:after{transform:translateX(18px)}.cp-toggle input:disabled{opacity:.5;cursor:not-allowed}.cp-radio-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cp-radio-card{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ec-control-border);border-radius:16px;background:white;padding:16px;cursor:pointer}.cp-radio-card:has(input:checked){background:var(--ec-cream);border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.cp-radio-card input{margin:3px 0 0;accent-color:var(--ec-plum);width:17px;height:17px;flex:none}.cp-radio-card strong{display:block;font:700 13px var(--ec-font-heading)}.cp-radio-card small{display:block;font-size:11px;color:var(--ec-muted);line-height:1.7;margin-top:5px}.cp-multi{position:relative}.cp-multi>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;height:48px;border:1px solid var(--ec-control-border);border-radius:16px;background:white;padding:0 15px;font-size:13px;text-align:left}.cp-multi>button[aria-expanded=true]{border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}.cp-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.cp-chips button{display:flex;align-items:center;gap:6px;min-height:34px;border:1px solid #decfc6;background:var(--ec-cream);border-radius:99px;padding:5px 10px;color:var(--ec-plum);font-size:11px}.cp-chips .ec-icon{width:13px;height:13px}.cp-multi-pop{position:fixed;inset:auto;margin:0;padding:10px;border:1px solid var(--ec-line);background:#fff;border-radius:20px;box-shadow:var(--ec-shadow-overlay);width:360px;max-width:calc(100vw - 24px);font:13px/1.5 var(--ec-font-body);color:var(--ec-ink)}.cp-multi-pop .cp-search{display:flex;align-items:center;gap:9px;border:1px solid var(--ec-control-border);height:44px;border-radius:13px;padding:0 12px;margin-bottom:8px}.cp-search input{width:100%;border:0;outline:0;box-shadow:none;background:transparent;font-size:14px;min-width:0}.cp-multi-options{max-height:235px;overflow-y:auto;overscroll-behavior:contain}.cp-multi-options [role=option]{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px;border-radius:11px;cursor:pointer;margin:2px 0}.cp-multi-options [role=option].active{outline:1px solid #bba6b3;outline-offset:-1px;background:var(--ec-subtle)}.cp-multi-options [aria-selected=true]{color:var(--ec-plum);background:var(--ec-cream)}.cp-option-check{width:18px;height:18px;border:1px solid var(--ec-border);border-radius:5px;display:grid;place-items:center;flex:none}.cp-option-check .ec-icon{width:13px;height:13px}.cp-multi-options [aria-selected=true] .cp-option-check{background:var(--ec-plum);color:white;border-color:var(--ec-plum)}.cp-multi-pop footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ec-line);margin-top:8px;padding-top:10px;gap:10px}.cp-multi-pop footer .ec-btn{font-size:var(--ec-text-small);min-height:40px}.cp-multi-empty{padding:22px 10px;color:var(--ec-muted);text-align:center}.cp-input-wrap{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ec-control-border);border-radius:16px;min-height:48px;padding:0 4px 0 14px}.cp-input-wrap:focus-within{border-color:var(--ec-plum);outline:2px solid var(--ec-plum);outline-offset:2px}.cp-input-wrap input{border:0;outline:none!important;box-shadow:none!important;min-width:0;width:100%;background:none;font-size:14px}.cp-input-wrap .ec-btn{flex:none;background:none;min-height:40px;width:40px;height:40px}.cp-counter-line{display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--ec-muted);margin-top:7px}.cp-error{color:var(--ec-danger)!important;font-size:12px}.cp-number{display:flex;align-items:center;border:1px solid var(--ec-control-border);border-radius:16px;height:48px;max-width:220px;background:white;overflow:hidden}.cp-number button{width:46px;min-width:46px;height:46px;border:0;background:none;color:var(--ec-plum)}.cp-number button:hover{background:var(--ec-cream)}.cp-number button:disabled{opacity:.35;cursor:not-allowed}.cp-number input{width:100%;min-width:0;border:0;text-align:center;appearance:textfield;font-size:14px;background:none}.cp-number input::-webkit-inner-spin-button{appearance:none}.cp-error-summary{border:1px solid var(--ec-danger);border-radius:16px;background:var(--ec-danger-soft);padding:18px;margin-bottom:20px;color:var(--ec-danger);font-size:13px}.cp-error-summary strong{font-family:var(--ec-font-heading)}.cp-error-summary ul{padding-left:18px;margin:8px 0 0}.cp-error-summary a{display:inline-block;padding:5px 0;text-underline-offset:3px}.cp-form-result{border-radius:16px;background:var(--ec-success-soft);color:var(--ec-success);padding:18px;font-size:13px}.cp-inline-error{display:block;min-height:18px;font-size:11px;color:var(--ec-danger);margin-top:5px}.cp-date-top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.cp-date-top p{font-size:12px;color:var(--ec-muted);margin-top:5px}.cp-date-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:580px;margin-bottom:24px}.cp-months{display:grid;grid-template-columns:1fr 1fr;gap:40px}.cp-month h4{font-size:16px;margin-bottom:18px;text-align:center}.cp-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cp-calendar .weekday{font-size:10px;color:var(--ec-muted);text-align:center;line-height:28px}.cp-calendar button{border:1px solid transparent;background:white;border-radius:50%;height:42px;min-width:0;padding:0;color:var(--ec-plum);font-size:12px}.cp-calendar button:hover{border-color:var(--ec-plum)}.cp-calendar button.in-range{background:var(--ec-cream);border-radius:9px}.cp-calendar button[aria-pressed=true]{background:var(--ec-plum);color:white;border-radius:50%}.cp-date-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid var(--ec-line);margin-top:24px;padding-top:20px}.cp-date-status{font-size:12px;color:var(--ec-muted);max-width:400px}.cp-tip{position:relative;display:inline-flex;align-items:center}.cp-tip-box{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translateX(-50%);width:220px;max-width:70vw;background:var(--ec-plum);color:white;border-radius:10px;padding:12px 14px;font:12px/1.6 var(--ec-font-body);z-index:100;box-shadow:var(--ec-shadow-overlay)}.cp-tip-box:after{content:'';position:absolute;top:100%;left:calc(50% - 5px);border:5px solid transparent;border-top-color:var(--ec-plum)}.cp-accordion{border:1px solid var(--ec-line);border-radius:18px;overflow:hidden}.cp-accordion details+details{border-top:1px solid var(--ec-line)}.cp-accordion summary{min-height:56px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;font:700 13px var(--ec-font-heading);list-style:none;cursor:pointer;color:var(--ec-plum)}.cp-accordion summary::-webkit-details-marker{display:none}.cp-accordion summary .ec-icon{width:17px;height:17px;transition:transform var(--ec-duration)}.cp-accordion details[open] summary .ec-icon{transform:rotate(180deg)}.cp-accordion details p{font-size:12px;line-height:1.9;color:var(--ec-muted);padding:0 18px 19px}.cp-dialog{width:min(540px,calc(100% - 28px));max-height:90dvh;padding:0;border:1px solid var(--ec-line);border-radius:var(--ec-radius-overlay);box-shadow:var(--ec-shadow-overlay);color:var(--ec-ink);background:white}.cp-dialog::backdrop{background:#20141b66;backdrop-filter:blur(2px)}.cp-dialog header{padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--ec-line)}.cp-dialog h2{font-size:22px}.cp-dialog .cp-body{padding:24px;overflow:auto}.cp-dialog header .ec-btn{flex:none}.cp-dialog footer{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--ec-line);padding:18px 24px;position:sticky;bottom:0;background:white}.cp-dialog.cp-drawer{height:100dvh;max-height:100dvh;width:min(440px,100%);margin:0 0 0 auto;border-radius:24px 0 0 24px}.cp-drawer .cp-body{height:calc(100dvh - 176px)}.cp-notification{padding:17px 0;border-bottom:1px solid var(--ec-line);display:flex;gap:12px;align-items:flex-start}.cp-notification .ec-icon{color:var(--ec-plum);margin-top:4px}.cp-notification strong{font-size:13px;color:var(--ec-plum)}.cp-notification p{font-size:12px;color:var(--ec-muted);line-height:1.8;margin:5px 0}.cp-notification time{font-size:10px;color:var(--ec-muted)}.cp-notification.unread:after{content:'';width:7px;height:7px;border-radius:50%;background:var(--ec-plum);flex:none;margin-top:10px}.cp-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:12px 16px 12px 22px;border:1px solid #725269;border-radius:18px;background:var(--ec-plum);color:white;box-shadow:var(--ec-shadow-overlay);z-index:6000;max-width:calc(100% - 24px);font-size:13px}.cp-toast button{color:white;background:transparent;border:0;min-height:44px;padding:8px;text-decoration:underline;text-underline-offset:3px;flex:none}.cp-toast button:last-child{width:36px;padding:0}.cp-toast .ec-icon{width:18px;height:18px}.cp-steps{list-style:none;display:flex;padding:0;margin:0 0 24px;gap:16px}.cp-steps li{display:flex;align-items:center;gap:8px;color:var(--ec-muted);font-size:12px;flex:1}.cp-steps li:not(:last-child):after{content:'';height:1px;background:var(--ec-line);flex:1;margin-left:8px}.cp-steps span{width:30px;height:30px;border-radius:50%;background:var(--ec-subtle);display:grid;place-items:center;font-size:12px;flex:none}.cp-steps [aria-current=step]{color:var(--ec-plum);font-weight:700}.cp-steps [aria-current=step] span{color:white;background:var(--ec-plum)}.cp-step-panel{min-height:205px}.cp-step-panel h4{margin-bottom:20px}.cp-review{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0}.cp-review dt{color:var(--ec-muted);font-size:11px}.cp-review dd{margin:4px 0 0;color:var(--ec-plum);font:700 15px var(--ec-font-heading)}.cp-recovery{border:1px solid var(--ec-line);border-radius:20px;padding:24px;text-align:center;min-height:234px;display:grid;place-content:center;gap:12px;background:var(--ec-subtle)}.cp-recovery>.ec-icon{margin:auto;width:28px;height:28px}.cp-recovery p{color:var(--ec-muted);font-size:12px;line-height:1.8}.cp-recovery .ec-btn{justify-self:center;font-size:var(--ec-text-small)}.cp-demo-switcher{margin-bottom:20px;max-width:270px}.cp-link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.cp-page-link{display:flex;align-items:center;justify-content:space-between;gap:16px;text-decoration:none;border:1px solid var(--ec-line);padding:20px;border-radius:18px;color:var(--ec-plum);background:white;min-height:84px}.cp-page-link:hover{background:var(--ec-cream);border-color:#bba4b3}.cp-page-link strong{display:block;font:700 14px var(--ec-font-heading)}.cp-page-link small{display:block;color:var(--ec-muted);font-size:11px;margin-top:5px}.cp-contrast{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.cp-contrast>div{padding:20px 16px;border-radius:16px;background:var(--ec-subtle)}.cp-contrast strong{font:700 22px var(--ec-font-heading);display:block;margin:8px 0}.cp-contrast small{font-size:11px}.cp-banner{padding:18px 22px;border:1px solid #e7d6ca;border-radius:20px;background:var(--ec-cream);display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:22px}.cp-banner p{font-size:12px;color:var(--ec-muted);margin-top:4px}.cp-banner strong{font:700 14px var(--ec-font-heading)}.cp-badge{display:inline-block;padding:5px 10px;background:#eee8f5;border-radius:99px;font:700 10px var(--ec-font-heading);letter-spacing:.05em;color:var(--ec-plum)}
/* Shared audit corrections. */
[tabindex]:focus-visible{outline:2px solid var(--ec-plum);outline-offset:3px}.ec-btn.icon-only{flex-shrink:0}.et-row-action{width:44px;height:44px}.et-grid .et-actions-col{width:80px;padding-inline:12px}.ec-dialog.drawer{border-radius:24px 0 0 24px}.ec-dialog.drawer .body{min-height:0;max-height:calc(100dvh - 176px);overflow:auto}.ec-dialog.drawer{display:flex;flex-direction:column}.ec-dialog.drawer:not([open]){display:none}.ec-dialog.drawer .body{flex:1}.ec-dialog.drawer footer{flex:none}.ec-upload-file .ec-btn{width:44px;height:44px;min-height:44px}.docs-nav-close{display:none}.docs-backdrop{position:fixed;inset:0;background:#25132066;border:0;z-index:29}.docs-top input{border:1px solid var(--ec-control-border);border-radius:14px;min-height:44px}.ec-segment button{min-height:40px}.cp-required{color:var(--ec-muted);font-weight:400;font-size:11px;margin-left:4px}
@media(max-width:1000px){.cp-link-grid{grid-template-columns:1fr 1fr}.cp-contrast{grid-template-columns:1fr 1fr}.cp-months{gap:20px}}
@media(max-width:760px){.cp-grid{grid-template-columns:1fr}.cp-card{padding:22px 18px;border-radius:var(--ec-radius-panel)}.cp-radio-cards{grid-template-columns:1fr}.cp-chips button{min-height:44px;padding-inline:13px}.cp-months{grid-template-columns:1fr}.cp-months .cp-month:nth-child(2){display:none}.cp-date-top{align-items:flex-start}.cp-date-top h3{font-size:17px}.cp-date-top .ec-row{flex-wrap:nowrap}.cp-calendar button{height:44px}.cp-date-fields{gap:12px}.cp-date-fields input{padding-inline:9px;font-size:13px}.cp-date-actions{flex-wrap:wrap}.cp-date-actions>.ec-btn{width:100%}.cp-input-wrap input,.cp-search input{font-size:16px}.cp-foot{flex-wrap:wrap}.cp-steps{gap:8px}.cp-steps li{font-size:11px;gap:6px}.cp-steps li:not(:last-child):after{display:none}.cp-link-grid{grid-template-columns:1fr}.cp-banner{align-items:flex-start;flex-direction:column}.cp-toast{gap:10px;font-size:12px;bottom:14px}.cp-dialog header,.cp-dialog footer,.cp-dialog .cp-body{padding:20px}.cp-dialog.cp-drawer{border-radius:0}.docs-nav.open{inset:0 auto 0 0;z-index:60;padding-top:25px}.docs-nav-close{display:inline-grid;position:absolute;right:15px;top:16px}.docs-nav .ec-logo{width:130px}.docs-top input{max-width:36vw}.cp-tip-box{left:0;transform:none}.cp-contrast>div{padding:16px 12px}.cp-multi-pop footer .ec-btn{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0ms!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.cp-card{padding:22px}.cp-card>p{margin-bottom:18px}.cp-grid{gap:20px}.cp-dialog,.cp-toast,.cp-multi-pop,.cp-tip-box,.docs-backdrop{display:none!important}.cp-calendar button{height:40px}.cp-foot{margin-top:15px}.cp-step-panel{min-height:190px}.cp-link-grid{grid-template-columns:repeat(3,1fr)}.cp-contrast{grid-template-columns:repeat(4,1fr)}.cp-months{grid-template-columns:1fr 1fr;gap:36px}.cp-steps li{font-size:12px}}
.cp-timeline{list-style:none;padding:0 0 0 20px;margin:0;border-left:1px solid var(--ec-line)}.cp-timeline li{position:relative;padding:0 0 24px 4px}.cp-timeline li:before{content:'';position:absolute;left:-25px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--ec-plum);border:2px solid white;box-shadow:0 0 0 1px var(--ec-line)}.cp-timeline li:last-child{padding-bottom:0}.cp-timeline strong{font:700 13px var(--ec-font-heading);color:var(--ec-plum)}.cp-timeline p{font-size:12px;color:var(--ec-muted);line-height:1.8;margin:6px 0}.cp-timeline time{font-size:10px;color:var(--ec-muted)}.cp-rules{margin:0;padding-left:18px;font-size:12px;color:var(--ec-muted);line-height:1.9}.cp-rules li+li{margin-top:8px}

.cp-multi-pop footer .ec-btn{min-height:44px}.cp-input-wrap .ec-btn{width:44px;height:44px;min-height:44px}.cp-calendar button{min-height:44px}.cp-toast button:last-child{width:44px}.ec-segment button{min-height:44px}
/* Keep date endpoints circular instead of stretching them across calendar columns. */
.cp-calendar button{width:min(44px,100%);height:44px;justify-self:center}.cp-calendar button.in-range{width:100%}.cp-calendar button[aria-pressed=true]{width:min(44px,100%)}
.cp-chips button{min-height:44px}.ec-pager button,.et-page{width:44px;height:44px;min-height:44px}.et-sort{min-height:44px}.et-footer .ec-select-trigger{height:44px;min-height:44px}.ec-search .part,.ec-search .search-go{min-height:44px}.ec-menu button,button.ec-link,button.am-link{min-height:44px}
@media(max-width:380px){.ec-segment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;border-radius:20px}.cp-date-top{flex-wrap:wrap}}

/* marketplace/brand-system.css */
/* Shared Easycoliv v1.6 foundation. Preserve the approved marketplace card composition. */
:root{--plum:var(--ec-plum);--cream:var(--ec-cream);--apricot:var(--ec-apricot);--lilac:var(--ec-lilac);--muted:var(--ec-muted);--line:var(--ec-line)}
.brand,.listing-page .brand,.detail-page .brand{display:flex;align-items:center;width:148px;height:44px;overflow:visible;flex:none}
.brand img,.listing-page .brand img,.detail-page .brand img{position:static;inset:auto;transform:none;width:148px;max-width:100%;height:auto}
.site-header .brand .easycoliv-wordmark{display:block;width:100%;height:auto;color:var(--ec-plum)}
.button{min-height:48px;border-radius:var(--ec-radius-action);gap:12px;transition:background 180ms,box-shadow 180ms;padding-block:12px}
.button-small{min-height:44px;padding-block:10px}
.button .cta-arrow{height:20px;width:20px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform 180ms}
.button:hover .cta-arrow{transform:translateX(3px)}
.search-submit{border-radius:999px}.listing-page .search-submit{min-height:40px}
.button:not(.button-light):hover{background:var(--ec-plum-hover);border-color:var(--ec-plum-hover)}
.button:active{transform:none}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--plum);outline-offset:3px}
dialog{border-radius:28px}.close-dialog{min-width:44px;min-height:44px}.planner-fields{border-radius:16px}.stay-planner>.button{border-radius:999px}
select,.sort-control select,.planner-fields select,.filter-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2348213f' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:38px!important}
@media(max-width:760px){.brand,.listing-page .brand,.detail-page .brand{width:128px}.brand img,.listing-page .brand img,.detail-page .brand img{width:128px}.button{min-height:48px}.button-small{min-height:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

.site-header .button,.hero .button,.host-panel .button,.world-section .button,.mobile-stay-bar .button,.stay-planner .button,.popover-actions .button{border-radius:var(--ec-radius-action)}

/* v2 — page-level application of the canonical component library. */
.marketplace-page{font-family:var(--ec-font-body);color:var(--ec-ink)}
.marketplace-page h1,.marketplace-page h2,.marketplace-page h3{font-family:var(--ec-font-heading);color:var(--ec-plum)}
.home-page{background:var(--ec-cream)}.inner-page{background:var(--ec-white)}
.site-header,.inner-page .site-header{border-bottom-color:var(--ec-line)}
.nav-wrap{color:var(--ec-plum)}.desktop-nav a{min-height:44px;display:inline-flex;align-items:center}
.site-header .brand img{width:148px}.site-header .header-actions{gap:18px}
.button.ec-btn{border-radius:var(--ec-radius-action);min-height:48px;font-size:14px;line-height:1.25;padding:0 22px;gap:12px;color:white;background:var(--ec-plum);border:1px solid transparent;box-shadow:none}
.button.ec-btn:hover{background:var(--ec-plum-hover);box-shadow:var(--ec-shadow-card)}
.button.ec-btn.sm{min-height:44px;padding-inline:20px}
.button.ec-btn.soft{background:var(--ec-apricot);color:var(--ec-plum);border-color:var(--ec-apricot)}
.button.ec-btn.soft:hover{background:#ffc19f;border-color:#ffc19f}
.button.ec-btn.secondary{background:var(--ec-white);border-color:var(--ec-control-border);color:var(--ec-plum)}
.button.ec-btn.secondary:hover{background:var(--ec-state-fill,rgba(16,17,20,.04));border-color:var(--ec-state-border,#101114)}
.button.ec-btn .ec-icon{width:20px;height:20px;transition:transform var(--ec-duration)}
.button.ec-btn:not(.secondary):not(.icon-only):hover>.ec-icon:last-child{transform:translateX(3px)}
.button.ec-btn.icon-only{width:44px;height:44px;min-height:44px;padding:0;flex:none}
.button.ec-btn:active{transform:none;background:var(--ec-plum-pressed)}.button.ec-btn.soft:active{color:var(--ec-plum);background:#ffa977}
.text-link,.quick-search button{display:inline-flex;align-items:center;gap:9px;color:var(--ec-plum)}
.text-link .ec-icon,.quick-search .ec-icon{width:18px;height:18px}
.ds-icon-button,.close-dialog.ds-icon-button,.popover-close.ds-icon-button{display:inline-grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--ec-control-border);border-radius:50%;color:var(--ec-plum);background:white;box-shadow:none;flex:none;line-height:1}
.ds-icon-button:hover,.close-dialog.ds-icon-button:hover{background:var(--ec-hover);border-color:var(--ec-plum)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ec-focus)}

/* Shared search geometry, selection surfaces and choice affordances. */
.home-page .search-bar.enhanced-search{max-width:1000px;padding:5px;border:1px solid var(--ec-field-border);background:white;box-shadow:0 6px 24px #48213f09;border-radius:999px;gap:0}
.home-page .enhanced-search .search-trigger,.home-page .enhanced-search .destination-input-wrap{min-height:52px;padding-block:6px}
.home-page .search-bar .search-submit{min-height:52px;align-self:stretch;margin-left:5px;padding-inline:22px}
.search-bar .search-field.is-open{background:var(--ec-selected)}
.search-popover{border-color:var(--ec-line);border-radius:var(--ec-radius-panel);box-shadow:var(--ec-shadow-overlay);color:var(--ec-ink);background:white}
.search-popover h3,.search-popover strong{color:var(--ec-plum)}
.search-popover .popover-header{align-items:center;gap:16px}.search-popover .popover-header h3{font-size:18px;line-height:1.4}
.destination-option{border-radius:16px;min-height:64px;color:var(--ec-plum)}
.destination-option[aria-selected=true],.destination-option:hover{background:var(--ec-selected)}
.suggestion-icon{background:var(--ec-subtle);border-radius:14px}.suggestion-arrow .ec-icon{width:18px;height:18px}
.stay-option{border-radius:16px;border-color:var(--ec-control-border);transition:border-color var(--ec-duration),background var(--ec-duration)}
.stay-option:has(input:checked){background:var(--ec-selected);border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}
.stay-option input:focus-visible{box-shadow:none}.stay-option:has(input:focus-visible){outline:2px solid var(--ec-plum);outline-offset:3px}
.budget-presets button{min-height:44px;border-radius:999px;border-color:var(--ec-control-border)}
.budget-presets button[aria-pressed=true]{color:var(--ec-plum);border-color:var(--ec-plum);background:var(--ec-selected)}
.popover-reset{min-height:44px;color:var(--ec-plum)}
.search-feedback{color:var(--ec-muted)}.search-feedback button{min-height:44px;border-radius:999px}
.region-filters button{min-height:44px;border-radius:999px}.region-filters button[aria-pressed=true]{background:var(--ec-plum);color:white}
.country-search-label input,.share-url{min-height:48px;border:1px solid var(--ec-field-border);border-radius:var(--ec-radius-control);font-size:14px}
.country-list button{min-height:48px;border-radius:16px;border-color:var(--ec-line)}
.country-list button:hover{background:var(--ec-selected);border-color:var(--ec-plum)}
.sort-control{display:flex;align-items:center;gap:10px;color:var(--ec-muted);white-space:nowrap;font-size:13px}
.sort-control .ec-select{width:190px}.sort-control .ec-select-trigger{min-height:44px;height:44px;border-radius:999px;padding-left:16px;background:white;font-size:13px;color:var(--ec-plum)}
.sort-control .ec-select-trigger .ec-select-chevron{right:14px}.sort-control .ec-select-value{padding-right:20px}
.ec-select-popover{font-family:var(--ec-font-body);color:var(--ec-ink)}
.ec-select-trigger{font-family:var(--ec-font-body)}

/* Results: balanced header and aligned filters, while retaining the card design. */
.listing-page .nav-wrap{height:84px;align-items:center}
.listing-page .enhanced-search{min-height:50px;height:50px;padding:2px;box-shadow:var(--ec-shadow-card);border-color:var(--ec-field-border)}
.listing-page .search-trigger,.listing-page .destination-input-wrap{min-height:44px;height:44px;padding-block:3px}
.listing-page .enhanced-search .search-submit{width:44px;height:44px;min-height:44px;margin:0;padding:0;border-radius:50%}
.listing-page .quick-filter-pill{min-height:44px;border-radius:999px;border-color:var(--ec-control-border)}
.listing-page #mobile-filter-toggle{min-height:44px;border-radius:999px;padding-inline:18px;border-color:var(--ec-control-border)}
.listing-page .listing-toolbar{align-items:center}
.listing-page .browse-controls .search-feedback{display:none}
.listing-page #mobile-filter-toggle svg{width:20px;height:20px;flex:none}
#active-filters button{min-height:44px;background:var(--ec-selected);color:var(--ec-plum);border:1px solid #decec4;border-radius:999px;padding-inline:14px;gap:12px}
#active-filters .ds-clear-filters{background:transparent;border-color:transparent;text-decoration:underline;text-underline-offset:4px;font-weight:700}
.listing-filter-dialog{border:1px solid var(--ec-line);border-radius:var(--ec-radius-overlay);box-shadow:var(--ec-shadow-overlay)}
.filter-dialog-header{border-bottom-color:var(--ec-line)}.filter-dialog-header h2{font-size:20px}
.filter-dialog-content{color:var(--ec-ink)}.dialog-filter-section{border-color:var(--ec-line)}
.dialog-filter-section .ec-select{margin-top:10px}.dialog-filter-section .ec-select-trigger{height:48px;min-height:48px;border-radius:16px}
.bathroom-choice{min-height:52px;border-radius:16px;border-color:var(--ec-control-border)}
.bathroom-choice:has(input:checked){background:var(--ec-selected);border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum)}
.amenity-choice{min-height:52px;border-radius:16px}.amenity-choice:has(input:checked){background:var(--ec-selected);border-color:var(--ec-plum)}
.bathroom-choice:has(input:focus-visible),.amenity-choice:has(input:focus-visible){outline:2px solid var(--ec-plum);outline-offset:3px}
.bathroom-choice input:focus-visible,.amenity-choice input:focus-visible{box-shadow:none}
.listing-empty,.empty-results{border-radius:24px;border-color:var(--ec-line)}

/* Home disclosures use the same accordion family as the reference library. */
.faq-list{border:1px solid var(--ec-line);border-radius:24px;overflow:hidden;background:#fffaf6}
.faq-list details{padding:0 24px;border:0}.faq-list details+details{border-top:1px solid var(--ec-line)}
.faq-list summary{min-height:72px;gap:18px;font-size:15px}.faq-list summary>span{display:grid;place-items:center;width:28px;flex:none}
.faq-list summary .ec-icon{width:18px;height:18px;transition:transform var(--ec-duration)}
.faq-list details[open] summary .ec-icon{transform:rotate(180deg)}.faq-list details[open] summary>span{transform:none}
.faq-list details p{padding:0 0 22px;font-size:14px;line-height:1.8;color:var(--ec-muted)}

/* Detail: shared form fields, icon catalogue, feedback and dialog surfaces. */
.detail-page .detail-search-link{height:50px;border-color:var(--ec-control-border);box-shadow:var(--ec-shadow-card)}
.detail-search-link i{width:40px;height:40px}
.property-actions button{min-height:44px;border:1px solid var(--ec-control-border);border-radius:999px;padding-inline:16px;text-decoration:none;font-size:13px;gap:8px;background:white}
.property-actions button:hover{background:var(--ec-hover)}.property-actions [aria-pressed=true]{background:var(--ec-selected);border-color:var(--ec-plum)}
.gallery-show-all{min-height:44px;border-radius:999px;border-color:var(--ec-control-border);padding-inline:17px}
.detail-page .property-gallery{border-radius:24px}
.detail-page .property-section h2{font-size:24px}.detail-page .property-highlights h3{font-size:16px}
.property-highlights>div>svg{width:24px;height:24px;flex:none;color:var(--ec-plum)}
.detail-page .stay-planner{border-radius:24px;border:1px solid var(--ec-line);padding:26px;box-shadow:0 8px 32px #48213f0d;background:white}
.detail-page .planner-fields{display:grid;grid-template-columns:1fr;gap:16px;border:0;border-radius:0;overflow:visible;margin-top:24px}
.detail-page .planner-fields .ds-planner-field{padding:0;border:0;display:block;min-width:0}
.ds-planner-field>span{font:700 13px/1.5 var(--ec-font-heading)!important;letter-spacing:0!important;display:block;margin-bottom:8px;color:var(--ec-plum)}
.detail-page .planner-fields input.ec-input{height:48px;min-height:48px;padding:0 14px;border:1px solid var(--ec-field-border);border-radius:16px;background:white;font:400 16px var(--ec-font-body);width:100%}
.detail-page .planner-fields .ec-select-trigger{height:48px;min-height:48px;border-radius:16px}
.detail-page .planner-resident{border:1px solid var(--ec-line);border-radius:16px;padding:12px 14px;background:var(--ec-subtle);display:flex;align-items:center;justify-content:space-between;gap:14px}
.planner-resident>div>span{font-size:11px;line-height:1.5;color:var(--ec-muted)}.planner-resident strong{font-size:13px;font-weight:400}
.detail-page .stay-planner>.button{height:48px;min-height:48px;padding-inline:14px;border-radius:999px;font-size:14px}
.detail-page .planner-flexible{font-size:12px;line-height:1.6;color:var(--ec-muted);margin-top:12px}
.ds-field-error{font-size:12px;color:var(--ec-danger);margin:8px 0 14px;line-height:1.7}
input[aria-invalid=true]{border-color:var(--ec-danger)!important}
.detail-page .planner-summary{border-top-color:var(--ec-line)}.detail-page .planner-summary>div{font-size:13px}.planner-total strong{font-size:15px;color:var(--ec-plum)}
.ds-amenities-button{margin-top:25px}.amenity-grid .amenity-svg{color:var(--ec-plum);flex:none}
.detail-page .inclusions-note{border-radius:16px;background:var(--ec-selected);border:1px solid #eaded3;margin-top:24px}
.inclusions-note .ec-icon{flex:none;color:var(--ec-success)}
.things-grid details{border:1px solid var(--ec-line);border-radius:16px;margin-top:16px;padding:0 16px}
.things-grid summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.things-grid details p{padding:0 0 16px}.about-more summary{min-height:44px;display:inline-flex;align-items:center;gap:8px}
.ds-amenities-dialog{width:min(680px,calc(100% - 32px));max-height:88dvh;border:1px solid var(--ec-line);border-radius:28px;padding:0;color:var(--ec-ink);box-shadow:var(--ec-shadow-overlay)}
.ds-amenities-dialog .dialog-heading{padding:24px;margin:0;border-bottom:1px solid var(--ec-line);align-items:center;gap:18px}
.ds-amenities-dialog .eyebrow{font-size:10px;margin-bottom:7px}.ds-amenities-dialog h2{font-size:24px}
.ds-dialog-body{padding:0 24px 24px}.amenity-preview-group{padding-top:24px}.amenity-preview-group h3{font-size:16px;margin-bottom:12px}
.amenity-rows{display:grid;grid-template-columns:1fr 1fr;gap:12px}.amenity-row{display:flex;align-items:center;gap:12px;padding-block:10px;font-size:14px;min-width:0}.amenity-svg{flex:none;color:var(--ec-plum)}
.ds-surface-note{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ec-line);border-radius:16px;background:var(--ec-subtle);padding:16px;margin-top:24px;font-size:12px;line-height:1.8;color:var(--ec-muted)}
.ds-dialog-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;border-top:1px solid var(--ec-line);background:white}
.ds-dialog-footer p{font-size:12px;color:var(--ec-muted)}
.info-dialog,.country-dialog,.gallery-dialog{border:1px solid var(--ec-line);border-radius:28px;box-shadow:var(--ec-shadow-overlay)}
dialog::backdrop{background:#25132066;backdrop-filter:blur(3px)}
.estimate-dates,.info-note{border-radius:16px}.share-url{width:100%;padding:12px 14px;line-height:1.5;margin:10px 0 18px}
.share-link-label{font:700 var(--ec-label-size) var(--ec-font-heading);color:var(--ec-label-color)}
.mobile-stay-bar .button.ec-btn{border-radius:var(--ec-radius-action);min-height:var(--ec-control-md,48px)}

@media(max-width:1000px){.site-header .header-actions{gap:12px}.site-header .button.ec-btn.sm{padding-inline:16px}.sort-control .ec-select{width:180px}}
@media(max-width:900px){
 .home-page .search-bar.enhanced-search{border-radius:28px;display:grid;grid-template-columns:1fr 1fr;padding:8px;gap:4px;max-width:560px}
 .home-page .enhanced-search .destination-field{grid-column:1/-1;width:100%;border-bottom:1px solid var(--ec-line);border-radius:20px 20px 0 0}
 .home-page .enhanced-search .destination-input-wrap{min-height:52px;height:52px}
 .home-page .enhanced-search .search-field:not(.destination-field){min-width:0;border:0}
 .home-page .enhanced-search .search-trigger{height:52px;padding:7px 12px;min-height:52px;border-radius:16px}
 .home-page .search-bar .search-submit{grid-column:1/-1;min-height:48px;height:48px;margin:4px 0 0;width:100%;padding-inline:20px}
}
@media(max-width:760px){
 .site-header .brand img{width:128px}
 .search-popover{border-radius:24px;max-height:70dvh;overflow:auto}.search-popover .popover-header h3{font-size:17px}
 .home-page .field-label{font-size:calc(11px * var(--ec-label-scale));color:var(--ec-label-color)}.home-page .field-value{font-size:13px}
 .sort-control{gap:8px;font-size:12px}.sort-control .ec-select{width:172px}.sort-control .ec-select-trigger{font-size:13px}
 .listing-page .nav-wrap{height:auto;min-height:120px;grid-template-columns:1fr auto;gap:10px;padding-block:10px}
 .listing-page .enhanced-search{max-width:560px;height:50px;min-height:50px}.listing-page .enhanced-search .search-submit{min-height:44px}
 .listing-filter-dialog{border-radius:24px}.dialog-filter-section .ec-select{width:100%}
 .faq-list{border-radius:20px}.faq-list details{padding-inline:18px}.faq-list summary{font-size:14px;min-height:66px}
 .detail-page .property-gallery{border-radius:20px}.detail-page .property-section h2{font-size:22px}
 .detail-page .stay-planner{padding:24px}.detail-page .planner-fields{grid-template-columns:1fr 1fr;gap:14px}
 .detail-page .planner-resident{grid-column:1/-1}.detail-page .planner-fields input.ec-input{font-size:16px;padding-inline:10px}
 .detail-page .planner-fields .ec-select-trigger{font-size:16px;padding-left:12px}
 .property-actions button{width:44px;min-height:44px;padding:0;justify-content:center}.property-actions .ec-icon{width:18px;height:18px}
 .ds-amenities-dialog{width:calc(100% - 20px);border-radius:24px;max-height:90dvh}.ds-amenities-dialog .dialog-heading{padding:20px}.ds-amenities-dialog h2{font-size:21px}
 .ds-dialog-body{padding:0 20px 20px}.ds-dialog-footer{padding:16px 20px;gap:12px}.amenity-rows{grid-template-columns:1fr}
 .ds-dialog-footer p{font-size:11px}.ds-surface-note{font-size:12px}
 .country-search-label input,.share-url,.ec-select-search input{font-size:16px}
}
@media(max-width:390px){.detail-page .planner-fields{grid-template-columns:1fr}.home-page .enhanced-search .field-icon{display:none}.listing-page .sort-control{width:100%;justify-content:space-between}.listing-page .sort-control .ec-select{flex:1;max-width:220px}}
.marketplace-page dialog{background:var(--ec-white)}
.ds-amenities-dialog[open]{display:flex;flex-direction:column}.ds-amenities-dialog .dialog-heading,.ds-amenities-dialog .ds-dialog-footer{flex:none}.ds-amenities-dialog .ds-dialog-body{min-height:0;overflow:auto;flex:1}.ds-amenities-dialog .ds-dialog-footer{position:static}
.detail-page .planner-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.detail-page .planner-resident{grid-column:1/-1}
@media(min-width:761px) and (max-height:820px){.detail-page .stay-sidebar{position:static}}
@media(max-width:390px){.detail-page .planner-fields{grid-template-columns:1fr}}

@media(max-width:590px){.listing-page #mobile-filter-toggle{padding:0;gap:0;width:44px;height:44px;min-width:44px}}

/* Property cards: named amenity icons and the shared arrow-only action. */
.home-amenities .card-amenity{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 7px;white-space:nowrap;color:var(--ec-muted);border-color:var(--ec-line);border-radius:8px}
.card-amenity .amenity-svg{width:16px;height:16px;flex:none;color:var(--ec-plum)}
.card-arrow-action.ec-btn{width:44px;height:44px;min-height:44px;padding:0;flex:none;border-radius:50%;background:var(--ec-subtle);color:var(--ec-plum);box-shadow:none}
.card-arrow-action .ec-icon{width:20px;height:20px;transition:transform var(--ec-duration)}
.listing-card-link:hover .card-arrow-action,.listing-card-link:focus-visible .card-arrow-action,.home-card-main:hover .card-arrow-action,.home-card-main:focus-visible .card-arrow-action{background:var(--ec-cream)}
.listing-card-link:hover .card-arrow-action .ec-icon,.home-card-main:hover .card-arrow-action .ec-icon{transform:translateX(3px)}

/* home-components.css */
/* Public marketplace compositions shared with the design-system catalogue. */
/* Figma "Header Light/Light" (342:905, user 23 Oct 2026): the links sit 40 px after the logo, the account controls at the end. */
@media(min-width:1101px){
  .site-header .nav-wrap.wrap:has(>.desktop-nav){display:flex;gap:0}
  .site-header .nav-wrap>.desktop-nav{white-space:nowrap}
  .site-header .nav-wrap>:is(.ec-header-tools,.header-actions){margin-left:auto}
}
@media(max-width:1100px){.site-header .nav-wrap>.desktop-nav{display:none}.site-header .nav-wrap>.menu-toggle{display:block}}
.ec-public-eyebrow{font:700 11px/1.6 var(--ec-font-heading);letter-spacing:.1em;color:var(--ec-plum);margin:0 0 12px}
.ec-public-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.ec-public-heading h2{font-size:clamp(25px,2.4vw,34px);line-height:1.25}.ec-public-heading>.ec-link{flex:none}
.ec-destination-card{position:relative;display:block;min-height:220px;overflow:hidden;border-radius:var(--ec-radius-card);color:white;text-decoration:none;isolation:isolate;background:var(--ec-plum)}
.ec-destination-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform var(--ec-duration)}
.ec-destination-card:after{content:'';position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#22131ad9);z-index:0;pointer-events:none}
.ec-destination-action{position:absolute;right:12px;top:12px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #ffffffaa;border-radius:50%;background:#fffffff0;color:var(--ec-plum);z-index:1}
.ec-destination-caption{position:absolute;left:18px;right:16px;bottom:18px;z-index:1}.ec-destination-caption strong{display:block;font:700 18px/1.35 var(--ec-font-heading);color:white}.ec-destination-caption small{display:block;margin-top:5px;font-size:12px;color:white}
.ec-destination-card:hover img{transform:scale(1.035)}.ec-destination-action .ec-icon{width:20px;height:20px;transition:transform var(--ec-duration)}.ec-destination-card:hover .ec-icon{transform:translateX(3px)}
.ec-home-card{border:1px solid var(--ec-line);border-radius:16px;overflow:hidden;background:white;min-width:0;transition:box-shadow var(--ec-duration)}.ec-home-card>a{display:block;text-decoration:none;color:var(--ec-ink);border-radius:inherit}.ec-home-card:hover{box-shadow:var(--ec-shadow-card)}
.ec-home-photo{height:220px;position:relative}.ec-home-photo>img{width:100%;height:100%;object-fit:cover}.ec-home-photo>span{position:absolute;left:14px;top:14px;border-radius:99px;background:#fffffff2;color:var(--ec-ink);font-size:12px;padding:6px 12px}
.ec-home-copy{padding:20px}.ec-home-location{font-size:13px;color:var(--ec-muted);margin-bottom:7px}.ec-home-copy h3{font-size:19px;line-height:1.4;margin:0;color:var(--ec-plum)}
.ec-home-amenities{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 18px}.ec-amenity-tag{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:4px 7px;border:1px solid var(--ec-line);border-radius:8px;font-size:12px;white-space:nowrap;color:var(--ec-muted)}.ec-amenity-tag .amenity-svg{width:16px;height:16px;flex:none;color:var(--ec-plum)}
.ec-home-price{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--ec-line);padding-top:14px}.ec-home-price strong{font:700 20px var(--ec-font-heading)}.ec-home-price small,.ec-home-price p{font-size:12px;color:var(--ec-muted)}.ec-home-price p{margin-top:5px}.ec-card-arrow.ec-btn{width:44px;height:44px;min-height:44px;padding:0;flex:none}.ec-home-card:hover .ec-card-arrow{background:var(--ec-cream)}.ec-home-card:hover .ec-card-arrow svg{transform:translateX(3px)}
.ec-world-section{background:var(--ec-plum)}
.ec-world-directory{background:var(--ec-plum);color:var(--ec-cream);padding:48px;border-radius:24px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.5fr);gap:48px}
.ec-world-directory .ec-public-eyebrow{color:var(--ec-apricot);max-width:300px}.ec-world-directory .ec-world-copy h2{font-size:clamp(30px,3vw,42px);line-height:1.2;color:var(--ec-cream);letter-spacing:-.045em}
.ec-world-copy>p:not(.ec-public-eyebrow){font-size:15px;line-height:1.8;margin:22px 0 26px;color:var(--ec-cream);max-width:350px;opacity:.88}
.ec-world-copy>.ec-btn{max-width:100%;font-size:var(--ec-text-small)}
.ec-region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}.ec-world-directory .ec-region-group h3,.ec-world-directory .ec-everywhere h3{font-size:15px;color:var(--ec-apricot);margin:0 0 10px;line-height:1.5;letter-spacing:0}
.ec-region-group>a,.ec-region-group>button,.ec-everywhere>button{display:flex;align-items:center;gap:8px;min-height:44px;border:0;background:none;text-decoration:none;font-size:13px;color:var(--ec-cream);padding:8px 0;text-align:left;border-radius:4px;line-height:1.6}
.ec-region-group>a:hover,.ec-region-group>button:hover,.ec-everywhere>button:hover{text-decoration:underline;text-underline-offset:4px}
.ec-region-group .ec-region-more,.ec-everywhere .ec-region-more{font-size:12px;color:var(--ec-lilac);margin-top:5px;gap:8px}.ec-region-more .ec-icon{width:16px;height:16px}
.ec-world-directory :is(a,button):focus-visible{outline:2px solid var(--ec-apricot);outline-offset:4px;box-shadow:none}
.ec-everywhere{padding:20px 18px;border:1px solid #ffffff40;border-radius:16px;display:flex;flex-direction:column;align-items:flex-start;background:#ffffff05}.ec-everywhere-icon{color:var(--ec-apricot);margin-bottom:16px}.ec-everywhere p{font-size:12px;color:var(--ec-cream);line-height:1.7}.ec-everywhere .ec-region-more{margin-top:auto;padding-top:14px}
.ec-process-steps{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.ec-process-steps li{display:flex;align-items:flex-start;gap:16px;min-width:0}.ec-step-number{width:44px;height:44px;display:grid;place-items:center;flex:none;background:var(--ec-apricot);color:var(--ec-plum);border-radius:50%;font:700 13px var(--ec-font-heading)}.ec-process-steps li:nth-child(2) .ec-step-number{background:var(--ec-lilac)}.ec-process-steps li:nth-child(3) .ec-step-number{background:var(--ec-plum);color:white}.ec-process-steps h3{font-size:17px;line-height:1.5;margin:3px 0 10px}.ec-process-steps p{font-size:14px;line-height:1.85;color:var(--ec-muted)}
.ec-host-panel{display:grid;grid-template-columns:1.1fr 1fr;border-radius:24px;overflow:hidden;background:var(--ec-apricot)}.ec-host-copy{padding:44px;align-self:center}.ec-host-copy h2{font-size:clamp(28px,3vw,40px);line-height:1.2;color:var(--ec-plum)}.ec-host-copy>p:not(.ec-public-eyebrow){font-size:15px;line-height:1.85;color:var(--ec-plum);margin:22px 0 26px;max-width:440px}.ec-host-copy>.ec-btn{min-height:48px;max-width:100%;background:var(--ec-plum);color:white}.ec-host-copy>.ec-btn:hover{background:var(--ec-plum-hover)}
.ec-host-photo{position:relative;min-height:340px}.ec-host-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.ec-host-photo:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#201019b3)}.ec-host-photo>span{position:absolute;bottom:24px;left:24px;right:24px;z-index:1;font:700 13px var(--ec-font-heading);color:white}
.ec-public-faq{border:1px solid var(--ec-line);border-radius:24px;background:white;overflow:hidden}.ec-public-faq details+details{border-top:1px solid var(--ec-line)}.ec-public-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:22px 24px;font:700 14px/1.6 var(--ec-font-heading);color:var(--ec-plum);list-style:none;cursor:pointer}.ec-public-faq summary::-webkit-details-marker{display:none}.ec-public-faq summary svg{width:18px;height:18px;flex:none;transition:transform var(--ec-duration)}.ec-public-faq details[open] summary svg{transform:rotate(180deg)}.ec-public-faq details p{padding:0 24px 24px;font-size:14px;line-height:1.9;color:var(--ec-muted)}.ec-public-faq summary:focus-visible{outline:2px solid var(--ec-plum);outline-offset:-5px;box-shadow:none}
.ec-public-footer{background:var(--ec-subtle);border-top:1px solid var(--ec-line);padding:48px 0 16px}.ec-footer-inner{max-width:1280px;width:calc(100% - 96px);margin:auto}.ec-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:32px}.ec-footer-brand>a{display:inline-flex;align-items:center;min-height:44px}.ec-footer-brand p{font-size:13px;line-height:1.8;margin-top:12px;color:var(--ec-muted)}.ec-footer-grid nav h3{font-size:13px;line-height:1.5;letter-spacing:0;color:var(--ec-plum);margin:10px 0 10px}.ec-footer-grid nav a,.ec-footer-grid nav button{display:flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;padding:8px 0;border:0;background:none;color:var(--ec-muted);line-height:1.6;text-align:left;border-radius:4px}.ec-footer-grid nav a:hover,.ec-footer-grid nav button:hover{color:var(--ec-plum);text-decoration:underline;text-underline-offset:4px}
.ec-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--ec-line);padding-top:16px;font-size:11px;color:var(--ec-muted)}.ec-footer-bottom>span:nth-child(2){display:flex;align-items:center;gap:8px}.ec-footer-bottom .ec-icon{width:16px;height:16px}.ec-footer-bottom a,.ec-footer-bottom button{min-height:44px;border:0;background:none;text-decoration:underline;text-underline-offset:4px;padding:8px 0;color:inherit;font:inherit;display:flex;align-items:center}
.ec-preview-notice{position:relative;z-index:15;font-size:12px;color:var(--ec-plum)}.ec-preview-notice summary{display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--ec-line);border-radius:999px;padding:8px 13px;background:var(--ec-white);list-style:none;cursor:pointer;white-space:nowrap}.ec-preview-notice summary::-webkit-details-marker{display:none}.ec-preview-notice .ec-icon{width:16px;height:16px}.ec-preview-notice p{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 40px);padding:18px;border:1px solid var(--ec-line);border-radius:16px;background:white;box-shadow:var(--ec-shadow-overlay);font-size:12px;line-height:1.8;color:var(--ec-muted);margin:0}.ec-preview-notice[open] summary>.ec-icon:last-child{transform:rotate(180deg)}
dialog.ec-country-dialog{width:min(880px,calc(100% - 32px));max-height:88dvh;margin:auto;padding:0;background:white;border:1px solid var(--ec-line);border-radius:28px;box-shadow:var(--ec-shadow-overlay);color:var(--ec-ink)}.ec-country-dialog[open]{display:flex;flex-direction:column}.ec-country-dialog::backdrop{background:#25132066;backdrop-filter:blur(3px)}.ec-country-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid var(--ec-line);flex:none}.ec-country-head h2{font-size:26px;line-height:1.3}.ec-country-head .ec-public-eyebrow{font-size:10px;margin-bottom:7px}.ec-country-head .close-dialog{flex:none}.ec-country-tools{padding:20px 28px 12px;flex:none}.ec-country-tools>p:first-child{font-size:13px;line-height:1.7;color:var(--ec-muted);margin-bottom:16px}.ec-country-search{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border:1px solid var(--ec-control-border);border-radius:16px}.ec-country-search:focus-within{outline:2px solid var(--ec-plum);outline-offset:3px}.ec-country-search input{min-width:0;width:100%;height:46px;border:0;outline:none!important;box-shadow:none!important;background:transparent;font-size:14px}.ec-country-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;margin-top:16px;padding:4px 2px;scrollbar-width:thin}.ec-country-tabs button{min-height:44px;border:1px solid transparent;border-radius:999px;font-size:12px;padding:8px 12px;background:none;color:var(--ec-plum);white-space:nowrap;flex:none}.ec-country-tabs button:hover{border-color:var(--ec-control-border)}.ec-country-tabs button[aria-pressed=true]{background:var(--ec-plum);color:white}.ec-country-count{font-size:12px;color:var(--ec-muted);margin-top:10px}.ec-country-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 12px;overflow-y:auto;overscroll-behavior:contain;min-height:0;max-height:42dvh;padding:8px 28px 28px}.ec-country-list button{min-height:48px;padding:10px 12px;border:1px solid var(--ec-line);border-radius:12px;background:white;text-align:left;font-size:13px;line-height:1.6;color:var(--ec-plum);display:flex;align-items:center;justify-content:space-between;gap:10px}.ec-country-list button:hover{background:var(--ec-cream);border-color:var(--ec-plum)}.ec-country-list .ec-icon{width:16px;height:16px}.ec-country-empty,.ec-country-list .country-empty{grid-column:1/-1;font-size:14px;color:var(--ec-muted);padding:24px 0}
.ec-destination-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ec-collection-example{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;margin-top:32px;align-items:center}.ec-collection-example .ec-preview-notice{display:inline-block;margin-top:18px}.ec-pattern-note{font-size:13px;line-height:1.9;color:var(--ec-muted);margin-top:24px}.sheet .ec-world-directory{grid-template-columns:1fr;padding:32px;gap:32px}.sheet .ec-world-copy>p:not(.ec-public-eyebrow){max-width:580px}.sheet .ec-process-steps{margin-bottom:32px}.sheet .ec-host-panel{grid-template-columns:1fr 1fr}.sheet .ec-host-copy{padding:28px}.sheet .ec-host-copy h2{font-size:30px}.ec-footer-example{padding:28px 0 8px;border:1px solid var(--ec-line);border-radius:24px;margin-top:32px}.ec-footer-example .ec-footer-inner{width:calc(100% - 48px)}.ec-footer-example .ec-footer-grid{grid-template-columns:1fr 1fr;gap:24px}.ec-footer-example .ec-footer-bottom{flex-wrap:wrap}
/* Homepage adoption, scoped so the other public pages retain their layouts. */
.home-page .ec-world-directory{width:calc(100% - 96px);max-width:1280px;margin:auto;padding:64px 0;border-radius:0;gap:64px}
.home-page .section{padding-block:72px}.home-page .section-heading h2{font-size:clamp(27px,2.7vw,36px);line-height:1.25}.home-page .section-heading{gap:24px;align-items:center;margin-bottom:28px}.home-page .section-heading .text-link{min-height:44px}.home-page .quick-search button{min-height:44px}.home-page .quick-search .ec-icon{width:16px;height:16px}.home-page .eyebrow{font-size:11px;letter-spacing:.1em}.home-page .market-hero .eyebrow{font-size:11px}.home-page .market-hero{padding-bottom:40px}.home-page .home-grid{gap:28px 24px}.home-page .collection-note{line-height:1.8}.home-page .results-toolbar{gap:16px}.home-page .sort-control{flex:none}.home-page .region-filters{gap:4px}.home-page .region-filters button{font-size:13px}.home-page .enhanced-search .search-field.is-open{box-shadow:inset 0 0 0 1px var(--ec-plum);background:var(--ec-cream)}.home-page .clear-destination{width:44px;height:44px;min-width:44px;background:transparent}.home-page .clear-destination:hover{background:var(--ec-subtle)}.home-page .clear-destination .ec-icon{width:18px;height:18px}.home-page .header-login{display:inline-flex;align-items:center;min-height:44px;color:var(--ec-plum);font:700 13px var(--ec-font-heading);white-space:nowrap}.home-page .header-login:hover{text-decoration:underline;text-underline-offset:4px}.home-page .menu-toggle{min-width:44px;min-height:44px;border-radius:50%}.home-page .faq-section h2{font-size:clamp(30px,3vw,40px);line-height:1.25}.home-page .empty-results .ec-icon{color:var(--ec-plum)}
@media(max-width:1100px){.home-page .ec-world-directory{width:calc(100% - 64px);gap:40px}.ec-world-directory{grid-template-columns:1fr;gap:32px}.home-page .ec-world-copy>p:not(.ec-public-eyebrow){max-width:580px}.ec-host-copy{padding:32px}.ec-footer-inner{width:calc(100% - 64px)}.ec-destination-caption{left:14px}.ec-destination-caption strong{font-size:16px}.ec-process-steps{gap:24px}.ec-process-steps li{gap:12px}.home-page .desktop-nav{gap:16px}.home-page .site-header .header-actions{gap:16px}}
@media(max-width:760px){.ec-public-heading{align-items:flex-start;flex-direction:column;gap:12px}.ec-public-heading h2{font-size:26px}.ec-destination-card{min-height:210px}.ec-destination-action{width:36px;height:36px;right:10px;top:10px}.ec-destination-card{min-width:44px}.ec-home-photo{height:235px}.ec-world-directory,.sheet .ec-world-directory{padding:28px 22px;grid-template-columns:1fr}.ec-world-directory .ec-world-copy h2{font-size:32px}.ec-region-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 22px}.ec-everywhere{padding:18px 14px}.ec-process-steps{grid-template-columns:1fr;gap:26px}.ec-process-steps p{max-width:580px}.ec-host-panel,.sheet .ec-host-panel{grid-template-columns:1fr}.ec-host-copy{padding:30px 24px}.ec-host-copy h2{font-size:32px}.ec-host-photo{min-height:280px}.ec-public-faq{border-radius:20px}.ec-public-faq summary{padding:18px 20px;min-height:68px;font-size:14px}.ec-public-faq details p{padding:0 20px 22px;font-size:13px}.ec-footer-grid{grid-template-columns:1fr 1fr;gap:26px}.ec-footer-brand{grid-column:1/-1}.ec-footer-inner{width:calc(100% - 40px)}.ec-footer-bottom{flex-wrap:wrap;gap:10px 20px}.ec-footer-bottom>span:nth-child(2){width:100%;order:3}.ec-footer-bottom>button,.ec-footer-bottom>a{margin-left:auto}.ec-public-footer{padding-top:32px}.ec-country-head{padding:20px;gap:12px}.ec-country-head h2{font-size:22px}.ec-country-tools{padding:18px 20px 10px}.ec-country-search input{font-size:16px}.ec-country-list{grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 20px 20px;gap:8px}.ec-country-list button{font-size:12px;padding:10px}.ec-country-dialog[open]{max-height:92dvh;border-radius:24px}.ec-country-tabs{margin-top:12px}.ec-country-head .ec-public-eyebrow{font-size:9px}.ec-destination-examples{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ec-collection-example{grid-template-columns:1fr;gap:24px}.ec-preview-notice p{left:0;right:auto}.home-page .ec-world-directory{width:calc(100% - 40px);padding:48px 0}.home-page .section{padding-block:48px}.home-page .section-heading{gap:18px}.home-page .site-header .header-actions .header-login{display:none}.home-page .preview-label{margin:0}.home-page .ec-preview-notice{display:inline-block;margin-top:16px}.home-page .ec-public-footer .ec-preview-notice{margin:0}.home-page .section-heading .ec-preview-notice{align-self:flex-start}.home-page .sort-control{margin-left:0}.home-page .results-toolbar{align-items:center}.home-page .region-filters{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;padding:4px 2px;scrollbar-width:thin}.home-page .region-filters button{flex:none}.home-page .results-toolbar .sort-control{width:100%;justify-content:space-between}.home-page .results-toolbar .ec-select{width:190px}.home-page .home-grid{gap:22px}.home-page .ec-preview-notice summary{font-size:12px}}
@media(max-width:380px){.ec-home-copy{padding:18px}.ec-home-copy h3{font-size:18px}.ec-amenity-tag{font-size:11px;padding-inline:6px}.ec-country-list{grid-template-columns:1fr}.ec-country-head h2{font-size:20px}.ec-region-grid{gap:24px 16px}.ec-region-group .ec-region-more{font-size:11px}.ec-everywhere{padding:14px 12px}.ec-destination-caption strong{font-size:15px}.ec-destination-caption small{font-size:11px}.ec-host-copy h2{font-size:28px}.ec-footer-grid{gap:20px}}
@media print{.ec-country-dialog{display:none!important}.ec-world-directory,.ec-host-panel,.ec-process-steps,.ec-destination-card,.ec-home-card{break-inside:avoid}.ec-preview-notice p{position:static;box-shadow:none}.sheet .ec-host-photo{min-height:220px}}

/* Predictable sizing and focus at every breakpoint. */
body:has(.ec-country-dialog[open]){overflow:hidden}
.ec-destination-card:focus-visible,.ec-home-card>a:focus-visible{outline:3px solid var(--ec-plum);outline-offset:4px}
.ec-home-card:has(>a:focus-visible){outline:3px solid var(--ec-plum);outline-offset:4px}
@media(min-width:901px){.home-page .nav-wrap{height:var(--ec-header);min-height:var(--ec-header)}.home-page .search-bar.enhanced-search{height:var(--ec-search-home)}.home-page .enhanced-search .destination-input-wrap,.home-page .enhanced-search .search-trigger{height:52px;min-height:52px;padding-block:4px}.home-page .search-bar .search-submit{height:52px;min-height:52px}}
@media(max-width:760px){.home-page .quick-search>button:last-child{display:flex;align-items:center;justify-content:center;margin:0 auto;padding:0;border-left:0;gap:8px}.home-page .ec-public-heading .ec-preview-notice{margin-top:0}}
.home-page #destination:focus-visible{outline:0;box-shadow:none}
.home-page .destination-field:has(#destination:focus-visible){box-shadow:inset 0 0 0 2px var(--ec-plum)}
@media(max-width:900px){.home-page .enhanced-search .search-field{border-radius:16px}.home-page .enhanced-search .destination-field{border-radius:20px}.home-page .enhanced-search .search-field:not(.destination-field){border-radius:16px}}
.home-page .mobile-nav{max-height:calc(100dvh - 74px);overflow-y:auto}
.home-page .mobile-nav a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0}
.home-page .mobile-nav .cta-arrow{width:20px;height:20px;flex:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-page .mobile-nav a[href="login.html"]{border-top:1px solid var(--ec-line);margin-top:8px;padding-top:16px}
.sheet .ec-region-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
@media(max-width:760px){.docs-top .ec-row{min-width:0;flex:1;flex-wrap:nowrap;gap:8px}.docs-top #component-search{width:100%;min-width:0}.docs-top .ec-row>.ec-btn{white-space:nowrap;flex:none;font-size:11px;padding-inline:10px}}
@media(max-width:380px){.home-page .enhanced-search .search-trigger{padding-inline:8px;gap:4px}.home-page .enhanced-search .field-label{font-size:calc(10px * var(--ec-label-scale));white-space:nowrap;color:var(--ec-label-color)}.home-page .enhanced-search .field-value{font-size:12px}.home-page .enhanced-search .chevron{width:14px;height:14px;flex:none}}

/* Attribution for the destination photography shown on the home page. */
.home-page .ec-place-credits {
  color: var(--ec-muted);
  font-size: 11px;
  margin-top: 24px;
}
.home-page .ec-place-credits summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  min-height: 40px;
  width: fit-content;
}
.home-page .ec-place-credits summary svg {
  width: 14px;
  height: 14px;
}
.home-page .ec-place-credits ul {
  margin: 10px 0 0;
  padding-left: 18px;
  line-height: 1.8;
}
.home-page .ec-place-credits a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* card-components.css */
/* Easycoliv property cards: shared between the library and homepage. */
.ec-card.ec-property,.ec-home-card{padding:0;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);background:var(--ec-white);overflow:hidden;min-width:0;display:flex;flex-direction:column;transition:border-color var(--ec-duration),box-shadow var(--ec-duration)}
.ec-property:hover,.ec-home-card:hover{border-color:var(--ec-border);box-shadow:var(--ec-shadow-card)}
.ec-property .photo,.ec-home-card .ec-home-photo{position:relative;height:auto;aspect-ratio:4/3;flex:none;overflow:hidden;background:var(--ec-subtle)}
.ec-property .photo img,.ec-home-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.ec-property .photo .ec-badge,.ec-home-photo>span{left:14px;top:14px;min-height:28px;padding:5px 11px;border:1px solid #ffffffb3;background:#fffffff2;border-radius:var(--ec-radius-pill);font-size:12px;line-height:1.5;color:var(--ec-plum)}
.ec-property .photo .save{top:12px;right:12px;width:44px;height:44px;min-height:44px;background:#fff;border:1px solid var(--ec-line);color:var(--ec-plum);box-shadow:0 2px 8px #48213f12}
.ec-property .photo .save:hover{background:var(--ec-cream);border-color:var(--ec-plum)}
.ec-property .photo .save[aria-pressed=true]{background:var(--ec-plum);border-color:var(--ec-plum);color:#fff}
.ec-property .photo .save[aria-pressed=true] svg{fill:currentColor}
.ec-property .copy,.ec-home-copy{padding:20px;display:flex;flex-direction:column;flex:1;min-width:0}
.ec-property .place,.ec-home-location{overflow-wrap:anywhere;font-size:13px;line-height:1.6;color:var(--ec-muted);margin:0 0 6px}
.ec-property h3,.ec-home-copy h3{font:700 18px/1.45 var(--ec-font-heading);letter-spacing:-.025em;margin:0;color:var(--ec-plum);overflow-wrap:anywhere}
.ec-property h3 a{text-decoration:none;border-radius:4px}
.ec-property h3 a:hover{text-decoration:underline;text-underline-offset:4px}
.ec-property-distance{display:flex;align-items:flex-start;gap:6px;margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--ec-muted)}
.ec-property-distance>svg{width:14px;height:14px;flex:none;margin-top:2px;color:var(--ec-plum)}
.ec-property-distance>span{min-width:0;overflow-wrap:anywhere}
.ec-property-meta{margin:7px 0 0;font-size:12px;line-height:1.6;color:var(--ec-muted)}
.ec-property .ec-property-amenities,.ec-home-amenities{list-style:none;padding:0;display:flex;align-content:flex-start;align-items:flex-start;flex-wrap:wrap;gap:7px;margin:16px 0 20px}
.ec-property .ec-amenity-tag,.ec-home-card .ec-amenity-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;min-height:30px;border:1px solid var(--ec-line);border-radius:8px;font-size:12px;line-height:1.5;color:var(--ec-muted);background:var(--ec-white);max-width:100%;white-space:normal;overflow-wrap:anywhere}
.ec-property .ec-amenity-tag svg,.ec-home-card .ec-amenity-tag svg{width:16px;height:16px;flex:none;color:var(--ec-plum)}
.ec-property .ec-price,.ec-home-price{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--ec-line);padding-top:16px}
.ec-property .ec-price>div,.ec-home-price>div{min-width:0;overflow-wrap:anywhere}
.ec-property .ec-price strong,.ec-home-price strong{font:700 22px/1.35 var(--ec-font-heading);letter-spacing:-.025em;color:var(--ec-ink)}
.ec-property .ec-price small,.ec-home-price small{font-size:12px;line-height:1.6;color:var(--ec-muted)}
.ec-property-stay,.ec-home-price p{margin:5px 0 0;font-size:12px;line-height:1.6;color:var(--ec-muted)}
.ec-property .ec-card-arrow,.ec-home-card .ec-card-arrow.ec-btn{width:44px;height:44px;min-height:44px;flex:none;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--ec-plum);border:1px solid var(--ec-plum);border-radius:50%;color:var(--ec-white);text-decoration:none}
.ec-property .ec-card-arrow:hover,.ec-home-card:hover .ec-card-arrow,.ec-home-card:focus-within .ec-card-arrow{background:var(--ec-plum-hover);border-color:var(--ec-plum-hover);color:var(--ec-white)}
.ec-property .ec-card-arrow .ec-icon,.ec-home-card .ec-card-arrow .ec-icon{width:20px;height:20px;transition:transform var(--ec-duration)}
.ec-property .ec-card-arrow:hover svg,.ec-home-card:hover .ec-card-arrow svg{transform:translateX(3px)}
.ec-property :is(a,button):focus-visible{outline:2px solid var(--ec-plum);outline-offset:3px;box-shadow:0 0 0 3px var(--ec-white)}
.ec-property:has(:focus-visible),.ec-home-card:has(>a:focus-visible){outline:2px solid var(--ec-plum);outline-offset:4px}
.ec-home-card>a{display:flex;flex:1;min-width:0;flex-direction:column;text-decoration:none;color:inherit}
#cards>.ec-grid.three{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));align-items:stretch}
.ec-support-card{display:flex;flex-direction:column;gap:14px;min-height:240px;padding:24px;border-radius:var(--ec-radius-card)}
.ec-support-card>.ec-row{flex-wrap:nowrap}
.ec-support-card>.ec-link{align-self:flex-start;margin-top:auto;min-height:44px}
.ec-support-card.ec-collection-card{background:var(--ec-cream)}
.ec-support-card.ec-collection-card>h3{max-width:320px}
.ec-card-detail-preview{display:grid;gap:12px}
.ec-card-detail-preview img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ec-radius-card)}
.ec-card-detail-preview strong{font:700 24px var(--ec-font-heading);color:var(--ec-plum)}
@media(prefers-reduced-motion:reduce){.ec-property,.ec-home-card,.ec-property .ec-card-arrow svg,.ec-home-card .ec-card-arrow svg{transition:none;transform:none!important}}
@media print{.ec-property,.ec-home-card{break-inside:avoid}.ec-property .photo,.ec-home-card .ec-home-photo{aspect-ratio:4/3}}

/* marketplace/live-components.css */
/* Live React adapters for the approved marketplace compositions.
   Inventory, price, filter and enquiry states use existing application APIs. */
.marketplace-page svg{width:20px;height:20px;flex-shrink:0}
.marketplace-page [hidden]{display:none!important}
.marketplace-page button:disabled,.marketplace-page input:disabled{opacity:.55;cursor:not-allowed}
.marketplace-page .nav-wrap{position:relative}
.live-mobile-nav{position:absolute;top:100%;left:0;right:0;background:var(--ec-white);z-index:80;padding:16px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel)}
.live-chevron{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);flex:none;margin:0 4px 4px 10px}
.quick-search a{padding:8px;color:var(--ec-plum);font-size:13px}
.quick-search a:last-child{border-left:1px solid var(--ec-line);padding-left:16px}
.live-field{display:flex;flex-direction:column;gap:8px;font-size:calc(13px * var(--ec-label-scale));font-weight:600;min-width:0;color:var(--ec-label-color)}
.live-field .ec-input{width:100%;min-width:0;min-height:48px;padding:12px 14px;border:1px solid var(--ec-field-border);border-radius:var(--ec-radius-control);background:var(--ec-white);color:var(--ec-ink);font:400 16px var(--ec-font-body);box-sizing:border-box}
.live-field textarea.ec-input{resize:vertical;min-height:88px}
.live-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.live-enquiry .live-contact-fields{grid-template-columns:1fr;gap:16px}
.live-error{font-size:13px;color:var(--ec-danger)}
.live-destination-option{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-radius:12px;background:transparent;padding:12px;min-height:62px;color:var(--ec-plum)}
.live-destination-option>svg{padding:10px;box-sizing:content-box;background:var(--ec-subtle);border-radius:12px}
.live-destination-option[aria-selected=true],.live-destination-option:hover{background:var(--ec-subtle)}
.live-destination-option span{display:flex;flex-direction:column;gap:2px}.live-destination-option strong{font-size:14px}.live-destination-option small{font-size:12px;color:var(--ec-muted)}
.destination-popover [role=listbox]{max-height:340px;overflow:auto}
.live-keyword-search{padding:12px!important;display:flex;align-items:center;gap:8px}
.marketplace-page .search-popover{z-index:100;text-align:left}.marketplace-page .search-field{position:relative}
.marketplace-page .stay-option{display:flex;align-items:center;gap:8px;min-height:56px}.marketplace-page .stay-option input{position:absolute;opacity:0;width:1px;height:1px}.marketplace-page .stay-option:has(input:checked){border-color:var(--ec-plum);background:var(--ec-subtle)}
.marketplace-page .stay-option:focus-within{outline:2px solid var(--ec-plum);outline-offset:2px}
.marketplace-page .stay-option .choice-check{position:static}
.marketplace-page .budget-presets{margin-top:16px}
.marketplace-page .live-field+.budget-presets{grid-template-columns:repeat(2,1fr)}
.property-image-placeholder{display:flex;min-height:160px;align-items:center;justify-content:center;flex-direction:column;gap:12px;width:100%;height:100%;background:var(--ec-subtle);color:var(--ec-plum)}
.ec-destination-card .property-image-placeholder{min-height:100%}.ec-home-photo .property-image-placeholder,.listing-card-photo .property-image-placeholder{position:absolute;inset:0}
.ec-home-card .ec-home-copy h3,.listing-card h3{overflow-wrap:anywhere}
.ec-home-amenities svg,.home-amenities svg{width:16px;height:16px}
.live-collection-action{text-align:center;margin-top:24px}.live-inventory-count{font-size:13px;color:var(--ec-muted)}
.live-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:32px;font-size:13px;color:var(--ec-muted)}
.live-pagination .button{min-height:44px;padding:10px 18px}
.active-filters>a{display:inline-flex;align-items:center;gap:12px;padding:8px 12px;min-height:36px;border:1px solid var(--ec-line);border-radius:999px;color:var(--ec-plum);background:var(--ec-subtle);font-size:13px}
.active-filters>a.ds-clear-filters{background:none;border:0;text-decoration:underline}
.amenity-choice span{display:flex;align-items:center;gap:10px}
.listing-filter-dialog form{display:flex;flex-direction:column;max-height:88dvh}.listing-filter-dialog .filter-dialog-content{overflow:auto}.listing-filter-dialog .filter-dialog-footer{flex-shrink:0}
.live-loading{min-height:60vh;padding-block:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--ec-muted);font:500 16px/1.5 var(--ec-font-body);text-align:center}
/* The page loader (apps/web/src/components/page-loading.tsx): a plum ring on the light surface, still when motion is reduced. */
.live-loading .ec-spinner{width:32px;height:32px;border-width:3px;border-color:var(--ec-line);border-top-color:var(--ec-plum)}
.live-loading p{margin:0}
@media (prefers-reduced-motion:reduce){.live-loading .ec-spinner{animation:none}}
/* Keep the crawlable footer below the first viewport while search results stream in. */
.live-search-loading{min-height:100vh;min-height:100svh}
.live-dialog{max-width:760px;width:calc(100% - 40px);max-height:88dvh;overflow:auto}.live-dialog .amenity-grid{margin-top:24px}
.live-description{white-space:pre-line}.live-description:empty{display:none}
.detail-page .property-heading{align-items:flex-start}
.property-heading-copy{min-width:0;max-width:78ch}
.property-heading-copy h1{overflow-wrap:anywhere;text-wrap:balance}
.property-heading-description{max-width:68ch;margin-top:12px;color:var(--ec-muted);font-size:14px;line-height:1.7}
.detail-page .property-about .live-description{max-width:75ch;font-size:16px;line-height:1.75;overflow-wrap:anywhere}
.property-about .about-more .live-description{margin-top:16px}
@media(max-width:590px){.detail-page .property-heading{flex-direction:column;align-items:stretch;gap:12px}.property-heading .property-actions{align-self:flex-start}}
.live-room-list{display:grid;gap:24px}.live-room-option .room-offer{margin-bottom:0}.live-room-details{margin-top:12px;font-size:14px}.live-room-details summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;font-weight:600;color:var(--ec-plum)}
.live-room-details dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;background:var(--ec-subtle);border-radius:16px;margin:12px 0}.live-room-details dt{color:var(--ec-muted);font-size:12px}.live-room-details dd{margin:4px 0 0}.live-room-details ul{padding-left:20px;columns:2}.live-room-details p{margin-top:12px}
.live-enquiry{display:flex;flex-direction:column;gap:16px;margin-top:24px;padding-top:24px;border-top:1px solid var(--ec-line)}.live-enquiry h3{font-size:18px;margin:0}.live-enquiry .planner-inclusions{margin:-8px 0 0}.live-enquiry .button{width:100%;justify-content:center}.live-enquiry .planner-note{margin:0}
.live-operator{margin-top:24px;padding-top:20px;border-top:1px solid var(--ec-line);font-size:13px;color:var(--ec-muted)}.live-operator p{margin:0 0 8px}.live-operator .text-link{display:inline-flex;gap:8px;align-items:center;font-size:12px}
.live-enquiry-success{padding:24px 0}.live-enquiry-success a{text-decoration:underline}
.live-action-status{position:fixed;right:20px;bottom:100px;top:auto;min-width:200px;background:var(--ec-white);padding:10px 14px;border:1px solid var(--ec-line);border-radius:12px;font-size:12px;z-index:5}
.live-gallery-few{grid-template-columns:repeat(auto-fit,minmax(0,1fr))}.live-gallery-few .gallery-large{grid-row:auto}.live-photo-caption{text-align:center;margin:16px}.gallery-thumbs button[aria-pressed=true]{outline:2px solid var(--ec-plum);outline-offset:2px}
/* One photo needs the entire gallery; preserve its full frame at every viewport width. */
.detail-page .property-gallery.live-gallery-single{grid-template-columns:minmax(0,1fr);grid-template-rows:clamp(260px,42vw,520px);gap:0}
.detail-page .property-gallery.live-gallery-single .gallery-large{grid-column:1;grid-row:1;min-width:0;min-height:0}
.detail-page .property-gallery.live-gallery-single img{object-fit:contain}
.detail-page .property-gallery.live-gallery-single button:hover img{transform:none}
.gallery-dialog .gallery-stage .property-image{width:100%;height:100%;object-fit:contain}
.live-location-panel{display:flex;gap:20px;padding:36px;background:var(--ec-subtle);border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);margin-top:24px}.live-location-panel>svg{width:32px;height:32px}.live-location-panel p{margin:12px 0 20px;max-width:650px}.live-nearby{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 24px;margin-top:20px;font-size:14px}.live-nearby p{display:flex;justify-content:space-between;gap:12px}.live-nearby span{color:var(--ec-muted)}
.live-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.live-reviews{display:grid;gap:20px}.live-reviews article{padding-bottom:16px;border-bottom:1px solid var(--ec-line)}
@media(max-width:760px){.live-related-grid{grid-template-columns:1fr}.live-field-grid{grid-template-columns:1fr 1fr}.live-nearby{grid-template-columns:1fr}.live-location-panel{padding:24px}.live-pagination{flex-wrap:wrap}.live-inventory-count{display:none}.live-enquiry .live-field-grid:first-of-type{grid-template-columns:1fr}.live-dialog{width:calc(100% - 24px)}.live-room-details dl{grid-template-columns:1fr}.live-room-details ul{columns:1}.marketplace-page .search-popover{position:absolute;max-width:calc(100vw - 48px)}.marketplace-page .search-field:first-child .search-popover{left:0;right:auto}}
.listing-filter-dialog .dialog-filter-section>div,.listing-filter-dialog .dialog-filter-section>p{clear:both}
.listing-filter-dialog .dialog-filter-section>legend{float:left;padding-top:0;margin-bottom:16px}
.listing-filter-dialog .amenity-choices{width:100%}
/* Amenities by group in the filter dialog (85 amenities in 9 groups since migration 0068). */
.listing-filter-dialog .amenity-group{clear:both;min-width:0;margin:16px 0 0;padding:0;border:0}
.listing-filter-dialog .amenity-group legend{float:none;width:auto;margin:0 0 8px;font:600 13px/1.4 var(--ec-font-heading);color:var(--ec-muted)}
.listing-filter-dialog .filter-dialog-footer .button{border-radius:var(--ec-radius-action)}
.listing-card-link{height:100%;display:flex;flex-direction:column}.listing-card-copy{flex:1;display:flex;flex-direction:column}.listing-card-copy .listing-card-bottom{margin-top:auto}.listing-card-copy .home-amenities{margin-bottom:18px}
.ec-home-card>a{flex:1;min-width:0;display:flex;flex-direction:column}.ec-home-copy{flex:1;display:flex;flex-direction:column}.ec-home-copy .ec-home-price{margin-top:auto}.ec-home-copy .ec-home-amenities{margin-bottom:20px}
.listing-page .search-trigger>.live-chevron{display:none}
/* Shared public/signed-in account navigation across every marketplace page. */
.live-account{position:relative;flex:none}
.live-account-trigger{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 14px;border:1px solid var(--ec-control-border);border-radius:var(--ec-radius-pill);background:var(--ec-white);color:var(--ec-plum);font:700 13px var(--ec-font-heading)}
.live-account-trigger.compact{width:44px;padding:0}.live-account-trigger:hover,.live-account-trigger[aria-expanded=true]{background:var(--ec-selected);border-color:var(--ec-plum)}
.live-account-trigger svg{width:18px;height:18px}.live-account-popover{position:absolute;right:0;top:calc(100% + 12px);width:248px;background:var(--ec-white);padding:8px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);box-shadow:var(--ec-shadow-overlay);z-index:var(--ec-z-popover)}
.live-account-popover a,.live-account-popover button,.live-mobile-account a,.live-mobile-account button{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:12px;border:0;border-radius:var(--ec-radius-control);background:transparent;color:var(--ec-plum);font:600 14px var(--ec-font-heading);text-align:left}
.live-account-popover a:hover,.live-account-popover button:hover,.live-mobile-account a:hover,.live-mobile-account button:hover{background:var(--ec-hover)}
.live-account-popover svg,.live-mobile-account svg{width:18px;height:18px;flex:none}.live-account-name{padding:12px;margin:0 0 4px;font:700 13px var(--ec-font-heading);color:var(--ec-muted);border-bottom:1px solid var(--ec-line);overflow-wrap:anywhere}
.live-account-popover .live-error,.live-mobile-account .live-error{padding:12px;line-height:1.6}.live-mobile-account{border-top:1px solid var(--ec-line);padding-top:8px;margin-top:8px}
.live-footer-account a,.live-footer-account button{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-align:left}.live-footer-account button{border:0;background:transparent;padding:0;color:var(--ec-plum);font:inherit;cursor:pointer}.live-footer-account svg{width:16px;height:16px}.live-footer-account button:hover{text-decoration:underline}
@media(max-width:740px){.detail-page .header-actions{display:none}.detail-page .menu-toggle{display:block}.detail-page .nav-wrap>.menu-toggle{grid-column:2;grid-row:1}}
@media(max-width:760px){
 .listing-page .destination-input-wrap,.listing-page .search-trigger{padding-inline:10px}
 .listing-page .clear-destination{display:none}
 .listing-page .destination-field:focus-within .clear-destination{display:flex;position:absolute;right:6px}
 .live-field .ec-input{font-size:16px}
}

/* A listing card opens the home; the property chat is on the home's page only (CL-784). */
.listing-card { display: flex; flex-direction: column; }
.listing-card > .listing-card-link { height: auto; flex: 1; }
.property-detail-chat { margin-top: -4px; }
.property-detail-chat > .ec-btn { width: 100%; }
.property-detail-chat p { margin: 8px 0 0; font-size: 12px; line-height: 1.5; color: var(--ec-muted); }
/* Resident reviews (CL-664): scored categories, report form, show more. */
.live-review-categories{font-size:13px;color:var(--ec-muted)}
.live-review-report{margin-top:8px}
.live-review-report-form{display:grid;gap:14px;margin-top:12px;padding:16px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);background:var(--ec-white)}
.live-review-report-form fieldset{display:grid;gap:8px;margin:0;padding:0;border:0}
.live-review-reason{display:flex;align-items:flex-start;gap:10px;min-height:32px;font-size:14px;line-height:1.5;color:var(--ec-ink)}
.live-review-reason input{margin-top:3px;flex:none;accent-color:var(--ec-plum)}
.live-review-report-actions{display:flex;flex-wrap:wrap;gap:8px}
.live-reviews-more{margin-top:20px}

/* Saved homes (CL-663): the heart over a card's photo, outside the card's link so it is its own control. */
.listing-card, .ec-home-card { position: relative; }
.ec-save-home { position: absolute; top: 12px; right: 12px; z-index: 2; }
.ec-save-home button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-pill); background: rgb(255 255 255 / .94); color: var(--ec-plum); box-shadow: var(--ec-shadow-card); cursor: pointer; transition: background var(--ec-duration), transform var(--ec-duration); }
.ec-save-home button:hover { background: var(--ec-white); transform: scale(1.06); }
.ec-save-home button:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-save-home button[aria-pressed='true'] { border-color: var(--ec-plum); }
.ec-save-home svg { width: 20px; height: 20px; }
.live-action-status a { color: var(--ec-plum); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Homes near me (CL-666): the first choice in the destination list, set apart from the suggestions. */
.live-near-me { border-bottom: 1px solid var(--ec-line); border-radius: 0; margin-bottom: 6px; padding-bottom: 12px; }
.live-near-me:disabled { opacity: .6; cursor: progress; }

/* Maps (CL-666 search map, CL-667 listing area map; MapLibre with MapTiler tiles). */
.ec-map-frame { position: relative; margin: 0 0 24px; }
.ec-map { width: 100%; height: 460px; overflow: hidden; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-subtle); }
.ec-area-map .ec-map { height: 280px; }
.ec-map-note { margin-top: 8px; color: var(--ec-muted); font-size: 13px; }
.ec-map-toggle { gap: 8px; }
.ec-map-toggle svg { width: 16px; height: 16px; }
.ec-map-search-area { position: absolute; top: 16px; left: 50%; z-index: 2; transform: translateX(-50%); gap: 8px; box-shadow: var(--ec-shadow-overlay); }
.ec-map-search-area svg { width: 16px; height: 16px; }
.ec-map-price { min-height: 32px; padding: 4px 12px; border: 1px solid var(--ec-plum); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-plum); font: 700 13px/1.2 var(--ec-font-heading); box-shadow: var(--ec-shadow-card); cursor: pointer; white-space: nowrap; }
.ec-map-price:hover, .ec-map-price[aria-expanded='true'] { background: var(--ec-plum); color: var(--ec-white); }
.ec-map-price:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-map-card { display: grid; gap: 4px; font: 400 14px/1.4 var(--ec-font-body); color: var(--ec-ink); }
.ec-map-card a { color: var(--ec-plum); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) {
  .ec-map { height: 360px; }
  .ec-area-map .ec-map { height: 220px; }
}

/* Campaign banners (CL-624): staff messages on the home, search, city and listing pages (admin, Marketing, Campaigns). */
@keyframes ec-campaign-in { from { opacity: 0; } to { opacity: 1; } }
.ec-campaign { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin-block: 32px; padding: 24px 72px 24px 28px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-cream); color: var(--ec-ink); animation: ec-campaign-in var(--ec-duration) var(--ec-ease); }
.ec-campaign-copy { flex: 1 1 320px; min-width: 0; }
.ec-campaign-eyebrow { margin: 0 0 6px; color: var(--ec-mauve); font: 700 12px/1.4 var(--ec-font-heading); letter-spacing: .08em; text-transform: uppercase; }
.ec-campaign-title { margin: 0; color: var(--ec-plum); font: 800 20px/1.3 var(--ec-font-heading); overflow-wrap: anywhere; }
.ec-campaign-body { margin: 6px 0 0; color: var(--ec-ink); font: 400 15px/1.55 var(--ec-font-body); overflow-wrap: anywhere; }
.ec-campaign-action { flex: none; }
.ec-campaign-hide { position: absolute; top: 10px; right: 10px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--ec-radius-pill); background: transparent; color: var(--ec-muted); cursor: pointer; transition: background var(--ec-duration), color var(--ec-duration); }
.ec-campaign-hide:hover { background: var(--ec-hover); color: var(--ec-plum); }
.ec-campaign-hide:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-campaign-hide svg { width: 18px; height: 18px; }
.listing-grid > .ec-campaign { grid-column: 1 / -1; margin-block: 0; }
/* The home page is cream: the banner is set apart in white there. */
.ec-campaign[data-placement='home'] { background: var(--ec-white); }
@media (max-width: 700px) {
  .ec-campaign { padding: 20px; }
  .ec-campaign-copy { padding-right: 40px; }
  .ec-campaign-action { width: 100%; justify-content: center; }
}
/* Report this listing (CL-103), under the stay planner. */
.live-listing-report{margin-top:16px}

/* Saved searches (CL-75): the "Save search" button in the results toolbar, its dialog, and the email choice it shares
   with the /me/saved-searches/ page. */
.ec-save-search { gap: 8px; white-space: nowrap; }
.ec-save-search svg { width: 16px; height: 16px; }
.ec-save-search-dialog { width: min(440px, calc(100vw - 32px)); padding: 24px; border: 0; border-radius: var(--ec-radius-panel); background: var(--ec-white); color: var(--ec-ink); box-shadow: var(--ec-shadow-overlay); }
.ec-save-search-dialog::backdrop { background: color-mix(in srgb, var(--ec-ink) 45%, transparent); }
.ec-save-search-dialog form { display: grid; gap: 18px; margin: 0; }
.ec-save-search-dialog h2 { margin: 0 0 4px; color: var(--ec-plum); font: 700 20px/1.3 var(--ec-font-heading); }
.ec-alert-choices { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.ec-alert-choices legend { float: left; width: 100%; margin: 0 0 4px; padding: 0; color: var(--ec-ink); font: 700 14px/1.5 var(--ec-font-heading); }
.ec-alert-choices label { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--ec-field-border); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-ink); font-size: 14px; cursor: pointer; }
.ec-alert-choices input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.ec-alert-choices label:has(input:checked) { border-color: var(--ec-plum); background: var(--ec-selected); color: var(--ec-plum); font-weight: 600; }
.ec-alert-choices label:has(input:focus-visible) { box-shadow: var(--ec-focus); }
.ec-alert-choices:disabled label { opacity: .6; cursor: progress; }
@media (max-width: 700px) {
  .ec-save-search-dialog { padding: 20px; }
}

/* Approved review photos (CL-102): small thumbnails under a review, each opening the full photo. */
.live-review-photos { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.live-review-photos a { display: block; overflow: hidden; width: 88px; height: 88px; border-radius: 10px; background: var(--ec-subtle); }
.live-review-photos img { display: block; width: 100%; height: 100%; object-fit: cover; }
.live-review-photos a:focus-visible { outline: none; box-shadow: var(--ec-focus); }

/* Search by move-in date (CL-785): the filter's date field, the result card line and the listing page's "Your dates". */
.move-in-filters .move-in-field { display: grid; clear: both; gap: 8px; max-width: 320px; color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.move-in-filters .move-in-field input { min-height: 48px; padding: 10px 12px; border: 1px solid var(--ec-field-border); border-radius: var(--ec-radius-control); background: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.4 var(--ec-font-body); }
.move-in-filters .move-in-field input:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
.move-in-filters > p { margin: 8px 0 0; color: var(--ec-muted); font-size: .8125rem; line-height: 1.5; }
.move-in-filters .stay-choices { clear: both; min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.move-in-filters .stay-choices legend { margin-bottom: 12px; color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-browse-card .ec-card-availability { color: var(--ec-ink); }
.ec-your-dates { display: grid; gap: 8px; margin: 0 0 20px; padding: 16px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-subtle); }
.ec-your-dates h3 { margin: 0; font-size: 1rem; }
.ec-your-dates p, .ec-your-dates li { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; }
.ec-your-dates ul { display: grid; gap: 4px; margin: 0; padding-left: 18px; }
.ec-your-dates li.is-free strong { color: var(--ec-plum); }
.ec-your-dates .ec-your-dates-note { color: var(--ec-muted); font-size: .8125rem; }

/* Room costs (CL-786): the monthly total and move-in amount under a room's price, and the breakdown in its details. */
.room-costs-summary { display: grid; gap: 4px; margin: 12px 0 0; padding: 12px 0 0; border-top: 1px solid var(--ec-line); }
.room-costs-summary > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 12px; }
.room-costs-summary dt { color: var(--ec-muted); font-size: .8125rem; line-height: 1.5; }
.room-costs-summary dd { margin: 0; color: var(--ec-ink); font-size: .8125rem; font-weight: 600; line-height: 1.5; text-align: right; }
.room-costs { display: grid; gap: 14px; margin: 0 0 18px; }
.room-costs-table { width: 100%; border-collapse: collapse; font-size: .875rem; }
.room-costs-table caption { padding-bottom: 6px; color: var(--ec-ink); font-weight: 600; text-align: left; }
.room-costs-table :is(th, td) { padding: 7px 0; border-top: 1px solid var(--ec-line); font-weight: 400; text-align: left; vertical-align: top; }
.room-costs-table td { padding-left: 12px; color: var(--ec-ink); text-align: right; }
.room-costs-table tfoot :is(th, td) { font-weight: 700; }
.room-costs p { margin: 0; color: var(--ec-ink); font-size: .8125rem; line-height: 1.6; }
.room-costs .room-costs-note { color: var(--ec-muted); }

/* Display currency (CL-789): an estimate beside a price in the visitor's chosen currency, and the picker. */
.ec-approx-price { color: var(--ec-muted); font-size: .8125rem; font-weight: 400; white-space: nowrap; }
.ec-display-currency { display: grid; gap: 4px; min-width: 0; }
.ec-display-currency-note { max-width: 320px; margin: 0; color: var(--ec-muted); font-size: .75rem; line-height: 1.5; }
.ec-display-currency-room { margin: 0 0 16px; }
.listing-toolbar > .ec-display-currency { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.ec-display-currency-field { display: grid; gap: 4px; color: var(--ec-muted); font-size: .8125rem; }
.ec-display-currency-field select { min-height: 44px; max-width: 100%; padding: 8px 12px; border: 1px solid var(--ec-field-border); border-radius: var(--ec-radius-control); background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.3 var(--ec-font-body); }
.ec-display-currency-field select:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
@media (max-width: 590px) {
  .listing-toolbar > .ec-display-currency { flex: 1 0 100%; }
  .listing-toolbar > .ec-display-currency .ec-display-currency-note { max-width: none; }
}
.room-offer-bottom .room-offer-price { display: grid; gap: 2px; }

/* Travel times (CL-788): "Your commute" on a home's page and the travel-time bar above results. */
.ec-commute { display: grid; gap: 12px; margin-top: 24px; padding: 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-subtle); }
.ec-commute h3 { margin: 0; font-size: 18px; line-height: 1.4; }
.ec-commute-intro { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; }
.ec-commute-field { display: grid; gap: 4px; min-width: 0; color: var(--ec-muted); font-size: .8125rem; }
.ec-commute-field select { min-height: 44px; max-width: 100%; padding: 8px 12px; border: 1px solid var(--ec-field-border); border-radius: var(--ec-radius-control); background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.3 var(--ec-font-body); }
.ec-commute-field select:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
.ec-commute-times { display: grid; margin: 0; }
.ec-commute-times > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; padding: 8px 0; border-top: 1px solid var(--ec-line); }
.ec-commute-times dt { color: var(--ec-ink); font-size: .875rem; }
.ec-commute-times dd { margin: 0; color: var(--ec-muted); font-size: .8125rem; text-align: right; font-variant-numeric: tabular-nums; }
.ec-commute-times dd strong { color: var(--ec-ink); font-size: .9375rem; }
.ec-commute-note { margin: 0; color: var(--ec-muted); font-size: .75rem; line-height: 1.6; }
.ec-commute-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 20px; margin: 0 0 20px; padding: 12px 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-subtle); }
.ec-commute-bar .ec-commute-note { flex: 1 1 280px; max-width: 520px; }
.ec-commute-bar .text-link { min-height: 44px; font-size: .8125rem; }
/* A card's distance or travel-time line, laid out like the place line above it. */
.ec-browse-card p.ec-property-distance { display: flex; align-items: flex-start; gap: 5px; white-space: normal; }
.ec-browse-card p.ec-property-distance svg { width: 15px; height: 15px; flex: none; margin-top: 1px; }

/* Account saved lists (CL-787): the lists down the side, the chosen list, the slip under each home (likes and notes),
   sharing, the people on a list, and the join page for a share link. */
.ec-lists { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; align-items: start; }
.ec-list-rail { position: sticky; top: calc(var(--ec-header) + 16px); display: grid; gap: 12px; padding: 12px; border-radius: var(--ec-radius-panel); background: var(--ec-subtle); }
.ec-list-rail ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.ec-list-pick { position: relative; display: grid; gap: 2px; width: 100%; min-height: 56px; padding: 10px 12px 10px 16px; border: 0; border-radius: 12px; background: transparent; color: var(--ec-ink); text-align: left; cursor: pointer; }
.ec-list-pick:hover { background: var(--ec-hover); }
.ec-list-pick[aria-current='true'] { background: var(--ec-white); box-shadow: var(--ec-shadow-card); }
.ec-list-pick[aria-current='true']::before { content: ''; position: absolute; top: 12px; bottom: 12px; left: 0; width: 3px; border-radius: 3px; background: var(--ec-plum); }
.ec-list-pick:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-list-pick-name { color: var(--ec-plum); font: 700 .9375rem/1.4 var(--ec-font-heading); overflow-wrap: anywhere; }
.ec-list-pick-meta { color: var(--ec-muted); font-size: .8125rem; line-height: 1.4; }
.ec-list-new, .ec-list-rename { display: grid; gap: 8px; }
.ec-list-new label, .ec-list-rename label { color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-list-new input, .ec-list-rename input, .ec-slip-form textarea, .ec-share-made input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--ec-field-border); border-radius: 12px; background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.4 var(--ec-font-body); }
.ec-list-new input:focus-visible, .ec-list-rename input:focus-visible, .ec-slip-form textarea:focus-visible, .ec-share-made input:focus-visible, .ec-slip-move select:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
.ec-list-new-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-list-new-open { justify-self: start; }
.ec-lists-main { display: grid; gap: 16px; min-width: 0; }
.ec-list { display: grid; gap: 24px; min-width: 0; }
.ec-list-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; padding-bottom: 16px; border-bottom: 1px solid var(--ec-line); }
.ec-list-title { min-width: 0; }
.ec-list-title h2 { margin: 0; color: var(--ec-plum); font: 800 clamp(1.5rem, 1.2rem + 1vw, 2rem)/1.2 var(--ec-font-heading); letter-spacing: -.02em; overflow-wrap: anywhere; }
.ec-list-title p { max-width: 62ch; margin: 6px 0 0; color: var(--ec-muted); font-size: .9375rem; line-height: 1.6; }
.ec-list-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-list-panel { display: grid; gap: 12px; padding: 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-list-confirm p { margin: 0; color: var(--ec-ink); line-height: 1.6; }
.ec-list-empty h3 { color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }
.ec-list-homes { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.ec-list-home { display: flex; flex-direction: column; min-width: 0; }
.ec-list-home .ec-discovery-card { flex: none; }
/* The slip: cream paper tucked under the card, for what the people on the list think of the home. */
.ec-slip { display: grid; gap: 12px; margin: 0 8px; padding: 16px; border-radius: 0 0 var(--ec-radius-card) var(--ec-radius-card); background: var(--ec-cream); }
.ec-slip-votes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ec-slip-vote-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-vote { min-height: 44px; padding: 8px 16px; border: 1px solid var(--ec-control-border); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-plum); font: 600 .875rem/1.2 var(--ec-font-body); cursor: pointer; }
.ec-vote:hover { border-color: var(--ec-plum); }
.ec-vote[aria-pressed='true'] { border-color: var(--ec-plum); background: var(--ec-plum); color: var(--ec-white); }
.ec-vote:focus-visible, .ec-slip-add-note:focus-visible, .ec-slip-remove:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-slip-tally { margin: 0; color: var(--ec-muted); font-size: .8125rem; }
.ec-slip-notes { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ec-slip-notes li { display: grid; gap: 2px; padding: 2px 0 2px 12px; border-left: 3px solid var(--ec-lilac); }
.ec-slip-notes p, .ec-slip-mine p { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; white-space: pre-line; }
.ec-slip-notes span { color: var(--ec-muted); font-size: .75rem; }
.ec-slip-mine { display: grid; gap: 4px; padding: 10px 12px; border-radius: 12px; background: var(--ec-white); }
.ec-slip-mine .ec-slip-mine-meta { color: var(--ec-muted); font-size: .75rem; }
.ec-slip-mine .text-link { font-size: .75rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ec-slip-add-note { justify-self: start; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 4px; border: 0; border-radius: 8px; background: none; color: var(--ec-plum); font: 600 .875rem/1.2 var(--ec-font-body); cursor: pointer; }
.ec-slip-add-note svg { width: 16px; height: 16px; }
.ec-slip-form { display: grid; gap: 8px; }
.ec-slip-form > label:first-child { color: var(--ec-ink); font-size: .8125rem; font-weight: 600; }
.ec-slip-form textarea { min-height: 88px; resize: vertical; }
.ec-slip-share { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--ec-ink); font-size: .875rem; }
.ec-slip-share input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-plum); }
.ec-slip-form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-slip-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding-top: 12px; border-top: 1px solid var(--ec-line); }
.ec-slip-foot .ec-saved-compare { background: var(--ec-white); }
.ec-slip-move select { max-width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--ec-control-border); border-radius: var(--ec-radius-pill); background-color: var(--ec-white); color: var(--ec-plum); font: 600 .875rem/1.2 var(--ec-font-body); }
.ec-slip-remove { margin-left: auto; min-height: 44px; padding: 0 4px; border: 0; border-radius: 8px; background: none; color: var(--ec-muted); font: 600 .8125rem/1.2 var(--ec-font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.ec-slip-remove:hover { color: var(--ec-danger); }
.ec-slip-added { margin: 0; color: var(--ec-muted); font-size: .75rem; }
.ec-list .ec-saved-gone { margin-top: 0; }
.ec-people { display: grid; gap: 8px; padding-top: 24px; border-top: 1px solid var(--ec-line); }
.ec-people h3, .ec-share h3, .ec-list .ec-saved-gone h3 { margin: 0; color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }
.ec-people ul { margin: 0; padding: 0; list-style: none; }
.ec-people li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; min-height: 52px; padding: 8px 0; border-bottom: 1px solid var(--ec-line); }
.ec-people-name { flex: 1 1 160px; color: var(--ec-ink); font-weight: 600; overflow-wrap: anywhere; }
.ec-people-role { color: var(--ec-muted); font-size: .875rem; }
.ec-people-confirm { flex-basis: 100%; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; }
.ec-people .text-link, .ec-share-links .text-link { min-height: 44px; font-size: .875rem; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.ec-share p { max-width: 62ch; margin: 0; color: var(--ec-ink); font-size: .9375rem; line-height: 1.6; }
.ec-share-role { display: grid; gap: 8px; margin: 0; padding: 0; border: 0; }
.ec-share-role legend { margin-bottom: 8px; padding: 0; color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-share-role label { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border: 1px solid var(--ec-line); border-radius: 12px; cursor: pointer; }
.ec-share-role label:has(input:checked) { border-color: var(--ec-plum); background: var(--ec-selected); }
.ec-share-role label:has(input:focus-visible) { box-shadow: var(--ec-focus); }
.ec-share-role input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--ec-plum); }
.ec-share-role span { color: var(--ec-ink); font-size: .875rem; line-height: 1.5; }
.ec-share-role strong { display: block; color: var(--ec-plum); }
.ec-share-made { display: grid; gap: 10px; padding: 16px; border-radius: 12px; background: var(--ec-success-soft); }
.ec-share-made label { display: grid; gap: 6px; color: var(--ec-ink); font-size: .8125rem; font-weight: 600; }
.ec-share-made input { font-size: .875rem; }
.ec-share-made-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; color: var(--ec-success); font-size: .875rem; }
.ec-share-made p { font-size: .8125rem; }
.ec-share-links h4 { margin: 4px 0; color: var(--ec-ink); font-size: .875rem; }
.ec-share-links ul { margin: 0; padding: 0; list-style: none; }
.ec-share-links li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; min-height: 48px; border-bottom: 1px solid var(--ec-line); color: var(--ec-ink); font-size: .875rem; }
.ec-saved-account { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 24px; padding: 16px 20px; border-radius: var(--ec-radius-card); background: var(--ec-cream); }
.ec-saved-account p { max-width: 62ch; margin: 0; color: var(--ec-ink); font-size: .9375rem; line-height: 1.6; }
p.ec-saved-account { display: block; padding: 0; background: none; }
.ec-join { display: grid; gap: 12px; max-width: 560px; padding: 32px; border-radius: var(--ec-radius-panel); background: var(--ec-cream); }
.ec-join-from { margin: 0; color: var(--ec-mauve); font-size: .9375rem; font-weight: 600; }
.ec-join h2 { margin: 0; color: var(--ec-plum); font: 800 clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem)/1.15 var(--ec-font-heading); letter-spacing: -.02em; overflow-wrap: anywhere; }
.ec-join p { margin: 0; color: var(--ec-ink); line-height: 1.6; }
.ec-join-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 8px; }
.ec-join-actions .text-link { min-height: 44px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1000px) {
  .ec-lists { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .ec-list-rail { position: static; padding: 8px; }
  .ec-list-rail ul { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; }
  .ec-list-rail li { flex: 0 0 auto; width: min(240px, 70vw); scroll-snap-align: start; }
}
@media (max-width: 590px) {
  .ec-list-homes { grid-template-columns: minmax(0, 1fr); }
  .ec-join { padding: 24px 20px; }
  .ec-list-actions { width: 100%; }
}

/* Remote-work evidence: operator provenance stays visible beside each room's facts. */
.room-work-evidence{border-top:1px solid var(--ec-line);padding-top:16px;margin-top:16px;display:grid;gap:8px}
.room-work-evidence h4{font-size:15px;color:var(--ec-plum)}
.room-work-evidence p{margin:0;font-size:14px;line-height:1.6}
.room-work-source{color:var(--ec-muted);font-size:12px!important}
.room-work-stale{padding:10px 12px;border-radius:12px;background:var(--ec-subtle);color:var(--ec-plum)}
.room-work-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.room-work-photos a{display:block;border-radius:12px;overflow:hidden}
.room-work-photos img{width:100%;height:140px;object-fit:cover}

/* Viewings (CL-792): "Book a viewing" on a home's page, the time picker, and My viewings. */
.ec-book-viewing { display: grid; gap: 16px; }
.ec-book-viewing h2 { margin: 0; }
.ec-viewing-intro, .ec-viewing-note { margin: 0; color: var(--ec-muted); font-size: .875rem; line-height: 1.6; }
.ec-viewing-picker { display: grid; gap: 14px; }
.ec-viewing-days { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 6px; scroll-snap-type: x proximity; }
.ec-viewing-day { flex: 0 0 auto; display: grid; gap: 2px; min-width: 96px; min-height: 56px; padding: 8px 14px; border: 1px solid var(--ec-control-border); border-radius: 14px; background: var(--ec-white); color: var(--ec-ink); text-align: left; cursor: pointer; scroll-snap-align: start; }
.ec-viewing-day strong { color: var(--ec-plum); font: 700 .9375rem/1.3 var(--ec-font-heading); }
.ec-viewing-day span { color: var(--ec-muted); font-size: .75rem; }
.ec-viewing-day:hover, .ec-viewing-time:hover { border-color: var(--ec-plum); }
.ec-viewing-day[aria-pressed='true'] { border-color: var(--ec-plum); background: var(--ec-plum); }
.ec-viewing-day[aria-pressed='true'] strong, .ec-viewing-day[aria-pressed='true'] span { color: var(--ec-white); }
.ec-viewing-times { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-viewing-time { min-width: 76px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--ec-control-border); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-plum); font: 600 .875rem/1.2 var(--ec-font-body); font-variant-numeric: tabular-nums; cursor: pointer; }
.ec-viewing-time[aria-pressed='true'] { border-color: var(--ec-plum); background: var(--ec-selected); box-shadow: inset 0 0 0 1px var(--ec-plum); }
.ec-viewing-mode { color: var(--ec-muted); font-weight: 400; }
.ec-viewing-day:focus-visible, .ec-viewing-time:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-viewing-chosen { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; padding: 14px 16px; border-radius: var(--ec-radius-card); background: var(--ec-cream); }
.ec-viewing-chosen p { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; }
.ec-viewing-done, .ec-viewing-move { display: grid; gap: 12px; padding: 16px; border-radius: var(--ec-radius-card); background: var(--ec-success-soft); }
.ec-viewing-move { background: var(--ec-cream); }
.ec-viewing-done p, .ec-viewing-move p { margin: 0; color: var(--ec-ink); line-height: 1.6; }
.ec-viewing-done .ec-btn { justify-self: start; }
.ec-viewing-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-viewings-group { display: grid; gap: 12px; margin-top: 24px; }
.ec-viewings-group h2 { margin: 0; color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }
.ec-viewings { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ec-viewing { display: grid; gap: 10px; padding: 18px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-viewing-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; }
.ec-viewing-head h3 { margin: 0; font: 700 1rem/1.4 var(--ec-font-heading); overflow-wrap: anywhere; }
.ec-viewing-head h3 a { color: var(--ec-plum); }
.ec-viewing-when { margin: 4px 0 0; color: var(--ec-ink); font-size: .9375rem; line-height: 1.5; }
.ec-viewing-meta, .ec-viewing-text { margin: 0; color: var(--ec-muted); font-size: .875rem; line-height: 1.6; white-space: pre-line; overflow-wrap: anywhere; }
.ec-viewing-text { color: var(--ec-ink); }
.ec-viewing-meta .text-link { min-height: 44px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.ec-viewing-status { padding: 4px 10px; border-radius: var(--ec-radius-pill); background: var(--ec-subtle); color: var(--ec-ink); font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.ec-viewing-status.is-requested { background: var(--ec-info-soft); color: var(--ec-info); }
.ec-viewing-status.is-tentative { background: var(--ec-warning-soft); color: var(--ec-warning); }
.ec-viewing-status.is-confirmed { background: var(--ec-success-soft); color: var(--ec-success); }
.ec-viewing-private { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; background: var(--ec-cream); }
.ec-viewing-private-title { margin: 0; color: var(--ec-plum); font-size: .8125rem; font-weight: 700; }
.ec-viewing-panel { padding-top: 12px; border-top: 1px solid var(--ec-line); }
.ec-viewing-cancel { display: grid; gap: 8px; }
.ec-viewing-cancel label { color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-viewing-cancel textarea { box-sizing: border-box; width: 100%; min-height: 64px; padding: 10px 12px; border: 1px solid var(--ec-field-border); border-radius: 12px; background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.4 var(--ec-font-body); resize: vertical; }
.ec-viewing-cancel textarea:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
.ec-viewing-cancelled, .ec-viewing-attended, .ec-viewing-no_show { background: var(--ec-subtle); }

/* Shared spaces (CL-795): a resident's bookings and the spaces of their home; the day and time buttons are the viewing
   picker's. */
.ec-facility-group { display: grid; gap: 12px; margin-top: 24px; }
.ec-facility-group h2 { margin: 0; color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }
.ec-facility-list, .ec-facility-bookings { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ec-facility { display: grid; gap: 10px; padding: 18px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-facility-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; }
.ec-facility-head h3 { margin: 0; color: var(--ec-plum); font: 700 1rem/1.4 var(--ec-font-heading); }
.ec-facility-home, .ec-facility-rules, .ec-facility-text { margin: 0; color: var(--ec-muted); font-size: .875rem; line-height: 1.6; }
.ec-facility-text { color: var(--ec-ink); white-space: pre-line; }
.ec-facility-hours { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; color: var(--ec-ink); font-size: .875rem; font-variant-numeric: tabular-nums; }
.ec-facility-paused { padding: 4px 10px; border-radius: var(--ec-radius-pill); background: var(--ec-warning-soft); color: var(--ec-warning); font-size: .8125rem; font-weight: 600; }
.ec-facility-picker { display: grid; gap: 12px; padding-top: 12px; border-top: 1px solid var(--ec-line); }
.ec-facility-picker .ec-viewing-day { min-height: 48px; }
.ec-viewing-time:disabled { opacity: .5; cursor: not-allowed; }
.ec-facility-length { display: grid; gap: 4px; color: var(--ec-muted); font-size: .8125rem; }
.ec-facility-length select { min-height: 44px; padding: 8px 12px; border: 1px solid var(--ec-field-border); border-radius: var(--ec-radius-control); background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.3 var(--ec-font-body); }
.ec-facility-booking { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 14px 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-facility-booking.is-cancelled { background: var(--ec-subtle); }
.ec-facility-booking p { margin: 0; }
.ec-facility-booking-name { color: var(--ec-plum); font-weight: 700; }
.ec-facility-booking-when { color: var(--ec-ink); font-size: .9375rem; line-height: 1.5; }
.ec-facility-booking-meta { color: var(--ec-muted); font-size: .8125rem; line-height: 1.5; }
.ec-facility-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Private feedback (CL-807): one question at a time, a 1 to 5 rating and an optional comment. */
.ec-feedback-list { display: grid; gap: 12px; margin: 24px 0 0; padding: 0; list-style: none; }
.ec-feedback-item { display: grid; gap: 8px; padding: 18px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-feedback-item:not(.is-pending) { background: var(--ec-subtle); }
.ec-feedback-item h2 { margin: 0; color: var(--ec-plum); font: 700 1rem/1.4 var(--ec-font-heading); overflow-wrap: anywhere; }
.ec-feedback-form { display: grid; gap: 10px; }
.ec-feedback-rating { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; }
.ec-feedback-rating legend { margin-bottom: 8px; padding: 0; color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-feedback-score { position: relative; display: inline-flex; }
.ec-feedback-score input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ec-feedback-score span { display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; padding: 10px 14px; border: 1px solid var(--ec-control-border); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-ink); font-size: .875rem; cursor: pointer; }
.ec-feedback-score strong { color: var(--ec-plum); }
.ec-feedback-score input:checked + span { border-color: var(--ec-plum); background: var(--ec-plum); color: var(--ec-white); }
.ec-feedback-score input:checked + span strong { color: var(--ec-white); }
.ec-feedback-score input:focus-visible + span { box-shadow: var(--ec-focus); }
.ec-feedback-form > label { color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-feedback-form textarea { box-sizing: border-box; width: 100%; min-height: 80px; padding: 10px 12px; border: 1px solid var(--ec-field-border); border-radius: 12px; background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.4 var(--ec-font-body); resize: vertical; }
.ec-feedback-form textarea:focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; }
.ec-feedback-answer p { margin: 0; color: var(--ec-ink); line-height: 1.6; white-space: pre-line; }
.ec-feedback-choice { display: grid; gap: 4px; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--ec-line); }
.ec-feedback-choice h2 { margin: 0; color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }

/* The enquiry contract (CL-832, CL-838, CL-840): who receives the enquiry, held or paused businesses, other homes the
   renter can choose, held enquiries on My enquiries and the reply state of an enquiry. */
.ec-enquiry-recipient { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; background: var(--ec-subtle); }
.ec-enquiry-recipient p { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.55; }
.ec-enquiry-recipient .ec-enquiry-response { color: var(--ec-muted); font-size: .8125rem; }
.ec-enquiry-recipient.is-hold, .ec-enquiry-recipient.is-paused { background: var(--ec-warning-soft); }
.ec-enquiry-recipient .ec-enquiry-held-note { color: var(--ec-warning); font-weight: 600; }
.ec-enquiry-held p { margin: 0 0 8px; }
.ec-alternatives { display: grid; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ec-line); }
.ec-alternatives h4 { margin: 0; color: var(--ec-plum); font: 700 .9375rem/1.4 var(--ec-font-heading); }
.ec-alternatives-note { margin: 0; color: var(--ec-muted); font-size: .8125rem; line-height: 1.5; }
.ec-alternatives ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ec-alternatives li { display: grid; gap: 2px; padding: 10px 12px; border: 1px solid var(--ec-line); border-radius: 12px; background: var(--ec-white); }
.ec-alternatives li a { color: var(--ec-plum); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.ec-alternatives li span { color: var(--ec-muted); font-size: .8125rem; line-height: 1.5; }
/* Tick up to 5 homes and send the same enquiry (26 Oct 2026): the box sits left of the home's lines. */
.ec-alternatives ul.is-pickable li { grid-template-columns: 24px minmax(0, 1fr); column-gap: 10px; }
.ec-alternatives ul.is-pickable li > :not(.ec-alternatives-pick) { grid-column: 2; }
.ec-alternatives li .ec-alternatives-pick { grid-row: 1 / span 3; display: grid; place-items: center; width: 24px; height: 24px; }
.ec-alternatives-pick input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-plum); cursor: pointer; }
.ec-alternatives-pick input:disabled { cursor: not-allowed; }
.ec-alternatives li .ec-alternatives-result { color: var(--ec-success, var(--ec-ink)); font-weight: 600; }
.ec-alternatives li .ec-alternatives-result.is-error { color: var(--ec-danger); }
.ec-alternatives-send { display: grid; gap: 8px; justify-items: start; }
.ec-held { display: grid; gap: 10px; margin: 0 0 24px; padding: 18px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-warning-soft); }
.ec-held h2 { margin: 0; color: var(--ec-plum); font: 700 1.125rem/1.4 var(--ec-font-heading); }
.ec-held ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ec-held-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 14px; border-radius: 12px; background: var(--ec-white); }
.ec-held-item.is-focus { box-shadow: 0 0 0 2px var(--ec-plum); }
.ec-held-item p { margin: 0; line-height: 1.5; }
.ec-held-home { color: var(--ec-ink); font-weight: 600; }
.ec-held-home a { color: var(--ec-plum); }
.ec-held-state { color: var(--ec-ink); font-size: .875rem; }
.ec-held-words { color: var(--ec-muted); font-size: .8125rem; }
.ec-held-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.ec-enquiry-reply-note { display: grid; gap: 8px; margin: 12px 0; padding: 12px 14px; border-radius: 12px; background: var(--ec-warning-soft); }
.ec-enquiry-reply-note > p { margin: 0; color: var(--ec-ink); font-size: .875rem; line-height: 1.6; }
.ec-enquiry-reply-note .ec-alternatives { border-top-color: var(--ec-line); }
.live-review-evidence { color: var(--ec-muted); font-size: .8125rem; }
/* Report a conversation (MF-TRU02): a quiet link that opens a short form. */
.ec-report-open { justify-self: start; min-height: 44px; margin-top: 8px; padding: 0; border: 0; background: none; color: var(--ec-muted); font: 600 .8125rem/1.3 var(--ec-font-body); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.ec-report-open:hover { color: var(--ec-danger); }
.ec-report-open:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-report { display: grid; gap: 10px; margin-top: 12px; padding: 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-report fieldset { display: grid; gap: 6px; margin: 0; padding: 0; border: 0; }
.ec-report legend, .ec-report > label { margin-bottom: 4px; padding: 0; color: var(--ec-ink); font-size: .875rem; font-weight: 600; }
.ec-report-reason { display: flex; align-items: center; gap: 10px; min-height: 40px; color: var(--ec-ink); font-size: .875rem; }
.ec-report-reason input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-plum); }
.ec-report textarea { box-sizing: border-box; width: 100%; min-height: 72px; padding: 10px 12px; border: 1px solid var(--ec-field-border); border-radius: 12px; background-color: var(--ec-white); color: var(--ec-ink); font: 400 16px/1.4 var(--ec-font-body); resize: vertical; }
.ec-report-actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* What Easycoliv knows about a business (CL-831): one checked fact a line, never one blanket badge. */
.ec-trust-facts { display: grid; gap: 4px; margin: 8px 0 12px; padding: 0; list-style: none; }
.ec-trust-facts li { position: relative; padding-left: 16px; color: var(--ec-ink); font-size: .875rem; line-height: 1.5; }
.ec-trust-facts li::before { content: ''; position: absolute; top: .6em; left: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--ec-mauve); }
/* An empty search (CL-829): save it, or choose a city with homes now; never rooms presented as available. */
.ec-empty-save { margin: 12px 0 0; color: var(--ec-muted); font-size: .875rem; }
.ec-empty-cities { margin-top: 16px; }
.ec-empty-cities h4 { margin: 0 0 8px; color: var(--ec-plum); font: 700 .9375rem/1.4 var(--ec-font-heading); }
.ec-empty-cities ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ec-empty-cities li { display: inline-flex; align-items: baseline; gap: 6px; padding: 8px 14px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-pill); background: var(--ec-white); font-size: .875rem; }
.ec-empty-cities li a { color: var(--ec-plum); font-weight: 600; }
.ec-empty-cities li span { color: var(--ec-muted); font-size: .8125rem; }

/* marketplace/supporting-pages.css */
/* Marketplace account, destination, operator and editorial compositions.
   Canonical tokens/components only; this replaces the previous web stylesheet. */
.support-page{background:var(--ec-white);color:var(--ec-ink);min-height:100dvh;display:flex;flex-direction:column}
.support-page .site-header{background:var(--ec-white)}
.support-page>main{flex:1;min-height:55vh}
.support-page ul,.support-page ol{list-style:none;padding:0;margin:0}
.support-page h1{font:var(--ec-page-title-font);letter-spacing:var(--ec-page-title-tracking);color:var(--ec-page-title-ink);text-wrap:balance}
.support-page h2{font-size:clamp(24px,2.3vw,32px);line-height:1.25}
.support-page h3{font-size:20px;line-height:1.4}
.support-page .eyebrow{font-size:11px;line-height:1.6;letter-spacing:.12em;margin-bottom:12px;color:var(--ec-plum)}
.web-container{width:min(var(--max),calc(100% - 96px));margin-inline:auto}
.web-section{padding-block:40px;background:var(--ec-white)}
.web-section:first-of-type{padding-top:28px}
.web-section+ .web-section{border-top:1px solid var(--ec-line)}
.section-compact{padding-block:32px}
.page-intro{display:flex;align-items:center;justify-content:space-between;gap:32px}
.page-intro-copy{max-width:850px;min-width:0}
.page-intro-description,.location-description{max-width:75ch;font-size:16px;line-height:1.8;color:var(--ec-muted);margin-top:16px}
.web-actions{display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0}
.h1-kicker{display:block;font:600 14px/1.6 var(--ec-font-heading);letter-spacing:0;margin-bottom:16px;color:var(--ec-muted)}
.support-page .breadcrumbs{padding:0;margin:0 0 28px}
.support-page .breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--ec-muted)}
.support-page .breadcrumbs li{display:flex;align-items:center;gap:6px;min-width:0}
.support-page .breadcrumbs svg{width:14px;height:14px}
.support-page .breadcrumbs a{display:inline-flex;align-items:center;min-height:32px}
.support-page .breadcrumbs a:hover,.web-text-link:hover{text-decoration:underline;text-underline-offset:4px;color:var(--ec-plum)}
.support-page .section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}
.section-heading-description{max-width:68ch;color:var(--ec-muted);font-size:14px;line-height:1.8;margin-top:12px}
.section-heading-centered{text-align:center;justify-content:center!important}
.web-panel,.web-link-card{background:var(--ec-white);border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);padding:24px}
.web-link-card{display:flex;flex-direction:column;gap:12px;height:100%;transition:border-color var(--ec-duration),box-shadow var(--ec-duration)}
.web-link-card:hover{border-color:var(--ec-plum);box-shadow:var(--ec-shadow-card)}
.web-card-title{font:700 20px/1.4 var(--ec-font-heading);color:var(--ec-plum)}
.web-card-grid,.support-page .listing-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ec-discovery-card{min-width:0;display:flex;flex-direction:column}.ec-discovery-card .ec-home-card{flex:1;height:auto}
.support-page .ec-home-card h3{font-size:20px}
.web-chips,.location-city-links{display:flex;flex-wrap:wrap;gap:8px}
.support-page .related-searches>ul{margin-top:var(--ec-space-4)}
.web-chip,.web-chip-label,.location-city-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px;border:1px solid var(--ec-control-border);border-radius:var(--ec-radius-pill);font-size:13px;background:var(--ec-white);color:var(--ec-plum)}
.web-chip:hover,.location-city-links a:hover{background:var(--ec-subtle);border-color:var(--ec-plum)}
.web-chip[aria-current=true]{background:var(--ec-cream);border-color:var(--ec-plum);box-shadow:inset 0 0 0 1px var(--ec-plum);font-weight:700}
.web-chip-label{background:var(--ec-subtle);border-color:transparent;color:var(--ec-muted)}
.web-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-top:28px}
.ec-stat{margin:0;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);padding:20px;display:flex;flex-direction:column;gap:12px;background:var(--ec-white)}
.ec-stat dt{font-size:12px;color:var(--ec-muted)}.ec-stat dd{margin:0;font:700 clamp(22px,2vw,28px)/1.3 var(--ec-font-heading);color:var(--ec-plum);overflow-wrap:anywhere}
.support-page .ec-btn{white-space:normal;text-align:center}.support-page .ec-btn>svg{flex:none}
.support-page .ec-btn[aria-busy=true]{background:var(--ec-plum);color:white}
.support-page .ec-spinner{border-color:var(--ec-line);border-top-color:currentColor;flex:none}
.support-page .ec-field>label{font:700 calc(13px * var(--ec-label-scale))/1.5 var(--ec-font-heading);color:var(--ec-label-color)}
.support-page textarea.ec-input{resize:vertical;min-height:112px}
.ec-feedback{padding:16px;border:1px solid var(--ec-danger);border-radius:var(--ec-radius-control);color:var(--ec-danger);background:var(--ec-danger-soft);font-size:14px;line-height:1.7}
.ec-feedback.success{border-color:var(--ec-success);color:var(--ec-success);background:var(--ec-success-soft)}
.web-text-link{color:var(--ec-plum);text-underline-offset:4px}
.web-form{display:grid;gap:20px}
.web-empty{padding:48px 24px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);background:var(--ec-white);text-align:center;display:flex;align-items:center;flex-direction:column;gap:16px}
.web-empty>svg,.ec-empty-icon{width:56px!important;height:56px!important;padding:15px;background:var(--ec-cream);color:var(--ec-plum);border-radius:50%}
.web-empty p{max-width:52ch;color:var(--ec-muted);font-size:14px;line-height:1.8}
.web-state-page{display:grid;place-items:center;padding-block:72px}
.web-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px;font-size:14px}
.directory-group h3{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.directory-group h3 span{font-size:12px}
.directory-group ul{display:grid;gap:4px}.directory-group li a{display:block;padding-block:6px;font-size:14px;color:var(--ec-muted)}.directory-group li a:hover{color:var(--ec-plum);text-decoration:underline}
.ec-directory-more{margin-top:12px}.ec-directory-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--ec-plum);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.ec-directory-more ul{padding-top:8px!important}
.icon-tile{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:var(--ec-radius-control);background:var(--ec-cream);color:var(--ec-plum);flex:none}
.location-hero-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:48px;align-items:start}
.location-heading,.location-next,.location-directory>nav{min-width:0;overflow-wrap:anywhere}
.location-heading>p{margin-top:16px}.location-heading .eyebrow{margin-top:0}
.location-next{border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);padding:28px;display:grid;gap:20px;background:var(--ec-white)}
.location-next h2{font-size:24px}.location-next>p{font-size:14px;color:var(--ec-muted);line-height:1.8}
.location-next-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ec-muted)}
.location-facts{display:flex;flex-wrap:wrap;gap:24px;margin:28px 0 0}.location-facts>div{flex:1;min-width:150px}.location-facts dt{font-size:12px;color:var(--ec-muted)}.location-facts dd{font:700 22px/1.5 var(--ec-font-heading);margin:8px 0 0;color:var(--ec-plum)}
.location-context{display:grid;gap:8px;margin-top:20px!important;color:var(--ec-muted);font-size:14px}.location-context li{display:flex;gap:8px;align-items:center}
.location-jumps{display:flex;flex-wrap:wrap;gap:24px;border-top:1px solid var(--ec-line);margin-top:32px;padding-top:16px}
.location-jumps a{display:flex;gap:8px;align-items:center;min-height:44px;font-size:13px;font-weight:600}
.location-jumps svg{width:16px;height:16px}
.location-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.location-place{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--ec-line);border-radius:var(--ec-radius-card);height:100%}
.location-place:hover{border-color:var(--ec-plum)}.location-place-copy{flex:1;min-width:0;overflow-wrap:anywhere}.location-place-copy>span{font:700 15px var(--ec-font-heading)}.location-place-copy small{display:block;color:var(--ec-muted);font-size:12px;margin-top:6px}.location-place-arrow{flex:none}
.location-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.location-directory h3{margin-bottom:16px}
.location-directory-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding-block:10px;border-bottom:1px solid var(--ec-line);font-size:14px}.location-directory-links a>span:first-child{min-width:0;overflow-wrap:anywhere}.location-directory-meta{flex:none;display:flex;align-items:center;gap:10px;white-space:nowrap;color:var(--ec-muted)}
.location-related{margin-top:32px}.location-faq{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
.support-page .faq-list{border-top:1px solid var(--ec-line)}.support-page .faq-list details{border-bottom:1px solid var(--ec-line);padding:0;background:white}
.support-page .faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;list-style:none;cursor:pointer;font:700 16px/1.5 var(--ec-font-heading)}
.support-page .faq-list summary::-webkit-details-marker{display:none}.support-page .faq-list summary svg{flex:none;transition:transform var(--ec-duration)}.support-page .faq-list details[open] summary svg{transform:rotate(45deg)}
.support-page .faq-list details p{font-size:14px;line-height:1.9;color:var(--ec-muted);padding:0 32px 24px 0}
.editorial-article{max-width:760px;margin:auto;font-size:16px;line-height:1.9}.editorial-article h2{margin:36px 0 16px}.editorial-article h3{margin:28px 0 12px}.editorial-article p{margin:16px 0}.editorial-article ul,.editorial-article ol{padding-left:24px;list-style:revert;margin:20px 0}.editorial-article blockquote{padding:24px;margin:24px 0;background:var(--ec-cream);border-left:3px solid var(--ec-plum);border-radius:0 16px 16px 0}.editorial-article a{text-decoration:underline;color:var(--ec-plum)}.editorial-article pre{overflow:auto;padding:20px;border-radius:16px;background:var(--ec-subtle)}
.ec-account-intro{padding:24px 0}.ec-account-intro .breadcrumbs{margin-bottom:16px}.ec-account-intro .page-intro-description{font-size:14px;margin-top:12px}.ec-account-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:16px;border-top:1px solid var(--ec-line);border-bottom:1px solid var(--ec-line);margin-bottom:24px}
.ec-account-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ec-account-tabs button{min-height:44px;border:1px solid transparent;border-radius:999px;padding:10px 16px;background:white;font-size:13px;color:var(--ec-muted)}.ec-account-tabs button[aria-pressed=true]{background:var(--ec-cream);border-color:var(--ec-plum);color:var(--ec-plum);font-weight:700}
.ec-account-search{position:relative;width:300px;max-width:100%}.ec-account-search>svg{position:absolute;left:16px;top:14px;color:var(--ec-muted)}.ec-account-search input{padding-left:46px}
.ec-inbox{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;padding-bottom:48px;align-items:start}
.ec-enquiry-list{border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);overflow:hidden;background:white}
.ec-enquiry-list h2{font-size:14px;padding:20px 22px;border-bottom:1px solid var(--ec-line)}
.ec-enquiry-list ul{max-height:700px;overflow-y:auto}.ec-enquiry-choice{width:100%;display:grid;gap:10px;text-align:left;padding:20px 22px;border:0;border-bottom:1px solid var(--ec-line);background:white;color:var(--ec-ink);border-left:3px solid transparent}.ec-enquiry-choice:hover{background:var(--ec-subtle)}.ec-enquiry-choice[aria-current=true]{background:var(--ec-cream);border-left-color:var(--ec-plum)}
.ec-enquiry-choice strong{font:700 15px/1.5 var(--ec-font-heading);color:var(--ec-plum)}.ec-enquiry-choice small{font-size:12px;color:var(--ec-muted)}.ec-enquiry-choice>span{display:flex;justify-content:space-between;align-items:center;gap:12px}.ec-enquiry-choice .ec-badge{font-size:11px}
.ec-enquiry-detail{min-width:0;border:1px solid var(--ec-line);border-radius:var(--ec-radius-panel);overflow:hidden;background:white}
.ec-enquiry-head{padding:20px 24px;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--ec-line)}.ec-enquiry-head h2{font-size:22px;line-height:1.4}.ec-enquiry-head p{font-size:14px;color:var(--ec-muted);margin-top:8px}.ec-enquiry-head .ec-badge{margin-left:10px;vertical-align:middle}
.ec-enquiry-facts{display:flex;flex-wrap:wrap;gap:28px;padding:12px 24px;background:var(--ec-subtle);border-bottom:1px solid var(--ec-line);margin:0}.ec-enquiry-facts dt{font-size:12px;color:var(--ec-muted)}.ec-enquiry-facts dd{font-size:14px;margin:6px 0 0;font-weight:600}
.ec-inbox-back{display:none}.ec-enquiry-detail>.web-form{margin:24px}
.ec-thread{border:0;overflow:hidden;background:white}.ec-thread-head{padding:16px 24px;display:flex;align-items:center;gap:10px;font:700 14px var(--ec-font-heading);border-bottom:1px solid var(--ec-line)}
.thread-messages{min-height:200px;max-height:460px;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px}.message-bubble{max-width:85%;width:fit-content;background:var(--ec-subtle);border:1px solid var(--ec-line);border-radius:16px 16px 16px 4px;padding:14px 16px;font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.message-bubble[data-own=true]{margin-left:auto;background:var(--ec-cream);border-radius:16px 16px 4px 16px}.message-bubble[data-system=true]{background:transparent;border:0;color:var(--ec-muted);text-align:center;align-self:center;font-size:12px}.message-bubble time{display:block;font-size:11px;color:var(--ec-muted);margin-top:8px}
.thread-composer{border-top:1px solid var(--ec-line);padding:16px 24px;display:flex;align-items:flex-end;gap:12px}.thread-composer>div{min-width:0;flex:1}.thread-composer textarea{height:64px;min-height:64px!important}.thread-composer button{flex:none}
.ec-inbox-empty{grid-column:1/-1}.ec-account-loading{padding:64px;display:flex;align-items:center;justify-content:center;gap:12px;color:var(--ec-muted);font-size:14px}
@media(max-width:1100px){.web-card-grid,.support-page .listing-grid,.location-places{grid-template-columns:repeat(2,minmax(0,1fr))}.location-hero-grid{gap:32px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.ec-inbox{grid-template-columns:300px minmax(0,1fr)}.ec-enquiry-head{flex-wrap:wrap}.web-container{width:calc(100% - 64px)}}
@media(max-width:800px){.web-container{width:calc(100% - 40px)}.web-section{padding-block:32px}.page-intro,.support-page .section-heading{align-items:flex-start;flex-direction:column;gap:20px}.page-intro-description{font-size:14px}.web-actions{width:100%}.location-hero-grid,.location-faq,.location-directory{grid-template-columns:1fr;gap:28px}.web-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ec-stat{padding:16px}.web-panel,.web-link-card{padding:20px}.ec-account-toolbar{align-items:stretch;flex-direction:column;gap:16px}.ec-account-search{width:100%}.ec-account-tabs{gap:4px}.ec-account-tabs button{padding:10px 12px}.ec-inbox{grid-template-columns:1fr}.ec-inbox[data-open=true] .ec-enquiry-list{display:none}.ec-inbox[data-open=false] .ec-enquiry-detail{display:none}.ec-inbox-back{display:inline-flex;margin:16px 20px 0;gap:8px;align-items:center;background:none;border:0;min-height:44px;color:var(--ec-plum);font-size:13px}.ec-inbox-back svg{transform:rotate(180deg)}.ec-enquiry-head{padding:20px}.ec-enquiry-head h2{font-size:22px}.ec-enquiry-facts{padding:16px 20px;gap:20px}.thread-composer{padding:16px;flex-wrap:wrap}.thread-composer>div{flex-basis:100%}.thread-composer button{margin-left:auto}.thread-messages{padding:16px}.support-page .ec-input{font-size:16px}.ec-account-loading{padding:48px 16px}.support-page .web-state-page{padding-block:48px}.web-pagination{flex-wrap:wrap}}
@media(max-width:540px){.web-card-grid,.support-page .listing-grid,.location-places{grid-template-columns:1fr}.web-stats{gap:12px}.web-chip{max-width:100%;white-space:normal}.location-jumps{gap:8px 20px}.support-page .breadcrumbs{margin-bottom:20px}.ec-enquiry-head .ec-btn{width:100%}}
@media(prefers-reduced-motion:reduce){.support-page *{scroll-behavior:auto!important;transition:none!important}}

.support-page .web-form fieldset{border:0;padding:0;margin:0;min-width:0}
.support-page .web-form legend{padding:0;font-size:calc(13px * var(--ec-label-scale));color:var(--ec-label-color)}

/* Labelled preview chrome is separate from live account navigation. */
.ec-preview-header .nav-wrap{flex-wrap:wrap;gap:12px}
.ec-preview-header .ec-btn{padding-inline:14px;font-size:12px;min-height:44px}
@media(max-width:800px){.ec-preview-header .nav-wrap{height:auto;padding-block:12px}.ec-preview-header .ec-badge{order:3;width:100%;justify-content:center}.ec-account-tabs{flex-wrap:nowrap;overflow-x:auto}.ec-account-tabs button{flex:none;white-space:nowrap;font-size:12px}.ec-account-intro h1{font-size:32px}}

.editorial-byline { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:24px; color:var(--ec-muted); font-size:14px; }
.editorial-cover { margin:0 0 48px; overflow:hidden; border-radius:24px; background:var(--ec-subtle); }
.editorial-cover img { display:block; width:100%; max-height:560px; object-fit:cover; }
.editorial-reading-layout { display:grid; grid-template-columns:minmax(0,760px) minmax(240px,300px); gap:64px; align-items:start; }
.editorial-reading-layout .editorial-article { width:100%; min-width:0; overflow-wrap:anywhere; }
.editorial-reading-aside { position:sticky; top:120px; border-radius:24px; padding:28px; background:var(--ec-cream); }
.editorial-kicker { font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--ec-plum); }
.editorial-reading-aside h2 { font-size:26px; line-height:1.25; margin:16px 0; color:var(--ec-plum); }
.editorial-reading-aside p { font-size:14px; line-height:1.7; color:var(--ec-muted); }
.editorial-reading-aside a { display:flex; justify-content:space-between; margin-top:20px; min-height:44px; align-items:center; }
.support-page .editorial-related { margin:24px 0; }
@media (max-width:1000px) { .editorial-reading-layout { gap:32px; grid-template-columns:minmax(0,1fr) 260px; } }
@media (max-width:700px) { .editorial-reading-layout { grid-template-columns:1fr; } .editorial-reading-aside { position:static; } .editorial-cover { margin-bottom:28px; border-radius:16px; } }

/* Article topics, tables and touch targets on the editorial pages. */
.editorial-topics { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.editorial-topics a { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; border:1px solid var(--ec-border); border-radius:999px; color:var(--ec-plum); background:var(--ec-white); font-size:13px; overflow-wrap:anywhere; }
.editorial-topics a:hover { background:var(--ec-cream); }
.editorial-article table { display:block; max-width:100%; overflow:auto; border-collapse:collapse; }
.editorial-article th, .editorial-article td { border:1px solid var(--ec-line); padding:12px; }
.web-pagination .web-text-link { min-height:44px; display:inline-flex; align-items:center; }
/* Sort links in a results bar (operator pages) are touch targets too: 44 px like the pagination. */
.web-results-bar nav .web-text-link { min-height:44px; display:inline-flex; align-items:center; }
/* And the links in a page intro (an operator's website, "Claim this profile"), including one inside a sentence. */
.page-intro-copy .web-text-link { min-height:44px; display:inline-flex; align-items:center; vertical-align:middle; }

/* Application recipes (29 September 2026): the last app-level utility styling moved into the shared recipe set. */
.web-meta{margin:8px 0 0;font-size:14px;line-height:1.7;color:var(--ec-muted)}
.web-meta a{color:var(--ec-plum)}
.web-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px}
.web-form-grid>*{min-width:0}
.web-form-intro{padding-top:24px;border-top:1px solid var(--ec-line)}
.web-form-intro h2,.web-form-intro h3{margin:0;font-size:20px;line-height:1.4}
.web-note{display:flex;gap:8px;margin:0;font-size:12px;line-height:1.7;color:var(--ec-muted)}
.web-note svg{width:16px;height:16px;flex-shrink:0;margin-top:2px}
.web-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.web-empty{max-width:640px;margin-inline:auto}
.web-chips+.web-chips{margin-top:12px}
.web-results-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;font-size:14px;color:var(--ec-muted)}
.web-results-bar p{margin:0}
.web-results-bar strong{color:var(--ec-ink)}
.web-results-bar nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.web-results-bar [aria-current=true]{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.web-multiline{white-space:pre-line}
.web-url{word-break:break-all}
.web-review{margin-top:24px}
.web-rating{display:flex;gap:4px;margin-top:4px}
.web-rating-star{font-size:20px;line-height:1;color:var(--ec-muted)}
.web-rating [data-filled] .web-rating-star{color:var(--ec-plum)}
/* Review scores (CL-854): five 44px star buttons need 236px, or the fifth star sits under the next score's first. */
.web-review .web-form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,236px),1fr))}
.editorial-related-title{font-size:20px;line-height:1.4;margin:0 0 16px}
.web-results-bar+.listing-grid,.web-results-bar+.web-empty,.web-chips+.web-results-bar{margin-top:24px}
.web-pagination .ec-caption{align-self:center}

/* Public operator profiles use one reading width and only populated summary cards. */
.ec-operator-intro { display: flex; align-items: flex-start; gap: 28px; }
.ec-operator-intro .page-intro { flex: 1; min-width: 0; }
.ec-operator-profile :is(h1, .page-intro-description, .web-meta, .web-url) { overflow-wrap: anywhere; }
.ec-operator-profile .page-intro-description { max-width: 68ch; }
.ec-operator-profile .page-intro-copy > .web-meta { margin-top: 12px; }
.ec-operator-about { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--ec-line); }
.ec-operator-about h2 { font-size: 22px; margin-bottom: 12px; }
.ec-operator-about p { max-width: 75ch; color: var(--ec-muted); line-height: 1.75; overflow-wrap: anywhere; white-space: pre-line; }
.ec-operator-about p + p { margin-top: 16px; }
@media (max-width: 600px) {
  .ec-operator-intro { flex-direction: column; gap: 20px; }
  .ec-operator-profile .web-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Operator index /operators/ (CL-677): operators with live homes by country, and the way to claim a profile. */
.ec-operator-country + .ec-operator-country { margin-top: 48px; }
.ec-operator-country h2 { display: flex; align-items: baseline; gap: 10px; margin-bottom: 20px; color: var(--ec-plum); font: 700 24px/1.3 var(--ec-font-heading); }
.ec-operator-country ul { margin: 0; padding: 0; list-style: none; }
.ec-operator-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--ec-plum); font-weight: 700; }
.web-link-card:hover .ec-operator-more { text-decoration: underline; text-underline-offset: 4px; }
.ec-operator-more svg { width: 16px; height: 16px; }
.ec-operator-claim { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.ec-operator-claim h2 { color: var(--ec-plum); font: 700 24px/1.3 var(--ec-font-heading); }
.ec-operator-claim p { max-width: 640px; margin-top: 8px; color: var(--ec-ink); line-height: 1.7; }
@media (max-width: 760px) {
  .ec-operator-claim { flex-direction: column; align-items: flex-start; gap: 20px; }
  .ec-operator-country h2, .ec-operator-claim h2 { font-size: 20px; }
}

/* Information notices (the blue status tone), e.g. a proof of stay being checked. */
.ec-feedback.info { border-color: var(--ec-info); color: var(--ec-info); background: var(--ec-info-soft); }

/* Review photos (CL-102): the optional photos on the review form, each with its state and a remove button. */
.web-review-photos { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; border: 0; }
.web-review-photos > .ec-btn { justify-self: start; gap: 8px; }
.web-review-photo-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.web-review-photo-list li { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 6px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-control); background: var(--ec-white); }
.web-review-photo-list img, .web-review-photo-blank { flex: none; width: 56px; height: 56px; border-radius: 10px; background: var(--ec-subtle); object-fit: cover; }
.web-review-photo-list span:not(.web-review-photo-blank) { display: grid; flex: 1; min-width: 0; }
.web-review-photo-list strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.web-review-photo-list small { font-size: 12px; color: var(--ec-muted); }
.web-review-photo-list li[data-state='failed'] { border-color: var(--ec-danger); }
.web-review-photo-list li[data-state='failed'] small, .web-review-photo-notice { color: var(--ec-danger); }
.web-review-photo-notice { margin: 0; font-size: 13px; }
.web-review-photo-remove { display: grid; flex: none; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--ec-radius-pill); background: transparent; color: var(--ec-muted); cursor: pointer; }
.web-review-photo-remove:hover:not(:disabled) { background: var(--ec-hover); color: var(--ec-plum); }
.web-review-photo-remove:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.web-review-photo-remove svg { width: 18px; height: 18px; }

/* Rent index and city comparisons (CL-88): /data/ tables by country with the rooms behind each median, and /compare/. */
.ec-rent-country + .ec-rent-country { margin-top: 40px; }
.ec-rent-country h2, .ec-compare-country h2 { margin: 0 0 16px; }
.ec-compare-country + .ec-compare-country { margin-top: 40px; }
/* Doubled classes outrank the shared table rules (comparison-tables.css) whatever the stylesheet order. Words and
   figures never break inside (no "Edmon/ton"); a table wider than a phone scrolls inside its card instead. */
.ec-comparison-card.ec-rent-card { overflow-x: auto; }
.ec-comparison-table.ec-rent-table { table-layout: auto; }
.ec-comparison-table.ec-rent-table :is(th, td) { overflow-wrap: normal; }
.ec-comparison-table.ec-rent-table:not(.ec-rent-pair) :is(th, td):not(:first-child) { text-align: right; }
.ec-comparison-table.ec-rent-pair :is(th, td), .ec-comparison-table.ec-rent-pair :is(th, td):last-child { text-align: left; }
.ec-rent-pair tbody th { color: var(--ec-ink); }
.ec-rent-figure { white-space: nowrap; }
.ec-rent-sample { display: block; margin-top: 2px; color: var(--ec-muted); font-size: 12px; font-weight: 400; }
.ec-rent-none { color: var(--ec-muted); font-size: 13px; font-weight: 400; }
.ec-rent-method { max-width: 760px; }
.ec-rent-method h2 { margin: 0 0 12px; }
.ec-rent-method h2:not(:first-child) { margin-top: 32px; }
.ec-rent-method ul { display: grid; gap: 8px; margin: 0; padding-left: 20px; color: var(--ec-ink); line-height: 1.6; }
.ec-rent-method p { margin: 0; line-height: 1.6; }
.ec-rent-method a, .ec-rent-source a { color: var(--ec-plum); text-decoration: underline; text-underline-offset: 3px; }
.ec-compare-explore { margin-top: 24px; }
.ec-compare-explore .web-link-card { gap: 8px; }
.ec-compare-explore .web-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.ec-rent-source { max-width: 760px; }
@media (max-width: 760px) {
  .ec-comparison-table.ec-rent-table :is(th, td) { padding-inline: 12px; }
}

/* Public community event pages (CL-436): the description beside a details card; stacked on phones. */
.ec-event-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 40px; align-items: start; }
.ec-event-about { max-width: 720px; }
.ec-event-about h2, .ec-event-facts h2 { margin: 0 0 16px; }
.ec-event-about p { margin: 0 0 12px; color: var(--ec-ink); line-height: 1.7; overflow-wrap: anywhere; }
.ec-event-facts { padding: 24px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-event-facts dl { display: grid; gap: 16px; margin: 0 0 24px; }
.ec-event-facts dt { color: var(--ec-muted); font-size: 12px; }
.ec-event-facts dd { margin: 4px 0 0; color: var(--ec-plum); font: 700 14px/1.5 var(--ec-font-heading); overflow-wrap: anywhere; }
.ec-event-facts .ec-btn { width: 100%; }
@media (max-width: 860px) {
  .ec-event-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .ec-event-facts { padding: 20px; }
}

/* marketplace/editorial-listing.css */
/* Published guide and blog collections (Figma blog listing 509:1647): the grey breadcrumb bar, the display title, the
   category chips with the search pill and "More filters", the cards and the pager. Split out of supporting-pages.css on
   23 Oct 2026 so the operator site's /blog and /guides use the same rules as the website: it sits right after
   supporting-pages.css in the website's support bundle (tools/design/marketplace-styles.mjs), and the operator imports
   it in app/globals.css. Selectors stay scoped to .ec-blog-* and .editorial-* classes. */
.ec-blog-crumbs { background:var(--ec-subtle); }
.ec-blog-crumbs .web-container { display:flex; align-items:center; min-height:40px; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs { margin:0; padding:0; min-width:0; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail { gap:12px; min-height:0; color:var(--ec-muted); font:400 13px/18.2px var(--ec-font-heading); }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li { flex:none; gap:12px; max-width:none; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li > :is(a, span) { min-height:0; padding-block:0; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li > a { color:var(--ec-ink); text-decoration:underline; text-underline-offset:2px; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li > a:hover { color:var(--ec-plum); }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li > svg { display:none; }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > li:not(:first-child):not(.breadcrumb-more)::before { content:''; flex:none; width:1px; height:9.5px; border-radius:1px; background:var(--ec-control-border, #d7cdd3); }
.marketplace-page .ec-blog-crumbs .smart-breadcrumbs .breadcrumb-trail > .breadcrumb-more + li::before { display:none; }
.support-page .ec-blog-hero.web-section { padding:40px 0 0; }
.ec-blog-hero-copy { display:flex; flex-direction:column; gap:24px; max-width:750px; }
.support-page .ec-blog-page .ec-blog-hero-copy h1 { margin:0; color:var(--ec-page-title-ink); font:var(--ec-page-title-font); letter-spacing:var(--ec-page-title-tracking); text-wrap:balance; }
.ec-blog-hero-copy p { margin:0; color:var(--ec-text-secondary, #60565f); font:400 16px/24px var(--ec-font-body); letter-spacing:.16px; }
.support-page .ec-blog-list.web-section { padding:60px 0 80px; border-top:0; }
.ec-blog-list .web-container { display:flex; flex-direction:column; gap:40px; }
.ec-blog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; }
.ec-blog-chips { display:flex; flex:1 1 560px; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.ec-blog-chips > a, .ec-blog-more > summary { display:inline-flex; align-items:center; gap:10px; min-height:46px; padding:0 20px; border:1px solid var(--ec-line); border-radius:999px; color:var(--ec-muted); background:var(--ec-white); font:400 16px/24px var(--ec-font-heading); letter-spacing:.16px; text-decoration:none; white-space:nowrap; cursor:pointer; }
.ec-blog-chips > a:hover, .ec-blog-more > summary:hover { border-color:var(--ec-plum); color:var(--ec-ink); }
.ec-blog-chips > a[aria-current="page"] { border-color:var(--ec-apricot); background:var(--ec-apricot); color:var(--ec-ink); }
.ec-blog-more { position:relative; }
.ec-blog-more > summary { list-style:none; }
.ec-blog-more > summary::-webkit-details-marker { display:none; }
.ec-blog-more[open] > summary { border-color:var(--ec-plum); color:var(--ec-ink); }
.ec-blog-more-panel { position:absolute; z-index:5; top:calc(100% + 8px); left:0; display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; width:min(560px, calc(100vw - 40px)); padding:20px; border:1px solid var(--ec-line); border-radius:16px; background:var(--ec-white); box-shadow:0 12px 32px rgba(23, 24, 29, .12); }
.ec-blog-more-panel label { display:grid; gap:8px; min-width:0; font-size:13px; font-weight:600; color:var(--ec-plum); }
.ec-blog-more-panel .ec-input { width:100%; min-width:0; background:var(--ec-white); }
.ec-blog-more-panel .ec-btn { align-self:end; justify-self:start; }
.ec-blog-more-panel .web-text-link { align-self:end; min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
.ec-blog-more-panel .editorial-sections { grid-column:1 / -1; margin-top:4px; padding-top:16px; border-top:1px solid var(--ec-line); }
/* Figma Field / Search, Medium (968:3631); while typing, the near-black line on the grey fill (nWatch Website #6). */
.ec-blog-search { display:flex; flex:0 1 300px; align-items:center; gap:8px; height:46px; padding:0 24px 0 16px; border:1.2px solid var(--ec-line); border-radius:999px; color:var(--ec-muted); background:var(--ec-white); transition:border-color .2s ease, background-color .2s ease; }
.ec-blog-search:focus-within { border-color:var(--ec-state-border); background:var(--ec-state-fill); }
.ec-blog-search svg { flex:none; width:20px; height:20px; color:var(--ec-ink); }
.ec-blog-search input { width:100%; min-width:0; border:0; padding:0; background:none; color:var(--ec-ink); font:400 15px/1.5 var(--ec-font-body); outline:none; box-shadow:none; }
.ec-blog-search input::placeholder { color:#807b7f; opacity:1; }
.ec-blog-search:focus-within input::placeholder { color:#b3a9b1; }
@media (pointer: coarse) { .ec-blog-search input { font-size:16px; } }
.ec-blog-search input::-webkit-search-cancel-button { appearance:none; }
.ec-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.editorial-sections { display:flex; flex-wrap:wrap; gap:8px; }
.editorial-sections a { display:inline-flex; align-items:center; min-height:44px; padding:0 22px; border:1px solid var(--ec-line); border-radius:999px; color:var(--ec-plum); background:var(--ec-white); font-size:14px; font-weight:600; text-decoration:none; }
.editorial-sections a[aria-current="page"] { color:var(--ec-white); background:var(--ec-plum); border-color:var(--ec-plum); }
.editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; margin:0; list-style:none; }
.editorial-grid > li { min-width:0; }
/* Blog card (Figma 630:1666, nWatch Website #7, 26 Oct 2026): the photo with its own corners, then title, category chip,
   a three-line excerpt and the date; no frame around the card. */
.editorial-card { display:flex; height:100%; flex-direction:column; overflow:hidden; border-radius:16px; background:var(--ec-white); color:var(--ec-ink); text-decoration:none; }
.editorial-card:hover h2 { text-decoration:underline; text-underline-offset:3px; }
.editorial-card:focus-visible, .editorial-sections a:focus-visible, .ec-blog-chips > a:focus-visible, .ec-blog-more > summary:focus-visible { outline:3px solid var(--ec-plum); outline-offset:4px; }
.editorial-card-media { position:relative; flex:none; aspect-ratio:428 / 220; overflow:hidden; border-radius:16px; background:var(--ec-cream); }
.editorial-card-media--blog { background:var(--ec-lilac); }
.editorial-card-media > img { display:block; width:100%; height:100%; object-fit:cover; }
.editorial-card-placeholder { display:flex; flex-direction:column; justify-content:space-between; height:100%; padding:24px; color:var(--ec-plum); }
.editorial-card-placeholder > span { font-size:14px; font-weight:700; letter-spacing:-.04em; }
.editorial-card-placeholder > strong { font-family:var(--ec-font-heading); font-size:clamp(22px,2.2vw,30px); line-height:1.2; white-space:pre-line; letter-spacing:-.04em; }
.editorial-card-content { display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:16px; padding:24px; }
.editorial-card-category { display:inline-flex; align-items:center; max-width:100%; min-height:32px; padding:0 12px; border-radius:24px; background:#e5e5e5; color:#3d373d; font:500 13px/1.6 var(--ec-font-heading); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.editorial-card-content h2 { margin:0; color:#101114; font:500 18px/1.5 var(--ec-font-heading); overflow-wrap:anywhere; }
.editorial-card-excerpt { display:-webkit-box; margin:0; overflow:hidden; color:#101114; font:300 16px/1.5 var(--ec-font-body); letter-spacing:.32px; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
/* Figma's #807b7f date is 4.2:1 on white; the site's muted #756a73 reaches 4.5:1. */
.editorial-card-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; width:100%; margin-top:auto; color:#756a73; font:500 13px/1.6 var(--ec-font-heading); }
.editorial-card-footer > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ec-blog-pager { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 32px; color:var(--ec-muted); font:400 13px/18.2px var(--ec-font-body); }
.ec-blog-pager a { display:inline-flex; align-items:center; min-height:45px; padding:12px 0; border-bottom:2px solid var(--ec-plum); color:var(--ec-plum); font:700 14px/21px var(--ec-font-heading); text-decoration:none; }
.ec-blog-pager a:hover { color:var(--ec-plum-hover); border-color:var(--ec-plum-hover); }
@media (max-width:1000px) { .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .editorial-grid { grid-template-columns:1fr; } .editorial-card-content { padding:20px; } .editorial-card-placeholder > strong { font-size:26px; } }
@media (prefers-reduced-motion:reduce) { .editorial-card { transition:none; } }
@media (max-width:800px) { .support-page .ec-blog-hero.web-section { padding-top:24px; } .support-page .ec-blog-list.web-section { padding:32px 0 56px; } .ec-blog-chips { flex-basis:100%; } .ec-blog-search { flex:1 1 100%; } .ec-blog-more-panel { grid-template-columns:1fr; } }

/* editorial-content.css */
/* Article media and tables share one recipe in the writer, preview and public reader. */
:is(.editorial-body, .admin-rich-text-body) img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-block: 20px;
  border-radius: var(--ec-radius-control);
}
.editorial-image {
  display: block;
  margin-block: 24px;
}
.editorial-image img {
  margin-block: 0;
}
.editorial-image-caption {
  display: block;
  margin-top: 10px;
  color: var(--ec-muted);
  font-size: 13px;
  line-height: 1.6;
  text-align: center;
}
.editorial-table-scroll,
.admin-rich-text-body .tableWrapper {
  max-width: 100%;
  overflow-x: auto;
  margin-block: 24px;
}
.editorial-table-scroll:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}
.editorial-body .editorial-table-scroll > table {
  display: table;
  overflow: visible;
}
:is(.editorial-body, .admin-rich-text-body) table {
  width: 100%;
  min-width: 320px;
  border-collapse: collapse;
  margin-block: 20px;
  font-size: 14px;
}
:is(.editorial-body, .admin-rich-text-body) :is(th, td) {
  position: relative;
  min-width: 100px;
  padding: 12px 16px;
  border: 1px solid var(--ec-border);
  text-align: left;
  vertical-align: top;
  white-space: normal;
}
:is(.editorial-body, .admin-rich-text-body) th {
  background: var(--ec-cream);
  font-weight: 700;
  color: var(--ec-plum);
}
:is(.editorial-body, .admin-rich-text-body) :is(th, td) p {
  margin: 0;
}
:is(.editorial-body, .admin-rich-text-body) :is(th, td) p + p {
  margin-top: 8px;
}
/* A link in written content is plain underlined text. The marketplace's .text-link is a bold inline-flex link with its own
   bottom border, which drew a second line under the underline and kept long links from wrapping (user, 22 Oct 2026). */
:is(.editorial-body, .admin-rich-text-body) a.text-link {
  display: inline;
  padding: 0;
  border: 0;
  font: inherit;
}
:is(.editorial-body, .admin-rich-text-body) hr {
  margin-block: 28px;
  border: 0;
  border-top: 1px solid var(--ec-border);
}
:is(.editorial-body, .admin-rich-text-body) :not(pre) > code {
  padding: 2px 5px;
  border-radius: 4px;
  background: var(--ec-subtle);
  font-size: 0.9em;
}
.admin-rich-text-body img.ProseMirror-selectednode {
  outline: 3px solid var(--ec-plum);
  outline-offset: 3px;
}
.admin-rich-text-body .selectedCell::after {
  position: absolute;
  inset: 0;
  content: '';
  pointer-events: none;
  background: color-mix(in srgb, var(--ec-lilac) 35%, transparent);
}

.editorial-direct-answer,
.editorial-takeaways {
  padding: 24px;
  border: 1px solid var(--ec-border);
  background: var(--ec-cream);
  border-radius: 12px;
  margin-bottom: 28px;
}
.editorial-direct-answer h2,
.editorial-takeaways h2 {
  font-size: 18px;
  font-weight: 650;
  margin-bottom: 12px;
}
.editorial-hero-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 24px;
  background: linear-gradient(130deg, var(--ec-cream), var(--ec-white));
  border: 1px solid var(--ec-border);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 28px;
}
.editorial-hero-stats div {
  display: flex;
  flex-direction: column-reverse;
  gap: 6px;
}
.editorial-hero-stats dd {
  font-size: 30px;
  font-weight: 650;
}
.editorial-hero-stats dt {
  font-size: 13px;
  color: var(--ec-muted);
}
.editorial-steps,
.editorial-references,
.editorial-faq {
  margin-top: 36px;
}
.editorial-steps h2,
.editorial-references h2,
.editorial-faq h2 {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 16px;
}
.editorial-steps ol,
.editorial-references ul {
  padding-inline-start: 24px;
  list-style: decimal;
}
.editorial-steps li {
  margin: 18px 0;
}
.editorial-steps h3 {
  font-weight: 600;
}
.editorial-references ul {
  list-style: disc;
}
.editorial-references a {
  text-decoration: underline;
}
.editorial-faq details {
  border-bottom: 1px solid var(--ec-border);
  padding: 18px 0;
}
.editorial-faq summary {
  font-weight: 600;
  cursor: pointer;
}
.editorial-faq .editorial-body {
  padding-top: 14px;
}

/*
 * Structured guides (GuideContent) inside the blog reading page's `.editorial-post` column (user, 22 Oct 2026): the
 * overview and tips as Surface / Subtle panels like Quick answer, the steps as "01" rows, the preparation list and the
 * checklists as bordered row boxes like Key takeaways. The table of contents beside the page lists the sections
 * (guideHeadings); the guide has no nav of its own any more.
 */
.editorial-post .guide-reading > * + *,
.editorial-post .guide-steps > * + * {
  margin-top: 40px;
}
.editorial-post .guide-reading > section > h2 {
  margin-top: 0;
}
.editorial-post .guide-overview {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 32px;
  border-radius: 16px;
  background: var(--post-subtle);
}
.editorial-post .guide-eyebrow {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 8px;
  border-radius: 8px;
  background: var(--ec-white);
  color: var(--post-text);
  font: 500 12px/1.2 var(--ec-font-heading);
}
.editorial-post .guide-overview h2 {
  margin: 0;
  font: 500 24px/1.2 var(--ec-font-heading);
  letter-spacing: -0.48px;
}
.editorial-post .guide-outcome {
  margin: 0;
  color: var(--post-ink);
  font: 400 20px/1.6 var(--ec-font-body);
}
.editorial-post .guide-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px 32px;
  width: 100%;
  margin: 0;
  padding-top: 16px;
  border-top: 1px solid var(--ec-control-border, #d7cdd3);
}
.editorial-post .guide-facts dt {
  color: var(--post-muted);
  font: 400 13px/1.5 var(--ec-font-body);
}
.editorial-post .guide-facts dd {
  margin: 2px 0 0;
  color: var(--post-ink);
  font: 500 15px/1.5 var(--ec-font-body);
}
.editorial-post :is(.guide-preparation, .guide-completion) > p {
  margin: 0 0 16px;
}
/* Before you start, and each checklist: the table's bordered box, one row per item. */
.editorial-post .guide-preparation ul,
.editorial-post .guide-checklist {
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: 16px;
  list-style: none;
}
.editorial-post .guide-preparation li,
.editorial-post .guide-checklist label {
  padding: 16px 24px;
  color: var(--post-text);
  font: 300 16px/1.5 var(--ec-font-body);
}
.editorial-post .guide-preparation li + li,
.editorial-post .guide-checklist label + label {
  border-top: 1px solid var(--ec-control-border, #d7cdd3);
}
.editorial-post .guide-checklist legend {
  float: left;
  width: 100%;
  padding: 16px 24px;
  background: #e5e5e5;
  color: #1a1410;
  font: 600 14px/21px var(--ec-font-heading);
}
.editorial-post .guide-checklist label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  clear: both;
  cursor: pointer;
}
.editorial-post .guide-checklist input {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 2px 0 0;
  accent-color: var(--ec-plum);
}
.editorial-post .guide-checklist input:checked + span {
  color: var(--post-muted);
  text-decoration: line-through;
}
.editorial-post .guide-checklist input:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}
.editorial-post .guide-step .guide-checklist {
  margin-top: 24px;
}
/* A step: the large muted number beside its heading, the instructions under the heading. */
.editorial-post .guide-step-heading {
  display: flex;
  align-items: baseline;
  gap: 24px;
  margin-bottom: 16px;
}
.editorial-post .guide-step-heading > span {
  flex: none;
  width: 52px;
  color: var(--post-muted);
  font: 500 36px/1.2 var(--ec-font-heading);
  letter-spacing: -1.08px;
}
.editorial-post .guide-step-heading h2 {
  margin: 0;
}
.editorial-post .guide-step > :not(.guide-step-heading) {
  margin-left: 76px;
}
.editorial-post .guide-tip {
  margin-top: 24px;
  padding: 24px;
  border-radius: 16px;
  background: var(--post-subtle);
}
.editorial-post .guide-tip strong {
  display: block;
  margin-bottom: 8px;
  color: var(--post-ink);
  font: 600 14px/21px var(--ec-font-heading);
}
.editorial-post .guide-tip p {
  margin: 0;
  font: 300 16px/1.5 var(--ec-font-body);
}
@media (max-width: 700px) {
  .editorial-post .guide-overview {
    padding: 24px 20px;
  }
  .editorial-post .guide-outcome {
    font-size: 18px;
  }
  .editorial-post .guide-step-heading {
    gap: 16px;
  }
  .editorial-post .guide-step-heading > span {
    width: 40px;
    font-size: 28px;
  }
  .editorial-post .guide-step > :not(.guide-step-heading) {
    margin-left: 0;
  }
  .editorial-post :is(.guide-preparation li, .guide-checklist label, .guide-checklist legend) {
    padding-inline: 20px;
  }
}
.admin-guide-fields {
  display: grid;
  gap: 24px;
}
.admin-guide-fields .admin-repeat-block {
  min-width: 0;
}

/*
 * Blog posts and insights (Figma reading page, frame 699:2578, 22 Oct 2026; first built from 442:9205). Shared by the
 * website's article (apps/web blog-article.tsx) and the admin preview, so writers see the published formatting. Body
 * text 18/1.6 light in Content / Secondary, section headings 36/1.2 in Content / Primary with 40 px above and 16 px
 * below, tables in a bordered box with a grey header row, a numbered list as large "01" rows, bullets without an indent.
 */
.editorial-post {
  --post-ink: #101114;
  --post-text: #3d373d;
  --post-muted: #756a73;
  --post-subtle: #f5f5f5;
  min-width: 0;
  color: var(--post-text);
  font: 300 18px/1.6 var(--ec-font-body);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.editorial-post > * + * {
  margin-top: 40px;
}
.editorial-post .editorial-body {
  color: inherit;
}
.editorial-post .editorial-body > *,
.editorial-post .editorial-body :is(li, blockquote, td, th) > p {
  margin: 0 0 1.6em;
}
.editorial-post .editorial-body > :last-child,
.editorial-post .editorial-body :is(li, blockquote, td, th) > p:last-child {
  margin-bottom: 0;
}
.editorial-post h2,
.editorial-post .editorial-body > h2 {
  margin: 40px 0 16px;
  color: var(--post-ink);
  font: 500 36px/1.2 var(--ec-font-heading);
  letter-spacing: -0.72px;
}
.editorial-post .editorial-body > h2:first-child {
  margin-top: 0;
}
.editorial-post .editorial-body > h3 {
  margin: 1.6em 0 8px;
  color: var(--post-ink);
  font: 500 24px/1.3 var(--ec-font-heading);
  letter-spacing: -0.48px;
}
.editorial-post .editorial-body > h4 {
  margin: 24px 0 12px;
  color: var(--post-ink);
  font: 600 18px/23px var(--ec-font-heading);
  letter-spacing: 0;
}
.editorial-post .editorial-body :is(strong, b) {
  color: var(--post-ink);
  font-weight: 600;
}
.editorial-post .editorial-body a {
  color: var(--ec-plum);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.editorial-post .editorial-body ul {
  padding: 0;
  list-style: none;
}
.editorial-post .editorial-body ul > li {
  position: relative;
  padding-left: 1em;
}
.editorial-post .editorial-body ul > li::before {
  content: '\2022';
  position: absolute;
  left: 0;
}
.editorial-post .editorial-body li :is(ul, ol) {
  margin: 0;
  padding-left: 1em;
}
.editorial-post .editorial-body li ol {
  list-style: decimal;
  padding-left: 1.5em;
}
/* A numbered list: one row per item, a 36 px muted number in a 52 px column, a line under each row. */
.editorial-post .editorial-body > ol {
  padding: 0;
  list-style: none;
  counter-reset: post-row;
}
.editorial-post .editorial-body > ol > li {
  counter-increment: post-row;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  column-gap: 24px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid var(--ec-control-border, #d7cdd3);
}
.editorial-post .editorial-body > ol > li::before {
  content: counter(post-row, decimal-leading-zero);
  grid-row: 1 / span 20;
  color: var(--post-muted);
  font: 500 36px/39px var(--ec-font-heading);
  letter-spacing: -1.08px;
}
.editorial-post .editorial-body > ol > li > * {
  grid-column: 2;
}
.editorial-post .editorial-body blockquote {
  padding: 24px;
  border-left: 3px solid var(--ec-plum);
  border-radius: 0 16px 16px 0;
  background: var(--ec-cream);
  color: var(--post-ink);
}
.editorial-post .editorial-body pre {
  overflow-x: auto;
  padding: 20px;
  border-radius: 16px;
  background: var(--post-subtle);
}
.editorial-post .editorial-image img {
  border-radius: 16px;
}
/*
 * Quick answer and Key takeaways. No Figma frame has them (user, 22 Oct 2026), so they reuse the reading page's parts:
 * the answer as a Surface / Subtle panel with a chip label and larger text, the takeaways as the table's bordered box
 * (grey header strip, one row per point, a check mark before each).
 */
.editorial-post .editorial-direct-answer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 0;
  padding: 32px;
  border: 0;
  border-radius: 16px;
  background: var(--post-subtle);
}
.editorial-post .editorial-direct-answer h2 {
  display: inline-flex;
  align-items: center;
  height: 32px;
  margin: 0;
  padding: 0 8px;
  border-radius: 8px;
  background: var(--ec-white);
  color: var(--post-text);
  font: 500 12px/1.2 var(--ec-font-heading);
  letter-spacing: 0;
}
.editorial-post .editorial-direct-answer p {
  margin: 0;
  color: var(--post-ink);
  font: 400 20px/1.6 var(--ec-font-body);
}
.editorial-post .editorial-takeaways {
  margin-bottom: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: 16px;
  background: var(--ec-white);
}
.editorial-post .editorial-direct-answer + .editorial-takeaways {
  margin-top: 24px;
}
.editorial-post .editorial-takeaways h2 {
  margin: 0;
  padding: 16px 24px;
  background: #e5e5e5;
  color: #1a1410;
  font: 600 14px/21px var(--ec-font-heading);
  letter-spacing: 0;
}
.editorial-post .editorial-takeaways .editorial-body > * {
  margin: 0;
}
/* The rich text editor leaves an empty paragraph after a list; it must not draw an empty row. */
.editorial-post .editorial-takeaways .editorial-body > :empty {
  display: none;
}
.editorial-post .editorial-takeaways .editorial-body > :not(ul, ol) {
  padding: 16px 24px;
}
.editorial-post .editorial-takeaways .editorial-body > * + *,
.editorial-post .editorial-takeaways .editorial-body :is(ul, ol) > li + li {
  border-top: 1px solid var(--ec-control-border, #d7cdd3);
}
.editorial-post .editorial-takeaways .editorial-body :is(ul, ol) {
  padding: 0;
  list-style: none;
}
.editorial-post .editorial-takeaways .editorial-body :is(ul, ol) > li {
  display: block;
  position: relative;
  padding: 16px 24px 16px 60px;
  border-bottom: 0;
  font: 300 16px/1.5 var(--ec-font-body);
}
/* A plum check mark in place of the bullet or the large "01" of a numbered list. */
.editorial-post .editorial-takeaways .editorial-body :is(ul, ol) > li::before {
  content: '';
  position: absolute;
  top: 18px;
  left: 24px;
  width: 20px;
  height: 20px;
  background: var(--ec-plum);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.editorial-post .editorial-takeaways .editorial-body :is(strong, b) {
  font-weight: 500;
}
.editorial-post :is(.editorial-steps, .editorial-references, .editorial-faq) {
  margin-bottom: 0;
}
.editorial-post :is(.editorial-steps, .editorial-references, .editorial-faq) > h2 {
  margin-top: 0;
}
.editorial-post .editorial-steps h3 {
  color: var(--post-ink);
}
.editorial-post .editorial-faq details {
  border-color: var(--ec-control-border, #d7cdd3);
}
.editorial-post .editorial-faq summary {
  color: var(--post-ink);
}

/* The article's table of contents: an 18 px title, then one 15 px row per section, the current one on Surface / Subtle. */
.editorial-toc {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.editorial-toc-title {
  margin: 0;
  color: #101114;
  font: 600 18px/23px var(--ec-font-heading);
}
.editorial-toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
}
.editorial-toc a {
  display: block;
  overflow: hidden;
  padding: 8px 12px;
  border-radius: 8px;
  color: #756a73;
  font: 400 13px/18.2px var(--ec-font-body);
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: background-color var(--ec-duration, 0.18s) var(--ec-ease, ease), color var(--ec-duration, 0.18s) var(--ec-ease, ease);
}
.editorial-toc a:hover {
  color: #101114;
}
.editorial-toc a[aria-current='true'] {
  background: #f5f5f5;
  color: #101114;
}
.editorial-toc a:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: -2px;
}
/* Figma "Category / Chip" (Surface / Darker, 32 px, 12 px label) and the post's excerpt: the website banner, its cards and
   the admin preview. */
.editorial-chip {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  height: 32px;
  padding: 0 8px;
  overflow: hidden;
  border-radius: 8px;
  background: #e5e5e5;
  color: #3d373d;
  font: 500 12px/1.2 var(--ec-font-heading);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.editorial-lead {
  margin: 0;
  color: #3d373d;
  font: 300 18px/1.6 var(--ec-font-body);
}

/* A table in a post: a bordered box, a grey header row, rows split by a line; the first column reads as the label. */
.editorial-post .editorial-table-scroll {
  margin: 0 0 1.6em;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: 4px;
}
.editorial-post .editorial-body table {
  margin: 0;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 15px;
}
.editorial-post .editorial-body :is(th, td) {
  padding: 16px;
  border: 0;
  border-bottom: 1px solid var(--ec-control-border, #d7cdd3);
}
.editorial-post .editorial-body tr:last-child > td {
  border-bottom: 0;
}
.editorial-post .editorial-body th {
  background: #e5e5e5;
  color: #1a1410;
  font: 600 14px/21px var(--ec-font-heading);
}
.editorial-post .editorial-body td {
  color: #60565f;
  font: 300 15px/1.5 var(--ec-font-body);
}
.editorial-post .editorial-body td:first-child {
  color: var(--ec-ink);
}

/* The admin preview of a post (apps/admin post-preview.tsx): the website's banner at editor width, contents above the text. */
.admin-post-preview {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.admin-post-preview > :is(.admin-post-preview-cover, .editorial-toc, .editorial-post) {
  align-self: stretch;
}
.admin-post-preview-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  color: #756a73;
  font: 400 15px/22.5px var(--ec-font-body);
}
.admin-post-preview-meta > [aria-hidden] {
  color: var(--ec-control-border, #d7cdd3);
}
.admin-post-preview > h1 {
  margin: 0;
  color: #101114;
  font: 500 36px/1.2 var(--ec-font-heading);
  letter-spacing: -0.72px;
  overflow-wrap: anywhere;
}
.admin-post-preview-cover {
  display: block;
  width: 100%;
  aspect-ratio: 428 / 220;
  border-radius: 16px;
  object-fit: cover;
}
.admin-post-preview > .editorial-toc {
  padding: 20px;
  border: 1px solid var(--ec-line, #e6dee3);
  border-radius: 16px;
}
.admin-post-preview > :is(.admin-post-preview-cover, .editorial-toc, .editorial-post) {
  margin-top: 24px;
}

@media (max-width: 700px) {
  .editorial-post .editorial-direct-answer {
    padding: 24px 20px;
  }
  .editorial-post .editorial-direct-answer p {
    font-size: 18px;
  }
  .editorial-post .editorial-takeaways h2,
  .editorial-post .editorial-takeaways .editorial-body > :not(ul, ol) {
    padding-inline: 20px;
  }
  .editorial-post .editorial-takeaways .editorial-body :is(ul, ol) > li {
    padding: 14px 20px 14px 52px;
  }
  .editorial-post .editorial-takeaways .editorial-body :is(ul, ol) > li::before {
    top: 16px;
    left: 20px;
  }
  .editorial-post h2,
  .editorial-post .editorial-body > h2 {
    margin-top: 40px;
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.84px;
  }
  .editorial-post .editorial-body > ol > li {
    grid-template-columns: 40px minmax(0, 1fr);
    column-gap: 16px;
  }
  .editorial-post .editorial-body > ol > li::before {
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.84px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .editorial-toc a {
    transition: none;
  }
}

/* marketplace/destinations.css */
/* The /destinations page, from the Figma file "easycoliv", frame 425:4864 "Destination page" (23 Oct 2026).
   Implemented in apps/web/src/app/(marketplace-support)/(public)/destinations/page.tsx and
   apps/web/src/components/destination-directory.tsx. The main element also carries .ec-city-page, so the place pages'
   crumb band, hero and section spacing apply (city-page.css, which loads later: the hero overrides below carry the
   extra .ec-city-page class to win). */

/* The frame's hero: 650 px wide, the line 12 px under the title. */
.ec-destinations-page.ec-city-page .ec-cp-hero .web-container {
  gap: 12px;
}
.ec-destinations-page.ec-city-page .ec-cp-hero :is(h1, p) {
  max-width: 650px;
}

/* Country search: Figma Field / Search, Large (968:3635), across the column, 40 px above the regions and countries;
   while typing, the near-black line on the grey fill (nWatch Website #6, 26 Oct 2026). */
.ec-dest-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  margin-bottom: 40px;
  padding: 0 24px 0 16px;
  border: 1.2px solid var(--ec-line);
  border-radius: 999px;
  background: var(--ec-white);
  color: var(--cp-ink, #101114);
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease), background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-dest-search:focus-within {
  border-color: var(--ec-state-border);
  background: var(--ec-state-fill);
}
.ec-dest-search .ec-icon {
  flex: none;
  width: 20px;
  height: 20px;
}
.ec-dest-search input {
  flex: 1;
  min-width: 0;
  height: 54px;
  border: 0;
  outline: none;
  background: transparent;
  color: inherit;
  font: 400 15px/1.5 var(--ec-font-body);
}
.ec-dest-search input::placeholder {
  color: #807b7f;
}
.ec-dest-search:focus-within input::placeholder {
  color: #b3a9b1;
}
/* 16 px keeps touch browsers from zooming into the field. */
@media (pointer: coarse) {
  .ec-dest-search input {
    font-size: 16px;
  }
}
/* The pill shows focus (above); the field's own square ring (components.css input:focus-visible) would sit inside it. */
.ec-dest-search input:focus-visible {
  box-shadow: none;
}
/* A value the browser fills in from earlier searches keeps the white pill (Chrome paints it light blue). */
.ec-dest-search input:-webkit-autofill {
  -webkit-text-fill-color: var(--cp-ink, #101114);
  box-shadow: 0 0 0 1000px var(--ec-white) inset;
}

/* Region chips in a 252 px column, the countries beside it. */
.ec-dest-layout {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.ec-dest-regions {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: 12px;
  width: 252px;
}
.ec-dest-regions button {
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 0 20px;
  border: 1px solid #d7cdd3;
  border-radius: 999px;
  background: var(--ec-white);
  color: #737373;
  font: 500 15px/1.2 var(--ec-font-heading);
  text-align: left;
  cursor: pointer;
}
.ec-dest-regions button:hover {
  color: var(--cp-ink, #101114);
}
.ec-dest-regions button[aria-pressed='true'] {
  border-color: var(--ec-apricot);
  background: var(--ec-apricot);
  color: #17181d;
}
.ec-dest-regions button:focus-visible,
.ec-dest-country:focus-visible {
  outline: none;
  box-shadow: var(--ec-focus);
}

/* Countries: three a row, region after region 40 px apart; a row lights up grey on hover. */
.ec-dest-results {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 40px;
  min-width: 0;
}
.ec-dest-results section[hidden],
.ec-dest-grid > li[hidden] {
  display: none;
}
.ec-dest-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.ec-dest-country {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 16px;
  color: #17181a;
  text-decoration: none;
  transition: background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-dest-country:hover {
  background: #f5f5f5;
}
/* The flag as the frame's 28 px circle in a 32 px slot. */
.ec-dest-country img {
  flex: none;
  width: 28px;
  height: 28px;
  margin: 0 4px 4px 0;
  border-radius: 50%;
  object-fit: cover;
}
.ec-dest-country > span {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ec-dest-country strong {
  font: 500 16px/1.3 var(--ec-font-heading);
}
.ec-dest-country > span > span {
  color: #3d373d;
  font: 300 13px/1.5 var(--ec-font-body);
}
.ec-dest-empty {
  color: #3d373d;
  font: 300 16px/1.5 var(--ec-font-body);
}

/* Tablet: two countries a row. */
@media (max-width: 1100px) {
  .ec-dest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Phone: the chips scroll in one row above the countries. */
@media (max-width: 760px) {
  .ec-dest-search {
    margin-bottom: 24px;
  }
  .ec-dest-layout {
    flex-direction: column;
    gap: 24px;
  }
  .ec-dest-regions {
    flex-direction: row;
    width: auto;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .ec-dest-regions::-webkit-scrollbar {
    display: none;
  }
  .ec-dest-regions button {
    flex: none;
    min-height: 44px;
    white-space: nowrap;
  }
  .ec-dest-layout,
  .ec-dest-results {
    width: 100%;
  }
  .ec-dest-results {
    gap: 24px;
  }
  .ec-dest-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }
}

/* marketplace/destination-hubs.css */
/* Country and region guides. Canonical recipe shared with the live marketplace. */
.ec-hub-page svg {
  width: 20px;
  height: 20px;
  flex: none;
}
.ec-hub-page .web-section {
  padding-block: 48px;
}
.ec-hub-page .ec-hub-hero {
  padding: 24px 0 40px;
}
.ec-hub-hero .breadcrumbs {
  margin-bottom: 32px;
}
.ec-hub-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 72px;
  align-items: center;
}
.ec-hub-page h1 {
  font: var(--ec-page-title-font);
  letter-spacing: var(--ec-page-title-tracking);
  color: var(--ec-page-title-ink);
  overflow-wrap: anywhere;
  max-width: 820px;
}
.ec-hub-title-lead {
  display: block;
  margin-bottom: 10px;
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -0.025em;
  color: var(--ec-plum);
}
.ec-hub-title-place {
  color: var(--ec-mauve);
}
.ec-hub-description {
  max-width: 60ch;
  margin-top: 20px;
  color: var(--ec-muted);
  font-size: 15px;
  line-height: 1.8;
}
.ec-hub-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  margin-top: 26px;
}
.ec-hub-text-link {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  min-height: 44px;
  color: var(--ec-plum);
  font: 700 13px/1.5 var(--ec-font-heading);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ec-hub-snapshot {
  padding: 28px;
  background: var(--ec-cream);
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-panel);
}
.ec-hub-snapshot-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.ec-hub-snapshot-top > span {
  color: var(--ec-muted);
  font: 700 11px/1.4 var(--ec-font-heading);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.ec-hub-snapshot-top img {
  width: 40px;
  height: 30px;
  object-fit: cover;
  border-radius: 5px;
  box-shadow: 0 0 0 1px var(--ec-line);
}
.ec-hub-snapshot h2 {
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: -0.025em;
}
.ec-hub-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 24px 0;
}
.ec-hub-facts > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 5px;
  min-width: 0;
}
.ec-hub-facts dt {
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-hub-facts dd {
  font: 700 28px/1.25 var(--ec-font-heading);
  color: var(--ec-plum);
  margin: 0;
  overflow-wrap: anywhere;
}
.ec-hub-availability {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border-top: 1px solid var(--ec-line);
  padding-top: 18px;
  color: var(--ec-muted);
  font-size: 12px;
  line-height: 1.7;
}
.ec-hub-availability svg {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  color: var(--ec-plum);
}
.ec-hub-availability[data-live='true'] {
  color: var(--ec-success);
}
.ec-hub-nav {
  border-block: 1px solid var(--ec-line);
}
.ec-hub-nav-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.ec-hub-nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 28px;
}
.ec-hub-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 60px;
  font: 700 13px/1.5 var(--ec-font-heading);
  color: var(--ec-muted);
}
.ec-hub-nav a:hover {
  color: var(--ec-plum);
  text-decoration: underline;
  text-underline-offset: 6px;
}
.ec-hub-updated {
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-hub-page section[id] {
  scroll-margin-top: 100px;
}
.ec-hub-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 24px;
}
.ec-hub-section-heading h2,
.ec-hub-about h2,
.ec-hub-faq-heading h2 {
  font-size: 28px;
  line-height: 1.35;
  letter-spacing: -0.035em;
}
.ec-hub-section-heading p:not(.eyebrow),
.ec-hub-faq-heading > p {
  margin-top: 10px;
  font-size: 14px;
  color: var(--ec-muted);
  line-height: 1.8;
  max-width: 62ch;
}
.ec-hub-page .eyebrow {
  font-size: 10px;
  letter-spacing: 0.12em;
  margin-bottom: 10px;
}
.ec-hub-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding: 0 0 24px;
}
.ec-hub-search {
  display: flex;
  align-items: center;
  width: 360px;
  max-width: 100%;
  border: 1px solid var(--ec-control-border);
  border-radius: var(--ec-radius-pill);
  padding-left: 16px;
  background: var(--ec-white);
  min-height: 48px;
  color: var(--ec-muted);
}
.ec-hub-search:focus-within {
  box-shadow: var(--ec-focus);
  border-color: var(--ec-plum);
}
.ec-hub-search input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  box-shadow: none;
  padding: 12px;
  font: 400 14px/1.5 var(--ec-font-body);
  color: var(--ec-ink);
}
.ec-hub-search:focus-within input:focus {
  outline: none;
  box-shadow: none;
}
.ec-hub-search input::-webkit-search-cancel-button {
  display: none;
}
.ec-hub-search button {
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--ec-muted);
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 50%;
}
.ec-hub-filter-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 20px;
}
.ec-hub-live-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--ec-ink);
  min-height: 44px;
}
.ec-hub-live-filter input {
  width: 18px;
  height: 18px;
  accent-color: var(--ec-plum);
}
.ec-hub-result-count {
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-hub-country-grid,
.ec-hub-city-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.ec-hub-country-grid > li,
.ec-hub-city-grid > li {
  min-width: 0;
}
.ec-hub-country-card {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 100%;
  padding: 20px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
  transition:
    background var(--ec-duration),
    border-color var(--ec-duration);
}
.ec-hub-country-card img {
  width: 32px;
  height: 24px;
  border-radius: 4px;
  object-fit: cover;
  flex: none;
  box-shadow: 0 0 0 1px var(--ec-line);
}
.ec-hub-country-copy {
  flex: 1;
  min-width: 0;
}
.ec-hub-country-copy strong {
  display: block;
  font: 700 15px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
  overflow-wrap: anywhere;
}
.ec-hub-country-copy small {
  display: block;
  margin-top: 4px;
  color: var(--ec-muted);
  font-size: 12px;
  line-height: 1.7;
}
.ec-hub-card-arrow {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  color: var(--ec-plum);
  background: var(--ec-subtle);
}
.ec-hub-card-arrow svg {
  width: 16px;
  height: 16px;
}
.ec-hub-country-card:hover,
.ec-hub-city-card:hover {
  border-color: var(--ec-mauve);
  background: var(--ec-cream);
}
.ec-hub-city-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  padding: 24px;
  background: var(--ec-white);
  transition:
    background var(--ec-duration),
    border-color var(--ec-duration);
}
.ec-hub-city-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.ec-hub-city-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--ec-cream);
  color: var(--ec-plum);
}
.ec-hub-city-status {
  font-size: 11px;
  color: var(--ec-muted);
}
.ec-hub-city-status[data-live='true'] {
  color: var(--ec-success);
}
.ec-hub-city-card h3 {
  font-size: 22px;
  line-height: 1.4;
}
.ec-hub-city-card p {
  margin: 10px 0 20px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--ec-muted);
}
.ec-hub-city-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--ec-line);
  color: var(--ec-plum);
  font: 700 12px/1.5 var(--ec-font-heading);
}
.ec-hub-city-grid[data-single='true'] {
  grid-template-columns: 1fr;
}
.ec-hub-city-grid[data-single='true'] .ec-hub-city-card {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr) auto;
  gap: 16px 32px;
  align-items: center;
}
.ec-hub-city-grid[data-single='true'] .ec-hub-city-top {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  justify-content: flex-start;
}
.ec-hub-city-grid[data-single='true'] .ec-hub-city-card h3 {
  grid-column: 1;
  grid-row: 2;
}
.ec-hub-city-grid[data-single='true'] .ec-hub-city-card p {
  grid-column: 2;
  grid-row: 1 / 3;
  margin: 0;
  max-width: 54ch;
}
.ec-hub-city-grid[data-single='true'] .ec-hub-city-foot {
  grid-column: 3;
  grid-row: 1 / 3;
  border: 0;
  margin: 0;
  padding: 0;
  gap: 24px;
}
.ec-hub-about {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 64px;
  border-top: 1px solid var(--ec-line);
  padding-top: 32px;
  margin-top: 32px;
}
.ec-hub-about p {
  color: var(--ec-muted);
  font-size: 14px;
  line-height: 1.9;
  margin-top: 12px;
}
.ec-hub-about .ec-hub-local-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 32px;
  margin-top: 20px;
}
.ec-hub-local-facts dt {
  font-size: 11px;
  color: var(--ec-muted);
}
.ec-hub-local-facts dd {
  font-size: 15px;
  color: var(--ec-plum);
  font-weight: 700;
  margin: 4px 0 0;
}
.ec-hub-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
  gap: 64px;
}
.ec-hub-empty {
  text-align: center;
  border: 1px dashed var(--ec-line);
  border-radius: var(--ec-radius-card);
  padding: 40px 24px;
}
.ec-hub-empty p {
  margin: 8px 0 16px;
  font-size: 14px;
  color: var(--ec-muted);
}
.ec-hub-directory-footer {
  margin-top: 24px;
}
@media (max-width: 1100px) {
  .ec-hub-hero-grid {
    gap: 32px;
    grid-template-columns: minmax(0, 1fr) 300px;
  }
  .ec-hub-country-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .ec-hub-page .web-section {
    padding-block: 32px;
  }
  .ec-hub-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ec-hub-hero .breadcrumbs {
    margin-bottom: 24px;
  }
  .ec-hub-title-lead {
    font-size: 19px;
  }
  .ec-hub-snapshot {
    padding: 24px;
  }
  .ec-hub-snapshot-top {
    margin-bottom: 12px;
  }
  .ec-hub-snapshot h2 {
    display: none;
  }
  .ec-hub-facts {
    margin: 20px 0;
  }
  .ec-hub-updated {
    display: none;
  }
  .ec-hub-nav-links {
    gap: 24px;
  }
  .ec-hub-nav a {
    min-height: 52px;
    font-size: 12px;
  }
  .ec-hub-city-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-hub-city-grid[data-single='true'] .ec-hub-city-card {
    display: flex;
    align-items: stretch;
    gap: 0;
  }
  .ec-hub-city-grid[data-single='true'] .ec-hub-city-top {
    justify-content: space-between;
    margin-bottom: 20px;
  }
  .ec-hub-city-grid[data-single='true'] .ec-hub-city-card p {
    margin: 10px 0 20px;
  }
  .ec-hub-city-grid[data-single='true'] .ec-hub-city-foot {
    border-top: 1px solid var(--ec-line);
    padding-top: 16px;
  }
  .ec-hub-about,
  .ec-hub-faq-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ec-hub-section-heading h2,
  .ec-hub-about h2,
  .ec-hub-faq-heading h2 {
    font-size: 24px;
  }
}
@media (max-width: 540px) {
  .ec-hub-country-grid,
  .ec-hub-city-grid {
    grid-template-columns: 1fr;
  }
  .ec-hub-country-card {
    padding: 18px;
  }
  .ec-hub-section-heading {
    align-items: start;
    flex-direction: column;
    gap: 8px;
  }
  .ec-hub-search {
    width: 100%;
  }
  .ec-hub-search input {
    font-size: 16px;
  }
  .ec-hub-description {
    font-size: 14px;
  }
  .ec-hub-actions {
    gap: 8px 20px;
  }
  .ec-hub-title-lead {
    font-size: 17px;
  }
  .ec-hub-hero .breadcrumbs {
    font-size: 11px;
  }
}

/* marketplace/city-guide.css */
/* City guides extend the destination directory with editorial, area and inventory patterns. */
.ec-city-guide svg {
  width: 20px;
  height: 20px;
  flex: none;
}
.ec-city-guide .web-section {
  padding-block: 48px;
}
.ec-city-guide .ec-city-hero {
  padding-top: 24px;
  padding-bottom: 40px;
}
.ec-city-hero .breadcrumbs {
  margin-bottom: 28px;
}
.ec-city-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 64px;
  align-items: center;
}
.ec-city-hero-copy h1 {
  max-width: 760px;
  font-size: 48px;
  line-height: 1.15;
  text-wrap: initial;
}
.ec-city-title-lead {
  display: block;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: -0.04em;
}
.ec-city-title-place {
  display: block;
  margin-top: 4px;
  font-size: 56px;
  color: var(--ec-mauve);
  letter-spacing: -0.05em;
  overflow-wrap: anywhere;
}
.ec-city-hero-description {
  max-width: 58ch;
  margin-top: 20px;
  font-size: 15px;
  line-height: 1.8;
  color: var(--ec-muted);
}
.ec-city-hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 24px;
  flex-wrap: wrap;
}
.ec-city-text-link {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  color: var(--ec-plum);
  font: 700 13px/1.5 var(--ec-font-heading);
  white-space: nowrap;
}
.ec-city-inventory-note {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  font-size: 12px;
  color: var(--ec-muted);
}
.ec-city-inventory-note svg {
  width: 16px;
  height: 16px;
}
.ec-city-inventory-note[data-live='true'] {
  color: var(--ec-success);
}
.ec-city-stay > .ec-city-verification {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
}
.ec-city-verification svg {
  width: 16px;
  height: 16px;
  margin-top: 3px;
}
.ec-city-text-link:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ec-city-text-link svg {
  width: 16px;
  height: 16px;
}
.ec-city-snapshot {
  padding: 24px;
  border-radius: var(--ec-radius-panel);
  background: var(--ec-cream);
  border: 1px solid var(--ec-line);
}
.ec-city-country {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--ec-plum);
  font-size: 13px;
}
.ec-city-country img {
  width: 24px;
  height: 18px;
  object-fit: cover;
  border-radius: 3px;
}
.ec-city-country > span:last-child {
  margin-left: auto;
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-city-snapshot h2 {
  font-size: 18px;
  margin-top: 20px;
}
.ec-city-snapshot-counts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 24px 0;
}
.ec-city-snapshot-counts > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 6px;
}
.ec-city-snapshot-counts dt {
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-city-snapshot-counts dd {
  margin: 0;
  font: 700 32px/1.2 var(--ec-font-heading);
  letter-spacing: -0.04em;
  color: var(--ec-plum);
}
.ec-city-snapshot-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--ec-line);
  padding-top: 16px;
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-city-snapshot-foot svg {
  width: 16px;
  height: 16px;
}
.ec-city-navigation {
  position: sticky;
  top: 86px;
  z-index: 20;
  border-block: 1px solid var(--ec-line);
  background: var(--ec-white);
}
.ec-city-navigation > div {
  display: flex;
  gap: 32px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.ec-city-navigation a {
  display: flex;
  align-items: center;
  min-height: 60px;
  padding: 14px 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  font: 700 13px/1.5 var(--ec-font-heading);
  color: var(--ec-muted);
}
.ec-city-navigation a[aria-current='location'] {
  color: var(--ec-plum);
  border-bottom-color: var(--ec-plum);
}
.ec-city-navigation a:hover {
  color: var(--ec-plum);
}
.ec-city-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 64px;
  align-items: start;
}
.ec-city-editorial {
  min-width: 0;
}
.ec-city-section,
.ec-city-guide .web-section[id] {
  scroll-margin-top: 56px;
}
.ec-city-section + .ec-city-section {
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--ec-line);
}
.ec-city-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 20px;
}
.ec-city-section-heading:has(> .eyebrow) {
  display: block;
}
.ec-city-section-heading h2 {
  font-size: 26px;
  line-height: 1.3;
}
.ec-city-section-heading p:not(.eyebrow) {
  margin-top: 8px;
  font-size: 14px;
  color: var(--ec-muted);
  line-height: 1.7;
}
.ec-city-section-count {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: var(--ec-radius-pill);
  background: var(--ec-subtle);
  color: var(--ec-muted);
  font-size: 12px;
  white-space: nowrap;
}
.ec-city-about {
  font-size: 15px;
  line-height: 1.85;
  color: var(--ec-muted);
}
.support-page .ec-city-highlights {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}
.ec-city-highlights li {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: var(--ec-radius-pill);
  background: var(--ec-subtle);
  font-size: 12px;
  color: var(--ec-plum);
}
.ec-city-highlights svg {
  width: 14px;
  height: 14px;
}
.ec-city-practical {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 24px 0 0;
  padding: 20px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
}
/* Each item is a div with its dt and dd (valid dl markup); the icon inside the dt is placed beside both. */
.ec-city-practical > div {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  min-height: 40px;
  padding-left: 36px;
}
.ec-city-practical svg {
  position: absolute;
  top: 50%;
  left: 0;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  color: var(--ec-plum);
}
.ec-city-practical dt {
  font-size: 12px;
  color: var(--ec-muted);
}
.ec-city-practical dd {
  margin: 4px 0 0;
  font: 700 13px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
  overflow-wrap: anywhere;
}
.ec-city-updated {
  font-size: 11px;
  color: var(--ec-muted);
  margin-top: 16px;
}
.ec-city-area-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.ec-city-area-card {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 100%;
  min-height: 100px;
  padding: 20px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  transition:
    border-color var(--ec-duration),
    background var(--ec-duration);
}
.ec-city-area-card:hover,
.ec-city-type-card:hover {
  background: var(--ec-subtle);
  border-color: var(--ec-plum);
}
.ec-city-icon-tile {
  display: grid;
  place-items: center;
  flex: none;
  width: 44px;
  height: 44px;
  border-radius: var(--ec-radius-control);
  background: var(--ec-cream);
  color: var(--ec-plum);
}
.ec-city-area-card > span:nth-child(2) {
  flex: 1;
  min-width: 0;
}
.ec-city-area-card strong,
.ec-city-landmarks strong,
.ec-city-type-card strong {
  display: block;
  font: 700 15px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-city-area-card small,
.ec-city-landmarks small,
.ec-city-type-card small {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ec-muted);
}
.ec-city-area-card > svg {
  width: 16px;
  height: 16px;
  margin-left: auto;
  color: var(--ec-plum);
}
.ec-city-landmarks {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  overflow: hidden;
}
.ec-city-landmarks li + li {
  border-top: 1px solid var(--ec-line);
}
.ec-city-landmarks a {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 92px;
  padding: 18px 20px;
}
.ec-city-landmarks a:hover {
  background: var(--ec-subtle);
}
.ec-city-landmark-copy {
  flex: 1;
  min-width: 0;
}
.ec-city-landmark-action {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  color: var(--ec-plum);
  white-space: nowrap;
}
.ec-city-landmark-action svg {
  width: 16px;
  height: 16px;
}
.ec-city-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.ec-city-type-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  height: 100%;
  min-height: 116px;
  padding: 24px 20px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  transition:
    border-color var(--ec-duration),
    background var(--ec-duration);
}
.ec-city-type-card > svg:first-child {
  color: var(--ec-plum);
  margin-top: 2px;
  width: 24px;
  height: 24px;
}
.ec-city-type-card > span {
  flex: 1;
  min-width: 0;
}
.ec-city-type-card > svg:last-child {
  width: 16px;
  height: 16px;
  align-self: center;
}
.ec-city-stay {
  position: sticky;
  top: 176px;
  padding: 24px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-panel);
  background: var(--ec-white);
  box-shadow: var(--ec-shadow-card);
}
.ec-city-stay-status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-city-stay-status > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.ec-city-stay-status[data-live='true'] {
  color: var(--ec-success);
}
.ec-city-stay-icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--ec-cream);
  color: var(--ec-plum);
  margin-block: 24px 16px;
}
.ec-city-stay h2 {
  font-size: 24px;
  line-height: 1.35;
}
.ec-city-stay > p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--ec-muted);
  margin-top: 12px;
}
.ec-city-stay > .ec-btn {
  width: 100%;
  margin-top: 24px;
  padding-inline: 16px;
}
.ec-city-stay > .ec-city-text-link {
  width: 100%;
  margin-top: 8px;
}
.ec-city-stay > .ec-city-stay-price {
  display: grid;
  gap: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--ec-line);
  margin-top: 20px;
}
.ec-city-stay-price > span {
  font-size: 12px;
}
.ec-city-stay-price strong {
  font: 700 28px/1.3 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-city-stay-benefits {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 16px;
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-city-stay-benefits > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ec-city-stay-benefits svg {
  width: 14px;
  height: 14px;
}
.ec-city-host-link {
  display: grid;
  justify-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--ec-line);
  font-size: 12px;
  color: var(--ec-muted);
}
.ec-city-host-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-weight: 700;
  color: var(--ec-plum);
}
.ec-city-host-link a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ec-city-host-link svg {
  width: 16px;
  height: 16px;
}
.ec-city-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  gap: 64px;
  align-items: start;
}
.ec-city-faq-grid h2 {
  font-size: 32px;
  max-width: 320px;
}
.ec-city-faq-grid > div > p:not(.eyebrow) {
  max-width: 36ch;
  font-size: 14px;
  line-height: 1.8;
  color: var(--ec-muted);
  margin-top: 16px;
}
.ec-city-faq-grid .ec-city-text-link {
  margin-top: 16px;
}
.ec-city-other-cities {
  margin-bottom: 32px;
}
.ec-city-other-cities ul {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.ec-city-other-cities li a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 16px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-control);
  font-size: 13px;
}
.ec-city-other-cities li a:hover {
  border-color: var(--ec-plum);
  background: var(--ec-subtle);
}
.ec-city-other-cities li a > svg:last-child {
  margin-left: auto;
  width: 16px;
  height: 16px;
}
.ec-city-more .related-searches h2 {
  font-size: 16px;
  line-height: 1.5;
}
.ec-city-more .related-searches ul {
  margin-top: 16px;
}
.ec-city-more .web-chip,
.ec-city-more .web-chip-label {
  font-size: 12px;
}

@media (max-width: 1100px) {
  .ec-city-hero-grid,
  .ec-city-content-grid {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 32px;
  }
  .ec-city-title-lead {
    font-size: 26px;
  }
  .ec-city-title-place {
    font-size: 48px;
  }
  .ec-city-area-card {
    padding: 16px;
    gap: 12px;
  }
  .ec-city-area-card .ec-city-icon-tile {
    display: none;
  }
  .ec-city-landmark-action {
    font-size: 0;
    gap: 0;
  }
  .ec-city-type-grid {
    grid-template-columns: 1fr;
  }
  .ec-city-type-card {
    min-height: 88px;
    padding: 20px;
  }
  .ec-city-other-cities ul {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .ec-city-guide .web-section {
    padding-block: 32px;
  }
  .ec-city-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ec-city-hero-copy h1 {
    font-size: 36px;
  }
  .ec-city-title-lead {
    font-size: 25px;
  }
  .ec-city-title-place {
    font-size: 46px;
  }
  .ec-city-snapshot {
    padding: 20px;
  }
  .ec-city-snapshot h2 {
    display: none;
  }
  .ec-city-snapshot-counts {
    margin-block: 20px 16px;
  }
  .ec-city-snapshot-counts dd {
    font-size: 28px;
  }
  .ec-city-content-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ec-city-stay {
    position: static;
  }
  .ec-city-area-card .ec-city-icon-tile {
    display: grid;
  }
  .ec-city-type-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-city-faq-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .ec-city-faq-grid h2 {
    font-size: 28px;
    max-width: none;
  }
  .ec-city-homes .ec-city-section-heading {
    flex-direction: column;
    align-items: flex-start;
  }
  .ec-city-other-cities ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 590px) {
  .ec-city-navigation {
    top: 73px;
  }
  .ec-city-navigation > div {
    gap: 24px;
  }
  .ec-city-navigation a {
    min-height: 54px;
    font-size: 12px;
  }
  .ec-city-section,
  .ec-city-guide .web-section[id] {
    scroll-margin-top: 46px;
  }
  .ec-city-hero .eyebrow {
    font-size: 10px;
  }
  .ec-city-hero-description {
    font-size: 14px;
  }
  .ec-city-hero-actions {
    gap: 8px 20px;
  }
  .ec-city-section-heading {
    align-items: flex-start;
    gap: 16px;
  }
  .ec-city-section-heading h2 {
    font-size: 24px;
  }
  .ec-city-about {
    font-size: 14px;
  }
  .ec-city-practical {
    gap: 20px;
    padding: 16px;
  }
  .ec-city-practical > div {
    justify-content: flex-start;
    min-height: 0;
    padding-left: 0;
  }
  .ec-city-practical svg {
    display: none;
  }
  .ec-city-area-grid,
  .ec-city-type-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .ec-city-area-card {
    min-height: 88px;
    padding: 16px;
  }
  .ec-city-landmarks a {
    padding: 16px;
    gap: 12px;
  }
  .ec-city-landmarks strong {
    font-size: 14px;
  }
  .ec-city-landmarks .ec-city-icon-tile {
    width: 40px;
    height: 40px;
  }
  .ec-city-section + .ec-city-section {
    margin-top: 32px;
    padding-top: 32px;
  }
  .ec-city-stay {
    padding: 24px;
  }
  .ec-city-other-cities ul {
    grid-template-columns: 1fr;
  }
}

/* marketplace/comparison-tables.css */
/* Marketplace comparison tables: the wrapper owns the corners, including the caption. */
.ec-comparison-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
  margin-top: 32px;
}
.ec-comparison-grid > :only-child {
  grid-column: 1 / -1;
  width: 100%;
  max-width: 800px;
}
.ec-comparison-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
}
.ec-comparison-table {
  width: 100%;
  table-layout: fixed;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ec-ink);
  font: 400 14px/1.5 var(--ec-font-body);
  text-align: left;
}
.ec-comparison-table caption {
  padding: 20px 24px;
  background: var(--ec-white);
  color: var(--ec-plum);
  font: 700 18px/1.4 var(--ec-font-heading);
  text-align: left;
  overflow-wrap: anywhere;
}
.ec-comparison-value-column {
  width: 34%;
}
.ec-comparison-table :is(th, td) {
  height: auto;
  padding: 16px 24px;
  border: 0;
  border-top: 1px solid var(--ec-line);
  vertical-align: middle;
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
}
.ec-comparison-table thead th {
  padding-block: 12px;
  background: var(--ec-subtle);
  color: var(--ec-muted);
  font-size: 12px;
  font-weight: 600;
}
.ec-comparison-table tbody th {
  font-weight: 400;
}
.ec-comparison-table :is(th, td):last-child {
  text-align: right;
}
.ec-comparison-table td {
  color: var(--ec-plum);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.ec-comparison-table tbody tr:hover > :is(th, td) {
  background: var(--ec-cream);
}
.ec-comparison-table a {
  color: var(--ec-plum);
  text-decoration: underline;
  text-decoration-color: var(--ec-line);
  text-underline-offset: 4px;
}
.ec-comparison-table a:hover {
  text-decoration-color: currentColor;
}
.ec-comparison-table a:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
  border-radius: 2px;
}
@media (max-width: 760px) {
  .ec-comparison-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .ec-comparison-table caption {
    padding: 18px 16px;
    font-size: 16px;
  }
  .ec-comparison-table :is(th, td) {
    padding-inline: 16px;
  }
}

/* marketplace/guide-interactions.css */
/* Discovery across country, region, city, neighbourhood, landmark and campus guides. */
.ec-guide-navigation {
  position: sticky;
  top: var(--ec-guide-header, 84px);
  z-index: 15;
  border-block: 1px solid var(--ec-line);
  background: var(--ec-white);
}
.ec-guide-navigation .web-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.ec-guide-nav-links {
  display: flex;
  gap: 28px;
  overflow-x: auto;
  scrollbar-width: thin;
  min-width: 0;
}
.ec-guide-nav-links a {
  display: flex;
  align-items: center;
  flex: none;
  min-height: 56px;
  border-bottom: 2px solid transparent;
  font: 700 13px/1.5 var(--ec-font-heading);
  color: var(--ec-muted);
  white-space: nowrap;
}
.ec-guide-nav-links a[aria-current='location'] {
  border-color: var(--ec-plum);
  color: var(--ec-plum);
}
.ec-guide-nav-links a:hover {
  color: var(--ec-plum);
}
.ec-guide-navigation ~ * section[id],
.ec-city-guide section[id],
.ec-city-guide .web-section[id],
.location-page section[id],
.ec-hub-page section[id] {
  scroll-margin-top: 175px;
}
.ec-guide-controls {
  display: flex;
  align-items: end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 20px;
}
.ec-guide-controls .ec-hub-search {
  width: 320px;
  flex: 1 1 240px;
}
.ec-guide-control-right {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}
.ec-guide-controls .ec-app-select {
  min-width: 180px;
}
.ec-guide-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.ec-guide-chips button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-pill);
  background: var(--ec-white);
  color: var(--ec-muted);
  font: 700 12px/1.4 var(--ec-font-heading);
  transition:
    background var(--ec-duration),
    border-color var(--ec-duration);
}
.ec-guide-chips button[aria-pressed='true'] {
  background: var(--ec-plum);
  color: var(--ec-white);
  border-color: var(--ec-plum);
}
.ec-guide-chips button:hover {
  border-color: var(--ec-plum);
}
.ec-guide-chips small {
  font: 400 11px/1.3 var(--ec-font-body);
  opacity: 0.8;
}
.ec-guide-place-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-guide-place-grid > li {
  min-width: 0;
}
.ec-guide-place-card {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  min-height: 92px;
  padding: 18px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
  transition:
    background var(--ec-duration),
    border-color var(--ec-duration);
}
.ec-guide-place-card:hover {
  border-color: var(--ec-mauve);
  background: var(--ec-cream);
}
.ec-guide-place-card svg {
  width: 18px;
  height: 18px;
  flex: none;
}
.ec-guide-place-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 12px;
  color: var(--ec-plum);
  background: var(--ec-cream);
}
.ec-guide-place-copy {
  min-width: 0;
  flex: 1;
}
.ec-guide-place-copy strong {
  display: block;
  font: 700 14px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
  overflow-wrap: anywhere;
}
.ec-guide-place-copy small {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  color: var(--ec-muted);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.ec-guide-place-card > svg {
  color: var(--ec-plum);
}
.ec-guide-more {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}
.ec-guide-more button svg {
  width: 18px;
  height: 18px;
}
.ec-guide-more button[aria-expanded='true'] svg {
  transform: rotate(180deg);
}
.ec-guide-homes .listing-grid {
  align-items: stretch;
}
.ec-guide-homes .listing-grid > div {
  min-width: 0;
}
.ec-guide-homes .ec-discovery-card,
.ec-guide-homes .ec-home-card,
.ec-guide-homes .ec-home-card > a {
  height: 100%;
}
.ec-guide-homes .ec-home-card > a {
  display: flex;
  flex-direction: column;
}
.ec-guide-homes .ec-home-copy {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.ec-guide-homes .ec-home-price {
  margin-top: auto;
}
.ec-guide-result-note {
  margin-bottom: 18px;
  color: var(--ec-muted);
  font-size: 12px;
}
.ec-guide-summary {
  margin-bottom: 20px;
}
.ec-guide-summary p {
  color: var(--ec-muted);
  font-size: 15px;
  line-height: 1.85;
}
.ec-guide-summary button {
  border: 0;
  background: transparent;
  color: var(--ec-plum);
  font: 700 12px/1.5 var(--ec-font-heading);
  text-decoration: underline;
  text-underline-offset: 4px;
  padding: 10px 0;
  min-height: 44px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.ec-guide-summary button svg {
  width: 16px;
  height: 16px;
}
.ec-guide-summary [data-collapsed='true'] {
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ec-city-guide .ec-city-hero-grid {
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 72px;
}
.ec-city-guide .ec-city-title-lead {
  font-size: 22px;
  line-height: 1.5;
  letter-spacing: -0.025em;
}
.ec-city-guide .ec-city-title-place {
  font-size: clamp(38px, 4vw, 56px);
  line-height: 1.14;
}
.ec-city-guide .ec-city-content-grid {
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 48px;
}
.ec-city-guide .ec-city-snapshot {
  padding: 28px;
}
.ec-city-guide .ec-city-stay {
  top: 172px;
}
.ec-city-guide .ec-city-homes {
  border-bottom: 1px solid var(--ec-line);
}
.ec-guide-location .location-hero {
  padding-top: 24px;
  padding-bottom: 40px;
}
.ec-guide-location .location-hero-grid {
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 64px;
  align-items: center;
}
.ec-guide-location h1 {
  font-size: clamp(32px, 3.2vw, 44px);
  line-height: 1.2;
}
.ec-guide-location .ec-hub-title-place {
  font-size: clamp(32px, 3.2vw, 44px);
  line-height: 1.2;
}
.ec-guide-location .ec-hub-title-lead {
  font-size: 20px;
}
.ec-guide-location .ec-guide-summary {
  max-width: 850px;
  margin-top: 16px;
}
.ec-guide-location .location-next {
  background: var(--ec-cream);
  padding: 28px;
}
.ec-guide-location .location-description {
  font-size: 15px;
  line-height: 1.8;
}
.ec-guide-location .location-facts {
  gap: 20px 28px;
}
.ec-guide-location .location-facts > div {
  min-width: 0;
}
.ec-guide-location .location-facts dt {
  font-size: 11px;
}
.ec-guide-location .location-facts dd {
  font-size: 20px;
}
.ec-guide-directory-stack {
  display: grid;
  gap: 36px;
}
.ec-guide-directory-stack > section > h3 {
  margin-bottom: 18px;
  font-size: 20px;
}
.ec-campus-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 32px;
  margin: 24px 0;
}
.ec-campus-overview dt {
  font-size: 11px;
  color: var(--ec-muted);
}
.ec-campus-overview dd {
  margin: 5px 0 0;
  color: var(--ec-plum);
  font: 700 24px/1.3 var(--ec-font-heading);
}
.ec-campus-directory .ec-guide-place-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ec-campus-directory .ec-guide-place-copy strong {
  font-size: 15px;
}
@media (max-width: 1100px) {
  .ec-city-guide .ec-city-hero-grid,
  .ec-guide-location .location-hero-grid {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 32px;
  }
  .ec-city-guide .ec-city-content-grid {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 32px;
  }
  .ec-guide-place-grid {
    grid-template-columns: 1fr;
  }
  .ec-campus-directory .ec-guide-place-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 800px) {
  .ec-city-guide .ec-city-hero-grid,
  .ec-city-guide .ec-city-content-grid,
  .ec-guide-location .location-hero-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .ec-city-guide .ec-city-title-lead {
    font-size: 19px;
  }
  .ec-city-guide .ec-city-title-place {
    font-size: 40px;
  }
  .ec-guide-nav-links {
    gap: 24px;
  }
  .ec-guide-nav-links a {
    font-size: 12px;
    min-height: 52px;
  }
  .ec-guide-place-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-guide-chips button {
    min-height: 44px;
  }
  .ec-city-guide .ec-city-stay {
    position: static;
  }
}
@media (max-width: 540px) {
  .ec-campus-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
  .ec-campus-overview dd {
    font-size: 20px;
  }
  .ec-guide-place-grid,
  .ec-campus-directory .ec-guide-place-grid {
    grid-template-columns: 1fr;
  }
  .ec-guide-place-card {
    min-height: 88px;
    padding: 16px;
  }
  .ec-guide-controls {
    align-items: stretch;
  }
  .ec-guide-controls .ec-hub-search {
    flex-basis: 100%;
  }
  .ec-guide-control-right {
    width: 100%;
    justify-content: space-between;
  }
  .ec-guide-controls .ec-app-select {
    min-width: 180px;
    flex: 1;
  }
  .ec-city-guide .ec-city-title-lead {
    font-size: 17px;
  }
  .ec-city-guide .ec-city-title-place {
    font-size: 36px;
  }
  .ec-city-guide .ec-city-snapshot,
  .ec-guide-location .location-next {
    padding: 20px;
  }
  .ec-guide-summary p {
    font-size: 14px;
  }
  .ec-guide-navigation ~ * section[id],
  .ec-city-guide section[id],
  .ec-city-guide .web-section[id],
  .location-page section[id],
  .ec-hub-page section[id] {
    scroll-margin-top: 150px;
  }
}
/* Avoid double offsets from the legacy marketplace anchor padding. */
html:has(.ec-guide-navigation) {
  scroll-padding-top: 0;
}
.ec-guide-pagination {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  border-top: 1px solid var(--ec-line);
  margin-top: 28px;
  padding-top: 24px;
}
.ec-guide-pagination span {
  font-size: 12px;
  color: var(--ec-muted);
}
.ec-guide-pagination button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
/* Reference-page framing shares the marketplace's tokens and never enters app flows. */
.ec-guide-preview-footer {
  padding: 40px 0;
  background: var(--ec-cream);
  border-top: 1px solid var(--ec-line);
}
.ec-guide-preview-footer p {
  font: 700 20px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-guide-preview-footer nav {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin: 20px 0;
}
.ec-guide-preview-footer a {
  font-size: 13px;
  color: var(--ec-plum);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ec-guide-preview-footer small {
  color: var(--ec-muted);
}
.ec-preview-header .nav-wrap {
  gap: 20px;
}
@media (max-width: 600px) {
  .ec-preview-header .ec-badge {
    display: none;
  }
}

/* marketplace/destination-visuals.css */
/* Image-led destination pages. Canonical Easycoliv marketplace recipe. */
.ec-visual-guide h1.ec-location-title {
  margin: 0;
  max-width: 24ch;
  color: var(--ec-page-title-ink);
  font: var(--ec-page-title-font);
  letter-spacing: var(--ec-page-title-tracking);
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.ec-guide-location .ec-hub-description {
  margin: 20px 0 0;
  color: var(--ec-muted);
}
.ec-location-overview { margin-top: 16px; }
.ec-location-overview summary {
  width: fit-content;
  cursor: pointer;
  color: var(--ec-plum);
  font-size: 14px;
  text-underline-offset: 4px;
}
.ec-location-overview summary:hover { text-decoration: underline; }
.ec-location-overview summary:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 4px;
  border-radius: 4px;
}
.ec-location-overview > p {
  margin: 12px 0 0;
  color: var(--ec-muted);
  font-size: 14px;
  line-height: 1.7;
}
.ec-visual-guide .ec-hub-hero-grid,
.ec-visual-guide .ec-city-hero-grid,
.ec-visual-guide .location-hero-grid {
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 52px;
  align-items: center;
}
.ec-visual-guide .ec-hub-hero,
.ec-visual-guide .ec-city-hero {
  padding-bottom: 48px;
}
.ec-visual-guide .ec-hub-title-place,
.ec-visual-guide .ec-city-title-place {
  font-size: clamp(38px, 4.6vw, 64px);
  line-height: 1.12;
}
.ec-visual-guide.ec-guide-location .ec-hub-title-place {
  font-size: clamp(30px, 3.4vw, 44px);
}
.ec-visual-guide .ec-hub-description,
.ec-visual-guide .ec-city-hero-description {
  font-size: 15px;
  max-width: 46ch;
  line-height: 1.75;
}
.ec-visual-guide .ec-hub-title-lead,
.ec-visual-guide .ec-city-title-lead {
  font-size: 18px;
  line-height: 1.5;
}
.ec-visual-quick-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 28px;
  margin: 28px 0 0;
}
.ec-visual-quick-facts > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 4px;
  min-width: 0;
}
.ec-visual-quick-facts dd {
  margin: 0;
  font: 700 21px/1.3 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-visual-quick-facts dt {
  font-size: 11px;
  color: var(--ec-muted);
}
.ec-visual-guide .ec-hub-availability {
  border: 0;
  padding: 0;
  margin-top: 22px;
  max-width: 48ch;
  font-size: 11px;
}
.ec-destination-visual {
  min-width: 0;
}
.ec-place-mosaic {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  height: 410px;
}
.ec-place-mosaic figure {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  margin: 0;
  min-height: 0;
  background: var(--ec-cream);
}
.ec-place-mosaic figure::after {
  content: '';
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgb(25 18 24 / 65%));
  pointer-events: none;
}
.ec-place-mosaic figure > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ec-place-mosaic figcaption {
  position: absolute;
  bottom: 20px;
  left: 22px;
  right: 20px;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--ec-white);
  font: 700 13px/1.5 var(--ec-font-heading);
}
.ec-place-mosaic figcaption svg {
  width: 16px;
  height: 16px;
}
.ec-place-stamp {
  position: absolute;
  top: -14px;
  right: 18px;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 17px 20px;
  border-radius: 16px;
  background: var(--ec-cream);
  color: var(--ec-plum);
  font-size: 12px;
  line-height: 1.55;
  transform: rotate(5deg);
  box-shadow: 0 3px 16px rgb(72 33 63 / 8%);
  z-index: 2;
}
.ec-place-stamp svg {
  width: 24px;
  height: 24px;
  margin-top: 5px;
}
.ec-place-art {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 160px;
  background: var(--ec-cream);
  color: var(--ec-mauve);
  border-radius: inherit;
  overflow: hidden;
}
.ec-place-art > svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ec-place-sun {
  fill: var(--ec-apricot);
}
.ec-place-land {
  fill: var(--ec-lilac);
}
.ec-place-art > span {
  position: absolute;
  left: 20px;
  top: 25px;
  right: 85px;
  color: var(--ec-plum);
  font: 700 20px/1.4 var(--ec-font-heading);
}
.ec-place-art > img {
  position: absolute;
  right: 20px;
  top: 25px;
  width: 36px;
  height: 27px;
  border-radius: 4px;
  object-fit: cover;
}
.ec-place-mosaic > .ec-place-art {
  border-radius: 22px;
}
.ec-place-mosaic > .ec-place-art > span {
  font-size: 32px;
  top: 50px;
}
.ec-place-mosaic > .ec-place-art > img {
  top: auto;
  bottom: 24px;
}
.ec-place-credits {
  color: var(--ec-muted);
  font-size: 11px;
  margin-top: 24px;
}
.ec-place-credits summary {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  min-height: 40px;
  width: fit-content;
}
.ec-place-credits summary svg {
  width: 14px;
  height: 14px;
}
.ec-place-credits ul {
  margin: 10px 0 0;
  padding-left: 18px;
  line-height: 1.8;
}
.ec-place-credits a {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-visual-photo-notes.web-section {
  padding-block: 0 20px;
}
.ec-visual-country-card.ec-hub-country-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: var(--ec-radius-card);
}
.ec-destination-card-photo {
  display: block;
  position: relative;
  width: 100%;
  height: 172px;
  overflow: hidden;
  background: var(--ec-cream);
}
.ec-destination-card-photo > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
  border-radius: 0;
}
.ec-destination-card-photo > small {
  position: absolute;
  bottom: 12px;
  left: 12px;
  color: var(--ec-plum);
  background: var(--ec-white);
  border-radius: var(--ec-radius-pill);
  padding: 4px 10px;
  font-size: 10px;
}
.ec-visual-country-card:hover .ec-destination-card-photo > img,
.ec-visual-city-card:hover .ec-destination-card-photo > img {
  transform: scale(1.04);
}
.ec-visual-country-body {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 18px;
  width: 100%;
}
.ec-visual-country-body > img {
  width: 28px;
  height: 21px;
  border-radius: 3px;
  object-fit: cover;
}
.ec-visual-country-body .ec-hub-country-copy {
  flex: 1;
  min-width: 0;
}
.ec-visual-country-body .ec-hub-country-copy strong {
  font-size: 16px;
}
.ec-visual-country-body .ec-hub-country-copy small {
  font-size: 11px;
}
.ec-visual-country-body .ec-hub-card-arrow {
  width: 34px;
  height: 34px;
}
.ec-visual-city-card.ec-hub-city-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 0;
  height: 100%;
}
.ec-visual-city-body {
  padding: 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.ec-visual-city-body .ec-hub-city-top {
  margin-bottom: 14px;
}
.ec-visual-city-body .ec-hub-city-icon {
  display: none;
}
.ec-visual-city-body .ec-hub-city-top {
  justify-content: start;
}
.ec-visual-city-body > p {
  margin-bottom: 20px;
}
.ec-visual-city-body .ec-hub-city-foot {
  margin-top: auto;
  padding-top: 18px;
}
.ec-visual-guide .ec-hub-city-grid[data-single='true'] {
  grid-template-columns: minmax(0, 1fr);
}
.ec-hub-city-grid[data-single='true'] .ec-visual-city-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.ec-hub-city-grid[data-single='true'] .ec-destination-card-photo {
  min-height: 0;
  height: 300px;
}
.ec-hub-city-grid[data-single='true'] .ec-visual-city-body {
  padding: 36px;
  justify-content: center;
}
.ec-hub-city-grid[data-single='true'] .ec-visual-city-body h3 {
  font-size: 28px;
  margin-bottom: 12px;
}
.ec-hub-city-grid[data-single='true'] .ec-visual-city-body .ec-hub-city-foot {
  margin-top: 22px;
  border-top: 1px solid var(--ec-line);
  padding-top: 18px;
}
.ec-visual-reading {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  margin-top: 32px;
  background: var(--ec-white);
  overflow: hidden;
}
.ec-visual-reading > summary {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  cursor: pointer;
  font: 700 14px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-visual-reading > summary::-webkit-details-marker {
  display: none;
}
.ec-visual-reading > summary svg {
  width: 18px;
  height: 18px;
  flex: none;
}
.ec-visual-reading[open] > summary svg {
  transform: rotate(180deg);
}
.ec-visual-reading-body {
  padding: 0 24px 24px;
  font-size: 14px;
  color: var(--ec-muted);
  line-height: 1.8;
}
.ec-visual-reading .ec-comparison-grid {
  padding: 0 24px 24px;
  margin-top: 0;
}
.ec-city-stay.ec-visual-stay {
  padding: 0;
  overflow: hidden;
}
.ec-visual-stay > img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.ec-visual-stay-copy {
  padding: 26px;
}
.ec-visual-stay-copy h2 {
  font-size: 24px;
  line-height: 1.35;
}
.ec-visual-stay-copy > p:not(.eyebrow) {
  margin: 14px 0 22px;
}
.ec-visual-stay-copy > small {
  display: block;
  margin-top: 15px;
  font-size: 10px;
  color: var(--ec-muted);
}
.ec-visual-guide .ec-city-type-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  align-items: stretch;
  gap: 0;
  height: 100%;
}
.ec-type-photo {
  position: relative;
  width: 100%;
}
.ec-type-photo img {
  width: 100%;
  height: 170px;
  object-fit: cover;
}
.ec-type-photo > span {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: var(--ec-white);
  border-radius: var(--ec-radius-pill);
  color: var(--ec-plum);
  padding: 4px 10px;
  font-size: 10px;
}
.ec-visual-guide .ec-city-type-card > span {
  padding: 20px 54px 22px 20px;
}
.ec-visual-guide .ec-city-type-card {
  position: relative;
}
.ec-visual-guide .ec-city-type-card > svg {
  position: absolute;
  bottom: 26px;
  right: 20px;
}
@media (prefers-reduced-motion: reduce) {
  .ec-destination-card-photo > img {
    transition: none;
  }
}
@media (max-width: 1000px) {
  .ec-visual-guide .ec-hub-hero-grid,
  .ec-visual-guide .ec-city-hero-grid,
  .ec-visual-guide .location-hero-grid {
    gap: 30px;
    grid-template-columns: 1fr 1fr;
  }
  .ec-place-mosaic {
    height: 380px;
  }
  .ec-visual-quick-facts {
    gap: 16px;
  }
}
@media (max-width: 800px) {
  .ec-visual-guide .ec-hub-hero-grid,
  .ec-visual-guide .ec-city-hero-grid,
  .ec-visual-guide .location-hero-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .ec-place-mosaic {
    height: 350px;
  }
  .ec-visual-guide .ec-hub-description,
  .ec-visual-guide .ec-city-hero-description {
    max-width: 55ch;
  }
  .ec-visual-stay {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .ec-visual-stay > img {
    height: 100%;
  }
}
@media (max-width: 540px) {
  .ec-visual-guide .ec-destination-visual {
    grid-row: 1;
  }
  .ec-visual-guide.ec-guide-location .ec-hub-title-place {
    font-size: 32px;
  }
  .ec-visual-guide .ec-hub-title-place,
  .ec-visual-guide .ec-city-title-place {
    font-size: 40px;
  }
  .ec-visual-guide .ec-hub-title-lead,
  .ec-visual-guide .ec-city-title-lead {
    font-size: 16px;
  }
  .ec-place-mosaic {
    height: 230px;
  }
  .ec-place-stamp {
    font-size: 10px;
    padding: 12px 15px;
    right: 12px;
  }
  .ec-place-mosaic figcaption {
    font-size: 11px;
    bottom: 14px;
    left: 16px;
  }
  .ec-visual-quick-facts {
    gap: 14px 26px;
  }
  .ec-visual-quick-facts dd {
    font-size: 20px;
  }
  .ec-hub-city-grid[data-single='true'] .ec-visual-city-card {
    display: flex;
  }
  .ec-hub-city-grid[data-single='true'] .ec-destination-card-photo {
    min-height: 0;
    height: 200px;
  }
  .ec-hub-city-grid[data-single='true'] .ec-visual-city-body {
    padding: 22px;
  }
  .ec-visual-stay {
    display: block;
  }
  .ec-visual-stay > img {
    max-height: 230px;
  }
  .ec-visual-guide .ec-city-type-grid {
    grid-template-columns: 1fr;
  }
}

/* Country and city heroes: one destination, one action, one unadorned photograph. */
.ec-destination-page :is(.ec-hub-hero-grid, .ec-city-hero-grid) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: var(--ec-space-16);
}
.ec-destination-page :is(.ec-hub-title-lead, .ec-city-title-lead) {
  margin: 0 0 var(--ec-space-3);
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--ec-muted);
}
.ec-destination-page :is(.ec-hub-title-place, .ec-city-title-place) {
  display: block;
  margin: 0;
  font-size: clamp(36px, 3.8vw, 48px);
  line-height: 1.15;
  letter-spacing: -0.04em;
  text-wrap: balance;
  color: var(--ec-plum);
}
.ec-destination-page :is(.ec-hub-description, .ec-city-hero-description) {
  margin-top: var(--ec-space-6);
  max-width: 42ch;
}
.ec-destination-page :is(.ec-hub-actions, .ec-city-hero-actions) {
  margin-top: var(--ec-space-6);
}
.ec-destination-status {
  margin-top: var(--ec-space-4);
  font-size: 12px;
  line-height: 1.6;
  color: var(--ec-muted);
}
.ec-destination-page .ec-destination-visual {
  grid-row: auto;
}
.ec-destination-page .ec-place-mosaic {
  display: block;
  height: auto;
}
.ec-destination-page .ec-place-mosaic figure {
  background: transparent;
  border-radius: 0;
}
.ec-destination-page .ec-place-mosaic figure > img,
.ec-destination-page .ec-place-mosaic > .ec-place-art {
  display: block;
  height: 340px;
  border-radius: var(--ec-radius-panel);
}
.ec-destination-page .ec-place-mosaic figure::after,
.ec-destination-page .ec-place-stamp {
  display: none;
}
.ec-destination-page .ec-place-mosaic figcaption {
  position: static;
  margin-top: var(--ec-space-3);
  color: var(--ec-muted);
  font-size: 11px;
  font-weight: 400;
}
.ec-destination-page .ec-visual-reading .ec-hub-local-facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--ec-space-6);
  margin-top: var(--ec-space-6);
}
@media (max-width: 1000px) {
  .ec-destination-page :is(.ec-hub-hero-grid, .ec-city-hero-grid) {
    gap: var(--ec-space-8);
  }
}
@media (max-width: 800px) {
  .ec-destination-page :is(.ec-hub-hero-grid, .ec-city-hero-grid) {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ec-space-8);
  }
  .ec-destination-page .ec-place-mosaic figure > img,
  .ec-destination-page .ec-place-mosaic > .ec-place-art {
    height: 280px;
  }
}
@media (max-width: 540px) {
  .ec-destination-page :is(.ec-hub-title-lead, .ec-city-title-lead) {
    font-size: 14px;
  }
  .ec-destination-page :is(.ec-hub-description, .ec-city-hero-description) {
    margin-top: var(--ec-space-4);
    font-size: 14px;
  }
  .ec-destination-page .ec-place-mosaic figure > img,
  .ec-destination-page .ec-place-mosaic > .ec-place-art {
    height: 210px;
  }
}

/* Hero details (user decision, 9 Oct 2026): every inner place hero shows only its H1, one short description and the
   photo. The facts, status lines, actions and update date it used to carry sit in this slim row directly under it. */
.marketplace-page :is(.ec-city-hero, .ec-hub-hero, .location-hero, .ec-destinations-hero):has(+ .ec-hero-details) {
  padding-bottom: var(--ec-space-8);
}
:is(.ec-city-hero, .ec-hub-hero, .location-hero) .ec-place-stamp {
  display: none;
}
.ec-hero-details {
  padding-block: var(--ec-space-4) var(--ec-space-6);
  border-top: 1px solid var(--ec-line);
}
.ec-hero-details-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--ec-space-4) var(--ec-space-8);
}
.ec-hero-details-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ec-space-3) var(--ec-space-8);
  min-width: 0;
}
.ec-hero-facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ec-space-3) var(--ec-space-8);
  margin: 0;
}
.ec-hero-facts > div {
  display: flex;
  flex-direction: column-reverse;
  gap: 2px;
  min-width: 0;
}
.ec-hero-facts dt {
  color: var(--ec-muted);
  font-size: 11px;
  line-height: 1.5;
}
.ec-hero-facts dd {
  margin: 0;
  color: var(--ec-plum);
  font: 700 18px/1.3 var(--ec-font-heading);
  overflow-wrap: anywhere;
}
.ec-hero-details :is(.ec-hero-details-status, .ec-hub-availability, .ec-hero-details-updated) {
  max-width: 48ch;
  margin: 0;
  padding: 0;
  border: 0;
  color: var(--ec-muted);
  font-size: 12px;
  line-height: 1.6;
}
.ec-hero-details .ec-hub-availability[data-live='true'] {
  color: var(--ec-success);
}
ul.ec-hero-details-status {
  display: grid;
  gap: var(--ec-space-1);
  list-style: none;
}
.ec-hero-details-status li {
  display: flex;
  align-items: center;
  gap: var(--ec-space-2);
}
.ec-hero-details-status svg {
  width: 16px;
  height: 16px;
  flex: none;
}
.ec-hero-details-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ec-space-2) var(--ec-space-6);
  min-width: 0;
}
.ec-hero-details-actions .ec-btn {
  max-width: 100%;
  white-space: normal;
  text-align: center;
}
.ec-hero-details > :not(.ec-hero-details-row):first-child {
  margin-top: 0;
}
@media (max-width: 540px) {
  .marketplace-page :is(.ec-city-hero, .ec-hub-hero, .location-hero, .ec-destinations-hero):has(+ .ec-hero-details) {
    padding-bottom: var(--ec-space-6);
  }
  .ec-hero-details-row,
  .ec-hero-details-info {
    gap: var(--ec-space-3) var(--ec-space-6);
  }
  .ec-hero-facts {
    gap: var(--ec-space-3) var(--ec-space-6);
  }
  .ec-hero-facts dd {
    font-size: 16px;
  }
}

/* marketplace/host-acquisition.css */
/* Host acquisition: canonical marketplace composition, using Easycoliv foundations. */
.ec-host-page {
  color: var(--ec-ink);
  background: var(--ec-white);
}
.ec-host-page section[id] {
  scroll-margin-top: calc(var(--ec-header) + 24px);
}
.ec-host-wrap {
  width: min(1200px, calc(100% - 96px));
  margin-inline: auto;
}
.ec-host-page h1,
.ec-host-page h2,
.ec-host-page h3 {
  font-family: var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-host-page p {
  margin: 0;
}
.ec-host-page svg {
  flex: none;
  width: 22px;
  height: 22px;
}
.ec-host-page .ec-host-eyebrow {
  color: var(--ec-plum);
  font: 700 10px/1.7 var(--ec-font-heading);
  letter-spacing: 0.12em;
}
.ec-host-page .ec-host-primary {
  color: var(--ec-plum);
  background: var(--ec-apricot);
  border-color: var(--ec-apricot);
}
.ec-host-page .ec-host-primary:hover {
  background: var(--ec-cream);
  border-color: var(--ec-plum);
}
.ec-host-text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: var(--ec-touch-target);
  color: var(--ec-plum);
  font: 700 13px/1.5 var(--ec-font-heading);
  text-decoration: none;
}
.ec-host-text-link:hover {
  text-decoration: underline;
  text-underline-offset: 5px;
}
.ec-host-text-link svg {
  width: 18px;
  height: 18px;
}
.ec-host-page a:focus-visible,
.ec-host-page summary:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 5px;
  border-radius: 4px;
}
.ec-host-hero {
  background: var(--ec-cream);
  padding: 24px 0 64px;
}
.ec-host-hero .breadcrumbs {
  margin: 0 0 34px;
}
.ec-host-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 64px;
  align-items: center;
}
.ec-host-hero h1 {
  font-size: clamp(40px, 4.5vw, 62px);
  line-height: 1.12;
  letter-spacing: -0.045em;
  margin: 20px 0 24px;
}
.ec-host-hero h1 > span {
  display: block;
}
.ec-host-hero h1 .ec-host-search-title {
  font-size: 13px;
  line-height: 1.7;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 17px;
}
.ec-host-hero h1 .ec-host-title-accent {
  color: var(--ec-mauve);
}
.ec-host-hero-description {
  color: var(--ec-muted);
  font-size: 15px;
  line-height: 1.85;
  max-width: 49ch;
}
.ec-host-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 26px;
  margin-top: 30px;
}
.ec-host-hero-actions .ec-btn {
  min-height: 52px;
}
.ec-host-hero-offer {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  margin-top: 26px;
  color: var(--ec-plum);
  font-size: 12px;
  line-height: 1.6;
}
.ec-host-hero-offer svg {
  width: 17px;
  height: 17px;
  margin-top: 1px;
}
.ec-host-hero-offer strong {
  font-weight: 600;
}
.ec-host-hero-offer small {
  display: block;
  margin-top: 4px;
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-host-hero-visual {
  position: relative;
  min-width: 0;
  margin: 0;
}
.ec-host-hero-photo {
  overflow: hidden;
  border-radius: var(--ec-radius-panel);
  position: relative;
}
.ec-host-hero-photo > img {
  width: 100%;
  height: 408px;
  object-fit: cover;
  object-position: center 52%;
  display: block;
}
.ec-host-hero-photo-label {
  position: absolute;
  left: 20px;
  top: 20px;
  background: var(--ec-cream);
  color: var(--ec-plum);
  padding: 8px 12px;
  border-radius: var(--ec-radius-pill);
  font: 700 9px/1.5 var(--ec-font-heading);
  letter-spacing: 0.05em;
}
.ec-host-hero-photo-caption {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 23px 26px;
  background: var(--ec-plum);
  color: var(--ec-cream);
}
.ec-host-hero-photo-caption strong {
  display: block;
  font: 700 22px/1.4 var(--ec-font-heading);
  letter-spacing: -0.02em;
}
.ec-host-hero-photo-caption span {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  color: var(--ec-cream);
}
.ec-host-hero-photo-caption > svg {
  color: var(--ec-apricot);
  width: 30px;
  height: 30px;
}
.ec-host-hero-visual figcaption {
  margin-top: 9px;
  color: var(--ec-muted);
  font-size: 10px;
  text-align: right;
}
.ec-host-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
  padding-block: 32px;
  border-bottom: 1px solid var(--ec-line);
}
.ec-host-value {
  display: flex;
  align-items: center;
  gap: 16px;
}
.ec-host-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: none;
  border-radius: var(--ec-radius-control);
  color: var(--ec-plum);
  background: var(--ec-cream);
}
.ec-host-value h2 {
  font-size: 13px;
  line-height: 1.5;
  margin: 0 0 5px;
}
.ec-host-value p {
  color: var(--ec-muted);
  font-size: 11px;
  line-height: 1.7;
}
.ec-host-section {
  padding-block: 80px;
}
.ec-host-page .ec-host-heading {
  font-size: clamp(29px, 3.1vw, 42px);
  line-height: 1.22;
  letter-spacing: -0.04em;
  margin: 14px 0 20px;
}
.ec-host-heading > span {
  display: block;
}
.ec-host-section-description {
  color: var(--ec-muted);
  font-size: 14px;
  line-height: 1.85;
  max-width: 48ch;
}
.ec-host-benefits {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 92px;
  align-items: start;
}
.ec-host-page .ec-host-audiences {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  gap: 8px;
  margin: 24px 0 0;
}
.ec-host-page .ec-host-audiences li {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-pill);
  padding: 7px 11px;
  color: var(--ec-muted);
  font-size: 10px;
  line-height: 1.5;
}
.ec-host-benefit {
  padding: 25px 0;
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 20px;
  border-bottom: 1px solid var(--ec-line);
}
.ec-host-benefit:first-child {
  padding-top: 5px;
}
.ec-host-benefit > svg {
  margin-top: 3px;
  color: var(--ec-mauve);
}
.ec-host-benefit h3 {
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.5;
  letter-spacing: -0.02em;
}
.ec-host-benefit p {
  color: var(--ec-muted);
  font-size: 13px;
  line-height: 1.85;
}
.ec-host-start {
  background: var(--ec-subtle);
}
.ec-host-section-top {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: end;
}
.ec-host-section-top .ec-host-heading {
  margin-bottom: 0;
  max-width: 19ch;
}
.ec-host-section-top > p {
  max-width: 34ch;
}
.ec-host-page .ec-host-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
  gap: 40px;
  margin: 40px 0 0;
  padding: 0;
}
.ec-host-page .ec-host-steps li {
  border-top: 1px solid var(--ec-border);
  padding-top: 22px;
}
.ec-host-step-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 22px;
  color: var(--ec-mauve);
}
.ec-host-step-number {
  font: 700 36px/1 var(--ec-font-heading);
  letter-spacing: -0.05em;
}
.ec-host-page .ec-host-steps h3 {
  margin: 0 0 12px;
  font-size: 19px;
  line-height: 1.4;
  letter-spacing: -0.025em;
}
.ec-host-page .ec-host-steps p {
  color: var(--ec-muted);
  font-size: 13px;
  line-height: 1.85;
}
.ec-host-checklist {
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid var(--ec-line);
  display: flex;
  flex-wrap: wrap;
  gap: 14px 26px;
  align-items: center;
}
.ec-host-checklist > p {
  color: var(--ec-plum);
  font: 700 12px/1.5 var(--ec-font-heading);
}
.ec-host-checklist ul {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  gap: 12px 22px;
  margin: 0;
  padding: 0;
}
.ec-host-checklist li {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-host-checklist svg {
  width: 15px;
  height: 15px;
  color: var(--ec-plum);
}
.ec-host-offer {
  margin-block: 72px 0;
  border-radius: var(--ec-radius-panel);
  background: var(--ec-plum);
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 70px;
  padding: 48px 52px;
}
.ec-host-offer .ec-host-eyebrow,
.ec-host-offer .ec-host-heading {
  color: var(--ec-cream);
}
.ec-host-offer .ec-host-heading {
  margin-bottom: 18px;
}
.ec-host-offer .ec-host-heading > span:last-child {
  color: var(--ec-apricot);
}
.ec-host-offer p {
  color: var(--ec-cream);
  font-size: 13px;
  line-height: 1.85;
}
.ec-host-offer-details {
  padding-top: 4px;
}
.ec-host-page .ec-host-offer-features {
  margin: 0 0 24px;
  list-style: none;
  padding: 0;
  display: grid;
  gap: 12px;
}
.ec-host-page .ec-host-offer-features li {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 13px;
  color: var(--ec-cream);
}
.ec-host-page .ec-host-offer-features svg {
  color: var(--ec-apricot);
  width: 18px;
  height: 18px;
}
.ec-host-offer .ec-host-offer-after {
  margin-top: 20px;
  font-size: 11px;
}
.ec-host-offer .ec-host-text-link {
  color: var(--ec-apricot);
  font-size: 11px;
  margin-top: 4px;
}
.ec-host-offer a:focus-visible {
  outline-color: var(--ec-apricot);
}
.ec-host-faq {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 100px;
}
.ec-host-faq-list details {
  border-bottom: 1px solid var(--ec-line);
}
.ec-host-faq-list details:first-child {
  border-top: 1px solid var(--ec-line);
}
.ec-host-faq-list summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
  padding: 22px 0;
  font: 700 14px/1.5 var(--ec-font-heading);
  color: var(--ec-plum);
}
.ec-host-faq-list summary::-webkit-details-marker {
  display: none;
}
.ec-host-faq-list summary > svg {
  width: 18px;
  height: 18px;
  transition: transform var(--ec-duration) var(--ec-ease);
}
.ec-host-faq-list details[open] summary > svg {
  transform: rotate(45deg);
}
.ec-host-faq-list details > p {
  color: var(--ec-muted);
  font-size: 13px;
  line-height: 1.85;
  padding: 0 36px 24px 0;
}
.ec-host-closing {
  background: var(--ec-cream);
  padding-block: 46px;
}
.ec-host-closing-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 36px;
}
.ec-host-closing .ec-host-heading {
  font-size: clamp(25px, 2.7vw, 36px);
  margin: 0 0 10px;
}
.ec-host-closing p {
  color: var(--ec-muted);
  font-size: 13px;
  line-height: 1.8;
}
.ec-host-closing-actions {
  flex-shrink: 0;
}
.ec-host-login {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-top: 22px;
  color: var(--ec-muted);
  font-size: 11px;
}
.ec-host-login a {
  color: var(--ec-plum);
  display: inline-flex;
  align-items: center;
  min-height: var(--ec-touch-target);
  font-weight: 700;
  text-underline-offset: 4px;
}
.ec-host-resources {
  padding-block: 32px 42px;
}
.ec-host-resources h2 {
  font: 700 12px/1.6 var(--ec-font-heading);
  margin: 0 0 12px;
}
.ec-host-resources ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ec-host-resources a {
  display: inline-flex;
  align-items: center;
  min-height: var(--ec-touch-target);
  font-size: 11px;
  color: var(--ec-muted);
  text-decoration: none;
}
.ec-host-resources a:hover {
  color: var(--ec-plum);
  text-decoration: underline;
  text-underline-offset: 4px;
}
@media (max-width: 1050px) {
  .ec-host-wrap {
    width: calc(100% - 64px);
  }
  .ec-host-hero-grid {
    gap: 36px;
  }
  .ec-host-hero-photo > img {
    height: 365px;
  }
  .ec-host-hero h1 {
    font-size: 46px;
  }
  .ec-host-values {
    gap: 20px;
  }
  .ec-host-value {
    gap: 10px;
    align-items: start;
  }
  .ec-host-benefits,
  .ec-host-faq {
    gap: 52px;
  }
  .ec-host-offer {
    gap: 38px;
    padding: 38px;
  }
}
@media (max-width: 760px) {
  .ec-host-wrap {
    width: calc(100% - 40px);
  }
  .ec-host-hero {
    padding-top: 18px;
    padding-bottom: 36px;
  }
  .ec-host-hero .breadcrumbs {
    margin-bottom: 28px;
  }
  .ec-host-hero-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .ec-host-hero h1 {
    font-size: clamp(36px, 7vw, 48px);
    margin-top: 14px;
  }
  .ec-host-hero h1 .ec-host-search-title {
    font-size: 11px;
    margin-bottom: 14px;
  }
  .ec-host-hero-description {
    font-size: 14px;
    max-width: 52ch;
  }
  .ec-host-hero-actions {
    gap: 12px 20px;
    margin-top: 24px;
  }
  .ec-host-hero-offer {
    margin-top: 20px;
  }
  .ec-host-hero-photo > img {
    height: 340px;
    object-position: center 52%;
  }
  .ec-host-hero-photo-caption {
    padding: 20px;
  }
  .ec-host-hero-photo-caption strong {
    font-size: 20px;
  }
  .ec-host-values {
    grid-template-columns: 1fr;
    gap: 22px;
    padding-block: 28px;
  }
  .ec-host-value {
    align-items: center;
    gap: 16px;
  }
  .ec-host-value p {
    font-size: 12px;
  }
  .ec-host-section {
    padding-block: 48px;
  }
  .ec-host-benefits,
  .ec-host-faq {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .ec-host-page .ec-host-heading {
    font-size: 30px;
  }
  .ec-host-section-top {
    display: block;
  }
  .ec-host-section-top .ec-host-heading {
    max-width: 22ch;
    margin-bottom: 18px;
  }
  .ec-host-section-top > p {
    max-width: 48ch;
  }
  .ec-host-page .ec-host-steps {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 28px;
  }
  .ec-host-page .ec-host-steps li {
    display: grid;
    grid-template-columns: 42px 1fr;
    column-gap: 20px;
    padding-top: 24px;
  }
  .ec-host-step-top {
    grid-row: 1 / 3;
    display: block;
    margin: 0;
  }
  .ec-host-step-top > svg {
    display: none;
  }
  .ec-host-step-number {
    font-size: 30px;
  }
  .ec-host-page .ec-host-steps h3 {
    font-size: 18px;
  }
  .ec-host-checklist {
    margin-top: 28px;
  }
  .ec-host-checklist ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    gap: 14px 8px;
  }
  .ec-host-offer {
    grid-template-columns: 1fr;
    gap: 26px;
    padding: 30px 24px;
    margin-top: 44px;
  }
  .ec-host-offer .ec-host-heading > span {
    display: inline;
  }
  .ec-host-offer .ec-host-heading > span + span::before {
    content: ' ';
  }
  .ec-host-offer-details {
    padding: 0;
  }
  .ec-host-faq {
    gap: 26px;
  }
  .ec-host-faq-list summary {
    font-size: 13px;
    gap: 16px;
  }
  .ec-host-faq-list details > p {
    padding-right: 16px;
  }
  .ec-host-closing {
    padding-block: 32px;
  }
  .ec-host-closing-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 22px;
  }
  .ec-host-closing .ec-host-heading {
    font-size: 28px;
  }
  .ec-host-resources ul {
    gap: 0 20px;
  }
}
@media (max-width: 359px) {
  .ec-host-wrap {
    width: calc(100% - 32px);
  }
  .ec-host-page .ec-host-eyebrow {
    font-size: 9px;
  }
  .ec-host-hero h1 {
    font-size: 34px;
  }
  .ec-host-hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
  .ec-host-hero-photo > img {
    height: 290px;
  }
  .ec-host-hero-photo-label {
    left: 12px;
    top: 12px;
    font-size: 8px;
  }
  .ec-host-offer {
    padding: 28px 20px;
  }
  .ec-host-offer .ec-btn {
    padding-inline: 16px;
    font-size: 13px;
  }
}

/* marketplace/tenant-workspace.css */
/* Resident account shell. Canonical composition; shared messaging behavior is unchanged. */
.ec-tenant-workspace {
  width: min(1280px, calc(100% - 64px));
  margin-inline: auto;
  padding-block: 20px 28px;
  flex: 1;
  min-width: 0;
}
body:has(.ec-tenant-workspace) {
  background: var(--ec-subtle);
}
body:has(.ec-tenant-workspace) > .site-header {
  flex-shrink: 0;
}
body:has(.ec-tenant-workspace) > .site-header .nav-wrap {
  width: min(1280px, calc(100% - 64px));
  max-width: 1280px;
  padding-inline: 0;
}
.ec-tenant-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
  flex-shrink: 0;
}
.ec-tenant-nav {
  display: flex;
  gap: 6px;
}
.ec-tenant-nav a,
.ec-tenant-explore {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 10px 16px;
  border-radius: var(--ec-radius-pill);
  color: var(--ec-muted);
  font: 600 13px/1.5 var(--ec-font-heading);
  text-decoration: none;
}
.ec-tenant-nav a:hover,
.ec-tenant-explore:hover {
  background: var(--ec-hover);
  color: var(--ec-plum);
}
.ec-tenant-nav a[aria-current='page'] {
  background: var(--ec-plum);
  color: var(--ec-white);
}
.ec-tenant-explore {
  color: var(--ec-plum);
  padding-right: 4px;
}
.ec-tenant-toolbar svg {
  width: 18px;
  height: 18px;
  flex: none;
}
.ec-tenant-toolbar a:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}
.ec-tenant-workspace[data-view='chat'] {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.ec-tenant-workspace .tenant-chat-page {
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-panel);
  background: var(--ec-white);
}
.ec-tenant-workspace .live-chat-workspace:not([data-expanded='true']) {
  grid-template-columns: clamp(290px, 29vw, 350px) minmax(0, 1fr);
}
.ec-tenant-workspace .live-conversations > header {
  padding: 20px;
}
.ec-tenant-workspace .live-chat-workspace .live-conversations h2 {
  font-size: 22px;
  color: var(--ec-plum);
}
.ec-tenant-workspace .live-chat-workspace .live-chat-search input {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-control);
}
.ec-tenant-workspace .live-chat-workspace .live-icon-button {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
}
.ec-tenant-workspace .live-chat-filters button {
  min-height: 44px;
  padding-inline: 18px;
}
.ec-tenant-workspace .live-chat-workspace .live-messages {
  padding-inline: clamp(20px, 3vw, 40px);
}
.ec-tenant-workspace .live-chat-welcome {
  padding: 32px;
}
.ec-tenant-workspace .live-chat-welcome-icon {
  width: 80px;
  height: 80px;
  border-radius: var(--ec-radius-panel);
}
.ec-tenant-workspace .live-chat-welcome-icon svg {
  width: 40px;
  height: 40px;
}
.ec-tenant-workspace .live-composer {
  border-top: 1px solid var(--ec-line);
  background: var(--ec-white);
}
.ec-tenant-workspace .ec-account-loading {
  min-height: 240px;
  flex: 1;
}
.ec-tenant-intro {
  padding: 4px 0 24px;
}
.ec-tenant-intro h1 {
  font: 700 30px/1.3 var(--ec-font-heading);
  letter-spacing: -0.035em;
  color: var(--ec-plum);
  margin: 0 0 8px;
}
.ec-tenant-intro p {
  color: var(--ec-muted);
  font-size: 14px;
  line-height: 1.7;
  margin: 0;
}
.ec-tenant-enquiries {
  min-width: 0;
}
.ec-tenant-enquiries .ec-account-toolbar {
  padding: 14px 16px;
  background: var(--ec-white);
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-control);
  margin-bottom: 20px;
  gap: 16px;
}
.ec-tenant-enquiries .ec-account-tabs {
  flex-wrap: nowrap;
  gap: 4px;
}
.ec-tenant-enquiries .ec-account-tabs button {
  padding-inline: 12px;
  white-space: nowrap;
}
.ec-tenant-enquiries .ec-account-tabs button[aria-pressed='true'] {
  border-color: transparent;
  background: var(--ec-selected);
}
.ec-tenant-enquiries .ec-account-search {
  width: 280px;
  flex-shrink: 1;
}
.ec-tenant-enquiries .ec-inbox {
  grid-template-columns: clamp(290px, 29vw, 350px) minmax(0, 1fr);
  padding-bottom: 0;
  gap: 20px;
}
.ec-tenant-enquiries .ec-enquiry-list h2 {
  margin: 0;
  font-size: 14px;
}
.ec-tenant-enquiries .ec-enquiry-list ul {
  max-height: calc(100dvh - 340px);
  min-height: 180px;
  overscroll-behavior: contain;
}
.ec-tenant-enquiries .ec-enquiry-head h2 {
  font-size: 20px;
  margin: 0;
  overflow-wrap: anywhere;
}
.ec-tenant-enquiries .ec-enquiry-head p {
  font-size: 12px;
}
.ec-tenant-enquiries .ec-enquiry-facts {
  gap: 16px 26px;
}
.ec-tenant-enquiries .ec-enquiry-facts dd {
  font-size: 12px;
}
.ec-tenant-enquiries .live-messages {
  min-height: 220px;
  max-height: 420px;
}
/* Closing an enquiry (CL-674): pick a reason, then confirm; the same card as reporting a review. */
.ec-enquiry-close {
  display: grid;
  gap: 12px;
  margin: 16px 24px 0;
  padding: 16px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
}
.ec-enquiry-close fieldset {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}
.ec-enquiry-close p {
  margin: 0;
  font-size: 13px;
  color: var(--ec-muted);
}
.ec-enquiry-close-reason {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 32px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ec-ink);
}
.ec-enquiry-close-reason input {
  margin-top: 3px;
  flex: none;
  accent-color: var(--ec-plum);
}
.ec-enquiry-close-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ec-enquiry-close-start {
  margin: 12px 24px 0;
}
/* The tenant account page (CL-673, CL-366): details, then data and privacy, as stacked panels. */
.ec-tenant-account {
  display: grid;
  gap: 20px;
  align-content: start;
}
.ec-tenant-account .web-panel {
  display: grid;
  gap: 16px;
  margin: 0;
}
.ec-tenant-account .web-panel h2 {
  margin: 0;
  font-size: 20px;
}
.ec-tenant-account form.web-form,
.ec-tenant-account .ec-enquiry-close {
  margin: 0;
}
.ec-account-requests {
  display: grid;
  gap: 12px;
  margin: 0;
}
.ec-account-requests dt {
  font-size: 14px;
  font-weight: 600;
  color: var(--ec-ink);
}
.ec-account-requests dd {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--ec-muted);
}
.ec-tenant-enquiries .web-empty {
  min-height: 340px;
  background: var(--ec-white);
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-panel);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 36px 24px;
}
.ec-tenant-enquiries .web-empty h2 {
  font-size: 24px;
}
@media (max-width: 1000px) {
  .ec-tenant-enquiries .ec-account-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
  .ec-tenant-enquiries .ec-account-search {
    width: 100%;
  }
}
@media (max-width: 800px) {
  .ec-tenant-workspace {
    width: calc(100% - 32px);
    padding-block: 16px 20px;
  }
  body:has(.ec-tenant-workspace) > .site-header .nav-wrap {
    width: calc(100% - 32px);
  }
  .ec-tenant-toolbar {
    margin-bottom: 16px;
    gap: 8px;
  }
  /* Four tabs (Chats, My enquiries, Saved searches, Account) do not fit a phone: the strip scrolls sideways on its
     own, never the page. The padding keeps focus rings inside the scrolling area. */
  .ec-tenant-nav {
    flex: 1 1 auto;
    min-width: 0;
    margin: -4px;
    padding: 4px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .ec-tenant-nav::-webkit-scrollbar {
    display: none;
  }
  .ec-tenant-nav a {
    flex: none;
  }
  .ec-tenant-enquiries .ec-inbox {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ec-tenant-enquiries .ec-enquiry-list ul {
    max-height: none;
    min-height: 0;
  }
  .ec-tenant-intro {
    padding-bottom: 20px;
  }
  .ec-tenant-intro h1 {
    font-size: 26px;
  }
  .ec-tenant-enquiries .ec-account-toolbar {
    padding: 12px;
  }
  .ec-tenant-enquiries .ec-account-tabs {
    overflow-x: auto;
    padding: 3px;
  }
  .ec-tenant-enquiries .ec-account-tabs button {
    flex: none;
    font-size: 12px;
    padding-inline: 10px;
  }
}
@media (max-width: 760px) {
  /* The property strip already has the home link; keep the conversation name clear. */
  .ec-tenant-workspace .live-conversation-header > a {
    display: none;
  }
  .ec-tenant-workspace[data-view='chat'] {
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
  .ec-tenant-workspace .tenant-chat-page {
    border-radius: var(--ec-radius-control);
  }
  .ec-tenant-workspace .live-chat-workspace:not([data-expanded='true']) {
    grid-template-columns: minmax(0, 1fr);
  }
  .ec-tenant-workspace .live-conversations > header {
    padding: 16px;
  }
  .ec-tenant-workspace .live-chat-workspace .live-messages {
    padding: 16px 12px;
  }
  .ec-tenant-workspace .live-chat-welcome {
    padding: 24px;
  }
  .ec-tenant-explore {
    width: 44px;
    padding: 0;
  }
  .ec-tenant-explore span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .ec-tenant-explore > svg:last-child {
    display: none;
  }
  .ec-tenant-nav a {
    font-size: 12px;
    padding-inline: 14px;
  }
  .ec-tenant-enquiries .ec-enquiry-head .ec-btn {
    width: auto;
  }
}
@media (max-width: 359px) {
  .ec-tenant-workspace,
  body:has(.ec-tenant-workspace) > .site-header .nav-wrap {
    width: calc(100% - 24px);
  }
  .ec-tenant-toolbar {
    gap: 8px;
  }
  .ec-tenant-nav {
    gap: 2px;
  }
  .ec-tenant-nav a {
    padding-inline: 10px;
    gap: 6px;
  }
}

/* Saved homes and compare (CL-663, CL-670): the saved list with a compare pick under each card, and the comparison table. */
.ec-saved-page .web-empty .ec-btn { margin-top: 8px; }
.ec-saved-grid { margin-top: 8px; }
.ec-saved-item { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ec-saved-item .ec-discovery-card { flex: 1; }
.ec-saved-compare { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; min-height: var(--ec-touch-target); padding: 0 16px; border: 1px solid var(--ec-control-border); border-radius: var(--ec-radius-pill); background: var(--ec-white); color: var(--ec-plum); font-size: 14px; font-weight: 600; cursor: pointer; }
.ec-saved-compare input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-plum); }
.ec-saved-compare:hover { background: var(--ec-hover); }
.ec-saved-compare:has(input:checked) { background: var(--ec-selected); border-color: var(--ec-plum); }
.ec-saved-compare:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.ec-saved-compare:has(input:focus-visible) { outline: none; box-shadow: var(--ec-focus); }
.ec-saved-gone { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--ec-line); }
.ec-saved-gone h2 { color: var(--ec-plum); font: 700 18px/1.4 var(--ec-font-heading); }
.ec-saved-gone ul { display: grid; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.ec-saved-gone li { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-control); background: var(--ec-white); }
.ec-saved-gone li span { min-width: 0; overflow-wrap: anywhere; }
.ec-compare-bar { position: sticky; bottom: 16px; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; padding: 10px 10px 10px 20px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-pill); background: var(--ec-white); box-shadow: var(--ec-shadow-overlay); }
.ec-compare-bar p { color: var(--ec-ink); font-size: 14px; }
.ec-compare-scroll { overflow-x: auto; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-compare-scroll:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-compare-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; color: var(--ec-ink); font: 400 14px/1.5 var(--ec-font-body); }
.ec-compare-table[data-homes='2'] { min-width: 600px; }
.ec-compare-table[data-homes='3'] { min-width: 800px; }
.ec-compare-table[data-homes='4'] { min-width: 1000px; }
.ec-compare-table :is(th, td) { padding: 14px 16px; border-top: 1px solid var(--ec-line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.ec-compare-table thead :is(th, td) { border-top: 0; vertical-align: bottom; }
.ec-compare-table thead td { width: 176px; }
.ec-compare-table thead th { position: relative; font-weight: 400; }
/* The labels stay in view while the homes scroll sideways on a phone. */
.ec-compare-table :is(thead td, tbody th) { position: sticky; left: 0; z-index: 1; background: var(--ec-white); }
.ec-compare-table tbody th { color: var(--ec-muted); font-weight: 600; }
.ec-compare-table td { color: var(--ec-plum); font-weight: 600; font-variant-numeric: tabular-nums; }
.ec-compare-table td[data-value='no'] { color: var(--ec-muted); font-weight: 400; }
.ec-compare-table tbody tr:hover > :is(th, td) { background: var(--ec-cream); }
.ec-compare-home { display: grid; gap: 8px; color: var(--ec-plum); text-decoration: none; }
.ec-compare-home:focus-visible { outline: none; box-shadow: var(--ec-focus); border-radius: 4px; }
.ec-compare-photo { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--ec-radius-control); background: var(--ec-subtle); }
.ec-compare-photo img { width: 100%; height: 100%; object-fit: cover; }
.ec-compare-photo .property-image-placeholder { position: absolute; inset: 0; }
.ec-compare-title { font: 700 16px/1.35 var(--ec-font-heading); }
.ec-compare-home:hover .ec-compare-title { text-decoration: underline; text-underline-offset: 3px; }
.ec-compare-place { color: var(--ec-muted); font-size: 13px; }
.ec-compare-remove { position: absolute; top: 22px; right: 24px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-pill); background: rgb(255 255 255 / .94); color: var(--ec-plum); cursor: pointer; }
.ec-compare-remove:hover { background: var(--ec-white); }
.ec-compare-remove:focus-visible { outline: none; box-shadow: var(--ec-focus); }
.ec-compare-remove svg { width: 16px; height: 16px; }
@media (max-width: 560px) {
  .ec-compare-bar { gap: 12px; padding: 8px 8px 8px 16px; border-radius: var(--ec-radius-card); }
  .ec-compare-bar p { font-size: 13px; line-height: 1.4; }
  .ec-compare-bar .ec-btn { flex: none; padding-inline: 14px; }
  .ec-compare-table thead td { width: 120px; }
  .ec-compare-table :is(th, td) { padding: 12px; }
}

/* Email choices on the Account page (CL-673). */
.ec-account-choices { display: grid; gap: 12px; margin: 0; padding: 0; border: 0; min-width: 0; }
.ec-account-choices + .ec-account-choices { margin-top: 12px; }
/* Each group of email choices (enquiry emails, offers and news) is named above its options. */
.ec-account-choices-legend { float: left; width: 100%; margin: 0 0 4px; padding: 0; color: var(--ec-ink); font: 700 14px/1.5 var(--ec-font-heading); }
.ec-account-choices-legend + * { clear: both; }
.ec-account-choice { display: flex; align-items: flex-start; gap: 12px; min-height: var(--ec-touch-target); padding: 12px 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-control); background: var(--ec-white); cursor: pointer; }
.ec-account-choice input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--ec-plum); }
.ec-account-choice span { display: grid; gap: 2px; }
.ec-account-choice strong { color: var(--ec-ink); font-size: 15px; }
.ec-account-choice small { color: var(--ec-muted); font-size: 13px; line-height: 1.5; }
.ec-account-choice:has(input:checked) { border-color: var(--ec-plum); background: var(--ec-selected); }

/* Proof of stay on an enquiry (CL-327). */
.ec-stay-proof { display: grid; gap: 10px; margin-top: 20px; padding: 16px; border: 1px solid var(--ec-line); border-radius: var(--ec-radius-card); background: var(--ec-white); }
.ec-stay-proof h3 { color: var(--ec-plum); font: 700 16px/1.4 var(--ec-font-heading); }
.ec-stay-proof p { color: var(--ec-ink); font-size: 14px; line-height: 1.6; }
.ec-stay-proof .ec-btn { justify-self: start; }
.ec-stay-proof-form { display: grid; gap: 14px; }
.ec-stay-proof-form label { display: grid; gap: 6px; color: var(--ec-label-color); font: 700 calc(14px * var(--ec-label-scale)) var(--ec-font-heading); }
.ec-stay-proof-form small { color: var(--ec-muted); font: 400 13px/1.5 var(--ec-font-body); }
.ec-stay-proof-form input[type='file'] { padding: 10px 12px; height: auto; }
/* The saved searches page (CL-75): one panel a search, with its email choice and actions. */
.ec-saved-search-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.ec-saved-search { display: grid; gap: 16px; margin: 0; }
.ec-saved-search h2 { margin: 0; font-size: 18px; overflow-wrap: anywhere; }
.ec-saved-search .web-meta { margin: 4px 0 0; }
.ec-saved-search-rename { display: grid; gap: 12px; margin: 0; }

/* The trial has three account destinations. Keep every destination visible on phones. */
@media (max-width: 800px) {
  .ec-tenant-toolbar.ec-tenant-toolbar--simple { flex-wrap: wrap; gap: 12px; }
  .ec-tenant-toolbar--simple .ec-tenant-nav { flex: 1 0 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; overflow: visible; margin: 0; padding: 0; }
  .ec-tenant-toolbar--simple .ec-tenant-nav a { justify-content: center; min-width: 0; min-height: 44px; padding: 8px 4px; gap: 5px; font-size: 12px; white-space: nowrap; }
  .ec-tenant-toolbar--simple .ec-tenant-nav svg { width: 16px; height: 16px; flex-shrink: 0; }
  .ec-tenant-toolbar--simple .ec-tenant-explore { margin-left: auto; }
}

/* marketplace/tenant-theme.css */
/* Tenant marketplace reference: white canvas, plum hierarchy, peach selections.
   This file is shared by local design examples and the live tenant website. */
/* The H1 of every inner page (every page but home): Figma 490-1975's title, 44 px Medium, line height 1.2, -0.02em
   (-0.88 px), Content/Primary; 32 px on phones (user, 24 Oct 2026). Place, blog, guide, company, saved, listing and
   account pages all use these. */
:root {
  --ec-page-title-size: 44px;
  --ec-page-title-font: 500 var(--ec-page-title-size)/1.2 var(--ec-font-heading);
  --ec-page-title-tracking: -0.02em;
  --ec-page-title-ink: #101114;
  /* Interaction states (Figma Button / Secondary 968:3229 hover, Field 945:4559 and Field / Search 968:3630 active;
     nWatch Website #6, #8 and #9, 26 Oct 2026): a near-black line on a 4% grey fill. */
  --ec-state-border: #101114;
  --ec-state-fill: rgba(16, 17, 20, 0.04);
}
@media (max-width: 760px) {
  :root {
    --ec-page-title-size: 32px;
  }
}
body.marketplace-page,
body.auth-page {
  --ec-text-display: 48px;
  --ec-text-page: 32px;
  --ec-text-section: 28px;
  --ec-text-panel: 20px;
  --ec-text-title: 18px;
  --ec-section-space: 64px;
  /* 80 px with the header's 1 px bottom rule (Figma "Header Light/Light" 342:905, user 23 Oct 2026). */
  --ec-header-height: calc(var(--ec-header, 80px) - 1px);
  --ec-header-logo-width: 143px;
  --ec-selected: #ffe6d6;
  --ec-tenant-selection: var(--ec-apricot);
  --ec-tenant-selection-hover: #ffc19f;
  background: var(--ec-white);
  color: var(--ec-ink);
  font-size: var(--ec-text-body);
  line-height: 1.6;
}

.marketplace-page .site-header,
.marketplace-page .browse-controls,
.marketplace-page .ec-tenant-workspace,
.marketplace-page .search-bar.enhanced-search {
  background: var(--ec-white);
}

/* Compact header, with full-size touch targets and one-line account access. */
.marketplace-page .site-header .nav-wrap {
  height: var(--ec-header-height);
  min-height: 0;
  gap: 20px;
  padding-block: 0;
}
.marketplace-page .site-header .brand {
  width: var(--ec-header-logo-width);
  height: 44px;
}
.marketplace-page .site-header .brand :is(img, .easycoliv-wordmark) { width: 100%; }
.marketplace-page .site-header :is(.ec-header-tools, .ec-header-actions) {
  --ec-header-control-size: 44px;
  --ec-header-tools-gap: 8px;
  gap: 8px;
}
.marketplace-page .site-header .ec-header-login {
  max-width: none;
  min-height: 44px;
  padding-inline: 12px;
  white-space: nowrap;
}
.marketplace-page .site-header .desktop-nav { gap: 24px; }
.marketplace-page .site-header .header-login {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.marketplace-page .detail-section-nav { top: calc(var(--ec-header-height) + 1px); }

/* The site header as the Figma "Header Light/Light" (342:905, user 23 Oct 2026) on every page with the guest links:
   the wordmark on the page's own column, the links 40 px after it in dark semibold, Log in and a plain menu icon at the
   end. The worldwide link stays in the menu and the footer, as on the home page's header. */
.marketplace-page .site-header .desktop-nav {
  padding: 0 40px;
  font: 600 14px/21px var(--ec-font-heading);
}
.marketplace-page .site-header .desktop-nav a {
  padding: 0;
  border: 0;
  color: #101114;
  font: inherit;
  text-decoration: none;
}
.marketplace-page .site-header .desktop-nav a:hover {
  opacity: 0.75;
}
.marketplace-page .site-header :is(.ec-header-tools, .ec-header-actions) {
  gap: 16px;
}
.marketplace-page .site-header .ec-header-login {
  padding-inline: 0;
  color: #101114;
  font: 600 14px/21px var(--ec-font-heading);
}
.marketplace-page .site-header .ec-header-login:hover {
  background: transparent;
  opacity: 0.75;
}
.marketplace-page .site-header .ec-header-actions > a.ec-header-icon {
  display: none;
}
.marketplace-page .site-header .ec-header-actions > button.ec-header-icon:not(.ec-header-avatar) {
  width: 40px;
  height: 40px;
  min-height: 40px;
  margin-right: -8px;
  background: transparent;
  color: #17181d;
}
.marketplace-page .site-header .ec-header-actions > button.ec-header-icon:not(.ec-header-avatar):is(:hover, [aria-expanded='true']) {
  background: #0000000d;
}
.marketplace-page .site-header .ec-header-actions > button.ec-header-icon:not(.ec-header-avatar) svg {
  width: 24px;
  height: 24px;
}


/* Compact, single-line breadcrumbs. The full route remains in the ancestor menu. */
.marketplace-page .smart-breadcrumbs { padding: 0; margin: 0 0 12px; }
.marketplace-page .smart-breadcrumbs .breadcrumb-trail {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 4px;
  min-height: 28px;
  padding: 0;
  margin: 0;
  list-style: none;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ec-muted);
}
.marketplace-page .smart-breadcrumbs .breadcrumb-trail > li {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.marketplace-page .smart-breadcrumbs .breadcrumb-trail > li > :is(a, span) {
  display: block;
  min-height: 28px;
  padding-block: 5px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.marketplace-page .smart-breadcrumbs .breadcrumb-ancestor { flex: 0 1 auto; max-width: 160px; }
.marketplace-page .smart-breadcrumbs .breadcrumb-parent { flex: 0 1 auto; max-width: 40%; }
.marketplace-page .smart-breadcrumbs .breadcrumb-current { flex: 0 1 auto; }
.marketplace-page .smart-breadcrumbs svg { width: 12px; height: 12px; flex: none; }
.marketplace-page .smart-breadcrumbs .breadcrumb-trail > .breadcrumb-more { display: none; flex: none; }
.marketplace-page .smart-breadcrumbs[data-long] .breadcrumb-trail > .breadcrumb-more { display: flex; }
.marketplace-page .smart-breadcrumbs[data-long] .breadcrumb-trail > .breadcrumb-ancestor { display: none; }
.marketplace-page .smart-breadcrumbs .breadcrumb-disclosure { position: relative; }
.marketplace-page .smart-breadcrumbs summary {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 28px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 8px;
  list-style: none;
  cursor: pointer;
  color: var(--ec-muted);
}
.marketplace-page .smart-breadcrumbs summary::-webkit-details-marker { display: none; }
.marketplace-page .smart-breadcrumbs summary svg { width: 18px; height: 18px; }
.marketplace-page .smart-breadcrumbs :is(summary:hover, details[open] summary) { background: var(--ec-hover); color: var(--ec-plum); }
.marketplace-page .smart-breadcrumbs :is(a, summary):focus-visible { outline: 2px solid var(--ec-plum); outline-offset: 2px; border-radius: 6px; }
.marketplace-page .smart-breadcrumbs .breadcrumb-menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 30;
  display: block;
  width: 260px;
  max-width: calc(100vw - 48px);
  margin: 0;
  padding: 6px;
  list-style: none;
  border: 1px solid var(--ec-line);
  border-radius: 12px;
  background: var(--ec-white);
  box-shadow: var(--ec-shadow-overlay);
}
.marketplace-page .smart-breadcrumbs .breadcrumb-menu li { display: block; }
.marketplace-page .smart-breadcrumbs .breadcrumb-menu a {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--ec-plum);
  overflow-wrap: anywhere;
}
.marketplace-page .smart-breadcrumbs .breadcrumb-menu a:hover { background: var(--ec-hover); text-decoration: none; }
@media (max-width: 740px) {
  .marketplace-page .smart-breadcrumbs .breadcrumb-trail > .breadcrumb-more { display: flex; }
  .marketplace-page .smart-breadcrumbs .breadcrumb-trail > .breadcrumb-ancestor { display: none; }
  .marketplace-page .smart-breadcrumbs :is(summary, .breadcrumb-trail > li > a, .breadcrumb-trail > li > span) { min-height: 32px; padding-block: 7px; }
}
@media (max-width: 1100px) {
  .marketplace-page.listing-page .site-header .nav-wrap {
    height: auto;
    min-height: 116px;
    gap: 8px;
    padding-block: 8px;
  }
}
@media (max-width: 740px) {
  .marketplace-page .site-header .nav-wrap { gap: 12px; }
  .marketplace-page .site-header .ec-header-actions > a[aria-label='Explore worldwide destinations'] { display: none; }
}

/* Search stays compact, with one visible value per field. */
.marketplace-page .search-bar.enhanced-search {
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-pill);
  box-shadow: none;
}
.marketplace-page .search-bar.enhanced-search:focus-within {
  border-color: var(--ec-plum);
}
.marketplace-page .search-bar .destination-input-wrap input {
  color: var(--ec-ink);
}
.ec-home-search-features {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 18px auto 0;
}
.ec-home-search-features a,
.marketplace-page .quick-filter-pills button,
.marketplace-page .all-filters-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: var(--ec-control-sm);
  padding: 10px 18px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-pill);
  background: var(--ec-white);
  color: var(--ec-ink);
  font: 700 14px/1.4 var(--ec-font-heading);
  text-decoration: none;
  white-space: nowrap;
}
.ec-home-search-features a:hover,
.marketplace-page .quick-filter-pills button:hover,
.marketplace-page .all-filters-button:hover {
  border-color: var(--ec-control-border);
  background: var(--ec-hover);
}
.ec-home-search-features svg,
.marketplace-page .quick-filter-pills svg {
  width: 17px;
  height: 17px;
  flex: none;
}
.ec-home-search-features svg { color: var(--ec-plum); }

/* One selection language for browsing and the signed-in workspace. */
.marketplace-page .quick-filter-pills button[aria-pressed='true'],
.marketplace-page .region-filters button[aria-pressed='true'],
.marketplace-page .ec-country-tabs button[aria-pressed='true'],
.marketplace-page .ec-tenant-nav a[aria-current='page'],
.marketplace-page .ec-account-tabs button[aria-pressed='true'],
.marketplace-page .live-chat-filters button[aria-pressed='true'],
.marketplace-page .budget-presets button[aria-pressed='true'],
.marketplace-page .active-filters > :is(a, button):not(.ds-clear-filters) {
  color: var(--ec-ink);
  background: var(--ec-tenant-selection);
  border-color: var(--ec-tenant-selection);
  box-shadow: none;
}
.marketplace-page .quick-filter-pills button[aria-pressed='true']:hover,
.marketplace-page .region-filters button[aria-pressed='true']:hover {
  background: var(--ec-tenant-selection-hover);
  border-color: var(--ec-tenant-selection-hover);
}
.marketplace-page .region-filters button {
  border: 1px solid var(--ec-line);
  background: var(--ec-white);
  color: var(--ec-ink);
}
.marketplace-page .active-filters > :is(a, button) { min-height: 44px; }
.marketplace-page .active-filters > .ds-clear-filters {
  background: transparent;
  color: var(--ec-plum);
  border-color: transparent;
}
.marketplace-page .listing-filter-dialog,
.marketplace-page .search-popover,
.marketplace-page .ec-account-panel,
.marketplace-page .web-panel { background: var(--ec-white); }
.marketplace-page :is(.stay-option, .bathroom-choice, .amenity-choice):has(input:checked) {
  background: var(--ec-selected);
  border-color: var(--ec-apricot);
  box-shadow: none;
}
.marketplace-page .listing-workspace { padding-top: 24px; }
.marketplace-page .listing-toolbar { gap: 12px; margin-bottom: 24px; }
.marketplace-page .listing-toolbar > div:first-child { flex: 1; min-width: 0; }
.marketplace-page .listing-toolbar #results-count {
  font: 400 16px/1.5 var(--ec-font-body);
  letter-spacing: 0;
  color: var(--ec-muted);
}
.marketplace-page .listing-toolbar p { font-size: 12px; margin-top: 4px; }
.marketplace-page .sort-control { margin-left: 0; }
.marketplace-page .sort-control.ec-app-select { width: auto; flex-direction: row; align-items: center; gap: 10px; }
.marketplace-page .sort-control .ec-app-select-trigger {
  flex: none;
  width: 184px;
  min-height: 44px;
  height: 44px;
  border-color: var(--ec-line);
  border-radius: var(--ec-radius-pill);
  font-size: 14px;
}
.marketplace-page .sort-control .ec-app-select-label { font-weight: 400; color: var(--ec-muted); }
.marketplace-page .ec-app-select-popover { --select-selected: var(--ec-selected); }
.marketplace-page .filter-bar { padding-block: 14px; }

/* A card is a photo and its details, without an outer box. Its only action besides opening the home is the heart;
   "Chat with operator" is on the home's page only (user decision 6 Oct 2026, CL-784). */
:is(.ec-home-card, .listing-card).ec-browse-card {
  --ec-text-title: 18px;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: var(--ec-white);
  box-shadow: none;
  overflow: visible;
  transform: none;
}
:is(.ec-home-card, .listing-card).ec-browse-card > a {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  border-radius: 20px;
  color: inherit;
  text-decoration: none;
}
.ec-browse-card:is(:hover, :focus-within) { box-shadow: none; transform: none; }
.ec-browse-card :is(.ec-home-photo, .listing-card-photo) {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1.58;
  flex: none;
  border-radius: 20px;
  overflow: hidden;
  background: var(--ec-subtle);
}
.ec-browse-card :is(.ec-home-photo, .listing-card-photo) > span {
  position: absolute;
  top: 14px;
  left: 14px;
  min-height: 28px;
  padding: 5px 12px;
  border: 0;
  border-radius: var(--ec-radius-pill);
  background: var(--ec-white);
  color: var(--ec-ink);
  font: 400 12px/1.5 var(--ec-font-body);
}
.ec-browse-card :is(.ec-home-copy, .listing-card-copy) {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 8px;
  min-width: 0;
  padding: 16px 4px 0;
}
.ec-browse-card .ec-card-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  min-width: 0;
  color: var(--ec-muted);
  font: 400 13px/1.5 var(--ec-font-body);
}
.ec-browse-card .ec-card-heading {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.ec-card-meta > span {
  display: inline-flex;
  align-items: flex-start;
  gap: 5px;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.ec-browse-card .ec-card-meta svg { width: 15px; height: 15px; flex: none; margin-top: 2px; }
.ec-browse-card :is(.ec-home-copy, .listing-card-copy) h3 {
  min-height: 0;
  margin: 0;
  color: var(--ec-plum);
  font: 700 18px/1.4 var(--ec-font-heading);
  letter-spacing: -.025em;
  overflow-wrap: anywhere;
}
.ec-browse-card .ec-property-distance,
.ec-browse-card .listing-room-facts { margin: 0; font-size: 12px; }
.ec-browse-card :is(.ec-home-price, .listing-card-bottom) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  margin-top: 2px;
  padding: 0;
  border: 0;
}
.ec-browse-card :is(.ec-home-price, .listing-card-bottom) > div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
}
.ec-browse-card :is(.ec-home-price, .listing-card-bottom) strong {
  color: var(--ec-ink);
  font: 700 20px/1.4 var(--ec-font-heading);
  letter-spacing: -.025em;
}
.ec-browse-card :is(.ec-home-price, .listing-card-bottom) small {
  color: var(--ec-muted);
  font: 400 14px/1.5 var(--ec-font-body);
}
.ec-browse-card .ec-card-stay {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  color: var(--ec-muted);
  font: 400 13px/1.5 var(--ec-font-body);
}
.ec-browse-card .ec-card-stay svg { width: 14px; height: 14px; flex: none; margin-top: 3px; }
.ec-browse-card .ec-save-home { top: 14px; right: 14px; }
.ec-browse-card .ec-save-home button {
  width: 44px;
  height: 44px;
  border: 0;
  background: var(--ec-white);
  color: var(--ec-plum);
  box-shadow: 0 2px 10px #48213f18;
}
.ec-browse-card .ec-save-home button[aria-pressed='true'] {
  color: var(--ec-white);
  background: var(--ec-plum);
}
.marketplace-page :is(.home-grid, .listing-grid) { row-gap: 36px; }
.marketplace-page .ec-tenant-nav { gap: 8px; }
.marketplace-page .ec-tenant-nav a { border: 1px solid var(--ec-line); }
.marketplace-page .ec-enquiry-choice[aria-current='true'] { background: var(--ec-selected); }

@media (max-width: 740px) {
  .ec-home-search-features {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    margin-top: 14px;
    padding-bottom: 4px;
    scrollbar-width: none;
  }
  .ec-home-search-features a { flex: none; padding-inline: 14px; }
  .listing-page .search-bar.enhanced-search {
    display: flex;
    flex-wrap: nowrap;
    height: 54px;
    min-height: 54px;
    padding: 4px;
    border-radius: var(--ec-radius-pill);
  }
  .listing-page .enhanced-search .search-control:not(.destination-field) { display: none; }
  .listing-page .enhanced-search .destination-field { flex: 1; border: 0; }
  .listing-page .enhanced-search .destination-input-wrap { height: 44px; padding-inline: 12px; }
  .listing-page .enhanced-search .field-icon { display: block; color: var(--ec-muted); }
  .listing-page .listing-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .listing-page .listing-toolbar > div:first-child { grid-column: 1; grid-row: 1; }
  .listing-page .listing-toolbar > div:first-child > p { display: none; }
  .listing-page .listing-toolbar .sort-control { grid-column: 2; grid-row: 1; margin-left: 0; }
  .listing-page .sort-control .ec-app-select-trigger { width: clamp(160px, 47vw, 184px); }
  .listing-page .sort-control .ec-app-select-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .listing-page .listing-toolbar > .ec-btn { justify-content: center; }
  .listing-page .filter-bar { gap: 10px; }
  .listing-page .quick-filter-pills { flex: 1; min-width: 0; }
  .listing-page .all-filters-button {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    gap: 0;
    font-size: 0;
  }
  .listing-page .all-filters-button span {
    position: absolute;
    top: -4px;
    right: -3px;
    min-width: 20px;
    height: 20px;
    font-size: 11px;
  }
  .ec-browse-card :is(.ec-home-photo, .listing-card-photo) { aspect-ratio: 1.58; }
}
@media (prefers-reduced-motion: reduce) {
  .ec-browse-card * { transition: none; }
}

/* Equal hero spacing, with the brand gradient reserved for the homepage. */
.marketplace-page {
  --ec-hero-space: 64px;
  --ec-hero-gradient:
    linear-gradient(180deg, transparent 62%, var(--ec-white) 100%),
    radial-gradient(ellipse at 10% 24%, color-mix(in srgb, var(--ec-apricot) 26%, var(--ec-white)), transparent 64%),
    radial-gradient(ellipse at 92% 12%, color-mix(in srgb, var(--ec-lilac) 30%, var(--ec-white)), transparent 68%),
    linear-gradient(120deg, var(--ec-cream), var(--ec-white) 70%);
}
.marketplace-page :is(.market-hero, .ec-city-hero, .ec-hub-hero, .location-hero) {
  padding-block: var(--ec-hero-space);
  background: var(--ec-white);
}

/* Tenant composition scale: 48 / 32 / 28 / 20 / 18 / 16 / 14 / 12.
   Layout spacing follows the shared 4px scale. Labels keep the approved muted
   11.2px token; never multiply that token by the label scale a second time. */
.home-page .market-hero {
  background: var(--ec-hero-gradient);
  width: 100%;
  max-width: none;
  padding-inline: max(32px, calc((100% - 1280px) / 2));
}
.home-page .market-hero h1 {
  font-size: var(--ec-text-display);
  line-height: 1.2;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.home-page .hero-description {
  max-width: 60ch;
  margin: 16px auto 32px;
  font-size: var(--ec-text-body);
  line-height: 1.6;
}
.home-page :is(.eyebrow, .ec-public-eyebrow) { margin-bottom: 12px; line-height: 1.5; }
.home-page .market-hero .eyebrow { margin-bottom: 16px; }
.home-page .section { padding-block: var(--ec-section-space); }
.home-page .destinations-section { padding-top: 24px; }
.home-page :is(.section-heading, .ec-public-heading) {
  align-items: center;
  gap: 24px;
  margin-bottom: 24px;
}
.home-page :is(.section-heading h2, .ec-world-copy h2, .ec-host-copy h2, .faq-section h2),
.marketplace-page .web-section > .section-heading h2 {
  font-size: var(--ec-text-section);
  line-height: 1.3;
  letter-spacing: -.03em;
  text-wrap: balance;
}
.home-page :is(.section-heading, .ec-public-heading) .text-link { margin-top: 0; }
.home-page .ec-world-directory { padding-block: var(--ec-section-space); gap: 48px; }
.home-page .ec-world-copy > p:not(.ec-public-eyebrow),
.home-page .ec-host-copy > p:not(.ec-public-eyebrow) {
  font-size: var(--ec-text-body);
  line-height: 1.6;
  margin-block: 20px 24px;
}
.home-page .ec-host-copy { padding: 40px; }
.home-page .ec-process-steps { margin-top: 24px; gap: 32px; }
.home-page .ec-process-steps h3 { font-size: var(--ec-text-title); line-height: 1.4; margin: 0 0 8px; }
.home-page .ec-process-steps p { font-size: var(--ec-text-small); line-height: 1.7; }
.home-page .faq-section { gap: 48px; }
.home-page .ec-public-faq summary { min-height: 64px; padding: 20px 24px; line-height: 1.5; }
.home-page .ec-public-faq details p { padding: 0 24px 24px; line-height: 1.7; }
.home-page :is(.ec-region-group > a, .ec-region-group > button, .ec-everywhere p) { font-size: var(--ec-text-small); }
.home-page .region-filters { gap: 8px; }
.home-page .region-filters button { font-size: var(--ec-text-small); padding-inline: 16px; }
.home-page .results-toolbar { padding-bottom: 16px; }
.home-page .results-context { min-height: 56px; font-size: var(--ec-text-small); }
.home-page .quick-search { gap: 8px 16px; margin-top: 16px; font-size: var(--ec-text-small); }
.home-page .quick-search :is(a, button) { min-height: 44px; display: inline-flex; align-items: center; }
.home-page .ec-home-search-features { margin-top: 16px; gap: 8px; }
.marketplace-page :is(.home-grid, .listing-grid) { column-gap: 24px; row-gap: 40px; }
.ec-browse-card :is(.ec-home-copy, .listing-card-copy) { padding: 16px 0 0; gap: 12px; }
.ec-browse-card .ec-card-meta { font-size: var(--ec-text-small); gap: 4px 12px; line-height: 1.5; }
.ec-browse-card :is(.ec-home-copy, .listing-card-copy) h3 { font-size: var(--ec-text-title); letter-spacing: -.015em; }
.ec-browse-card :is(.ec-home-price, .listing-card-bottom) { margin-top: auto; padding-top: 4px; }
.marketplace-page :is(.ec-btn, .text-link, .quick-filter-pills button, .all-filters-button) { line-height: 1.5; }
.marketplace-page .search-bar :is(.field-label, .field-text label) {
  font-size: var(--ec-label-size);
  line-height: 1.5;
}
.marketplace-page .ec-field > label { font-size: var(--ec-label-size); line-height: 1.5; }
.marketplace-page .search-bar .field-value { font-size: var(--ec-text-small); line-height: 1.5; }
.marketplace-page .single-line-search .field-text { gap: 0; }
.marketplace-page .single-line-search :is(.field-value, .destination-field input) {
  font-size: var(--ec-text-body);
  line-height: 1.5;
  color: var(--ec-ink);
}
.marketplace-page .single-line-search .destination-field input::placeholder { color: var(--ec-ink); }
.home-page .single-line-search :is(.field-value, .destination-field input) {
  font-size: var(--ec-text-small);
}
.home-page .search-bar.enhanced-search { max-width: 760px; }
.home-page .search-bar .search-submit {
  flex: 0 0 52px;
  width: 52px;
  min-width: 52px;
  height: 52px;
  min-height: 52px;
  padding: 0;
  border-radius: 50%;
  align-self: center;
  justify-content: center;
}
.home-page .search-bar .search-submit svg { width: 20px; height: 20px; }
.marketplace-page .single-line-search .field-text > .sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.marketplace-page :is(.popover-description, .suggestion-text strong, .stay-option strong) { font-size: var(--ec-text-small); line-height: 1.5; }
.marketplace-page .stay-option {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 4px 8px;
  min-height: 64px;
  padding: 12px;
  border-width: 1px;
}
.marketplace-page .stay-option:has(input:checked) { padding: 12px; border-width: 1px; }
.marketplace-page .stay-option .choice-check { position: static; grid-column: 1; grid-row: 1; }
.marketplace-page .stay-option :is(strong, small) { grid-column: 2; margin: 0; text-align: left; }
.marketplace-page .listing-toolbar { flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
.marketplace-page .sort-control .ec-app-select-label { font-size: var(--ec-text-caption); }
.marketplace-page.support-page h1,
.marketplace-page :is(.property-heading h1, .page-intro h1, .ec-account-intro h1, .ec-tenant-intro h1) {
  font: var(--ec-page-title-font);
  letter-spacing: var(--ec-page-title-tracking);
  color: var(--ec-page-title-ink);
}
.detail-page .property-section { padding-block: 32px; }
.detail-page .property-section h2 { font-size: 24px; line-height: 1.3; margin-bottom: 20px; }
.detail-page :is(.property-summary, .property-about > p, .things-grid p) { font-size: var(--ec-text-body); line-height: 1.65; }
.detail-page .property-highlights { gap: 24px; padding-block: 24px; }
.detail-page .property-highlights h3 { font-size: var(--ec-text-body); line-height: 1.5; }
.detail-page :is(.property-highlights p, .amenity-grid > div) { font-size: var(--ec-text-small); line-height: 1.6; }
.marketplace-page :is(.web-panel, .ec-account-panel, .stay-planner) { padding: 24px; }
.marketplace-page :is(.web-panel h2, .ec-enquiry-head h2, .live-conversations h2) { font-size: var(--ec-text-panel); line-height: 1.4; }
.marketplace-page .web-link-card :is(h3, .web-card-title) { font-size: var(--ec-text-title); line-height: 1.4; }
.marketplace-page :is(.ec-tenant-intro p, .ec-account-intro .page-intro-description) { font-size: var(--ec-text-small); line-height: 1.6; }
.marketplace-page .ec-tenant-toolbar { margin-bottom: 24px; }
.marketplace-page :is(.ec-tenant-nav a, .ec-account-tabs button, .live-chat-filters button) { font-size: var(--ec-text-small); line-height: 1.5; }
.marketplace-page .ec-tenant-account { gap: 24px; }
.auth-page .auth-content h1 { font-size: var(--ec-text-page); line-height: 1.25; }
.auth-page .auth-description { line-height: 1.6; }

@media (max-width: 900px) {
  /* Destination and round search action share a row; filters sit below. */
  .home-page .search-bar.enhanced-search {
    max-width: 560px;
    border-radius: var(--ec-radius-panel);
    padding: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .home-page .search-bar .search-submit {
    grid-column: 4;
    grid-row: 1;
    justify-self: end;
    width: 48px;
    min-width: 48px;
    height: 48px;
    min-height: 48px;
    margin: 0;
    padding: 0;
  }
  .home-page .enhanced-search .search-control { position: static; border-radius: 16px; }
  .home-page .enhanced-search .destination-field {
    grid-column: 1 / 4;
    grid-row: 1;
    border: 0;
    border-radius: 16px;
  }
  .home-page .enhanced-search .search-field:not(.destination-field) {
    grid-column: span 2;
    grid-row: 2;
  }
  .home-page .enhanced-search .search-popover {
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    width: auto;
    max-width: none;
    transform: none;
  }
  .home-page .ec-world-directory { gap: 32px; }
}
@media (max-width: 740px) {
  .marketplace-page { --ec-hero-space: 32px; }
  body.marketplace-page, body.auth-page {
    --ec-text-display: 32px;
    --ec-text-page: 28px;
    --ec-text-section: 24px;
    --ec-section-space: 40px;
    --ec-header-height: 64px;
    --ec-header-logo-width: 116px;
  }
  .home-page .market-hero { padding-inline: 20px; }
  .home-page .hero-description { margin: 16px auto 24px; }
  .home-page :is(.section-heading, .ec-public-heading) { align-items: flex-start; gap: 12px; margin-bottom: 20px; }
  .home-page .section-heading h2 { max-width: none; }
  .home-page .quick-search { gap: 0 16px; margin-top: 12px; }
  .home-page .quick-search > span { display: none; }
  .home-page .quick-search :is(a, button):last-child { border-left: 0; padding-left: 0; }
  .home-page .ec-home-search-features { justify-content: flex-start; }
  .home-page .ec-host-copy { padding: 24px; }
  .home-page .ec-process-steps { gap: 24px; }
  .home-page .faq-section { gap: 24px; }
  .home-page .ec-public-faq summary { padding: 20px; }
  .home-page .ec-public-faq details p { padding: 0 20px 20px; }
  .marketplace-page :is(.home-grid, .listing-grid) { gap: 32px 20px; }
  .marketplace-page .listing-toolbar { gap: 12px; }
  .marketplace-page .sort-control .ec-app-select-trigger { padding-left: 12px; padding-right: 32px; }
  .detail-page .property-section { padding-block: 24px; }
  .detail-page .property-section h2 { font-size: 22px; margin-bottom: 16px; }
  .marketplace-page :is(.web-panel, .ec-account-panel, .stay-planner) { padding: 20px; }
}

/* Fields (Figma Field 945:4559): no hover colour; while typing, the near-black line on the grey fill is the focus mark,
   so the extra ring is dropped. A field with an error keeps its red line. */
.ec-input:hover {
  border-color: var(--ec-field-border);
}
.ec-input:focus {
  border-color: var(--ec-state-border);
  outline: none;
  background-color: var(--ec-state-fill);
  box-shadow: none;
}
.ec-input[aria-invalid='true']:focus {
  border-color: var(--ec-danger);
}
.ec-input::placeholder {
  color: #807b7f;
  opacity: 1;
}

/* marketplace/property-card.css */
/* Figma 178:1226 (23 Oct 2026, was 178:1222). Source of truth for home, results and related-property cards.
   Google Sans Flex comes from Google Fonts (link tags in apps/web shell.tsx and the reference pages), user choice 10 Oct 2026.
   Muted text keeps --ec-muted: the frame's #A39AA1 is 2.6:1 on white, below the 4.5:1 text contrast floor. */
.ec-figma-card.ec-browse-card{
  --card-text:#101114;--card-muted:var(--ec-muted);--card-font:var(--ec-font-body);
  position:relative;display:flex;flex-direction:column;min-width:0;padding:0;border:0;border-radius:0;
  background:var(--ec-white,#fff);box-shadow:none;overflow:visible;color:var(--card-text);
}
.ec-figma-card.ec-browse-card>a.ec-property-card-link{display:flex;flex:1;flex-direction:column;min-width:0;border-radius:16px;text-decoration:none;color:inherit}
.ec-figma-card .ec-property-card-photo{position:relative;aspect-ratio:408/302;border-radius:16px;overflow:hidden;background:var(--ec-subtle)}
.ec-figma-card .ec-property-card-photo>img{display:block;width:100%;height:100%;object-fit:cover}
.ec-figma-card .ec-property-card-badge{position:absolute;top:12px;left:12px;max-width:calc(100% - 72px);min-height:24px;padding:5px 8px;border:0;border-radius:100px;background:#fff;color:var(--card-text);font:500 12px/14px var(--card-font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-figma-card .ec-property-card-details{display:flex;flex:1;flex-direction:column;gap:16px;padding:12px;min-width:0}
.ec-figma-card .ec-property-card-summary{display:flex;flex-direction:column;gap:4px;min-width:0}
.ec-figma-card .ec-property-card-meta{display:flex;align-items:flex-start;gap:8px;min-width:0;font:400 14px/18px var(--card-font)}
.ec-figma-card .ec-property-card-location{display:flex;flex:1;align-items:center;gap:6px;min-width:0;color:var(--card-muted);font:300 13px/1.5 var(--card-font)}
.ec-figma-card .ec-property-card-location>img{flex:none;max-width:none}
.ec-figma-card .ec-property-card-location>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ec-figma-card .ec-property-card-rating{display:inline-flex;align-items:center;gap:4px;flex:none;color:var(--card-text)}
.ec-figma-card .ec-property-card-rating>span:nth-child(2){text-decoration:underline;text-underline-offset:2px}
.ec-figma-card .ec-property-card-star{display:flex;justify-content:center;align-items:flex-start;width:14px;height:14px}
.ec-figma-card .ec-property-card-star img{display:block;flex:none;max-width:none}
.ec-figma-card .ec-property-card-details h3{margin:0;min-height:0;color:var(--card-text);font:500 18px/1.5 'Google Sans Flex',var(--ec-font-heading);letter-spacing:0;overflow-wrap:anywhere}
.ec-figma-card .ec-property-card-rent{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0;font:500 15px/1.2 var(--card-font);color:var(--card-text)}
.ec-figma-card .ec-property-card-period{color:var(--card-muted);font-weight:300;line-height:1.5}
.ec-figma-card .ec-property-card-rent .ec-approx-price{flex-basis:100%;margin:0;font:400 12px/18px var(--card-font)}
.ec-figma-card .ec-property-card-features{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0;padding:0;list-style:none;color:var(--card-muted);font:300 15px/1.5 var(--card-font)}
.ec-figma-card .ec-property-card-features>li{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;padding:0;margin:0;overflow-wrap:anywhere}
.ec-figma-card .ec-property-card-features>li+li::before{content:'';width:2px;height:2px;flex:none;background:#60565f}
.ec-figma-card .ec-property-card-context{display:grid;gap:6px;color:var(--card-muted);font:400 12px/18px var(--card-font)}
.ec-figma-card .ec-property-card-context p{margin:0;font:inherit;overflow-wrap:anywhere}
/* Phase 1 F3 (10 Nov 2026, not in the Figma frame): who runs the home and what Easycoliv checked. */
.ec-figma-card .ec-property-card-context .ec-property-card-host{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;color:var(--card-text)}
.ec-figma-card .ec-property-card-check{display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--ec-plum)}
.ec-figma-card .ec-property-card-check>svg{width:14px;height:14px;flex:none}
.ec-figma-card .ec-save-home{position:absolute;top:8px;right:8px;z-index:2}
.ec-figma-card .ec-save-home button{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:4px;border:0;border-radius:50%;background:transparent;box-shadow:none;cursor:pointer;color:var(--ec-plum)}
.ec-figma-card .ec-save-home button::before{content:'';position:absolute;inset:4px;background:#fff;border-radius:100px;box-shadow:0 2px 6px #24203212;transition:background var(--ec-duration,180ms)}
.ec-figma-card .ec-save-home button img{position:relative;display:block;flex:none;max-width:none}
.ec-figma-card .ec-save-home button:hover::before{background:var(--ec-selected,#ffe6d6)}
.ec-figma-card .ec-save-home button[aria-pressed=true]{background:transparent}
.ec-figma-card .ec-save-home button[aria-pressed=true]::before{background:var(--ec-plum)}
.ec-figma-card .ec-save-home button[aria-pressed=true] img{filter:brightness(0) invert(1)}
.ec-figma-card .ec-property-card-link:focus-visible,.ec-figma-card .ec-save-home button:focus-visible{outline:2px solid var(--ec-plum);outline-offset:3px}
.ec-figma-card:hover .ec-property-card-summary h3{color:var(--ec-plum)}
.home-page #homes .section-heading h2{font:500 36px/48px 'Google Sans Flex',var(--ec-font-heading);letter-spacing:-1.08px;color:#000}
.home-page #homes .home-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;align-items:start}
@media(max-width:1000px){.home-page #homes .home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.home-page #homes .home-grid{grid-template-columns:1fr}.home-page #homes .section-heading h2{font-size:28px;line-height:36px}}
@media(prefers-reduced-motion:reduce){.ec-figma-card *{transition:none!important}}

/* marketplace/site-footer.css */
/* Site footer (user decision, 15 Oct 2026: the home page's footer on every website page): two tiles, the brand, three
   link groups and the legal line. Bundled into every page kind (tools/design/marketplace-styles.mjs). The home page's
   variables are set here for the inner pages too (home-hero.css sets them on .home-page only), with the same values. */
.marketplace-page{--ec-hero-font:var(--ec-font-heading);--ec-hero-text-font:var(--ec-font-body);--ec-home-x:80px;--ec-home-max:1332px}
.marketplace-page .ec-home-footer{display:flex;flex-direction:column;align-items:center;margin:0;padding:0 80px;border-top:1px solid var(--ec-line);background:#fff;color:#000;font-family:var(--ec-hero-text-font)}
/* The two tiles, Figma "Container" 322:3683 (updated 22 Oct 2026): grey cards 16 px apart, a lilac or plum icon panel,
   a 20 px title over a 15 px muted line, the 24 px arrow. */
.ec-footer-tiles{display:flex;gap:16px;align-items:stretch;width:100%;max-width:var(--ec-home-max);padding:80px 0}
.marketplace-page .ec-tile{flex:1 1 0;display:flex;align-items:center;min-width:0;min-height:132px;padding-right:24px;border-radius:8px;overflow:hidden;background:#f5f5f5;color:inherit;text-decoration:none;transition:background-color .2s ease}
.marketplace-page .ec-tile:hover{background:#efebee;text-decoration:none}
.ec-tile-icon{position:relative;flex:none;align-self:stretch;overflow:hidden}
.t1 .ec-tile-icon{width:152px;background:var(--ec-lilac,#c9baea);color:var(--ec-plum)}
.t2 .ec-tile-icon{width:156px;background:var(--ec-plum);color:#ece8f5}
.ec-tile-icon svg{position:absolute;left:50%;top:50%;width:60px;height:60px;transform:translate(-50%,-50%);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.ec-tile-copy{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:24px}
.ec-tile-copy b{color:#101114;font:500 20px/1.4 var(--ec-hero-font)}
.ec-tile-copy>span{color:#756a73;font:400 15px/1.5 var(--ec-hero-text-font)}
.ec-tile-arrow{flex:none;width:24px;height:24px;color:#17181d;transition:transform .2s ease}
.marketplace-page .ec-tile:hover .ec-tile-arrow{transform:translateX(3px)}
.marketplace-page .ec-tile:hover .ec-tile-icon svg{transform:translate(-50%,-50%) scale(1.08)}
.ec-footer-rule{width:100%;max-width:var(--ec-home-max);height:1px;background:var(--ec-line)}
.ec-footer-main{display:flex;gap:64px;width:100%;max-width:var(--ec-home-max);padding:80px 0}
.ec-footer-brand{display:flex;flex-direction:column;gap:24px;width:460px;flex:none}
.ec-footer-brand a{display:inline-block;width:143px}
.ec-footer-brand svg{display:block;width:143px;height:auto}
.ec-footer-brand p{margin:0;color:#756a73;font:400 18px/24px var(--ec-hero-text-font)}
.ec-footer-nav{flex:1;display:flex;gap:40px;min-width:0}
.ec-footer-group{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:16px}
/* Figma Label Medium (15 px, 23 Oct 2026); the muted headings keep #756a73, the readable value of Content / Muted. */
.marketplace-page .ec-footer-group h3{margin:0;color:#756a73;font:500 15px/1.2 var(--ec-hero-font)}
.ec-footer-group ul{display:flex;flex-direction:column;gap:16px;margin:0;padding:0;list-style:none}
.marketplace-page .ec-footer-group a{color:#101114;font:500 15px/1.2 var(--ec-hero-font);text-decoration:none;white-space:nowrap}
.marketplace-page .ec-footer-group a:hover{color:var(--ec-plum);text-decoration:underline;text-underline-offset:3px}
.ec-legal-rule{width:100%;height:1px;background:var(--ec-line)}
.ec-legal{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:var(--ec-home-max);padding:32px 0;color:#756a73;font:300 13px/1.5 var(--ec-hero-text-font);white-space:nowrap}
.ec-legal p{margin:0}
.ec-legal nav{display:flex;gap:32px}
.marketplace-page .ec-legal a{color:inherit;text-decoration:none}
.marketplace-page .ec-legal a:hover{color:#000}
@media(max-width:1200px){
  .marketplace-page{--ec-home-x:48px}
  .marketplace-page .ec-home-footer{padding:0 var(--ec-home-x)}
  .ec-footer-tiles{gap:16px;padding:64px 0}
  .ec-footer-brand{width:320px}
}
@media(max-width:960px){
  .ec-footer-main{flex-direction:column;gap:48px}
  .ec-footer-brand{width:auto}
}
@media(max-width:640px){
  .marketplace-page{--ec-home-x:20px}
  .ec-footer-tiles{flex-direction:column;gap:12px;padding:48px 0}
  .marketplace-page .ec-tile{flex:none;width:100%}
  .marketplace-page .ec-tile{padding-right:16px}
  .t1 .ec-tile-icon,.t2 .ec-tile-icon{width:80px}
  .ec-tile-icon svg{width:40px;height:40px}
  .ec-tile-copy{gap:4px;padding:16px}
  .ec-tile-copy b{font-size:18px}
  .ec-tile-copy>span{font-size:14px;line-height:1.45}
  .ec-footer-nav{flex-wrap:wrap;row-gap:40px}
  .ec-footer-group{flex:1 1 40%}
  .ec-legal{flex-direction:column;align-items:flex-start;white-space:normal}
}

/* marketplace/toast.css */
/* Toasts (apps/web/src/components/marketplace/toast.tsx): a short confirmation or failure for an action that changes
   nothing else on screen. The library's .ec-toast look (components.css: plum, 12px corners, overlay shadow) in a stack at
   the bottom centre, above sticky bars and the safe area; the region places them, so each toast drops the library's own
   fixed position. */
.ec-toasts {
  position: fixed;
  inset-inline: 0;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: 1000;
  display: flex;
  justify-content: center;
  padding-inline: 16px;
  pointer-events: none;
}
.ec-toasts ol {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(100%, 480px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-toasts .ec-toast {
  position: static;
  transform: none;
  max-width: none;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 8px 8px 8px 16px;
  border-radius: 12px;
  background: var(--ec-plum);
  color: var(--ec-white);
  box-shadow: var(--ec-shadow-overlay);
  font: 500 14px/1.45 var(--ec-font-body);
  pointer-events: auto;
  animation: ec-toast-in var(--ec-duration, 180ms) var(--ec-ease, ease-out);
}
.ec-toasts .ec-toast.danger {
  background: var(--ec-danger);
}
.ec-toasts .ec-toast p {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.ec-toast-icon {
  flex: none;
  width: 20px;
  height: 20px;
}
.ec-toast-action {
  display: inline-flex;
  flex: none;
  align-items: center;
  min-height: 44px;
  padding-inline: 8px;
  color: var(--ec-apricot);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-toasts .ec-toast.danger .ec-toast-action {
  color: var(--ec-white);
}
.ec-toast-close {
  display: grid;
  flex: none;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.ec-toast-close:hover {
  background: color-mix(in srgb, var(--ec-white) 12%, transparent);
}
.ec-toast-close svg {
  width: 18px;
  height: 18px;
}
.ec-toasts .ec-toast :focus-visible {
  outline: 2px solid var(--ec-white);
  outline-offset: 2px;
}
/* Movement only: a toast stays readable even where animations are paused (background tabs, some webviews). */
@keyframes ec-toast-in {
  from {
    transform: translateY(8px);
  }
}
/* Phones: the message takes the full line, the link sits under it, and dismiss stays top right. */
@media (max-width: 599px) {
  .ec-toasts .ec-toast {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 44px;
    column-gap: 12px;
    row-gap: 0;
  }
  .ec-toasts .ec-toast-icon {
    grid-area: 1 / 1;
  }
  .ec-toasts .ec-toast p {
    grid-area: 1 / 2;
  }
  .ec-toasts .ec-toast-close {
    grid-area: 1 / 3;
  }
  .ec-toasts .ec-toast-action {
    grid-area: 2 / 2;
    justify-self: start;
    padding-inline: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ec-toasts .ec-toast {
    animation: none;
  }
}

/* marketplace/city-page.css */
/* City page (/{country}/{city}), from the Figma file "easycoliv", frame 396:1825 "City page" (19 Oct 2026).
   Implemented in apps/web/src/components/city-guide-page.tsx and city-explore.tsx; loaded last in the support bundle.
   Everything uses the one family, Google Sans Flex, loaded from Google Fonts (<GoogleFonts />).
   Figma measures at a 1512 px frame: 80 px side padding, 1332 px content, 1100 px for the questions. */

.ec-city-page {
  --cp-x: 80px;
  --cp-max: 1332px;
  --cp-narrow: 1100px;
  /* Figma colour styles (23 Oct 2026): Content / Primary, Content / Secondary, Content / Muted, Border / Strong,
     Surface / Subtle. */
  --cp-ink: #101114;
  --cp-text: #3d373d;
  --cp-muted: #756a73;
  --cp-strong: #827581;
  --cp-subtle: #f5f5f5;
  background: var(--ec-white);
  color: var(--cp-ink);
  font-family: var(--ec-font-body);
}
.ec-city-page h1,
.ec-city-page h2,
.ec-city-page p,
.ec-city-page ul,
.ec-city-page dl,
.ec-city-page dd {
  margin: 0;
}
.ec-city-page ul {
  padding: 0;
  list-style: none;
}
/* One content column for the whole page; the supporting pages' 1280 px container and section rules do not apply. */
.ec-city-page .web-container {
  width: calc(100% - 2 * var(--cp-x));
  max-width: var(--cp-max);
  margin-inline: auto;
  padding-inline: 0;
}
.ec-city-page .web-section {
  padding: 0 0 80px;
  border: 0;
  background: var(--ec-white);
}
.ec-city-page section[id] {
  /* Below the sticky header and section tabs, with 32 px to spare. */
  scroll-margin-top: calc(var(--ec-header-height, 72px) + 80px);
}

/* Section headings (Figma Wrapper, 650 px): 36 px title, the light 16 px line 16 px under it; 40 px down to the
   content. A button, field or arrows on the right line up with the title's top. */
.ec-city-page .ec-cp-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 40px;
}
.ec-city-page .ec-cp-head > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  max-width: 650px;
}
.ec-city-page .ec-cp-title {
  color: var(--cp-ink);
  font: 500 36px/1.2 var(--ec-font-heading);
  letter-spacing: -0.72px;
}
.ec-city-page .ec-cp-title-sm {
  color: var(--cp-ink);
  font: 500 24px/30px var(--ec-font-heading);
  letter-spacing: -0.48px;
}
.ec-city-page .ec-cp-sub {
  color: var(--cp-text);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}
/* The frame's text widths: the line wraps where the designer's does. */
.ec-city-page .ec-cp-places .ec-cp-sub {
  max-width: 640px;
}

/* The outline pill ("Explore all"): Figma Button, secondary. */
.ec-city-page .ec-cp-button {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 48px;
  padding: 0 20px;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: var(--ec-radius-pill, 999px);
  background: var(--ec-white);
  color: var(--cp-ink);
  font: 500 15px/1.2 var(--ec-font-heading);
  text-decoration: none;
  white-space: nowrap;
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease), background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-cp-button:hover {
  border-color: var(--ec-state-border);
  background: var(--ec-state-fill);
}
.ec-city-page :is(a, button, summary):focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}

/* Breadcrumbs: a grey band under the header, bars between the steps. Blog posts (blog-post.css) use the same band. */
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs {
  background: var(--cp-subtle);
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .web-container {
  display: flex;
  align-items: center;
  min-height: 40px;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .smart-breadcrumbs {
  margin: 0;
  padding: 0;
  min-width: 0;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail {
  gap: 12px;
  min-height: 0;
  color: var(--cp-muted);
  font: 400 13px/18.2px var(--ec-font-heading);
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li {
  gap: 12px;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li > :is(a, span) {
  min-height: 0;
  padding-block: 0;
  line-height: 1.5;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li > a {
  color: var(--cp-ink);
  text-decoration: underline;
  text-underline-offset: 2px;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li > a:hover {
  color: var(--ec-plum);
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li > svg {
  display: none;
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > li:not(:first-child):not(.breadcrumb-more)::before {
  content: '';
  flex: none;
  width: 1px;
  height: 9.5px;
  border-radius: 1px;
  background: var(--ec-control-border, #d7cdd3);
}
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .breadcrumb-trail > .breadcrumb-more + li::before {
  display: none;
}

/* Hero: the H1 and one line, no photo. */
.ec-city-page .ec-cp-hero {
  padding: 80px 0;
}
.ec-city-page .ec-cp-hero .web-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* The inner page title (tenant-theme.css --ec-page-title-*, 24 Oct 2026) and Figma Big Body. */
.ec-city-page .ec-cp-hero h1 {
  max-width: 750px;
  font: var(--ec-page-title-font);
  letter-spacing: var(--ec-page-title-tracking);
  color: var(--ec-page-title-ink);
}
.ec-city-page .ec-cp-hero p {
  max-width: 750px;
  color: var(--cp-text);
  font: 300 18px/1.6 var(--ec-font-body);
}
.ec-city-page .ec-cp-hero .ec-cp-hero-status {
  margin-top: -16px;
  color: var(--cp-ink);
  font-weight: 500;
}

/* Section tabs: plum underline under the current one, a hairline under the row. */
.ec-city-page .ec-guide-navigation {
  border: 0;
  background: var(--ec-white);
}
.ec-city-page .ec-guide-navigation .web-container {
  gap: 24px;
}
.ec-city-page .ec-guide-nav-links {
  gap: 24px;
  scrollbar-width: none;
}
.ec-city-page .ec-guide-nav-links::-webkit-scrollbar {
  display: none;
}
.ec-city-page .ec-guide-nav-links a {
  min-height: 0;
  /* 12 px above the label, 12 px below it with the 2 px underline: 45 px, as the Figma Navigation / Item. */
  padding: 12px 0 10px;
  border-bottom: 2px solid transparent;
  /* Figma's #827581 is 4.4:1 on white; this is the nearest grey that reaches 4.5:1 for 14 px text. */
  color: #7a6d79;
  font: 600 14px/21px var(--ec-font-heading);
  text-decoration: none;
}
.ec-city-page .ec-guide-nav-links a[aria-current='location'],
.ec-city-page .ec-guide-nav-links a:hover {
  border-color: var(--ec-plum);
  color: var(--ec-plum);
}

/* Homes: three Figma property cards a row. */
.ec-city-page .ec-cp-homes {
  padding-top: 80px;
}
/* A page without homes (a type, neighbourhood or landmark with none listed, 21 Oct 2026): whatever comes first under
   the tabs (a banner, photos or the overview) starts as far down as the homes would. The homes and the country page's
   cities carry that space themselves. */
.ec-city-page .ec-guide-navigation + :not(.ec-cp-homes, .ec-ctp-cities) {
  margin-top: 80px;
}
.ec-city-page .ec-cp-homes .listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 24px;
}
.ec-city-page .ec-guide-more {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}
.ec-city-page .ec-guide-more button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: var(--ec-radius-pill, 999px);
  background: var(--ec-white);
  color: var(--cp-ink);
  font: 500 15px/1.2 var(--ec-font-heading);
  box-shadow: none;
}
.ec-city-page .ec-guide-more button:hover {
  border-color: var(--ec-state-border);
  background: var(--ec-state-fill);
}

/* Local rents, under the homes: one quiet disclosure row. */
.ec-city-page .ec-cp-rents {
  margin-top: 40px;
  border-block: 1px solid var(--ec-line);
}
.ec-city-page .ec-cp-rents summary,
.ec-city-page .ec-cp-faq-list summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  list-style: none;
  color: var(--ec-plum);
  font: 500 18px/1.5 var(--ec-font-heading);
}
.ec-city-page .ec-cp-rents summary {
  min-height: 64px;
  padding: 20px 0;
  font-size: 16px;
}
.ec-city-page :is(.ec-cp-rents, .ec-cp-faq-list) summary::-webkit-details-marker {
  display: none;
}
.ec-city-page :is(.ec-cp-rents, .ec-cp-faq-list) summary svg {
  flex: none;
  transition: transform var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page :is(.ec-cp-rents, .ec-cp-faq-list) details[open] > summary svg,
.ec-city-page .ec-cp-rents[open] > summary svg {
  transform: rotate(45deg);
}
.ec-city-page .ec-cp-rents-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  padding-bottom: 24px;
}
.ec-city-page .ec-cp-rents-grid > :only-child {
  grid-column: 1 / -1;
  max-width: 654px;
}

/* A staff banner (CL-624) sits in the content column with its own padding. */
.ec-city-page .ec-cp-banner.ec-campaign {
  width: calc(100% - 2 * var(--cp-x));
  max-width: var(--cp-max);
  margin: 0 auto 80px;
}

/* City Guide (Figma 930:2923, 23 Oct 2026): the about text in 646 px, the highlights as lilac tags, "Explore N Homes"
   under the guide text. */
/* Beats the 850 px country-page.css gives other place pages' overviews. */
.ec-city-page:not(.ec-country-page) .ec-ctp-guide.ec-cp-guide .ec-cp-head > div:first-child {
  max-width: 646px;
}
.ec-city-page .ec-cp-guide .web-container > .ec-cp-button {
  align-self: flex-start;
}
.ec-city-page .ec-cp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.ec-city-page .ec-cp-tags li {
  padding: 16px 24px;
  border-radius: var(--ec-radius-card, 16px);
  background: var(--ec-lilac, #c9baea);
  color: var(--cp-ink);
  font: 500 16px/1.2 var(--ec-font-heading);
}
/* A tab's section without places of its own (every city has all six tabs). */
.ec-city-page .ec-cp-empty {
  color: var(--cp-text);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}

/* Comparisons: outline pills with an up-right arrow. */
.ec-city-page .ec-cp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ec-city-page .ec-cp-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  /* 52 px on one line; a long name wraps inside the pill instead of pushing the page sideways on a phone. */
  min-height: 52px;
  max-width: 100%;
  padding: 8px 21px;
  border: 1px solid var(--ec-control-border, #d7cdd3);
  border-radius: 999px;
  background: var(--ec-white);
  color: var(--cp-ink);
  font: 700 14px/21px var(--ec-font-heading);
  text-decoration: none;
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease), background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-cp-chip svg {
  flex: none;
}
.ec-city-page .ec-cp-chip:hover {
  border-color: var(--ec-plum);
  background: #faf7f9;
  color: var(--ec-plum);
}

/* University and famous-place photo cards on country and city pages. */
.ec-city-page .ec-cp-place-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-city-page .ec-cp-place-card-item {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--ec-line, #e8e1e5);
  border-radius: 16px;
  background: var(--ec-white, #fff);
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease),
    box-shadow var(--ec-duration, 0.2s) var(--ec-ease, ease),
    transform var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-cp-place-card-item:is(:hover, :focus-within) {
  border-color: var(--ec-plum);
  box-shadow: 0 10px 28px rgba(41, 18, 35, 0.08);
  transform: translateY(-2px);
}
.ec-city-page .ec-cp-place-card {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  color: var(--cp-ink);
  text-decoration: none;
}
.ec-city-page .ec-cp-place-photo {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--cp-subtle);
}
.ec-city-page .ec-cp-place-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ec-city-page .ec-cp-place-card-item:is(:hover, :focus-within) .ec-cp-place-photo img {
  transform: scale(1.04);
}
.ec-city-page .ec-cp-place-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(6px);
  color: var(--cp-ink);
  font: 600 12px/1 var(--ec-font-body);
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
.ec-city-page .ec-cp-place-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  justify-content: space-between;
  gap: 6px;
  padding: 14px 16px;
}
.ec-city-page .ec-cp-place-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.ec-city-page .ec-cp-place-title-row svg {
  flex: none;
  margin-top: 2px;
}
.ec-city-page .ec-cp-place-title {
  margin: 0;
  color: var(--cp-ink);
  font: 600 16px/22px var(--ec-font-heading);
  transition: color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-cp-place-card:is(:hover, :focus-visible) .ec-cp-place-title {
  color: var(--ec-plum);
}
.ec-city-page .ec-cp-place-meta {
  margin: 0;
  color: var(--cp-muted);
  font: 400 13px/18px var(--ec-font-body);
}
.ec-city-page .ec-cp-place-sublink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 16px;
  border-top: 1px solid var(--ec-line, #e8e1e5);
  background: #faf7f9;
  color: var(--ec-plum);
  font: 600 13px/18px var(--ec-font-heading);
  text-decoration: none;
  transition: background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-cp-place-sublink:hover {
  background: #f0e6ee;
}
.ec-city-page .ec-cp-place-sublink svg {
  flex: none;
}

/* Keep exploring: the home page's Top Cities cards in a scroll track, arrows on the right of the heading. */
.ec-city-page .ec-cp-explore {
  padding-top: 80px;
}
.ec-city-page .ec-cp-explore .web-container {
  overflow: hidden;
}
.ec-city-page .ec-cp-explore .ec-cp-head {
  align-items: flex-start;
}
.ec-city-page .ec-cp-arrows {
  display: flex;
  flex: none;
  gap: 8px;
}
.ec-city-page .ec-cp-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--cp-strong);
  border-radius: 999px;
  background: var(--ec-white);
  color: var(--cp-ink);
  cursor: pointer;
  transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.ec-city-page .ec-cp-arrow:hover:not(:disabled) {
  background: #faf7f9;
}
.ec-city-page .ec-cp-arrow:disabled {
  border-color: var(--ec-line);
  color: var(--cp-text);
  cursor: default;
}
.ec-city-page .ec-cp-track {
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 0 0 2px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}
.ec-city-page .ec-cp-track::-webkit-scrollbar {
  display: none;
}
.ec-city-page .ec-cp-track > li {
  flex: none;
  scroll-snap-align: start;
}
.ec-city-page .ec-cp-city {
  position: relative;
  display: block;
  width: 278px;
  height: 351px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--ec-apricot);
  color: #fff;
  text-decoration: none;
}
.ec-city-page .ec-cp-city-photo {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 16px;
  background: #302c27;
  transition: bottom 0.3s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ec-city-page .ec-cp-city-photo :is(img, .property-image) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ec-city-page .ec-cp-city-shade {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 136px;
  background: linear-gradient(to bottom, #0000, #000);
  transition: opacity 0.3s ease;
}
.ec-city-page .ec-cp-city-caption {
  position: absolute;
  right: 40px;
  bottom: 16px;
  left: 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: #fff;
  font-family: var(--ec-font-body);
  line-height: 1.36;
  transition: color 0.3s ease;
}
.ec-city-page .ec-cp-city-caption strong {
  overflow: hidden;
  font: 600 18px/1.36 var(--ec-font-body);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ec-city-page .ec-cp-city-caption span {
  font: 400 14px/1.36 var(--ec-font-body);
}
.ec-city-page .ec-cp-city-action {
  position: absolute;
  right: 16px;
  bottom: 31px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 18px;
  color: #fff;
  transition: transform 0.25s ease, color 0.3s ease;
}
.ec-city-page .ec-cp-city:is(:hover, :focus-visible) .ec-cp-city-photo {
  bottom: 80px;
}
.ec-city-page .ec-cp-city:is(:hover, :focus-visible) .ec-cp-city-photo img {
  transform: scale(1.04);
}
.ec-city-page .ec-cp-city:is(:hover, :focus-visible) .ec-cp-city-shade {
  opacity: 0;
}
.ec-city-page .ec-cp-city:is(:hover, :focus-visible) :is(.ec-cp-city-caption, .ec-cp-city-action) {
  color: #000;
}
.ec-city-page .ec-cp-city:is(:hover, :focus-visible) .ec-cp-city-action {
  transform: translateX(3px);
}

/* Comparisons and Popular searches, before the questions. */
.ec-city-page .ec-cp-more .web-container {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.ec-city-page .ec-city-compare {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ec-city-page .ec-cp-more .related-searches {
  margin: 0;
  padding: 0;
  border: 0;
}
.ec-city-page .ec-cp-more .related-searches h2 {
  color: var(--cp-ink);
  font: 500 24px/30px var(--ec-font-heading);
  letter-spacing: -0.48px;
}
.ec-city-page .ec-cp-more .related-searches ul {
  margin-top: 24px;
}

/* Questions: a hairline above, title and help link on the left, answer rows on the right (narrow column). */
.ec-city-page .ec-cp-faq {
  padding: 0;
}
.ec-city-page .ec-cp-faq .web-container {
  padding-block: 80px;
  border-top: 1px solid var(--ec-line);
}
/* "Common Questions" (Figma FAQ 801:3004, revised 23 Oct 2026): two equal columns 40 px apart, the title on the
   left, the questions on the right as plum rows with a rule between them. */
.ec-city-page .ec-cp-faq-inner {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}
.ec-city-page .ec-cp-faq-inner > * {
  flex: 1 0 0;
  min-width: 0;
}
.ec-city-page .ec-cp-faq-list details + details {
  border-top: 1px solid var(--ec-line);
}
.ec-city-page .ec-cp-faq-list summary {
  padding: 16px 0;
}
.ec-city-page .ec-cp-faq-list details p {
  padding: 0 40px 16px 0;
  color: var(--cp-text);
  font: 300 16px/1.5 var(--ec-font-body);
}

/* Pages under a city (property types, neighbourhoods, landmarks: hub-page.tsx), user request 19 Oct 2026. */
.ec-city-inner .ec-cp-hero .ec-cp-button {
  align-self: flex-start;
}

/* Tablet. */
@media (max-width: 1100px) {
  .ec-city-page {
    --cp-x: 40px;
  }
  .ec-city-page .ec-cp-homes .listing-grid,
  .ec-city-page .ec-cp-place-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-city-page .ec-cp-faq-inner {
    flex-direction: column;
    gap: 32px;
  }
  .ec-city-page .ec-cp-faq-inner > * {
    flex: none;
    width: 100%;
  }
}

/* Phone. */
@media (max-width: 760px) {
  .ec-city-page {
    --cp-x: 20px;
  }
  .ec-city-page .web-section {
    padding-bottom: 56px;
  }
  .ec-city-page .ec-cp-hero {
    padding: 32px 0;
  }
  .ec-city-page .ec-cp-banner.ec-campaign {
    margin-bottom: 56px;
  }
  .ec-city-page .ec-cp-hero .web-container {
    gap: 16px;
  }
  .ec-city-page .ec-cp-hero .ec-cp-hero-status {
    margin-top: -8px;
  }
  .ec-city-page .ec-cp-title {
    font-size: 28px;
    line-height: 36px;
    letter-spacing: -0.84px;
  }
  .ec-city-page .ec-cp-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 28px;
  }
  .ec-city-page .ec-cp-explore .ec-cp-head {
    flex-direction: row;
  }
  .ec-city-page .ec-cp-homes {
    padding-top: 48px;
  }
  .ec-city-page .ec-guide-navigation + :not(.ec-cp-homes, .ec-ctp-cities) {
    margin-top: 48px;
  }
  .ec-city-page .ec-cp-explore {
    padding-top: 0;
  }
  .ec-city-page .ec-cp-arrows {
    display: none;
  }
  .ec-city-page .ec-cp-homes .listing-grid,
  .ec-city-page .ec-cp-rents-grid,
  .ec-city-page .ec-cp-place-cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .ec-city-page .ec-cp-homes .listing-grid {
    gap: 32px;
  }
  .ec-city-page .ec-cp-chip {
    min-height: 44px;
    padding-inline: 16px;
  }
  .ec-city-page .ec-cp-city {
    width: 240px;
    height: 303px;
  }
  .ec-city-page .ec-cp-faq .web-container {
    padding-block: 56px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ec-city-page .ec-cp-city-photo,
  .ec-city-page .ec-cp-city-photo img,
  .ec-city-page .ec-cp-city-shade {
    transition: none;
  }
  .ec-city-page .ec-cp-city:is(:hover, :focus-visible) .ec-cp-city-photo img {
    transform: none;
  }
  .ec-city-page .ec-cp-track {
    scroll-behavior: auto;
  }
}

/* Photos the team adds in the admin console (Content / Place pages, 21 Oct 2026): the page photo under the title and
   a gallery with captions. Shared by country, city, neighbourhood, landmark and type pages. */
.ec-city-page .ec-cp-photo {
  padding: 0 0 40px;
}
.ec-city-page .ec-cp-photo figure {
  margin: 0;
}
.ec-city-page .ec-cp-photo img {
  display: block;
  width: 100%;
  max-height: 480px;
  object-fit: cover;
  border-radius: 24px;
}
.ec-city-page .ec-cp-photo figcaption,
.ec-city-page .ec-cp-gallery figcaption {
  margin-top: 8px;
  color: var(--cp-muted);
  font: 400 14px/18px var(--ec-font-body);
}
.ec-city-page .ec-cp-gallery .web-container {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ec-city-page .ec-cp-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-city-page .ec-cp-gallery-grid figure {
  margin: 0;
}
.ec-city-page .ec-cp-gallery-grid img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 16px;
}
@media (max-width: 1100px) {
  .ec-city-page .ec-cp-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .ec-city-page .ec-cp-photo img {
    max-height: 260px;
    border-radius: 16px;
  }
  .ec-city-page .ec-cp-gallery-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* The site header on these pages lines up with their 1332 px column (user, 22 Oct 2026): the shared header's .wrap is
   1280 px, so the logo and the account button sat 26 px inside the breadcrumbs and the content. Same gutters as above. */
.marketplace-page:has(main.ec-city-page) .site-header .nav-wrap {
  width: min(1332px, calc(100% - 160px));
}
@media (max-width: 1100px) {
  .marketplace-page:has(main.ec-city-page) .site-header .nav-wrap {
    width: calc(100% - 80px);
  }
}
@media (max-width: 760px) {
  .marketplace-page:has(main.ec-city-page) .site-header .nav-wrap {
    width: calc(100% - 40px);
  }
}
/* The trail fills the band: its items' percentage widths then resolve against the band, not against the trail's own
   width, which cut "Home" to "Ho..." and "United Kingdom" at any screen width. */
:is(.ec-city-page, .ec-blog-post) .ec-cp-crumbs .smart-breadcrumbs {
  flex: 1 1 auto;
}

/* marketplace/country-page.css */
/* Place page sections, from the Figma file "easycoliv", frame 490:1975 "Country page" (19 Oct 2026, updated
   22 Oct 2026: guide figures band, work rows, famous place cards, housing icons). The country page has them all; since
   22 Oct 2026 the city page and the pages under a city (neighbourhoods, landmarks, types) use the same sections.
   Implemented in apps/web/src/components/destination-hub-page.tsx (CountryHubPage), city-guide-page.tsx, hub-page.tsx,
   country-cities.tsx, place-sections.tsx and city-page-parts.tsx. The page's
   main element also carries .ec-city-page, so the city page's layout applies (city-page.css: breadcrumb band, hero,
   section tabs, section headings, the disclosure row, Keep exploring and Get Answered). This file adds the parts only
   the country frame has, scoped to .ec-city-page (every place page's main element), and loads after city-page.css. */

/* The country frame's hero (revised 23 Oct 2026): 650 px wide (the city frame's 750), the title 12 px above the line. */
.ec-country-page .ec-cp-hero .web-container {
  gap: 12px;
}
.ec-country-page .ec-cp-hero :is(h1, p) {
  max-width: 650px;
}
/* A section every country has a tab for, while it has nothing to list yet. */
.ec-city-page .ec-ctp-empty-line {
  color: var(--cp-muted);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}

/* The cities start 80 px under the tabs (Figma "Homes section" padding). */
.ec-city-page .ec-ctp-cities {
  padding-top: 80px;
}
/* The frame pads every section 80 px above and below, so contents sit 160 px apart. */
.ec-city-page :is(.ec-ctp-guide, .ec-ctp-work, .ec-ctp-famous-places, .ec-ctp-types, .ec-ctp-places) {
  padding-top: 80px;
}
/* Right under the tabs (a page without homes) that padding is the 80 px the tabs need; no extra margin on top. */
.ec-city-page .ec-guide-navigation + :is(.ec-ctp-guide, .ec-ctp-work, .ec-ctp-famous-places, .ec-ctp-types, .ec-ctp-places) {
  margin-top: 0;
}

/* "Search cities": Figma Field / Search, Medium (968:3631), beside the heading, at most 300 px wide. While typing the
   pill takes the near-black line on the grey fill (nWatch Website #6, 26 Oct 2026). */
.ec-city-page .ec-ctp-search {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  gap: 8px;
  min-width: 220px;
  max-width: 300px;
  height: 46px;
  padding: 0 24px 0 16px;
  border: 1.2px solid var(--ec-line);
  border-radius: 999px;
  background: var(--ec-white);
  color: var(--cp-ink);
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease), background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-search:focus-within {
  border-color: var(--ec-state-border);
  background: var(--ec-state-fill);
}
.ec-city-page .ec-ctp-search svg {
  flex: none;
  width: 20px;
  height: 20px;
}
.ec-city-page .ec-ctp-search input {
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--cp-ink);
  font: 400 15px/1.5 var(--ec-font-body);
}
/* The pill shows the focus; the site-wide field ring would draw a second one inside it. */
.ec-city-page .ec-ctp-search input:is(:focus, :focus-visible) {
  outline: 0;
  box-shadow: none;
}
.ec-city-page .ec-ctp-search input::placeholder {
  color: #807b7f;
  opacity: 1;
}
.ec-city-page .ec-ctp-search:focus-within input::placeholder {
  color: #b3a9b1;
}

/* Cities: three photo cards a row, the home count on a white pill, the name under the photo. */
.ec-city-page .ec-ctp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 24px;
}
.ec-city-page .ec-ctp-grid > li[hidden] {
  display: none;
}
.ec-city-page .ec-ctp-city {
  display: flex;
  flex-direction: column;
  color: var(--cp-ink);
  text-decoration: none;
}
.ec-city-page .ec-ctp-city-photo {
  position: relative;
  display: block;
  aspect-ratio: 428 / 316.8;
  overflow: hidden;
  border-radius: 16px;
  background: var(--cp-subtle);
}
.ec-city-page .ec-ctp-city-photo :is(img, .property-image) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ec-city-page .ec-ctp-city-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 100px;
  background: var(--ec-white);
  color: var(--cp-ink);
  font: 500 13px/1.2 var(--ec-font-body);
  white-space: nowrap;
}
.ec-city-page .ec-ctp-city h3 {
  margin: 0;
  padding: 12px;
  color: var(--cp-ink);
  font: 500 18px/27px var(--ec-font-heading);
  letter-spacing: 0;
  transition: color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-city:is(:hover, :focus-visible) .ec-ctp-city-photo img {
  transform: scale(1.04);
}
.ec-city-page .ec-ctp-city:is(:hover, :focus-visible) h3 {
  color: var(--ec-plum);
}
.ec-city-page .ec-ctp-empty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 40px;
  border-radius: 16px;
  background: var(--cp-subtle);
}
.ec-city-page .ec-ctp-empty h3 {
  margin: 0;
  font: 600 18px/23px var(--ec-font-heading);
}
.ec-city-page .ec-ctp-empty p {
  color: var(--cp-text);
  font: 400 16px/24px var(--ec-font-body);
}
.ec-city-page .ec-ctp-empty button {
  min-height: 44px;
  margin-top: 8px;
  padding: 12px 20px;
  border: 1px solid var(--cp-strong);
  border-radius: 999px;
  background: var(--ec-white);
  color: var(--cp-ink);
  font: 600 14px/14px var(--ec-font-heading);
  cursor: pointer;
}

/* Country guide: the summary, a lilac band of figures, the city notes with "Read More", then two link lists. */
.ec-city-page .ec-ctp-guide .web-container {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 40px;
}
.ec-city-page .ec-ctp-guide .ec-cp-head {
  margin: 0;
}
.ec-city-page .ec-ctp-guide .ec-cp-head > div:first-child {
  gap: 16px;
  max-width: 646px;
}
/* A city's about text is longer: the city frame gives it 850 px. */
.ec-city-page:not(.ec-country-page) .ec-ctp-guide .ec-cp-head > div:first-child {
  max-width: 850px;
}
.ec-city-page .ec-ctp-figures {
  display: flex;
  flex-wrap: wrap;
  align-self: flex-start;
  gap: 24px 40px;
  max-width: 100%;
  padding: 40px 80px;
  border-radius: var(--ec-radius-card, 16px);
  background: var(--ec-lilac, #c9baea);
  color: #101114;
}
/* Figure over its label, as drawn; the label still comes first for screen readers. */
.ec-city-page .ec-ctp-figures > div {
  display: flex;
  flex-direction: column-reverse;
  /* Reversed, so this keeps every figure at the top when a label wraps. */
  justify-content: flex-end;
  gap: 4px;
  flex: 0 0 auto;
  min-width: 211px;
  max-width: 100%;
}
.ec-city-page .ec-ctp-figures dd {
  font: 500 36px/1.2 var(--ec-font-heading);
  letter-spacing: -0.72px;
  overflow-wrap: break-word;
}
.ec-city-page .ec-ctp-figures dt {
  font: 300 18px/1.6 var(--ec-font-body);
}
/* Four lines, "Read More" at the end of the fourth (Figma 871:2692); the full text stays in the HTML. */
.ec-city-page .ec-ctp-guide-text {
  position: relative;
}
.ec-city-page .ec-ctp-guide-text p {
  color: var(--cp-text);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}
.ec-city-page .ec-ctp-guide-text p[data-collapsed='true'] {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.ec-city-page .ec-ctp-guide-text p[data-collapsed='true'] + button {
  position: absolute;
  right: 0;
  bottom: 0;
  margin: 0;
  padding-left: 40px;
  background: linear-gradient(to right, rgb(255 255 255 / 0), var(--ec-white) 32px);
  line-height: 24px;
}
.ec-city-page :is(.ec-ctp-guide-text button, .ec-ctp-guide-cols a, .ec-ctp-links a) {
  color: var(--cp-ink);
  font: 500 16px/1.2 var(--ec-font-heading);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-guide-text button {
  min-height: 24px;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  cursor: pointer;
}
.ec-city-page :is(.ec-ctp-guide-text button, .ec-ctp-guide-cols a, .ec-ctp-links a):hover {
  color: var(--ec-plum);
}
.ec-city-page .ec-ctp-guide-block {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.ec-city-page .ec-ctp-guide-block h3,
.ec-city-page .ec-ctp-work-copy h3 {
  margin: 0;
  color: var(--cp-ink);
  font: 500 20px/1.4 var(--ec-font-heading);
  letter-spacing: 0;
}
.ec-city-page .ec-ctp-guide-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 16px;
}
.ec-city-page .ec-ctp-guide-cols li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
}
.ec-city-page .ec-ctp-guide-city {
  color: var(--cp-muted);
  font: 500 16px/1.2 var(--ec-font-heading);
}
.ec-city-page .ec-ctp-guide-cols p {
  color: var(--cp-ink);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}

/* City and kind-of-place chips (Figma Category / Chip): outline pills, the chosen one in plum. */
.ec-city-page .ec-ctp-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 40px;
}
.ec-city-page .ec-ctp-filter {
  display: inline-flex;
  align-items: center;
  height: 46px;
  padding: 0 20px;
  border: 1px solid var(--ec-line, #e6dee3);
  border-radius: 999px;
  background: var(--ec-white);
  box-shadow: none;
  color: var(--cp-muted);
  font: 500 15px/1.2 var(--ec-font-heading);
  white-space: nowrap;
  cursor: pointer;
  transition: border-color var(--ec-duration, 0.2s) var(--ec-ease, ease), color var(--ec-duration, 0.2s) var(--ec-ease, ease), background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-filter:hover {
  border-color: var(--cp-strong);
  color: var(--cp-ink);
}
.ec-city-page .ec-ctp-filter[aria-pressed='true'] {
  border-color: var(--ec-plum);
  background: #faf7f9;
  color: var(--ec-plum);
}

/* Work & neighbourhoods: one row per kind of place, a 216 x 160 photo and the place links. */
.ec-city-page .ec-ctp-work-rows {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.ec-city-page .ec-ctp-work-row {
  display: flex;
  align-items: center;
}
/* Rows and cards in one section (a type page's landmarks). */
.ec-city-page .ec-ctp-work-rows + :is(.ec-ctp-filters, .ec-ctp-famous-grid) {
  margin-top: 40px;
}
.ec-city-page :is(.ec-ctp-work-row, .ec-ctp-links li, .ec-ctp-famous-grid > li)[hidden] {
  display: none;
}
.ec-city-page .ec-ctp-work-photo {
  position: relative;
  flex: none;
  width: 216px;
  height: 160px;
  overflow: hidden;
  border-radius: var(--ec-radius-card, 16px);
  background: var(--cp-subtle);
}
.ec-city-page :is(.ec-ctp-work-photo, .ec-ctp-famous-photo) img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  border-radius: 0;
  transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.ec-city-page .ec-ctp-work-copy {
  display: flex;
  flex: 1 0 0;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: 24px;
}
.ec-city-page .ec-ctp-work-copy p {
  color: var(--cp-text);
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
}
/* Underlined place links, in a row or on their own ("Find your corner of X"), each with an optional grey aside. */
.ec-city-page .ec-ctp-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}
.ec-city-page .ec-ctp-links li {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
}
.ec-city-page .ec-ctp-links small {
  color: var(--cp-muted);
  font: 400 14px/1.2 var(--ec-font-body);
  white-space: nowrap;
}

/* Famous Places: photo cards four a row, the name and its city under the photo. */
.ec-city-page .ec-ctp-famous-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px 24px;
}
.ec-city-page .ec-ctp-famous-grid > li {
  display: flex;
  flex-direction: column;
}
.ec-city-page .ec-ctp-famous {
  display: flex;
  flex-direction: column;
  color: var(--cp-ink);
  text-decoration: none;
}
.ec-city-page .ec-ctp-famous-photo {
  position: relative;
  display: block;
  aspect-ratio: 428 / 316.8;
  overflow: hidden;
  border-radius: var(--ec-radius-card, 16px);
  background: var(--cp-subtle);
}
.ec-city-page .ec-ctp-famous strong {
  padding: 12px 12px 0;
  font: 500 18px/27px var(--ec-font-heading);
  transition: color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-famous > span:last-child {
  padding: 4px 12px 12px;
  color: var(--cp-muted);
  font: 300 15px/1.5 var(--ec-font-body);
}
.ec-city-page .ec-ctp-famous:is(:hover, :focus-visible) img {
  transform: scale(1.04);
}
.ec-city-page .ec-ctp-famous-more {
  align-self: flex-start;
  margin: 0 12px 12px;
  color: var(--cp-ink);
  font: 500 14px/1.3 var(--ec-font-heading);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-city-page .ec-ctp-famous-more:hover {
  color: var(--ec-plum);
}
.ec-city-page .ec-ctp-famous:is(:hover, :focus-visible) strong {
  color: var(--ec-plum);
}

/* Types of home: grey tiles two a row, the plum housing icon, the name and live count, a chevron at the end. */
.ec-city-page .ec-ctp-types .ec-cp-head > div:first-child {
  max-width: 650px;
}
.ec-city-page .ec-ctp-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.ec-city-page .ec-ctp-type {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 100%;
  padding: 24px;
  overflow: hidden;
  border-radius: 16px;
  background: var(--cp-subtle);
  color: var(--cp-ink);
  text-decoration: none;
  transition: background-color var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
/* The vectors' own sizes (shared icon rules elsewhere shrink any svg inside a link). */
.ec-city-page .ec-ctp-type-glyph {
  flex: none;
  width: 48px;
  height: 48px;
  max-width: none;
  color: var(--ec-plum);
}
.ec-city-page .ec-ctp-type-chevron {
  flex: none;
  width: 24px;
  height: 24px;
  transition: transform var(--ec-duration, 0.2s) var(--ec-ease, ease);
}
.ec-city-page .ec-ctp-type-copy {
  display: flex;
  flex: 1 0 0;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ec-city-page .ec-ctp-type-copy strong {
  font: 500 18px/1.5 var(--ec-font-heading);
}
.ec-city-page .ec-ctp-type-copy span {
  color: var(--cp-text);
  font: 300 15px/1.5 var(--ec-font-body);
}
.ec-city-page .ec-ctp-type:hover {
  background: #efebee;
}
/* The tile of the page you are on (type pages). */
.ec-city-page .ec-ctp-type[aria-current='page'] {
  box-shadow: inset 0 0 0 2px var(--ec-plum);
}
.ec-city-page .ec-ctp-type:hover .ec-ctp-type-chevron {
  transform: translateX(3px);
}

/* Tablet. */
@media (max-width: 1100px) {
  .ec-city-page .ec-ctp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-city-page .ec-ctp-famous-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .ec-city-page .ec-ctp-figures {
    align-self: stretch;
    padding: 32px 40px;
  }
  .ec-city-page .ec-ctp-figures > div {
    width: calc(50% - 20px);
    min-width: 0;
  }
}

/* Phone. */
@media (max-width: 760px) {
  .ec-city-page .ec-ctp-cities {
    padding-top: 48px;
  }
  .ec-city-page :is(.ec-ctp-guide, .ec-ctp-work, .ec-ctp-famous-places, .ec-ctp-types, .ec-ctp-places) {
    padding-top: 16px;
  }
  .ec-city-page .ec-guide-navigation + :is(.ec-ctp-guide, .ec-ctp-work, .ec-ctp-famous-places, .ec-ctp-types, .ec-ctp-places) {
    padding-top: 48px;
  }
  .ec-city-page .ec-ctp-guide .web-container {
    gap: 32px;
  }
  .ec-city-page .ec-ctp-figures {
    gap: 20px 16px;
    padding: 24px;
  }
  .ec-city-page .ec-ctp-figures > div {
    width: calc(50% - 8px);
    min-width: 0;
  }
  .ec-city-page .ec-ctp-figures dd {
    font-size: 26px;
    letter-spacing: -0.52px;
  }
  .ec-city-page .ec-ctp-figures dt {
    font-size: 15px;
    line-height: 1.5;
  }
  .ec-city-page .ec-ctp-guide-cols {
    grid-template-columns: minmax(0, 1fr);
  }
  /* One line of chips that scrolls sideways, so a long city list does not push the rows off the first screen. */
  .ec-city-page .ec-ctp-filters {
    flex-wrap: nowrap;
    margin: 0 calc(-1 * var(--cp-x)) 28px;
    padding: 0 var(--cp-x);
    overflow-x: auto;
    scrollbar-width: none;
  }
  .ec-city-page .ec-ctp-filters::-webkit-scrollbar {
    display: none;
  }
  .ec-city-page .ec-ctp-filter {
    flex: none;
    height: 44px;
  }
  .ec-city-page .ec-ctp-work-rows {
    gap: 32px;
  }
  .ec-city-page .ec-ctp-work-row {
    flex-direction: column;
    align-items: stretch;
  }
  .ec-city-page .ec-ctp-work-photo {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
  }
  .ec-city-page .ec-ctp-work-copy {
    gap: 12px;
    padding: 16px 0 0;
  }
  .ec-city-page .ec-ctp-links {
    gap: 12px 20px;
  }
  .ec-city-page .ec-ctp-famous-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
  }
  .ec-city-page .ec-ctp-famous-photo {
    border-radius: 12px;
  }
  .ec-city-page .ec-ctp-famous strong {
    padding: 10px 4px 0;
    font-size: 16px;
    line-height: 21px;
  }
  .ec-city-page .ec-ctp-famous > span:last-child {
    padding: 2px 4px 10px;
    font-size: 13px;
    line-height: 18px;
  }
  .ec-city-page .ec-ctp-search {
    flex: none;
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  /* 16 px keeps phones from zooming into the field. */
  .ec-city-page .ec-ctp-search input {
    font-size: 16px;
  }
  .ec-city-page .ec-ctp-type-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  /* Two smaller cards a row, so twelve cities are six rows, not twelve screens. */
  .ec-city-page .ec-ctp-grid {
    gap: 8px 12px;
  }
  .ec-city-page .ec-ctp-city-photo {
    border-radius: 12px;
  }
  .ec-city-page .ec-ctp-city-badge {
    top: 8px;
    left: 8px;
    min-height: 24px;
    padding: 0 8px;
    font-size: 11px;
  }
  .ec-city-page .ec-ctp-city h3 {
    padding: 10px 4px;
    font-size: 16px;
    line-height: 21px;
  }
  .ec-city-page .ec-ctp-type-grid {
    gap: 12px;
  }
  .ec-city-page .ec-ctp-type {
    gap: 16px;
    padding: 20px;
  }
  .ec-city-page .ec-ctp-empty {
    padding: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ec-city-page .ec-ctp-city-photo img,
  .ec-city-page :is(.ec-ctp-work-photo, .ec-ctp-famous-photo) img,
  .ec-city-page .ec-ctp-type-chevron {
    transition: none;
  }
  .ec-city-page .ec-ctp-city:is(:hover, :focus-visible) .ec-ctp-city-photo img,
  .ec-city-page .ec-ctp-famous:is(:hover, :focus-visible) img {
    transform: none;
  }
}

/* marketplace/locality-page.css */
/* Neighbourhood and landmark pages, from the Figma file "easycoliv", frame 945:3447 "Locality page" (23 Oct 2026).
   Implemented in apps/web/src/components/locality-page.tsx. The main element also carries .ec-city-page, so the city
   and country pages' sections apply (city-page.css: crumbs, hero, headings, homes, Keep exploring, Common Questions;
   country-page.css: place cards, housing tiles). This file adds what only this frame has and loads after them. */

/* The frame's hero puts the line 12 px under the title (the city frame's 16). */
.ec-locality-page .ec-cp-hero .web-container {
  gap: 12px;
}

/* No tabs: the homes start 40 px under the hero (the frame's "Homes section" top padding). */
.ec-locality-page .ec-cp-homes {
  padding-top: 40px;
}

/* "Around X.": the closest places as lilac tiles, three a row, the name over its straight-line distance. */
.ec-locality-page .ec-lp-around {
  padding-top: 80px;
}
.ec-locality-page .ec-lp-around-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.ec-locality-page .ec-lp-around-tile {
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
  padding: 16px 24px;
  border-radius: 16px;
  background: var(--ec-lilac, #c9baea);
  color: var(--cp-ink);
  text-decoration: none;
}
.ec-locality-page .ec-lp-around-tile strong {
  font: 500 18px/1.5 var(--ec-font-heading);
}
.ec-locality-page .ec-lp-around-tile span {
  font: 300 15px/1.5 var(--ec-font-body);
}
.ec-locality-page .ec-lp-around-tile:hover strong {
  text-decoration: underline;
}
.ec-locality-page .ec-lp-around-tile:focus-visible {
  outline: none;
  box-shadow: var(--ec-focus);
}

/* Tablet. */
@media (max-width: 1100px) {
  .ec-locality-page .ec-lp-around-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Phone: the city page's phone spacing (sections 56 px apart, the hero 32 px). */
@media (max-width: 760px) {
  .ec-locality-page .ec-cp-homes {
    padding-top: 16px;
  }
  .ec-locality-page .ec-lp-around {
    padding-top: 16px;
  }
  .ec-locality-page .ec-lp-around-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }
}

/* marketplace/blog-post.css */
/* Blog post and insight pages (/blog/{slug}, /insights/{slug}), from the Figma file "easycoliv", frame 699:2578 (22 Oct
   2026; it replaced frame 442:9205). Implemented in apps/web/src/components/blog-article.tsx and blog-contents.tsx; the
   article text and the table of contents are styled in design-system/editorial-content.css (.editorial-post,
   .editorial-toc), which the admin preview shares. The breadcrumb band is the city page's (city-page.css, .ec-cp-crumbs).
   Figma measures at a 1512 px frame: 80 px side padding, 1332 px content, the text column beside a 320 px contents column
   40 px away from the top of the page; 80 px above and below. */

.ec-blog-post {
  --cp-x: 80px;
  --cp-max: 1332px;
  /* Figma colour styles: Text / Primary, Text / Secondary, Text / Muted, Surface / Subtle (also read by the crumbs). */
  --cp-ink: #17181d;
  --cp-text: #60565f;
  --cp-muted: #756a73;
  --cp-subtle: #f5f5f5;
  background: var(--ec-white);
  color: var(--cp-ink);
  font-family: var(--ec-font-body);
}
/* One content column for the whole page; the supporting pages' 1280 px container and section rules do not apply. */
.ec-blog-post .web-container {
  width: calc(100% - 2 * var(--cp-x));
  max-width: var(--cp-max);
  margin-inline: auto;
  padding-inline: 0;
}
.ec-blog-post .web-section {
  padding: 0;
  border: 0;
  background: var(--ec-white);
}
.ec-blog-post :is(a, button, summary):focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}

/* In the breadcrumb band the post's title gives way first, so "Blog" stays whole on a phone. */
.ec-blog-post .ec-cp-crumbs .breadcrumb-trail > li:nth-last-child(2) {
  flex: none;
}

/* Two columns from the top: banner, cover and article on the left, the contents beside them, 40 px apart. */
.ec-blog-post .ec-bp-reading {
  padding: 80px 0;
}
.ec-blog-post .ec-bp-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 40px;
  align-items: start;
}
.ec-blog-post .ec-bp-layout > :not(.editorial-toc) {
  grid-column: 1;
  min-width: 0;
}
.ec-blog-post .ec-bp-layout > .editorial-toc {
  grid-column: 2;
  grid-row: 1 / span 3;
  position: sticky;
  top: 112px;
  max-height: calc(100dvh - 136px);
  overflow-y: auto;
}
.ec-blog-post .ec-bp-layout--single {
  grid-template-columns: minmax(0, 972px);
}

/* Banner: the 36 px title, the category chip and excerpt (editorial-content.css) and the published date, 16 px apart. */
.ec-blog-post .ec-bp-banner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}
.ec-blog-post .ec-bp-banner h1 {
  margin: 0;
  font: var(--ec-page-title-font);
  letter-spacing: var(--ec-page-title-tracking);
  color: var(--ec-page-title-ink);
  overflow-wrap: anywhere;
}
.ec-blog-post .ec-bp-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--cp-muted);
  font: 400 15px/22.5px var(--ec-font-body);
}
.ec-blog-post .ec-bp-meta-bar {
  color: var(--ec-control-border, #d7cdd3);
  font-size: 14px;
}
.ec-blog-post .ec-bp-cover {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 428 / 220;
  margin: 0;
  border-radius: 16px;
  background: var(--cp-subtle);
}
.ec-blog-post .ec-bp-cover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* "More From Blogs": three borderless cards, 24 px apart. */
.ec-blog-post .ec-bp-more {
  padding: 0 0 80px;
}
.ec-blog-post .ec-bp-more h2 {
  margin: 0 0 40px;
  color: #101114;
  font: 500 36px/39px var(--ec-font-heading);
  letter-spacing: -1.08px;
}
.ec-blog-post .ec-bp-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-blog-post .ec-bp-cards > li {
  min-width: 0;
}
.ec-blog-post .ec-bp-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: #101114;
  text-decoration: none;
}
.ec-blog-post .ec-bp-card:hover h3 {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-blog-post .ec-bp-card-photo {
  flex: none;
  aspect-ratio: 428 / 220;
  overflow: hidden;
  border-radius: 16px;
  background: var(--ec-lilac);
}
.ec-blog-post .ec-bp-card-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ec-blog-post .ec-bp-card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 24px;
}
.ec-blog-post .ec-bp-card h3 {
  margin: 0;
  color: #101114;
  font: 500 18px/1.5 var(--ec-font-heading);
  overflow-wrap: anywhere;
}
.ec-blog-post .ec-bp-card-body > p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font: 300 16px/1.5 var(--ec-font-body);
  letter-spacing: 0.32px;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.ec-blog-post .ec-bp-card time {
  margin-top: auto;
  color: var(--cp-muted);
  font: 400 13px/1.5 var(--ec-font-body);
}

@media (max-width: 1200px) {
  .ec-blog-post {
    --cp-x: 40px;
  }
  .ec-blog-post .ec-bp-layout {
    grid-template-columns: minmax(0, 1fr) 260px;
  }
}
/* Narrow screens: one column, the contents between the cover and the article, unpinned; cards two a row. */
@media (max-width: 1000px) {
  .ec-blog-post .ec-bp-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }
  .ec-blog-post .ec-bp-layout > .editorial-toc {
    grid-column: 1;
    grid-row: auto;
    order: 1;
    position: static;
    max-height: none;
    padding: 20px;
    border: 1px solid var(--ec-line, #e6dee3);
    border-radius: 16px;
  }
  .ec-blog-post .ec-bp-layout > .editorial-post {
    order: 2;
  }
  .ec-blog-post .ec-bp-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .ec-blog-post {
    --cp-x: 16px;
  }
  .ec-blog-post .ec-bp-reading {
    padding: 32px 0 56px;
  }
  .ec-blog-post .editorial-lead {
    font-size: 16px;
  }
  .ec-blog-post .ec-bp-more {
    padding-bottom: 56px;
  }
  .ec-blog-post .ec-bp-more h2 {
    margin-bottom: 24px;
    font-size: 28px;
    line-height: 32px;
    letter-spacing: -0.84px;
  }
  .ec-blog-post .ec-bp-cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .ec-blog-post .ec-bp-card-body {
    padding: 20px 0;
  }
}

/* The site header lines up with the page's 1332 px column (user, 22 Oct 2026; the shared header is 1280 px wide). */
.marketplace-page:has(main.ec-blog-post) .site-header .nav-wrap {
  width: min(1332px, calc(100% - 160px));
}
@media (max-width: 1200px) {
  .marketplace-page:has(main.ec-blog-post) .site-header .nav-wrap {
    width: calc(100% - 80px);
  }
}
@media (max-width: 700px) {
  .marketplace-page:has(main.ec-blog-post) .site-header .nav-wrap {
    width: calc(100% - 32px);
  }
}

/* marketplace/tenant-pages.css */
/* The signed-in renter's pages after Figma section 993-4746 (7 Nov 2026): the Enquiries / Saved Homes tabs, the home
   rows ("Property Card", variants Enquiry and Saved homes), the empty states and the Account page.
   Markup: apps/web/src/components/marketplace/tenant-ui.tsx, tenant-workspace.tsx, enquiries.tsx, saved-homes.tsx,
   saved-lists.tsx and tenant-account.tsx. Last in the support bundle, so it wins over tenant-workspace.css.
   Kept over the frame for contrast: tab grey #7a6d79 (not #827581) and muted labels in --ec-muted (not #b3a9b1).
   Changed for easier navigation (user request, 7 Nov 2026): three tabs with icons (Account added), labelled row
   actions in 40 px buttons instead of icons and a menu, a back button that says where it goes. */

body:has(.ec-tenant) {
  background: var(--ec-white);
}
.ec-tenant.ec-tenant-workspace {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 80px;
}
.ec-tenant-body {
  width: min(1120px, calc(100% - 80px));
  margin: 40px auto 0;
}

/* Section nav: Enquiries, Saved Homes and Account, centred, the current one underlined in plum. */
.ec-tenant-tabs {
  display: flex;
  justify-content: center;
  gap: 40px;
  padding: 0 80px;
  border-bottom: 1px solid var(--ec-line);
  background: var(--ec-white);
}
.ec-tenant-tabs a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  margin-bottom: -1px;
  padding: 2px 4px 0;
  border-bottom: 2px solid transparent;
  color: #7a6d79;
  font: 600 15px/1.4 var(--ec-font-heading);
  text-decoration: none;
  white-space: nowrap;
}
.ec-tenant .ec-tenant-tabs svg {
  flex: none;
  width: 20px;
  height: 20px;
}
.ec-tenant-tab-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: var(--ec-radius-pill);
  background: #ece8f5;
  color: var(--ec-plum);
  font: 600 12px/1 var(--ec-font-heading);
}
.ec-tenant-tabs a:hover {
  color: var(--ec-plum);
}
.ec-tenant-tabs a[aria-current='page'] {
  border-bottom-color: var(--ec-plum);
  color: var(--ec-plum);
}
.ec-tenant-tabs a:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 2px;
}

/* Page title, one line on what the page is for, and Explore Homes. */
.ec-tenant-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.ec-tenant-head > div {
  display: grid;
  gap: 6px;
  min-width: 0;
}
.ec-tenant-head p,
.ec-account-lead p {
  margin: 0;
  color: #3d373d;
  font: 300 15px/1.5 var(--ec-font-body);
}
/* Figma's 24 px Section Smaller titles: outranks the inner-page H1 rule (tenant-theme.css, 44 px). */
.marketplace-page .ec-tenant h1,
.marketplace-page .ec-tenant-account h1 {
  margin: 0;
  color: #101114;
  font: 500 24px/1.2 var(--ec-font-heading);
  letter-spacing: -0.48px;
}

/* Figma Button, Secondary (46 px), Small (32 px) and Primary (56 px). */
.ec-tenant-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 0 20px;
  border: 1.2px solid var(--ec-line);
  border-radius: var(--ec-radius-pill);
  background: var(--ec-white);
  color: #101114;
  font: 500 15px/1.5 var(--ec-font-heading);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color var(--ec-duration) var(--ec-ease), background-color var(--ec-duration) var(--ec-ease);
}
.ec-tenant-btn:hover {
  border-color: var(--ec-state-border);
  background: var(--ec-state-fill);
}
.ec-tenant-btn:focus-visible {
  outline: none;
  box-shadow: var(--ec-focus);
}
.ec-tenant-btn:disabled {
  color: var(--ec-muted);
  cursor: default;
}
/* Row actions: 40 px, larger than the frame's 32, so they are easy to hit on a phone. */
.ec-tenant-btn--sm {
  min-height: 44px;
  padding: 0 16px;
  font-size: 14px;
  line-height: 1.4;
}
.ec-tenant .ec-tenant-btn svg {
  flex: none;
  width: 18px;
  height: 18px;
}
/* The main action on an enquiry: Chat, filled plum. */
.ec-tenant-btn--chat {
  border-color: var(--ec-plum);
  background: var(--ec-plum);
  color: var(--ec-white);
}
.ec-tenant-btn--chat:hover {
  border-color: var(--ec-plum-hover);
  background: var(--ec-plum-hover);
}
/* Back with its words: "All enquiries", "Back to account". */
.ec-tenant-btn--back {
  flex: none;
  padding: 0 18px 0 12px;
}
.ec-tenant-btn--back svg {
  width: 20px;
  height: 20px;
}
.ec-tenant-btn--sm[aria-pressed='true'] {
  border-color: var(--ec-plum);
  background: var(--ec-selected, var(--ec-subtle));
}
.ec-tenant-btn--primary {
  min-height: 56px;
  padding: 0 24px;
  border: 0;
  background: var(--ec-plum);
  color: var(--ec-white);
  font-size: 16px;
}
.ec-tenant-btn--primary:hover {
  background: var(--ec-plum-hover);
}
.ec-tenant-btn--primary:disabled {
  background: var(--ec-plum);
  color: var(--ec-white);
  opacity: 0.6;
}
.ec-tenant-btn--block {
  width: 100%;
}
/* Figma: Send OTP sits 40 px under the fields (the form's own gap is 24). */
.ec-account-group > .ec-tenant-btn--block {
  margin-top: 16px;
}

/* Empty states: the lilac mark, one line, Explore Homes, centred in the page. */
.ec-tenant .ec-tenant-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  justify-content: center;
  max-width: 450px;
  /* Centred in what is left under the header (80), the tabs (53), and the page's 40 and 80 px padding. */
  min-height: max(360px, calc(100dvh - 253px));
  margin: 0 auto;
  padding: 0;
  text-align: center;
}
/* Icons keep their Figma sizes (the marketplace sets every svg to 20 px). */
.ec-tenant .ec-tenant-empty svg {
  flex: none;
  width: 88px;
  height: 88px;
  /* The Figma mark (#ECE8F5) is lilac at 35% on the surface; mixing keeps it right in dark mode too. */
  color: color-mix(in srgb, var(--ec-lilac) 35%, var(--surface));
}
.ec-tenant-empty p {
  margin: 0;
  color: #3d373d;
  font: 300 18px/1.6 var(--ec-font-body);
}

/* Home rows. */
.ec-home-rows,
.ec-home-grid {
  margin: 0;
  padding: 0;
  list-style: none;
}
.ec-home-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.ec-home-row {
  display: flex;
  align-items: center;
  min-width: 0;
}
.ec-home-row--enquiry {
  padding: 16px 0;
  border-bottom: 1px solid var(--ec-line);
}
.ec-home-row--saved {
  padding: 16px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
}
.ec-home-row-link {
  display: flex;
  flex: 1;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--ec-radius-card);
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.ec-home-row-link:hover .ec-home-row-title {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-home-row-link:focus-visible {
  outline: none;
  box-shadow: var(--ec-focus);
}
.ec-home-row-photo {
  position: relative;
  flex: none;
  width: 116px;
  height: 86px;
  overflow: hidden;
  border-radius: var(--ec-radius-card);
  background: var(--ec-subtle);
}
.ec-home-row-photo :is(img, .property-image-placeholder) {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ec-home-row-details {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 0 16px 0 24px;
}
.ec-home-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 8px;
  min-width: 0;
}
.ec-home-row-place,
.ec-home-row-rent {
  color: #3d373d;
  font: 300 15px/1.5 var(--ec-font-body);
}
.ec-home-row-title {
  color: #101114;
  font: 500 16px/1.3 var(--ec-font-heading);
  overflow-wrap: anywhere;
}
.ec-home-row-sub {
  color: #3d373d;
  font: 400 15px/1.5 var(--ec-font-body);
  overflow-wrap: anywhere;
}
.ec-home-row-rent b {
  margin-right: 8px;
  color: #101114;
  font-weight: 500;
}
.ec-home-row-actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 0 0 0 16px;
}

/* The unread count inside Chat: "2 new". */
.ec-row-badge {
  display: inline-grid;
  place-items: center;
  height: 22px;
  margin-left: 2px;
  padding: 0 8px;
  border-radius: var(--ec-radius-pill);
  background: var(--ec-apricot);
  color: var(--ec-ink);
  font: 600 12px/1 var(--ec-font-heading);
}

/* An open conversation: back to the list, then what the inbox showed before. */
.ec-tenant .ec-enquiry-detail {
  min-width: 0;
}
.ec-tenant .ec-enquiry-head {
  display: flex;
  align-items: center;
  gap: 16px;
}
.ec-tenant .ec-enquiry-head > div {
  flex: 1;
  min-width: 0;
}
.ec-tenant .ec-enquiry-head h2 {
  margin: 0;
  color: #101114;
  font: 500 20px/1.3 var(--ec-font-heading);
  overflow-wrap: anywhere;
}

/* Saved homes for a visitor: the sign-in nudge under the title. */
.ec-tenant .ec-saved-account {
  margin: 0 0 24px;
}
.ec-tenant .ec-tenant-empty .ec-saved-account {
  margin: 0;
}
.ec-tenant .ec-lists:not([data-rail]) {
  display: block;
}

/* Account and Change Email (Figma 1023-8714, 1033-9235): a 650 px column (outranks tenant-theme.css's 24 px gap). */
.marketplace-page main.ec-tenant-account {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 650px;
  margin: 0 auto;
}
.ec-account-top {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-left: 24px;
}
.ec-account-lead {
  display: grid;
  gap: 12px;
  padding: 0 24px;
}
.ec-account-lead p,
.ec-account-copy p {
  margin: 0;
  color: #3d373d;
  font: 300 15px/1.5 var(--ec-font-body);
}
.ec-account-group {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin: 0;
}
.ec-account-group > form {
  margin: 0;
}
/* Two classes: outranks the marketplace's plum h2 (.marketplace-page h2, .support-page h2). */
.ec-tenant-account .ec-account-label {
  margin: 0;
  padding: 0 24px;
  color: var(--ec-muted);
  font: 500 16px/1.3 var(--ec-font-heading);
}
.ec-account-copy {
  display: grid;
  gap: 12px;
  padding: 0 24px;
}
.ec-account-copy .ec-account-label {
  padding: 0;
}
.ec-account-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}
.ec-account-links button,
.ec-account-action {
  padding: 0;
  border: 0;
  background: none;
  color: #101114;
  font: 500 16px/1.3 var(--ec-font-heading);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.ec-account-links button:disabled,
.ec-account-action:disabled {
  color: var(--ec-muted);
  cursor: default;
}
.ec-account-field {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.ec-account-field > label {
  padding: 0 24px;
  color: #101114;
  font: 500 16px/1.3 var(--ec-font-heading);
}
.ec-account-input {
  position: relative;
  display: flex;
  align-items: center;
}
.ec-account-input .ec-input {
  width: 100%;
  height: 56px;
  min-height: 56px;
  padding: 0 24px;
  border: 1px solid var(--ec-field-border);
  border-radius: var(--ec-radius-pill);
  background: var(--ec-white);
  color: #101114;
  font: 400 16px/1.5 var(--ec-font-body);
}
.ec-account-input .ec-input:focus {
  border-color: var(--ec-state-border);
  outline: none;
  background: var(--ec-state-fill);
}
.ec-account-input .ec-input:read-only {
  color: var(--ec-muted);
}
.ec-account-input:has(.ec-account-action) .ec-input {
  padding-right: 96px;
}
.ec-account-action {
  position: absolute;
  right: 24px;
  font-size: 14px;
  line-height: 1.6;
}
.ec-account-group .ec-feedback,
.ec-tenant-account > .ec-feedback {
  margin: 0 24px;
}
.ec-account-group form.web-form {
  margin: 0;
  padding: 0 24px;
}
.ec-tenant-account .ec-enquiry-close {
  margin: 0 24px;
}
.ec-account-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 0 24px;
}

@media (max-width: 900px) {
  .ec-tenant-body {
    width: calc(100% - 32px);
    margin-top: 24px;
  }
  .ec-tenant-tabs {
    padding: 0 16px;
  }
  .ec-home-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  .ec-home-row {
    flex-wrap: wrap;
  }
  .ec-home-row-link {
    flex-basis: 100%;
    align-items: flex-start;
  }
  .ec-home-row-photo {
    width: 88px;
    height: 66px;
  }
  .ec-home-row-details {
    padding: 0 0 0 16px;
  }
  .ec-home-row-actions {
    flex-wrap: wrap;
    width: 100%;
    gap: 8px;
    padding: 12px 0 0;
  }
  /* Three equal tabs across the phone. */
  .ec-tenant-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    padding: 0 8px;
  }
  .ec-tenant-tabs a {
    justify-content: center;
    gap: 6px;
    min-height: 48px;
    padding: 2px 0 0;
    font-size: 14px;
  }
  .ec-tenant-head,
  .ec-tenant .ec-enquiry-head {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .ec-account-top,
  .ec-account-lead,
  .ec-account-copy,
  .ec-account-label,
  .ec-account-actions,
  .ec-account-group form.web-form {
    padding-inline: 0;
  }
  .ec-account-field > label {
    padding: 0 8px;
  }
  .ec-account-actions {
    grid-template-columns: minmax(0, 1fr);
  }
  .ec-tenant-account .ec-enquiry-close,
  .ec-account-group .ec-feedback,
  .ec-tenant-account > .ec-feedback {
    margin-inline: 0;
  }
}
@media (max-width: 420px) {
  .ec-tenant .ec-tenant-tabs svg {
    display: none;
  }
}

/* Inbox controls stay visible and wrap without horizontal scrolling on phones. */
.ec-enquiry-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.ec-enquiry-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.ec-enquiry-search {
  min-width: 0;
  flex: 1 1 240px;
  max-width: 360px;
}
.ec-enquiry-search .ec-input {
  box-sizing: border-box;
  width: 100%;
  min-height: 44px;
}
.ec-enquiry-no-results {
  padding: 32px 16px;
  text-align: center;
}
.ec-enquiry-no-results h2 {
  font-size: 20px;
}
.ec-account-action,
.ec-account-links button {
  min-height: 44px;
}

/* Account-area polish: shared alignment, restrained hierarchy and responsive controls. */
.ec-tenant *,
.ec-tenant *::before,
.ec-tenant *::after {
  box-sizing: border-box;
}
.ec-tenant-head {
  margin-bottom: 32px;
}
.ec-tenant-head p,
.ec-account-lead p,
.ec-account-copy p,
.ec-home-row-place,
.ec-home-row-rent {
  font-weight: 400;
}
.ec-enquiry-tools {
  padding: 16px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-card);
  background: var(--ec-white);
}
.ec-enquiry-search .ec-input {
  height: 44px;
  border: 1px solid var(--ec-field-border);
  border-radius: var(--ec-radius-pill);
  padding: 0 16px;
  font: 400 15px/1.5 var(--ec-font-body);
}
.ec-enquiry-filters .ec-tenant-btn {
  gap: 8px;
  border-color: transparent;
  background: transparent;
}
.ec-enquiry-filters .ec-tenant-btn[aria-pressed='true'] {
  border-color: var(--ec-plum);
  background: var(--ec-subtle);
  color: var(--ec-plum);
}
.ec-enquiry-filters .ec-tenant-btn span {
  color: var(--ec-muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.ec-enquiry-filter-select {
  display: none;
}
.ec-home-row--enquiry {
  padding-block: 24px;
}
.ec-home-row-actions {
  justify-content: flex-end;
}
.ec-home-row-actions .ec-tenant-btn {
  min-width: 88px;
}
.ec-tenant .ec-enquiry-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 24px;
}
.ec-tenant .ec-enquiry-head p {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 8px 0 0;
  overflow-wrap: anywhere;
}
.ec-tenant .ec-enquiry-head .ec-badge {
  margin: 0;
}
.ec-tenant .ec-enquiry-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.5fr);
  gap: 24px;
  padding: 20px 24px;
}
.ec-tenant .ec-enquiry-facts dd {
  overflow-wrap: anywhere;
  line-height: 1.6;
}
.ec-tenant .ec-enquiry-facts a {
  display: block;
  width: fit-content;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ec-tenant .ec-enquiry-detail > .ec-report {
  margin: 16px 24px 24px;
}
.ec-tenant .ec-enquiry-detail > .ec-report-open {
  margin: 16px 24px 24px;
}
.marketplace-page main.ec-tenant-account {
  max-width: 720px;
  gap: 24px;
}
.ec-account-lead,
.ec-account-top {
  padding: 0;
}
.ec-tenant-account .ec-account-group {
  padding: 24px;
  border: 1px solid var(--ec-line);
  border-radius: var(--ec-radius-panel);
  gap: 24px;
}
.ec-tenant-account .ec-account-label {
  padding: 0;
  color: var(--ec-ink);
  font-weight: 600;
}
.ec-account-copy,
.ec-account-field > label,
.ec-account-actions,
.ec-account-group form.web-form {
  padding: 0;
}
.ec-tenant-account .ec-enquiry-close,
.ec-account-group .ec-feedback,
.ec-tenant-account > .ec-feedback {
  margin-inline: 0;
}
.ec-account-input .ec-input {
  border-radius: 12px;
  padding-inline: 16px;
  height: 52px;
  min-height: 52px;
}
.ec-account-input .ec-input:focus-visible,
.ec-enquiry-tools .ec-input:focus-visible {
  outline: 2px solid var(--ec-plum);
  outline-offset: 3px;
}
.ec-account-action {
  right: 16px;
}
.ec-account-actions {
  padding-top: 8px;
}
.ec-account-choices .ec-account-choice:has(input:checked) {
  background: var(--ec-subtle);
  border-color: var(--ec-line);
}
.ec-tenant .ec-tenant-empty {
  gap: 20px;
  padding-block: 32px;
}
@media (max-width: 1100px) {
  .ec-enquiry-search {
    max-width: none;
  }
}
@media (max-width: 900px) {
  .ec-tenant-body {
    width: calc(100% - 40px);
  }
  .ec-home-row {
    flex-wrap: wrap;
  }
  .ec-home-row-actions {
    width: 100%;
    padding: 16px 0 0 140px;
    justify-content: flex-start;
  }
}
@media (max-width: 640px) {
  .ec-tenant-head {
    margin-bottom: 24px;
  }
  .ec-enquiry-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    padding: 16px;
  }
  .ec-enquiry-filters {
    display: none;
  }
  .ec-enquiry-filter-select {
    display: grid;
    gap: 8px;
    font: 500 14px/1.5 var(--ec-font-body);
  }
  .ec-enquiry-filter-select .ec-input {
    width: 100%;
    height: 44px;
    padding: 0 12px;
    border: 1px solid var(--ec-field-border);
    border-radius: 12px;
    background: var(--ec-white);
    color: var(--ec-ink);
    font: 400 16px/1.5 var(--ec-font-body);
  }
  .ec-enquiry-search .ec-input {
    font-size: 16px;
  }
  .ec-home-row-actions {
    padding: 16px 0 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .ec-home-row-actions .ec-tenant-btn {
    min-width: 0;
    padding-inline: 10px;
  }
  .ec-tenant .ec-enquiry-head {
    padding: 16px;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .ec-tenant .ec-enquiry-head > div {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .ec-tenant .ec-enquiry-facts {
    padding: 16px;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ec-tenant .ec-enquiry-detail > .ec-report,
  .ec-tenant .ec-enquiry-detail > .ec-report-open {
    margin-inline: 16px;
  }
  .ec-tenant-account .ec-account-group {
    padding: 20px 16px;
  }
}

@media (max-width: 640px) {
  .ec-tenant .ec-enquiry-close-start {
    margin-inline: 16px;
  }
}

@media (max-width: 640px) {
  .ec-home-row-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }
}

.ec-tenant-empty p.ec-tenant-empty-help {
  color: var(--ec-muted);
  font-size: 15px;
  line-height: 1.6;
  max-width: 36ch;
}

/* marketplace/action-typography.css */
/* Shared tenant/operator type and CTA tokens, measured from coliving.com/host (19 Oct 2026).
 * Deliberately contains no palette, border-color or shadow overrides.
 * Display/section sizes adapt to small screens; compact controls retain 44px targets.
 */
:root {
  --ec-public-display: clamp(2.25rem, 4.7vw, 4rem);
  --ec-public-section: clamp(1.75rem, 3vw, 2.5rem);
  --ec-public-title: 1.375rem;
  --ec-public-heading-weight: 500;
  --ec-public-heading-tracking: -.025em;
  --ec-public-display-leading: 1.08;
  --ec-public-section-leading: 1.18;
  --ec-public-body-leading: 1.7;
  --ec-cta-size: 1rem;
  --ec-cta-weight: 600;
  --ec-cta-leading: 1.5555556;
  --ec-cta-radius: 9999px;
  --ec-cta-height: 3.5rem;
  --ec-cta-padding-y: 1rem;
  --ec-cta-padding-x: 1.75rem;
}
:is([data-app='web'], [data-app='operator'], .marketplace-page, .oh-page) {
  --weight-heading: var(--ec-public-heading-weight);
  --web-weight-heading: var(--ec-public-heading-weight);
  --type-home-heading: var(--ec-public-section);
  --web-text-home-heading: var(--ec-public-section);
  --leading-home-heading: var(--ec-public-section-leading);
  --web-leading-home-heading: var(--ec-public-section-leading);
  --button-radius: var(--ec-cta-radius);
}
:is([data-app='web'], [data-app='operator'], .marketplace-page, .oh-page) :is(h1,h2,h3) {
  font-weight: var(--ec-public-heading-weight);
  letter-spacing: var(--ec-public-heading-tracking);
}
.home-page .ec-home-hero-copy h1,
.oh-page .oh-display,
.operator-site .operator-editorial-hero h1 {
  font-size: var(--ec-public-display);
  line-height: var(--ec-public-display-leading);
}
.oh-page .oh-section-title,
.marketplace-page .section-heading h2,
.marketplace-page .ec-home-title,
.operator-site .operator-section-heading h2 {
  font-size: var(--ec-public-section);
  line-height: var(--ec-public-section-leading);
}
.oh-page .oh-title {
  font-size: var(--ec-public-title);
  line-height: 1.3;
}
.home-page .ec-home-hero-copy p,
.oh-page .oh-hero-copy p {
  font-size: 1.25rem;
  line-height: var(--ec-public-body-leading);
  letter-spacing: normal;
}
:is([data-app='web'], [data-app='operator'], .marketplace-page, .oh-page) :is(.button, .ec-btn, .oh-btn):not(.button--icon-only):not(.ec-icon-btn) {
  border-radius: var(--ec-cta-radius);
  font-family: var(--ec-font-body);
  font-size: var(--ec-cta-size);
  font-weight: var(--ec-cta-weight);
  line-height: var(--ec-cta-leading);
  letter-spacing: normal;
}
.oh-page .oh-btn,
.marketplace-page main .ec-btn:not(.sm):not(.ec-icon-btn),
.operator-site .button:not(.button--sm):not(.button--icon-only) {
  height: auto;
  min-height: var(--ec-cta-height);
  padding: var(--ec-cta-padding-y) var(--ec-cta-padding-x);
  white-space: normal;
  text-align: center;
}

/* Auth has its own composition and stylesheet entry point. */
:is([data-app='web'], [data-app='operator']) .auth-content :is(h1, h2) {
  font-weight: var(--ec-public-heading-weight);
  letter-spacing: var(--ec-public-heading-tracking);
}
.home-page .ec-ops-title h2 {
  font-size: var(--ec-public-display);
  font-weight: var(--ec-public-heading-weight);
  line-height: var(--ec-public-display-leading);
  letter-spacing: var(--ec-public-heading-tracking);
}
