/* 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-size:clamp(32px,3.3vw,44px);line-height:1.18;letter-spacing:-.045em;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 h1{font-size:36px}.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}.support-page h1{font-size: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}}
/* Published guide and blog collections. All visual roles come from the shared brand tokens. */
.editorial-sections { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.editorial-sections a { padding:10px 22px; min-height:44px; border:1px solid var(--ec-border); 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-collection-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:24px; }
.editorial-collection-heading h2 { font-size:24px; color:var(--ec-plum); }
.editorial-collection-heading > span { font-size:14px; color:var(--ec-muted); }
.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; }
.editorial-card { display:flex; height:100%; flex-direction:column; overflow:hidden; border:1px solid var(--ec-border); border-radius:16px; background:var(--ec-white); color:var(--ec-ink); text-decoration:none; transition:transform .2s,border-color .2s; }
.editorial-card:hover { transform:translateY(-3px); border-color:var(--ec-plum); }
.editorial-card:focus-visible, .editorial-sections a:focus-visible { outline:3px solid var(--ec-plum); outline-offset:4px; }
.editorial-card-media { position:relative; aspect-ratio:16/10; overflow:hidden; background:var(--ec-cream); }
.editorial-card-media--blog { background:var(--ec-lilac); }
.editorial-card-media > img { width:100%; height:100%; object-fit:cover; }
.editorial-card-placeholder { display:flex; flex-direction:column; justify-content:space-between; height:100%; padding:26px; 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,32px); line-height:1.2; white-space:pre-line; margin-bottom:10px; letter-spacing:-.04em; }
.editorial-card-category { position:absolute; top:16px; right:16px; padding:6px 12px; border-radius:999px; font-size:12px; font-weight:600; background:var(--ec-white); color:var(--ec-plum); }
.editorial-card-content { display:flex; flex:1; flex-direction:column; padding:24px; gap:14px; }
.editorial-card-content h2 { font-size:22px; line-height:1.35; color:var(--ec-plum); margin:0; overflow-wrap:anywhere; }
.editorial-card-content > p { margin:0; color:var(--ec-muted); line-height:1.65; font-size:14px; overflow-wrap:anywhere; }
.editorial-card-footer { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:auto; padding-top:12px; }
.editorial-card-footer > div { display:grid; gap:4px; font-size:12px; color:var(--ec-muted); }
.editorial-card-footer > div > span { color:var(--ec-ink); font-weight:600; }
.editorial-card-arrow { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; border:1px solid var(--ec-border); border-radius:50%; font-size:22px; color:var(--ec-plum); }
.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-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .editorial-reading-layout { gap:32px; grid-template-columns:minmax(0,1fr) 260px; } }
@media (max-width:700px) { .editorial-grid { grid-template-columns:1fr; } .editorial-reading-layout { grid-template-columns:1fr; } .editorial-reading-aside { position:static; } .editorial-cover { margin-bottom:28px; border-radius:16px; } .editorial-card-content { padding:20px; } .editorial-card-placeholder > strong { font-size:30px; } }
@media (prefers-reduced-motion:reduce) { .editorial-card { transition:none; } .editorial-card:hover { transform:none; } }

/* Published editorial filters, taxonomy and paginated collections. */
.editorial-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; margin-bottom:32px; padding:24px; border:1px solid var(--ec-line); border-radius:16px; background:var(--ec-subtle); }
.editorial-filters label { display:grid; gap:8px; flex:1 1 150px; min-width:0; font-size:13px; font-weight:600; color:var(--ec-plum); }
.editorial-filters label:first-child { flex:2 1 220px; }
.editorial-filters label:nth-child(4) { flex:0 1 100px; }
.editorial-filters .ec-input { width:100%; min-width:0; background:var(--ec-white); }
.editorial-filters .web-text-link { min-height:44px; display:inline-flex; align-items:center; font-size:14px; }
.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-card-tags { display:flex; flex-wrap:wrap; gap:6px 12px; color:var(--ec-muted); font-size:12px; overflow-wrap:anywhere; }
.editorial-card-category { max-width:calc(100% - 32px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.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; }
@media (max-width:700px) { .editorial-filters { padding:16px; gap:16px; } .editorial-filters label:first-child { flex-basis:100%; } .editorial-filters label:nth-child(4) { flex:1 1 100px; } }

/* 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-operators-country + .ec-operators-country { margin-top: 48px; }
.ec-operators-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-operators-country ul { margin: 0; padding: 0; list-style: none; }
.ec-operators-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; color: var(--ec-plum); font-weight: 700; }
.web-link-card:hover .ec-operators-more { text-decoration: underline; text-underline-offset: 4px; }
.ec-operators-more svg { width: 16px; height: 16px; }
.ec-operators-claim { display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.ec-operators-claim h2 { color: var(--ec-plum); font: 700 24px/1.3 var(--ec-font-heading); }
.ec-operators-claim p { max-width: 640px; margin-top: 8px; color: var(--ec-ink); line-height: 1.7; }
@media (max-width: 760px) {
  .ec-operators-claim { flex-direction: column; align-items: flex-start; gap: 20px; }
  .ec-operators-country h2, .ec-operators-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; }
}
