/* Places public and account experience */
.places-site-page { display: flex; min-height: 100vh; flex-direction: column; background: #f8fbfa; }
.places-site-main { min-height: 0; flex: 1 0 auto; background: #f8fbfa; color: #34423c; }
.places-site-main *, .places-site-header *, .places-site-footer * { box-sizing: border-box; }
.places-site-header { position: relative; z-index: 1001; background: rgba(255,255,255,.97); border-bottom: 1px solid #e4ece8; box-shadow: 0 2px 12px rgba(46,69,60,.05); }
.places-site-header__inner { display: flex; min-height: 72px; align-items: center; justify-content: space-between; gap: 24px; padding-top: 10px; padding-bottom: 10px; }
.places-site-header__inner::before,
.places-site-header__inner::after,
.places-site-footer__grid::before,
.places-site-footer__grid::after,
.places-results-page::before,
.places-results-page::after { display: none; content: none; }
.places-brand { display: inline-flex; align-items: center; }
.places-brand img { width: auto; height: 42px; }
.places-site-nav { display: flex; align-items: center; gap: 8px; }
.places-site-nav a { padding: 9px 12px; border-radius: 8px; color: #40524a; font-weight: 600; text-decoration: none; }
.places-site-nav a:hover, .places-site-nav a:focus { background: #edf7f2; color: #277256; }
.places-site-nav a .fa { margin-right: 5px; }
.places-site-nav .places-site-nav__access { padding-right: 16px; padding-left: 16px; background: #397d63; color: #fff; }
.places-site-nav .places-site-nav__access:hover, .places-site-nav .places-site-nav__access:focus { background: #2d674f; color: #fff; }
.places-site-footer { height: auto; min-height: 0; flex: 0 0 auto; padding: 44px 0; background: #eef5f2; border-top: 1px solid #dce8e3; color: #53665d; }
.places-site-footer__grid { display: grid; grid-template-columns: minmax(0,1fr) 230px; gap: 50px; }
.places-site-footer__grid > div,
.places-site-footer__grid > nav { min-width: 0; }
.places-brand--footer img { height: 38px; }
.places-site-footer p { max-width: 520px; margin: 14px 0 8px; line-height: 21px; }
.places-data-attribution { display: block; margin-top: 5px; }
.places-site-footer nav { display: grid; align-content: start; gap: 8px; }
.places-site-footer nav strong { margin-bottom: 4px; color: #35463e; text-transform: uppercase; }
.places-site-footer a { color: #3d6f5b; }

.places-eyebrow { display: inline-block; margin-bottom: 7px; color: #477d6a; font-size: 11px; font-weight: 700; letter-spacing: .08em; line-height: 16px; text-transform: uppercase; }
.places-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.places-hidden-field { display: none !important; }
.places-site-main h1, .places-site-main h2, .places-site-main h3 { color: #303d37; }
.places-site-main .btn { border-radius: 8px; font-weight: 600; text-shadow: none; }
.places-site-main .btn-primary { background: #397d63; border-color: #397d63; }
.places-site-main .btn-primary:hover, .places-site-main .btn-primary:focus { background: #2d674f; border-color: #2d674f; }

.places-home-hero { position: relative; z-index: 2; overflow-x: clip; overflow-y: visible; padding: 76px 0 86px; background: linear-gradient(135deg,#eff9f5 0%,#edf7fb 60%,#fff5da 100%); text-align: center; }
.places-home-hero::before, .places-home-hero::after { position: absolute; z-index: 0; border-radius: 50%; content: ""; opacity: .32; pointer-events: none; }
.places-home-hero::before { top: 0; left: -80px; width: 260px; height: 260px; background: #9ddbc4; }
.places-home-hero::after { right: -60px; bottom: 0; width: 240px; height: 240px; background: #f4a99e; }
.places-home-hero__content { position: relative; z-index: 1; text-align: center; }
.places-home-hero__logo { width: auto; height: 68px; margin-bottom: 22px; }
.places-home-hero h1 { max-width: 720px; margin: 2px auto 12px; font-size: 42px; font-weight: 600; line-height: 50px; }
.places-home-hero__content > p { margin: 0 auto; color: #607169; font-size: 18px; line-height: 28px; }
.places-home-search { max-width: 720px; margin: 30px auto 10px; }
.places-searchbox { position: relative; z-index: 2; display: flex; width: 100%; align-items: center; gap: 8px; margin: 0; padding: 7px; background: #fff; border: 1px solid #d5e2dc; border-radius: 13px; box-shadow: 0 13px 35px rgba(48,79,66,.13); pointer-events: auto; }
.places-searchbox__query { position: relative; z-index: 2; min-width: 0; flex: 1 1 auto; pointer-events: auto; }
.places-searchbox__icon { position: absolute; top: 15px; left: 14px; z-index: 3; color: #66917f; font-size: 18px; pointer-events: none; }
.places-searchbox .places-country { position: relative; z-index: 2; width: 145px; height: 48px; flex: 0 0 145px; margin: 0; padding: 8px 28px 8px 10px; background-color: #f6faf8; border: 1px solid #d5e2dc; border-radius: 9px; color: #40524a; font-size: 14px; pointer-events: auto; }
.places-searchbox #cities-searchbox { box-sizing: border-box; width: 100%; min-width: 0; height: 48px; margin: 0; padding: 10px 12px 10px 45px; background: transparent; border: 0; box-shadow: none; color: #35463e !important; font-size: 16px; }
.places-searchbox #cities-searchbox:focus { outline: 0; box-shadow: 0 0 0 3px rgba(57,125,99,.13); }
.places-searchbox .btn { position: relative; z-index: 2; flex: 0 0 auto; min-height: 48px; margin: 0; padding: 10px 24px; pointer-events: auto; }
.places-searchbox .btn[aria-busy="true"] { cursor: wait; opacity: .86; }
.places-home-search .autoComplete_wrapper, .places-search-hero .autoComplete_wrapper { z-index: 2; width: 100%; pointer-events: auto; }
.places-searchbox .autoComplete_wrapper > ul { z-index: 10; }
.places-searchbox .autoComplete_wrapper > ul[hidden],
.places-searchbox .autoComplete_wrapper > ul:empty { pointer-events: none; }
.places-searchbox .autoComplete_wrapper > ul:not([hidden]):not(:empty) { pointer-events: auto; }
.places-search-status { position: absolute; top: calc(100% + 6px); left: 8px; z-index: 4; margin: 0; color: #a3473f; font-size: 13px; line-height: 18px; }
.places-near-button.btn-link { color: #397d63; text-decoration: none; }
.places-inline-error { max-width: 620px; margin: 10px auto 0 !important; color: #a3473f !important; font-size: 14px !important; }
.places-home-intro { position: relative; z-index: 1; box-sizing: border-box; padding-top: 65px; padding-bottom: 75px; }
.places-section-heading { max-width: 680px; margin: 0 auto 32px; text-align: center; }
.places-section-heading h2 { margin: 0 0 10px; font-size: 29px; line-height: 37px; }
.places-section-heading p { color: #65766e; font-size: 15px; line-height: 23px; }
.places-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.places-feature-grid article { padding: 26px; background: #fff; border: 1px solid #dee9e4; border-radius: 13px; box-shadow: 0 7px 24px rgba(45,68,59,.05); text-align: center; }
.places-feature-grid article > span { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; background: #e5f4ed; border-radius: 13px; color: #397d63; font-size: 20px; }
.places-feature-grid h3 { margin: 16px 0 7px; font-size: 18px; }
.places-feature-grid p { margin: 0; color: #697870; line-height: 21px; }
.places-centres-callout { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 25px; padding: 29px 32px; background: #fff7e5; border: 1px solid #f0dfb6; border-radius: 13px; }
.places-centres-callout h2 { margin: 0 0 5px; font-size: 23px; }
.places-centres-callout p { margin: 0; color: #72684f; }

.places-search-hero { padding: 35px 0 38px; background: linear-gradient(135deg,#eaf7f1,#eff7fa); }
.places-search-hero h1 { margin: 0 0 20px; font-size: 28px; line-height: 35px; }
.places-search-hero .places-searchbox { width: 100%; max-width: 690px; margin: 0 auto; box-shadow: 0 8px 25px rgba(48,79,66,.09); }
.places-results-page { display: grid; grid-template-columns: minmax(0,1fr) 310px; align-items: start; gap: 24px; box-sizing: border-box; padding-top: 34px; padding-bottom: 60px; }
.places-results-list,
.places-filters-card { min-width: 0; }
.places-results-page > .alert { grid-column: 1/-1; }
.places-results-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 15px; }
.places-results-heading h2 { margin: 0; font-size: 23px; }
.places-results-count { padding: 5px 10px; background: #e7f3ed; border-radius: 20px; color: #397d63; font-size: 12px; font-weight: 700; }
.places-result-card { display: flex; gap: 20px; margin-bottom: 14px; padding: 21px; background: #fff; border: 1px solid #dfe8e4; border-radius: 12px; box-shadow: 0 5px 18px rgba(45,68,59,.045); }
.places-result-card__image { width: 112px; height: 112px; flex: 0 0 112px; padding: 4px; background: #fff; border: 1px solid #d9e3df; border-radius: 12px; object-fit: contain; }
.places-result-card__body { min-width: 0; flex: 1 1 auto; }
.places-result-card__title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.places-result-card h3 { margin: 0; font-size: 19px; line-height: 25px; }
.places-result-card h3 a { color: #30453c; }
.places-verified { flex: 0 0 auto; color: #32815f; font-size: 12px; font-weight: 700; }
.places-address { margin: 7px 0; color: #718079; line-height: 20px; }
.places-age-badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 11px 0 16px; }
.places-age-badges span { padding: 5px 9px; background: #eaf5f0; border: 1px solid #d4e9df; border-radius: 20px; color: #39745d; font-size: 12px; font-weight: 700; }
.places-filters-card { position: sticky; top: 18px; padding: 20px; background: #fff; border: 1px solid #dfe8e4; border-radius: 12px; box-shadow: 0 7px 22px rgba(45,68,59,.06); }
.places-filters-card__heading { display: flex; gap: 11px; margin-bottom: 16px; }
.places-filters-card__heading > span { display: inline-flex; width: 38px; height: 38px; flex: 0 0 38px; align-items: center; justify-content: center; background: #e7f3f8; border-radius: 10px; color: #39788f; }
.places-filters-card h2 { margin: 0; font-size: 17px; line-height: 22px; }
.places-filters-card__heading p { margin: 2px 0 0; color: #74827b; font-size: 12px; }
.places-results-map { width: 100%; height: 180px; margin-bottom: 20px; border: 0; border-radius: 9px; }
.places-range-label { display: flex; justify-content: space-between; }
.places-filters-card input[type="range"] { width: 100%; margin: 8px 0 20px; }
.places-filters-card fieldset { margin: 0 0 18px; padding: 0; border: 0; }
.places-filters-card legend { margin-bottom: 9px; border: 0; color: #405048; font-size: 14px; font-weight: 700; line-height: 20px; }
.places-filters-card fieldset label { display: flex; align-items: center; gap: 7px; margin: 7px 0; font-size: 13px; }
.places-filters-card fieldset input[type="checkbox"] { width: auto; min-height: 0; flex: 0 0 auto; margin: 0; }
.places-empty-state { padding: 48px 25px; background: #fff; border: 1px dashed #cadbd3; border-radius: 12px; text-align: center; }
.places-empty-state > .fa { color: #7eaa98; font-size: 34px; }
.places-empty-state h3 { margin: 14px 0 6px; }

.places-profile-band { height: 115px; background: linear-gradient(135deg,#dff2e9,#e8f4f8); }
.places-profile-page { box-sizing: border-box; margin-top: -70px; padding-bottom: 65px; }
.places-profile-header { display: flex; align-items: center; gap: 20px; padding: 23px; background: #fff; border: 1px solid #dce7e2; border-radius: 14px; box-shadow: 0 9px 28px rgba(45,68,59,.09); }
.places-profile-image { width: 112px; height: 112px; flex: 0 0 112px; padding: 5px; border: 1px solid #d8e3de; border-radius: 14px; object-fit: contain; }
.places-profile-heading { min-width: 0; flex: 1 1 auto; }
.places-profile-kicker { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 5px; }
.places-profile-kicker .places-eyebrow { margin-bottom: 0; }
.places-profile-verified { display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; background: #edf8f3; border: 1px solid #d0e9dd; border-radius: 999px; color: #326a52; font-size: 11px; font-weight: 700; line-height: 16px; }
.places-profile-heading h1 { margin: 0; font-size: 28px; line-height: 35px; }
.places-profile-contact { display: flex; flex-wrap: wrap; gap: 16px; color: #53685e; }
.places-profile-layout { display: grid; grid-template-columns: minmax(0,1fr) 350px; align-items: start; gap: 20px; margin-top: 20px; }
.places-profile-main { display: grid; gap: 16px; }
.places-profile-card, .places-request-card { padding: 23px; background: #fff; border: 1px solid #dfe8e4; border-radius: 12px; }
.places-profile-card h2, .places-request-card h2 { margin: 0 0 9px; font-size: 20px; line-height: 26px; }
.places-profile-card p { color: #64756d; line-height: 23px; }
.places-profile-description { white-space: pre-line; }
.places-profile-card--intro .places-profile-description { margin: 0; color: #4f5f73; font-size: 16px; line-height: 26px; }
.places-age-badges--large span { padding: 7px 11px; font-size: 13px; }
.places-profile-map { height: 310px; margin-top: 16px; border-radius: 9px; }
.places-request-card { position: sticky; top: 18px; border-top: 4px solid #efbd68; box-shadow: 0 8px 25px rgba(45,68,59,.07); }
.places-request-card > p { color: #6c7a73; line-height: 21px; }
.places-request-card form { margin: 18px 0 0; }
.places-request-card label:not(.checkbox), .places-account-form > label:not(.checkbox) { display: block; margin: 13px 0 6px; color: #45554d; font-size: 13px; }
.places-request-card input, .places-request-card select, .places-request-card textarea, .places-account-form input[type="text"], .places-account-form input[type="email"], .places-account-form input[type="password"], .places-account-form input[type="tel"] { box-sizing: border-box; min-height: 42px; margin: 0; padding: 9px 10px; border: 1px solid #cfddd6; border-radius: 8px; box-shadow: none; }
.places-request-card textarea { min-height: 105px; resize: vertical; }
.places-request-card input:focus, .places-request-card select:focus, .places-request-card textarea:focus, .places-account-form input:focus { border-color: #6f9f8b; outline: 0; box-shadow: 0 0 0 3px rgba(57,125,99,.13); }
.places-request-card h3 { margin: 21px 0 5px; padding-top: 17px; border-top: 1px solid #e3ebe7; font-size: 16px; }
.places-request-card form > .btn,
.places-account-form > .btn { box-sizing: border-box; width: 100%; }
.places-conditions { margin: 17px 0 !important; color: #5f6f67; font-size: 12px; line-height: 18px; }
.places-conditions.checkbox { display: flex; align-items: flex-start; gap: 8px; padding-left: 0; }
.places-conditions.checkbox input[type="checkbox"] { width: auto; min-height: 0; flex: 0 0 auto; margin: 3px 0 0; }
.places-conditions.checkbox > span { min-width: 0; }
.places-success-state, .places-error-state { text-align: center; }
.places-success-state > .fa, .places-error-state > .fa { margin-bottom: 12px; color: #3b8a68; font-size: 42px; }
.places-error-state > .fa { color: #b65a50; }

.places-account-page { min-height: 620px; padding: 55px 20px 70px; background: linear-gradient(135deg,#edf8f3,#f3f8fa 62%,#fff8e8); }
.places-account-shell { display: grid; max-width: 900px; grid-template-columns: minmax(0,1fr) 420px; align-items: center; gap: 60px; margin: 0 auto; }
.places-account-intro h1 { margin: 0 0 14px; font-size: 35px; line-height: 43px; }
.places-account-intro > p { color: #607169; font-size: 16px; line-height: 25px; }
.places-account-intro ul { margin: 24px 0 0; list-style: none; }
.places-account-intro li { margin: 10px 0; color: #4e6258; }
.places-account-intro li .fa { margin-right: 8px; color: #3b8968; }
.places-account-card { box-sizing: border-box; width: 100%; max-width: 430px; margin: 0 auto; padding: 30px; background: #fff; border: 1px solid #dbe7e1; border-radius: 14px; box-shadow: 0 13px 38px rgba(45,68,59,.1); }
.places-account-card--wide { max-width: 570px; }
.places-account-card h1, .places-account-card h2 { margin: 0 0 9px; color: #303d37; font-size: 25px; line-height: 32px; }
.places-account-card > p { color: #697970; line-height: 21px; }
.places-account-form { position: relative; margin: 0; }
.places-account-card .intl-tel-input { width: 100%; }
.places-account-card .iti-flag { background-image: url("../img/flags.png"); }
.places-account-form > input:not([type="hidden"]), .places-account-form > .control-group input { box-sizing: border-box; width: 100%; min-height: 44px; margin-bottom: 12px; }
.places-account-form .btn-block { margin-top: 17px; }
.places-account-links { display: flex; justify-content: center; gap: 9px; margin-top: 19px; font-size: 13px; text-align: center; }
.places-account-divider { position: relative; margin: 24px 0; border-top: 1px solid #e2eae6; text-align: center; }
.places-account-divider span { position: relative; top: -10px; padding: 0 10px; background: #fff; color: #8a9791; }
.places-pekebook-login { display: flex !important; align-items: center; justify-content: center; gap: 8px; }
.places-pekebook-login img { width: auto; height: 26px; }
.places-loading { position: absolute; z-index: 3; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(255,255,255,.86); border-radius: 10px; }
.places-loading img { width: 34px; height: 34px; }
.places-captcha { max-width: 304px; margin: 18px auto; overflow: hidden; }
.places-required { color: #76837d; font-size: 12px; }
.places-password-security { display: none; margin: 5px 0 18px; color: #63736b; font-size: 12px; }
.places-password-security > div { display: flex; align-items: center; gap: 7px; margin: 5px 0; }
.places-password-security img { width: 15px; height: 15px; }

@media (max-width: 900px) {
    .places-results-page { grid-template-columns: minmax(0,1fr) 280px; }
    .places-profile-layout { grid-template-columns: minmax(0,1fr) 320px; }
    .places-account-shell { gap: 32px; }
}
@media (min-resolution: 2dppx) {
    .places-account-card .iti-flag { background-image: url("../img/flags@2x.png"); }
}
@media (max-width: 767px) {
    .places-site-header__inner { min-height: 62px; }
    .places-brand img { height: 35px; }
    .places-site-nav a { font-size: 0; }
    .places-site-nav a .fa { margin: 0; font-size: 18px; }
    .places-site-nav .places-site-nav__access { font-size: 12px; }
    .places-site-nav .places-site-nav__access .fa { margin-right: 4px; font-size: 15px; }
    .places-site-footer__grid, .places-feature-grid, .places-results-page, .places-profile-layout, .places-account-shell { grid-template-columns: 1fr; }
    .places-home-hero { padding: 50px 10px 58px; }
    .places-home-hero h1 { font-size: 31px; line-height: 39px; }
    .places-home-intro { width: auto; padding: 45px 10px 55px; }
    .places-centres-callout { align-items: stretch; flex-direction: column; }
    .places-results-page { width: auto; padding: 25px 10px 45px; }
    .places-filters-card, .places-request-card { position: static; }
    .places-filters-card { grid-row: 1; }
    .places-profile-page { width: auto; padding-right: 10px; padding-left: 10px; }
    .places-account-intro { display: none; }
    .places-account-page { min-height: 0; padding: 35px 10px 50px; }
    .places-site-footer { padding-right: 10px; padding-left: 10px; }
}
@media (max-width: 520px) {
    .places-searchbox { align-items: stretch; flex-direction: column; background: transparent; border: 0; box-shadow: none; }
    .places-searchbox__query { width: 100%; }
    .places-searchbox__icon { top: 17px; }
    .places-searchbox .places-country { width: 100%; height: 46px; flex-basis: 46px; background-color: #fff; }
    .places-searchbox #cities-searchbox { height: 52px; padding-left: 46px; background: #fff; border: 1px solid #d5e2dc; border-radius: 10px; }
    .places-searchbox .btn { width: 100%; }
    .places-search-status { position: static; margin: 2px 4px 0; text-align: left; }
    .places-result-card { align-items: flex-start; flex-direction: column; }
    .places-result-card__image { width: 80px; height: 80px; flex-basis: 80px; }
    .places-result-card__title { flex-direction: column; }
    .places-result-card .btn { width: 100%; }
    .places-profile-header { align-items: flex-start; flex-direction: column; }
    .places-profile-image { width: 88px; height: 88px; flex-basis: 88px; }
    .places-profile-header > .btn { width: 100%; }
    .places-account-card { padding: 23px 18px; }
}

/* Places identity: coral pin + blue map */
.places-site-page,
.places-site-main { background: #fff9f6; color: #354158; }

.places-site-header {
    background: rgba(255, 253, 251, .97);
    border-bottom-color: #f2ddd8;
    box-shadow: 0 4px 20px rgba(75, 64, 96, .07);
}

.places-brand img { filter: drop-shadow(0 5px 9px rgba(255, 95, 112, .18)); }
.places-site-nav a { color: #42506a; }
.places-site-nav a:hover,
.places-site-nav a:focus { background: #fff0ed; color: #d94b5b; }
.places-site-header .places-site-nav a.places-site-nav__access,
.places-site-main .btn-primary,
.places-site-main .btn-success {
    background-color: #f04f64 !important;
    background-image: linear-gradient(135deg, #ff6677, #f04f64) !important;
    border: 2px solid #ef5063 !important;
    color: #fff !important;
    box-shadow: 0 7px 17px rgba(240, 79, 100, .2) !important;
}
.places-site-header .places-site-nav a.places-site-nav__access:hover,
.places-site-header .places-site-nav a.places-site-nav__access:focus,
.places-site-main .btn-primary:hover,
.places-site-main .btn-primary:focus,
.places-site-main .btn-success:hover,
.places-site-main .btn-success:focus {
    background-color: #da4055 !important;
    background-image: linear-gradient(135deg, #ee5367, #da4055) !important;
    border-color: #da4055 !important;
    color: #fff !important;
}

.places-site-main h1,
.places-site-main h2,
.places-site-main h3 { color: #28374f; }
.places-eyebrow { color: #df4f60; }
.places-site-main .btn { border-radius: 999px; }

.places-home-hero {
    background:
        radial-gradient(circle at 12% 18%, rgba(255, 255, 255, .8) 0 8%, transparent 8.2%),
        radial-gradient(circle at 87% 78%, rgba(255, 255, 255, .58) 0 11%, transparent 11.2%),
        linear-gradient(135deg, #ffe9e5 0%, #fff4ed 39%, #e7f5ff 100%);
}
.places-home-hero::before { background: #65b6eb; opacity: .2; }
.places-home-hero::after { background: #ff6375; opacity: .24; }
.places-home-hero h1 { color: #253650; letter-spacing: -.02em; }
.places-home-hero__content > p { color: #59677d; }
.places-searchbox {
    border-color: #f1cfc9;
    border-radius: 18px;
    box-shadow: 0 16px 36px rgba(105, 76, 92, .14);
}
.places-searchbox__icon,
.places-near-button.btn-link { color: #e85465; }
.places-searchbox #cities-searchbox { color: #354158 !important; }
.places-searchbox #cities-searchbox:focus { box-shadow: 0 0 0 3px rgba(255, 95, 112, .15); }

.places-section-heading h2 { color: #28374f; }
.places-feature-grid article {
    border-color: #f0ddd8;
    border-radius: 20px;
    box-shadow: 0 10px 26px rgba(74, 76, 106, .07);
}
.places-feature-grid { align-items: stretch; }
.places-feature-grid article { box-sizing: border-box; height: 100%; }
.places-feature-grid article > span { background: #fff0ed; color: #ea5667; border-radius: 50%; }
.places-feature-grid article:nth-child(2) > span { background: #e8f5fd; color: #398fc7; }
.places-feature-grid article:nth-child(3) > span { background: #f0edff; color: #7160c5; }
.places-centres-callout { background: linear-gradient(115deg, #263a59, #405b83); border: 0; border-radius: 20px; box-shadow: 0 13px 28px rgba(39, 56, 84, .18); }
.places-centres-callout h2,
.places-centres-callout .places-eyebrow { color: #fff; }
.places-centres-callout p { color: #dce8f5; }

.places-search-hero { background: linear-gradient(115deg, #ffe8e3 0%, #fff4ef 48%, #e5f4ff 100%); }
.places-results-count { background: #fff0ed; color: #d94b5b; }
.places-result-card,
.places-filters-card,
.places-profile-card,
.places-request-card,
.places-account-card {
    border-color: #efded9;
    border-radius: 18px;
    box-shadow: 0 10px 27px rgba(65, 68, 98, .07);
}
.places-result-card { border-left: 5px solid #65afe0; }
.places-result-card:nth-of-type(even) { border-left-color: #ff6b79; }
.places-result-card h3 a { color: #2b3b55; }
.places-age-badges span { background: #edf7fe; border-color: #d4ebfa; color: #357ca8; }
.places-filters-card__heading > span { background: #fff0ed; color: #df5061; border-radius: 50%; }
.places-empty-state { border-color: #efcfc9; background: #fffdfc; }
.places-empty-state > .fa { color: #e45a69; }

.places-profile-band { background: linear-gradient(110deg, #ff7a86 0%, #ffaaa0 42%, #73bbed 100%); }
.places-profile-header { border-color: #f0d8d2; border-radius: 20px; box-shadow: 0 14px 32px rgba(68, 65, 96, .12); }
.places-profile-image { border-color: #f2d4ce; border-radius: 18px; }
.places-request-card { border-top: 5px solid #ff6475; }
.places-request-card input,
.places-request-card select,
.places-request-card textarea,
.places-account-form input[type="text"],
.places-account-form input[type="email"],
.places-account-form input[type="password"],
.places-account-form input[type="tel"] { border-color: #e5d6d5; border-radius: 11px; }
.places-request-card input:focus,
.places-request-card select:focus,
.places-request-card textarea:focus,
.places-account-form input:focus { border-color: #ff7a86; box-shadow: 0 0 0 3px rgba(255, 95, 112, .14); }

.places-account-page { background: linear-gradient(135deg, #fff0eb 0%, #fff8f4 52%, #e8f5ff 100%); }
.places-account-intro h1 { color: #28374f; letter-spacing: -.02em; }
.places-account-intro li .fa { color: #e95465; }
.places-account-card { border-top: 5px solid #ff6475; }
.places-account-links a { color: #d84a5b; }
.places-site-footer { background: #293b58; border-top: 0; color: #d8e4f1; }
.places-site-footer nav strong { color: #fff; }
.places-site-footer a { color: #bfe2f8; }
.places-site-footer .places-site-languages { display: flex; grid-auto-flow: unset; grid-template-columns: none; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.places-site-footer .places-site-languages a,
.places-site-footer .places-site-languages span { font-size: 12px; font-weight: 700; text-transform: uppercase; }
.places-site-footer .places-site-languages span { color: #fff; }

/* Private Places screens use the same independent identity. */
.places-management-page,
.places-welcome-page { color: #354158; }
.places-management-header {
    background: linear-gradient(115deg, #ffe8e3 0%, #fff5ef 50%, #e8f5ff 100%);
    border-color: #f0d4ce;
    border-radius: 20px;
}
.places-management-header h1,
.places-welcome-hero h1,
.places-card-heading h2,
.places-welcome-card h2 { color: #28374f; }
.places-management-card,
.places-management-sidebar,
.places-welcome-card {
    border-color: #efded9;
    border-radius: 18px;
    box-shadow: 0 10px 27px rgba(65, 68, 98, .07);
}
.places-management-card:nth-child(1) { border-top: 4px solid #ff6b79; }
.places-management-card:nth-child(2) { border-top: 4px solid #61afe3; }
.places-management-card:nth-child(3) { border-top: 4px solid #7566c8; }
.places-management-sidebar { border-top-color: #ffb05e; }
.places-card-icon,
.places-welcome-icon { border-radius: 50%; }
.places-card-icon--coral,
.places-welcome-card--coral .places-welcome-icon { background: #fff0ed; color: #df4e60; }
.places-card-icon--blue,
.places-welcome-card--blue .places-welcome-icon { background: #e8f5fd; color: #378dc3; }
.places-card-icon--mint,
.places-welcome-card--mint .places-welcome-icon { background: #f0edff; color: #7060c2; }
.places-card-icon--yellow { background: #fff2d9; color: #a86e1f; }
.places-management-card input:focus,
.places-management-card select:focus,
.places-management-card textarea:focus,
.places-age-fields input[type="number"]:focus { border-color: #ff7a86; box-shadow: 0 0 0 3px rgba(255, 95, 112, .14); }
.places-welcome-hero {
    background:
        radial-gradient(circle at 90% 85%, rgba(100, 181, 235, .22) 0 13%, transparent 13.2%),
        linear-gradient(135deg, #ffe9e5, #fff7f2 56%, #e9f6ff);
    border-color: #efd6d0;
    border-radius: 22px;
}
.places-welcome-hero::after { background: #ff6375; opacity: .2; }
.places-welcome-card--blue { border-top-color: #61afe3; }
.places-welcome-card--mint { border-top-color: #7768c9; }
.places-welcome-card--coral { border-top-color: #ff6878; }
