/*============================================================================================*/
/* Your custom styles below */
/*============================================================================================*/
/* Live city search on the home page and city directory. */
.city-search { margin: 24px 0; text-align: left; }
.city-search label { display: block; font-weight: 600; margin-bottom: 8px; }
.city-search input { width: 100%; max-width: 560px; min-height: 48px; font-size: 16px; }
.city-search-status { margin: 8px 0 0; min-height: 1.5em; color: #555; }
.city-search-empty { padding: 20px 0; }
.row > [hidden], .city-search-empty[hidden] { display: none !important; }

/* Legal documents and consent: readable on desktop and narrow screens. */
.legal-document { max-width: 880px; line-height: 1.75; padding-bottom: 32px; }
.legal-document h3 { margin-top: 30px; font-size: 21px; }
.legal-document a, .form-consent a, .cookie-notice a { text-decoration: underline; }
.legal-date { color: #62656a; }
.form-consent { margin: 16px 0; line-height: 1.6; text-align: left; }
.form-consent label { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0; cursor: pointer; }
.form-consent input[type="checkbox"] { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; }
.cookie-notice { position: fixed; z-index: 100000; left: 20px; right: 20px; bottom: 20px; max-width: 920px; margin: 0 auto; padding: 22px 24px; background: #fff; color: #242424; border: 1px solid #dadce0; border-top: 3px solid #002fa7; font: 15px/1.6 "Helvetica Neue", Arial, sans-serif; display: flex; align-items: center; gap: 24px; }
.cookie-notice[hidden] { display: none; }
.cookie-notice p { margin: 0; }
.cookie-notice strong { display: block; font-size: 18px; margin-bottom: 5px; }
.cookie-notice a { color: #002fa7; }
.cookie-notice button { flex: 0 0 auto; border: 0; background: #002fa7; color: #fff; padding: 12px 22px; font: inherit; cursor: pointer; }
.cookie-notice button:focus-visible { outline: 3px solid #002fa7; outline-offset: 4px; }
@media (max-width: 575px) { .cookie-notice { left: 10px; right: 10px; bottom: 10px; padding: 16px; flex-direction: column; align-items: stretch; gap: 12px; max-height: 70vh; overflow-y: auto; } }

/* Information pages: Swiss grid, one accent and readable forms. */
.portal-shell { background: #f7f7f8; }
.portal-shell main > .page_header { display: none; }
.portal-shell main > .container { margin-top: 0; padding-top: 32px; }
.portal-page { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; color: #222; padding-bottom: 56px; line-height: 1.65; }
.portal-page h1, .portal-page h2, .portal-page h3 { font-family: inherit; color: #171717; font-weight: 600; }
.portal-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; color: #666; margin-bottom: 36px; }
.portal-breadcrumb a { color: #555; text-decoration: underline; }
.portal-intro { padding: 24px 0 48px; max-width: 880px; }
.portal-kicker { color: #b43b00; font-size: 14px; font-weight: 600; margin-bottom: 18px; }
.portal-intro h1 { font-size: clamp(36px, 5.5vw, 68px); line-height: 1.05; letter-spacing: -.045em; margin: 0 0 26px; }
.portal-lead { max-width: 720px; font-size: clamp(18px, 2.2vw, 22px); line-height: 1.55; color: #555; margin-bottom: 28px; }
.portal-columns { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 64px; align-items: start; border-top: 1px solid #dcdcdc; padding-top: 40px; }
.portal-sidebar > h2 { font-size: 24px; margin-bottom: 24px; }
.portal-contact-block { padding: 0 0 26px; margin: 0 0 26px; border-bottom: 1px solid #dcdcdc; }
.portal-contact-block h2 { font-size: 18px; margin-bottom: 12px; }
.portal-contact-block p { color: #555; margin: 10px 0 0; }
.portal-email { font-size: clamp(18px, 2.2vw, 25px); font-weight: 500; overflow-wrap: anywhere; color: #171717; border-bottom: 2px solid #ff4f00; }
.portal-page a:hover { color: #b43b00; }
.portal-text-link { display: inline-block; color: #b43b00; margin-top: 16px; text-decoration: underline; text-underline-offset: 4px; }
.portal-form-panel { background: #fff; padding: 36px; border: 1px solid #dedede; border-top: 3px solid #ff4f00; min-width: 0; }
.portal-form-panel h2 { font-size: 28px; letter-spacing: -.025em; margin-bottom: 12px; }
.portal-form-description { color: #666; margin-bottom: 28px; }
.portal-field { margin-bottom: 24px; }
.portal-field > label, .portal-field-label { display: block; font-weight: 500; font-size: 15px; margin: 0 0 9px; }
.portal-field label > span { color: #b43b00; }
.portal-form .form-control { border: 1px solid #c9c9c9; border-radius: 0; min-height: 50px; font: inherit; padding: 12px 14px; background: #fff; box-shadow: none; color: #222; }
.portal-form textarea.form-control { min-height: 164px; resize: vertical; }
.portal-form .form-control:focus { border-color: #ff4f00; outline: 2px solid #ff4f00; outline-offset: 2px; }
.portal-form .form-control::placeholder { color: #777; font-size: 14px; }
.portal-form .form-consent { padding: 20px 0; border-top: 1px solid #e5e5e5; font-size: 13px; color: #555; line-height: 1.6; margin-bottom: 6px; }
.portal-form .form-consent a { color: #444; text-underline-offset: 2px; }
.portal-form input[type="checkbox"] { accent-color: #b43b00; }
.portal-action { display: inline-flex; align-items: center; justify-content: center; padding: 15px 24px; background: #ff4f00; color: #171717; font: 600 15px/1.4 "Helvetica Neue", Helvetica, Arial, sans-serif; border: 1px solid #ff4f00; cursor: pointer; text-decoration: none; min-height: 50px; }
.portal-page .portal-action:hover { background: #171717; border-color: #171717; color: #fff; }
.portal-action:focus-visible, .portal-page a:focus-visible { outline: 3px solid #ff4f00; outline-offset: 4px; }
.portal-form-footnote { font-size: 12px; color: #777; margin: 16px 0 0; }
.portal-steps { margin: 0; padding: 0; list-style: none; }
.portal-steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; border-top: 1px solid #ddd; padding: 24px 0; }
.portal-number { display: block; color: #b43b00; font-size: 24px; letter-spacing: -.04em; font-variant-numeric: tabular-nums; line-height: 1.3; }
.portal-steps h3 { font-size: 19px; margin: 2px 0 10px; }
.portal-steps p { margin: 0; color: #555; }
.portal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #d5d5d5; border-bottom: 1px solid #d5d5d5; }
.portal-panel { padding: 32px 28px; border-right: 1px solid #d5d5d5; }
.portal-panel:first-child { padding-left: 0; }
.portal-panel:last-child { border-right: 0; }
.portal-panel .portal-number { margin-bottom: 32px; }
.portal-panel-title { font-size: 23px; letter-spacing: -.02em; margin-bottom: 16px; }
.portal-panel p { color: #555; }
.portal-action-secondary { color: #b43b00; text-decoration: underline; font-weight: 500; text-underline-offset: 4px; }
.portal-note { padding: 30px 0; color: #555; font-size: 15px; }
.portal-note p { max-width: 900px; margin-bottom: 12px; }
.portal-note a { color: #444; text-decoration: underline; }
.portal-ad:empty { display: none; }
.portal-ad { margin-bottom: 24px; }
@media (max-width: 991px) { .portal-columns { gap: 32px; } .portal-form-panel { padding: 24px; } .portal-grid { grid-template-columns: 1fr; } .portal-panel, .portal-panel:first-child { padding: 28px 0; border-right: 0; border-bottom: 1px solid #d5d5d5; } .portal-panel:last-child { border-bottom: 0; } .portal-panel .portal-number { margin-bottom: 16px; } }
@media (max-width: 767px) { .portal-columns { grid-template-columns: 1fr; padding-top: 28px; gap: 24px; } .portal-intro { padding: 12px 0 26px; } .portal-breadcrumb { margin-bottom: 24px; } .portal-form-panel { padding: 24px 16px; } .portal-form-panel h2 { font-size: 25px; } .portal-action { width: 100%; } .portal-page { padding-bottom: 24px; } }
@media (max-width: 359px) { .portal-form-panel { padding-left: 8px; padding-right: 8px; border-left: 0; border-right: 0; } .portal-form .g-recaptcha { transform: scale(.88); transform-origin: left top; margin-bottom: -10px; } }

/* Compact city directory: real information without empty photo placeholders. */
.city-directory { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
.city-directory-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 24px; }
.city-directory-count { margin: 0; color: #333; font-size: 16px; }
.city-directory-count strong { font-weight: 600; }
.city-directory-count span { display: block; font-size: 13px; color: #777; margin-top: 5px; }
.city-view-switch { display: inline-flex; border: 1px solid #ddd; border-radius: 6px; background: #fff; overflow: hidden; flex-shrink: 0; }
.city-view-switch[hidden], .city-directory-search[hidden], .city-map-view[hidden], #city-mall-list[hidden] { display: none; }
.city-view-switch button { background: transparent; padding: 10px 18px; border: 0; color: #555; cursor: pointer; font: inherit; font-size: 14px; font-weight: 500; }
.city-view-switch button[aria-pressed="true"] { background: #333; color: #fff; }
.city-directory-search { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.city-directory-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.city-directory-search input { max-width: 460px; height: 46px; border: 1px solid #d6d6d6; border-radius: 5px; background: #fff; font: inherit; }
.city-directory-search input:focus { border-color: #777; box-shadow: 0 0 0 2px #e5e5e5; }
.city-directory-search p { margin: 0; font-size: 13px; color: #777; }
.city-mall-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.city-mall-card { min-width: 0; background: #fff; border: 1px solid #e0e0e0; border-radius: 7px; display: flex; align-items: flex-start; padding: 22px; transition: border-color .15s; }
.city-mall-card:hover { border-color: #aaa; }
.city-mall-card[hidden] { display: none; }
.city-mall-card__body { min-width: 0; flex: 1; }
.city-mall-card__body h2 { font-size: 20px; line-height: 1.3; font-weight: 600; margin: 0 0 12px; letter-spacing: -.35px; }
.city-mall-card__body h2 a { color: #222; }
.city-mall-card__body h2 a:hover { text-decoration: underline; }
.city-mall-card__address { font-size: 14px; color: #555; line-height: 1.5; margin: 0 0 10px; }
.city-mall-card__hours { font-size: 13px; color: #777; line-height: 1.5; margin: 0 0 16px; }
.city-mall-card__hours > span { display: none; }
.city-mall-card__footer { padding-top: 15px; border-top: 1px solid #eee; display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline; justify-content: space-between; }
.city-mall-card__footer > span { color: #777; font-size: 12px; }
.city-mall-card__footer > a { color: #b43b00; font-size: 13px; font-weight: 500; }
.city-mall-card__media { width: 96px; height: 96px; flex: 0 0 96px; margin-right: 18px; border-radius: 4px; overflow: hidden; }
.city-mall-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.city-directory-map { border: 1px solid #ddd; border-radius: 7px; overflow: hidden; }
.city-map-view { margin: 24px 0; }
.city-list-compact .portal-ad { margin-top: 24px; }
@media (max-width: 767px) { .city-mall-grid { grid-template-columns: 1fr; gap: 12px; } .city-directory-toolbar { align-items: flex-start; gap: 12px; margin-bottom: 18px; } .city-view-switch button { padding: 9px 12px; } .city-directory-count { font-size: 14px; } .city-directory-count span { max-width: 170px; font-size: 12px; } .city-mall-card { padding: 18px; } .city-mall-card__body h2 { font-size: 19px; } .city-mall-card__media { width: 72px; height: 72px; flex-basis: 72px; margin-right: 14px; } .city-directory-search input { max-width: none; } }

/* Mall detail: shared Swiss directory system */
.mall-detail {font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:#202124;}
.mall-detail-layout {align-items:flex-start;}
.mall-detail .mall-summary {border:1px solid #dedee1;background:#fff;border-radius:0;box-shadow:none;}
.mall-detail .mall-summary .main {padding:26px;}
.mall-summary-image {display:block;width:100%;height:auto;max-height:300px;object-fit:contain;margin-bottom:24px;}
.mall-detail .mall-summary-count {padding:20px 0;border-top:1px solid #dedee1;border-bottom:1px solid #dedee1;line-height:1.4;}
.mall-summary-count strong {display:block;font-size:54px;line-height:1.1;font-weight:600;letter-spacing:-2px;color:#FF4F00;}
.mall-summary a {overflow-wrap:anywhere;}
.mall-sidebar-ad:empty {display:none;}
/* Separate anchor links, with no tab or selected-panel treatment. */
.mall-detail .mall-section-nav { background: transparent; border: 0; box-shadow: none; padding: 0; margin-bottom: 24px; }
.mall-detail .mall-section-nav .container { width: auto; padding: 0; }
.mall-detail .mall-section-nav ul { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.mall-detail .mall-section-nav ul li { flex: none; margin: 0; border: 0; }
.mall-detail .mall-section-nav ul li a { display: inline-flex; align-items: center; gap: 18px; padding: 12px 18px; border: 1px solid #d5d5d9; border-radius: 6px; background: #fff; color: #202124; font-size: 14px; font-weight: 600; line-height: 1.4; text-decoration: none; transition: border-color .15s, background .15s; }
.mall-detail .mall-section-nav ul li a:hover { background: #f7f7f8; border-color: #202124; }
.mall-section-nav svg, .catalog-route-button svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mall-detail .mall-section { scroll-margin-top: 100px; }
.catalog-route-button { -webkit-appearance: none; appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; margin: 18px 0 24px; padding: 13px 20px; border: 1px solid #202124; border-radius: 6px; background: #202124; color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4; text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s; }
.catalog-route-button:hover { background: #3c3d40; border-color: #3c3d40; color: #fff; }
.catalog-route-button:focus-visible, .mall-detail .mall-section-nav a:focus-visible { outline: 3px solid #FF4F00; outline-offset: 3px; }
.mall-detail .mall-fact { display: flex; align-items: flex-start; gap: 16px; }
.mall-fact-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 42px; height: 42px; border: 1px solid #e3e3e6; border-radius: 6px; color: #FF4F00; }
.mall-fact-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mall-fact-body { min-width: 0; }

.mall-detail .mall-content {padding:32px;border:1px solid #dedee1;border-top:0;border-radius:0;box-shadow:none;background:#fff;}
.mall-section {scroll-margin-top:100px;padding:16px 0 32px;}
.mall-detail h2 {font-size:27px;line-height:1.2;letter-spacing:-.6px;font-weight:600;margin:20px 0;}
.mall-detail h3 {font-size:17px;font-weight:600;margin:22px 0 10px;}
.mall-detail p {font-size:15px;line-height:1.7;}
.mall-detail .mall-fact {padding:16px 0;border-bottom:1px solid #e3e3e6;line-height:1.7;}
.mall-fact h3 {margin:0 0 8px;color:#666;font-size:12px;letter-spacing:.06em;text-transform:uppercase;}
.mall-detail #mall_map {margin:20px 0;border:1px solid #dedee1;}
.mall-detail .org_dists {padding-left:20px;color:#666;}
.mall-detail .mall-shop {padding:24px 15px;border-bottom:1px solid #dedee1;}
.mall-detail .mall-shop h6 {font-size:20px;line-height:1.3;margin:0 0 12px;}
.mall-detail .mall-shop h6 a {color:#202124;}
.mall-detail .mall-shop i {font-style:normal;color:#666;}
.mall-detail .mall-correction {padding:24px;background:#f7f7f8;border-left:3px solid #FF4F00;margin:8px 0 32px;}
.mall-correction h3 {margin-top:0;}
.mall-detail #reviews .review_card {border:1px solid #dedee1;border-radius:0;box-shadow:none;padding:24px;margin:20px 0;}
.mall-detail .mall-review-form {padding:28px;background:#f7f7f8;border:1px solid #dedee1;margin:12px 0 32px;}
.mall-detail .mall-review-form h2 {margin-top:0;}
.mall-review-form label {display:block;font-weight:600;margin:8px 0;}
.mall-review-form .form-control {border:1px solid #ccc;border-radius:0;box-shadow:none;background:#fff;min-height:46px;font-size:16px;}
.mall-review-form .form-control:focus {border-color:#FF4F00;outline:2px solid #FF4F00;outline-offset:2px;}
.mall-review-form textarea {resize:vertical;}
.mall-detail .mall-captcha-label {font-weight:600;}
@media(max-width:991px){.mall-detail #sidebar_fixed {position:static!important;margin-bottom:24px;}.mall-detail .mall-summary .main{display:flow-root;}.mall-detail .mall-summary-image{max-height:240px;}.mall-detail .mall-content{padding:24px;}}
@media(max-width:575px){.mall-detail .mall-content{padding:20px 16px;}.mall-detail .mall-section-nav ul li a{padding:16px 8px;}.mall-detail .mall-review-form{padding:20px 14px;}.mall-detail h2{font-size:24px;}.mall-detail .g-recaptcha{transform:scale(.83);transform-origin:left top;margin-bottom:-12px;}.mall-detail .mall-shop{padding-top:20px;padding-bottom:20px;}}
.mall-summary-contact {padding:16px 0;border-bottom:1px solid #dedee1;line-height:1.7;}
.mall-detail .mall-summary-contact h3 {font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#666;margin:0 0 8px;}
.mall-shop-list {margin-top:24px;}
.mall-detail .mall-shop h3 {font-size:21px;line-height:1.3;margin:0 0 10px;}
.mall-detail .mall-shop h3 a {color:#202124;text-decoration:none;}
.mall-detail .mall-shop h3 a:hover {color:#FF4F00;}
.mall-detail .mall-shop-category {font-size:13px;color:#666;margin-bottom:20px;}
.mall-shop-hours span {font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#666;}
.mall-shop-hours p {margin:6px 0 20px;}

.mall-shop-search { padding: 24px 0; border-top: 1px solid #dedee1; }
.mall-shop-search label { display: block; font-weight: 600; margin-bottom: 12px; }
.mall-shop-search input { min-height: 48px; border: 1px solid #ccc; border-radius: 0; font: inherit; }
.mall-shop-search input:focus { outline: 2px solid #ff4f00; outline-offset: 2px; }
.mall-shop-search p { margin: 10px 0 0; color: #666; font-size: 13px; }
.mall-shop-list > .mall-shop[hidden] { display: none !important; }

/* Organization detail: clear information hierarchy, real directory contacts. */
.org-detail { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; color: #171719; }
.org-detail-heading { padding: 6px 0 30px; border-bottom: 1px solid #dedee1; margin-bottom: 30px; }
.org-detail-heading h2 { font-size: clamp(30px, 4vw, 48px); line-height: 1.1; letter-spacing: -1.6px; font-weight: 600; margin: 0 0 18px; overflow-wrap: anywhere; }
.org-detail-heading > p:last-child { font-size: 16px; color: #68686e; margin: 0; }
.org-detail-heading a, .org-contact-grid a, .org-section-heading > a { color: #c73f00; text-decoration: underline; text-underline-offset: 4px; }
.org-detail-category { color: #6a6a72; font-size: 14px; margin: 0 0 14px; }
.org-detail-panel { padding: 30px; border: 1px solid #dedee1; background: #fff; margin: 0 0 24px; border-radius: 0; box-shadow: none; scroll-margin-top: 100px; }
.org-detail-panel > h2, .org-section-heading h2 { font-size: 25px; letter-spacing: -.65px; font-weight: 600; line-height: 1.25; margin: 0 0 26px; }
.org-detail-panel h3 { font-size: 18px; font-weight: 600; letter-spacing: -.3px; margin: 28px 0 14px; }
.org-mall-panel > h2 { font-size: 13px; color: #6a6a72; font-weight: 400; letter-spacing: 0; margin-bottom: 22px; }
.org-parent-mall { display: block; color: #171719; font-size: 28px; line-height: 1.15; font-weight: 600; letter-spacing: -.75px; margin-bottom: 14px; }
.org-mall-panel > p { color: #68686e; font-size: 14px; line-height: 1.6; }
.org-mall-panel dl { margin: 22px 0; border-top: 1px solid #dedee1; border-bottom: 1px solid #dedee1; }
.org-mall-panel dl > div { padding: 20px 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.org-mall-panel dt { font-size: 13px; font-weight: 400; color: #68686e; }
.org-mall-panel dd { margin: 0; font-size: 32px; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.org-detail-text-link { display: inline-flex; gap: 14px; align-items: center; color: #c73f00; font-size: 14px; font-weight: 600; }
.org-report-link { display: flex; gap: 14px; align-items: center; justify-content: space-between; padding: 20px 0; color: #5b5b63; font-size: 14px; border-bottom: 1px solid #dedee1; margin: 0 0 24px; }
.org-detail-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; border: 0; background: transparent; }
.org-detail-nav a { display: inline-flex; align-items: center; gap: 18px; padding: 12px 18px; border: 1px solid #d5d5d9; border-radius: 6px; background: #fff; color: #202124; font-size: 14px; font-weight: 600; line-height: 1.4; text-decoration: none; transition: border-color .15s, background .15s; }
.org-detail-nav a:hover { background: #f7f7f8; border-color: #202124; color: #202124; }
.org-detail-nav svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.org-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 30px; margin: 0; }
.org-contact-grid > div { padding-top: 18px; border-top: 1px solid #dedee1; min-width: 0; }
.org-contact-grid dt { font-size: 12px; color: #73737b; font-weight: 400; margin-bottom: 9px; }
.org-contact-grid dd { font-size: 16px; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.org-detail-map { background: #f7f7f8; border: 1px solid #dedee1; margin-bottom: 24px; }
.org-travel-text { color: #5b5b63; line-height: 1.75; }
.org-travel-text .org_dists { padding-left: 20px; color: #6a6a72; }
.org-review { border-top: 1px solid #dedee1; padding-top: 24px; margin-top: 24px; }
.org-review-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.org-review-meta h3 { margin: 0; font-size: 17px; }
.org-review-rating { color: #c73f00; font-weight: 600; white-space: nowrap; }
.org-review-date { color: #74747c; font-size: 12px; margin: 7px 0 16px; }
.org-review > p:last-child { margin-bottom: 0; color: #55555d; line-height: 1.7; overflow-wrap: anywhere; }
.org-empty-reviews, .org-form-caption { font-size: 14px; line-height: 1.6; color: #68686e; }
.org-detail .org-review-form .form_inner { padding: 0; }
.org-review-form label { font-size: 14px; font-weight: 500; margin-bottom: 8px; }
.org-review-form .form-control { border: 1px solid #d5d5da; border-radius: 0; min-height: 48px; background: #f7f7f8; box-shadow: none; font-family: inherit; }
.org-review-form .form-control:focus { background: #fff; border-color: #ff4f00; }
.org-review-form textarea.form-control { min-height: 140px; }
.org-review-form button.btn_1 { background: #ff4f00; border-radius: 0; color: #fff; box-shadow: none; padding: 16px 24px; font-family: inherit; font-weight: 600; }
.org-review-form button.btn_1:hover { background: #c73f00; }
.org-detail a:focus-visible, .org-detail button:focus-visible { outline: 2px solid #ff4f00; outline-offset: 4px; }
.org-section-heading { display: flex; flex-wrap: wrap; gap: 12px; align-items: baseline; justify-content: space-between; padding: 24px 0; border-top: 1px solid #dedee1; }
.org-section-heading h2 { margin: 0; }
.org-section-heading > a { font-size: 14px; }
.org-other-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 24px; }
.org-other-card { display: flex; flex-direction: column; padding: 24px; background: #fff; border: 1px solid #dedee1; }
.org-other-card h3 { font-size: 20px; font-weight: 600; letter-spacing: -.4px; line-height: 1.3; margin: 0 0 12px; }
.org-other-card h3 a { color: #171719; }
.org-other-card > p { color: #6a6a72; font-size: 13px; line-height: 1.55; }
.org-other-card > .org-detail-text-link { margin-top: auto; padding-top: 12px; }
@media (max-width: 991px) { .org-detail-sidebar { margin-bottom: 24px; } }
@media (max-width: 575px) {
  .org-detail-panel { padding: 22px; }
  .org-contact-grid, .org-other-grid { grid-template-columns: minmax(0, 1fr); }
  .org-detail-heading { padding-bottom: 24px; margin-bottom: 24px; }
  .org-detail-heading h2 { letter-spacing: -.8px; }
  .org-detail-nav a { flex: 1; text-align: left; padding: 15px 12px; }
  .org-detail-panel > h2, .org-section-heading h2 { font-size: 22px; }
}
/* Carry the same hierarchy through city, mall and organization pages. */
.directory-shell main { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; background: #f7f7f8; padding-bottom: 32px; }
.directory-shell main h1, .directory-shell main h2, .directory-shell main h3, .directory-shell main h6 { font-family: inherit; }
.directory-shell .page_header { background: #fff; border-bottom: 1px solid #dedee1; padding: 28px 0; }
.directory-shell .page_header h1 { font-size: clamp(25px, 3.2vw, 38px) !important; line-height: 1.2; letter-spacing: -.035em; max-width: 1000px; margin-bottom: 4px; }
.org-review-form button.btn_1 { color: #171717; }
.org-review-form .form-consent label, .mall-review-form .form-consent label { display: flex; font-size: 13px; font-weight: 400; }
.org-review-form .form-consent a, .mall-review-form .form-consent a { color: #555; }
.org-contact-grid dd { overflow-wrap: anywhere; }
.mall-summary-placeholder { display: flex; flex-direction: column; gap: 18px; min-height: 220px; padding: 26px; background: #f7f7f8; border: 1px solid #dedee1; margin-bottom: 24px; }
.mall-summary-placeholder strong { font-size: 34px; line-height: 1.1; letter-spacing: -.035em; overflow-wrap: anywhere; color: #222; }
.mall-summary-placeholder span { color: #666; font-size: 13px; }
.mall-summary-placeholder span:last-child { margin-top: auto; }
.mall-detail .mall-section-nav ul li { display: block; }


.portal-page .portal-contact-submit { background: #222; border-color: #222; color: #fff; }
.portal-page .portal-contact-submit:hover { background: #444; border-color: #444; color: #fff; }

/* Primary actions use a neutral high-contrast treatment throughout the updated pages. */
.portal-action, .org-detail .org-review-form button.btn_1 { background: #222; border-color: #222; color: #fff; }
.portal-page .portal-action:hover, .mall-detail .portal-action:hover, .org-detail .org-review-form button.btn_1:hover { background: #444; border-color: #444; color: #fff; }

/* Compact organization detail; append after previous org styles. */
.org-detail {max-width:none;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
.org-detail .org-context-bar {display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;padding:16px 0;border-top:1px solid #dedee1;border-bottom:1px solid #dedee1;margin:0 0 18px;font-size:14px;}
.org-context-bar>a:first-child {font-weight:600;color:#202124;}
.org-context-bar>span {color:#666;}
.org-context-bar>a:last-child {margin-left:auto;}
.org-detail .org-detail-layout {display:block;margin:0;}
.org-detail .org-detail-main {width:100%;padding:0;}
.org-detail .org-detail-nav {display:flex;gap:28px;padding:14px 0;margin:0;border:0;border-bottom:1px solid #dedee1;background:#fff;}
.org-detail .org-detail-nav a {padding:0;color:#202124;font-size:14px;}
.org-detail .org-detail-panel {padding:24px 0;margin:0;border:0;border-bottom:1px solid #dedee1;border-radius:0;background:#fff;box-shadow:none;}
.org-detail .org-detail-panel h2 {font-size:24px;line-height:1.25;letter-spacing:-.5px;margin:0 0 20px;}
.org-detail .org-contact-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 28px;margin:0;}
.org-detail .org-contact-grid>div {padding:0;border:0;background:none;min-width:0;}
.org-detail .org-contact-grid dt {font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;}
.org-detail .org-contact-grid dd {font-size:16px;line-height:1.6;margin:0;overflow-wrap:anywhere;}
.org-detail .org-detail-map {margin:0 0 14px;border:1px solid #dedee1;}
.org-detail .org-travel-text {margin:18px 0 0;font-size:14px;line-height:1.6;}
.org-detail .org-section-heading {display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 16px;}
.org-detail .org-section-heading h2 {margin:0;}
.org-detail .org-empty-reviews {background:#f7f7f8;padding:18px 20px;margin:0 0 18px;color:#555;font-size:15px;}
.org-detail .org-review {padding:20px 0;border:0;border-bottom:1px solid #e3e3e6;margin:0 0 16px;background:#fff;border-radius:0;}
.org-detail .org-review-meta {display:flex;align-items:baseline;justify-content:space-between;gap:20px;}
.org-detail .org-review-meta h3 {font-size:16px;margin:0;}
.org-detail .org-review-rating {font-size:14px;color:#202124;background:#f7f7f8;padding:4px 8px;border-radius:0;}
.org-detail .org-review-date {font-size:12px;color:#777;margin:8px 0 12px;}
.org-detail .org-review-form {padding:0;margin:0;background:#fff;border:0;box-shadow:none;}
.org-review-form>summary {display:list-item;cursor:pointer;font-size:17px;font-weight:600;padding:14px 0;color:#202124;}
.org-review-form[open]>summary {margin-bottom:12px;}
.org-detail .org-review-form .form_inner {max-width:720px;padding:20px;background:#f7f7f8;border:1px solid #dedee1;}
.org-detail .org-other-shops {padding:28px 0;margin:0;}
.org-detail .org-other-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;}
.org-detail .org-other-card {padding:18px;border:1px solid #dedee1;border-radius:0;box-shadow:none;}
@media(max-width:767px){.org-detail .org-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.org-detail .org-other-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.org-context-bar>a:last-child{margin-left:0;}}
@media(max-width:480px){.org-detail .org-contact-grid,.org-detail .org-other-grid{grid-template-columns:1fr;}.org-detail .org-detail-nav{gap:20px;}.org-detail .org-detail-panel{padding:22px 0;}.org-detail .org-section-heading{align-items:flex-start;}.org-detail .org-review-form .form_inner{padding:16px 12px;}}

.city-list-compact .city-map-view { margin: 0 0 26px; }
.city-list-compact .city-directory-map { border-radius: 12px; }
.org-detail .org-section-heading { border: 0; padding: 0; }
/* Ads are independent sections, with the same rhythm as page content. */
.directory-shell main .portal-ad, .portal-shell main .portal-ad { display: flow-root; clear: both; min-width: 0; margin: 36px 0; }
.directory-shell main .portal-ad:empty, .portal-shell main .portal-ad:empty { display: none; margin: 0; }
.org-detail { background: #fff; border: 1px solid #e3e3e3; border-radius: 10px; padding: 24px; }
.org-detail .org-context-bar { border-top: 0; padding-top: 0; margin-bottom: 18px; }
.org-detail .org-detail-panel { padding: 28px 0; }
.org-detail .org-other-shops { margin-top: 28px; }
.org-detail .org-review-form { margin-top: 22px; }
.mall-detail .mall-section { padding-bottom: 32px; }
@media (max-width: 767px) { .directory-shell main .portal-ad, .portal-shell main .portal-ad { margin: 28px 0; } .org-detail { padding: 18px; } }


/* Sidebar icons share the contact section's line weight and accent. */
.mall-summary-icon { width: 22px; height: 22px; flex: none; fill: none; stroke: #FF4F00; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.mall-detail .mall-summary-contact h3 { display: flex; align-items: center; gap: 10px; }
.mall-summary-count > .mall-summary-icon { float: right; width: 30px; height: 30px; margin: 10px 0 8px 12px; }
.mall-summary-correction { display: inline-flex; align-items: center; gap: 10px; }

.catalog-travel-heading { display: flex; align-items: center; gap: 12px; }
.catalog-travel-heading .mall-summary-icon { width: 24px; height: 24px; }

/* Organization contacts use the same icon-led hierarchy as mall details. */
.org-detail .org-contact-grid { gap: 0 30px; }
.org-detail .org-contact-grid > div { padding: 20px 0; }
.org-contact-grid dt { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #666; margin-bottom: 10px; }
.org-contact-grid dd { padding-left: 32px; color: #202124; }
.org-detail .org-contact-grid a { color: #b43b00; }
.org-detail .org-contact-grid dd a { overflow-wrap: anywhere; }
.org-detail .org-context-bar a:last-child { color: #b43b00; text-decoration: underline; text-underline-offset: 4px; }
.org-detail .org-empty-reviews { padding: 18px 20px; background: #f7f7f8; border-left: 2px solid #FF4F00; color: #555; }
.org-detail .org-review-form > summary { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 12px 18px; border: 1px solid #202124; border-radius: 6px; background: #202124; color: #fff; font-weight: 600; cursor: pointer; list-style: none; }
.org-detail .org-review-form > summary::-webkit-details-marker { display: none; }
.org-detail .org-review-form > summary:hover { background: #3c3d40; }
.org-detail .org-review-form > summary:focus-visible { outline: 3px solid #FF4F00; outline-offset: 3px; }
.org-detail .org-review-form[open] > summary { margin-bottom: 20px; }
@media (max-width: 575px) {
 .org-detail .org-detail-nav a { flex: none; padding: 12px 14px; gap: 10px; }
 .org-detail .org-contact-grid { grid-template-columns: minmax(0, 1fr); }
 .org-detail .org-detail-panel { padding: 22px 18px; }
}

/* Make the parent mall and the way back explicit on every organization. */
.org-parent-mall { display: flex; align-items: center; gap: 18px; padding: 24px; margin: 0 0 12px; border: 1px solid #dedee1; border-left: 3px solid #FF4F00; background: #f7f7f8; }
.org-parent-icon { width: 34px; height: 34px; flex: none; fill: none; stroke: #FF4F00; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.org-parent-info { flex: 1; min-width: 0; }
.org-parent-info p { margin: 0 0 6px; font-size: 14px; color: #555; }
.org-detail .org-parent-name { display: block; color: #202124; font-size: 24px; font-weight: 600; line-height: 1.25; text-decoration: none; overflow-wrap: anywhere; }
.org-detail .org-parent-name:hover { text-decoration: underline; text-underline-offset: 4px; }
.org-parent-info > span { display: block; margin-top: 8px; font-size: 13px; color: #666; }
.org-detail .org-parent-back { display: inline-flex; align-items: center; justify-content: center; gap: 10px; flex: none; min-height: 46px; padding: 12px 16px; background: #202124; border: 1px solid #202124; border-radius: 6px; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; }
.org-detail .org-parent-back:hover { background: #3c3d40; border-color: #3c3d40; }
.org-parent-back svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.org-detail .org-parent-report { display: block; width: fit-content; margin: 0 0 24px auto; color: #666; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
@media(max-width:767px) {
 .org-parent-mall { flex-wrap: wrap; padding: 18px; gap: 14px; }
 .org-parent-icon { align-self: flex-start; margin-top: 3px; width: 28px; height: 28px; }
 .org-parent-info { flex-basis: calc(100% - 42px); }
 .org-detail .org-parent-name { font-size: 22px; }
 .org-detail .org-parent-back { width: 100%; }
}
