:root {
  --ink: #07142d; --muted: #62708a; --paper: #f3f5f0; --white: #fff;
  --aqua: #41e7d4; --coral: #ff705d; --blue: #1958ff; --line: #dce1e2;
  --radius: 1.4rem; --shadow: 0 24px 70px rgb(7 20 45 / 12%);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
#search, #results, #explore, #medical-title { scroll-margin-top: 6rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, "Hiragino Sans", "Yu Gothic UI", "Noto Sans JP", system-ui, sans-serif; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
.skip-link { position: fixed; z-index: 100; top: .7rem; left: .7rem; padding: .75rem 1rem; color: white; border-radius: .65rem; background: var(--blue); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.site-header { position: fixed; z-index: 20; inset: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 1.1rem clamp(1.2rem, 4vw, 4rem); color: white; background: rgb(7 20 45 / 86%); backdrop-filter: blur(18px); }
.mobile-menu { display: none; }
.ui-icon { display: inline-block; width: 1.15em; height: 1.15em; flex: 0 0 auto; vertical-align: -.18em; }
.brand { display: flex; gap: .8rem; align-items: center; }
.brand-mark { display: grid; place-items: center; width: 2.6rem; aspect-ratio: 1; border: 1px solid rgb(255 255 255 / 42%); border-radius: 50%; font-weight: 900; }
.brand-mark .ui-icon { width: 1.35rem; height: 1.35rem; }
.brand strong, .brand small { display: block; }
.brand small { margin-top: .15rem; font-size: .55rem; letter-spacing: .14em; opacity: .65; }
.site-header nav { display: flex; gap: 2rem; font-size: .85rem; font-weight: 700; }
.header-actions { display: grid; grid-template-columns: minmax(0, auto) auto; align-items: center; column-gap: .7rem; }
.header-actions > nav:first-child { grid-row: 1; grid-column: 1; gap: clamp(.55rem, 1.35vw, 1.35rem); }
.header-actions > .locale-switcher { grid-row: 2; grid-column: 1 / -1; }
.account-actions { display: flex; grid-row: 1; grid-column: 2; gap: .35rem !important; align-items: center; }
.account-action { padding: .48rem .7rem; border: 1px solid rgb(255 255 255 / 35%); border-radius: 999px; font-size: .65rem; font-weight: 800; white-space: nowrap; }
.account-action--primary { color: var(--ink); border-color: var(--aqua); background: var(--aqua); }
.account-action--secondary { color: white; background: rgb(255 255 255 / 5%); }
.primary-navigation .urgent-link { color: #fff; text-decoration: underline; text-decoration-color: var(--coral); text-decoration-thickness: 2px; text-underline-offset: .35rem; }
.hero { position: relative; display: grid; min-height: 92svh; overflow: hidden; color: white; background: var(--ink); isolation: isolate; }
.hero > img, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero > img { z-index: -2; object-fit: cover; animation: drift 18s ease-in-out infinite alternate; }
.hero-shade { z-index: -1; background: linear-gradient(90deg, rgb(3 12 33 / 92%) 0%, rgb(3 12 33 / 40%) 52%, transparent), linear-gradient(0deg, rgb(3 12 33 / 60%), transparent 45%); }
.hero-copy { position: relative; z-index: 2; align-self: center; width: min(760px, 88vw); margin: 5rem clamp(1.3rem, 8vw, 9rem) 0; }
.eyebrow { color: var(--aqua); font-size: .72rem; font-weight: 700; letter-spacing: .22em; }
.hero h1 { max-width: 12ch; margin: 1.2rem 0; font-size: clamp(3.4rem, 8vw, 8rem); line-height: .96; letter-spacing: -.08em; }
.hero h1 em { color: transparent; font-style: normal; -webkit-text-stroke: 1px rgb(255 255 255 / 75%); }
.hero-copy > p:not(.eyebrow) { max-width: 33rem; line-height: 1.9; opacity: .8; }
.hero-cta { display: inline-flex; margin-top: 1.8rem; padding: 1rem 1.4rem; border: 1px solid rgb(255 255 255 / 38%); border-radius: 99px; backdrop-filter: blur(12px); }
.hero-orbit { position: absolute; right: -5vw; bottom: -18vw; width: 42vw; min-width: 390px; aspect-ratio: 1; border: 1px solid rgb(65 231 212 / 35%); border-radius: 50%; animation: spin 25s linear infinite; }
.hero-orbit span { position: absolute; top: 10%; left: 10%; width: 12px; aspect-ratio: 1; border-radius: 50%; background: var(--aqua); box-shadow: 0 0 30px var(--aqua); }
.hero-credit { position: absolute; right: clamp(1rem, 3vw, 3rem); bottom: 1.1rem; z-index: 2; margin: 0; padding: .42rem .65rem; border-radius: .55rem; color: rgb(255 255 255 / 70%); background: rgb(3 12 33 / 58%); font-size: .58rem; backdrop-filter: blur(8px); }
.hero-credit a { color: white; text-decoration: underline; text-decoration-color: rgb(255 255 255 / 35%); text-underline-offset: .16em; }
.hero-collage { position: absolute; z-index: 1; top: 50%; right: clamp(1.5rem, 5vw, 6rem); width: min(34vw, 520px); height: min(58vh, 570px); pointer-events: none; transform: translateY(-43%); }
.hero-collage figure { position: absolute; padding: clamp(.35rem, .7vw, .6rem); margin: 0; border: 1px solid rgb(255 255 255 / 34%); border-radius: clamp(.7rem, 1.2vw, 1.1rem); background: rgb(255 255 255 / 12%); box-shadow: 0 28px 80px rgb(0 0 0 / 38%); backdrop-filter: blur(12px); }
.hero-collage figure[data-shape="portrait"] { top: 0; right: 0; width: 47%; transform: rotate(2.4deg); }
.hero-collage figure[data-shape="landscape"] { bottom: 0; left: 0; width: 72%; transform: rotate(-3.2deg); }
.hero-collage img { display: block; width: 100%; height: 100%; border-radius: calc(clamp(.7rem, 1.2vw, 1.1rem) - .3rem); object-fit: cover; }
.hero-collage figure[data-shape="portrait"] img { aspect-ratio: 3 / 4; }
.hero-collage figure[data-shape="landscape"] img { aspect-ratio: 1.58; }
.hero--compact { min-height: clamp(430px, 56svh, 620px); }
.hero--compact .hero-copy { width: min(650px, 72vw); margin-top: 7rem; }
.hero--compact h1 { margin-block: .8rem; font-size: clamp(2.8rem, 5.5vw, 5.5rem); }
.hero--compact .hero-collage { height: min(44vh, 430px); transform: translateY(-36%); }
.search-panel { position: relative; z-index: 2; width: min(1180px, calc(100% - 2rem)); margin: -4rem auto 2rem; padding: 1.1rem; border-radius: var(--radius); background: rgb(255 255 255 / 90%); box-shadow: var(--shadow); backdrop-filter: blur(20px); }
.search-form { display: grid; grid-template-columns: 2fr 1fr auto; gap: .8rem; align-items: end; }
.search-form label > span { display: block; margin: 0 0 .45rem .3rem; color: var(--muted); font-size: .7rem; font-weight: 700; }
.search-form input[type="search"], .search-form select { width: 100%; height: 3.6rem; padding: 0 1rem; border: 1px solid var(--line); border-radius: .9rem; background: white; }
.search-form button { height: 3.6rem; padding: 0 1.6rem; color: white; border: 0; border-radius: .9rem; background: var(--blue); font-weight: 700; cursor: pointer; }
.search-form .toggle { display: flex; gap: .5rem; align-items: center; padding: .5rem .3rem 0; }
.search-form .toggle > span { display: inline; margin: 0; }
.categories { display: flex; gap: .7rem; width: min(1180px, calc(100% - 2rem)); margin: 2rem auto 5rem; overflow-x: auto; scrollbar-width: none; }
.categories::-webkit-scrollbar { display: none; }
.city-links { margin-bottom: -1rem; }
.categories a { display: inline-flex; gap: .5rem; align-items: center; flex: 0 0 auto; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: 99px; background: white; font-size: .86rem; }
.categories a.active { color: white; border-color: var(--ink); background: var(--ink); }
.trip-toolkit { width: min(1180px, calc(100% - 2rem)); margin: -2.5rem auto 5rem; }
.trip-toolkit > header { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); gap: 2rem; align-items: end; margin-bottom: 1.5rem; }
.trip-toolkit h2 { max-width: 14ch; margin: .4rem 0 0; font-size: clamp(2.2rem, 5vw, 4.6rem); line-height: 1; letter-spacing: -.065em; }
.trip-toolkit > header > p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.8; }
.trip-toolkit nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; }
.trip-toolkit nav a { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto 1fr; gap: .25rem .75rem; min-height: 145px; padding: 1.2rem; border: 1px solid var(--line); border-radius: 1.2rem; background: white; transition: border-color .25s, box-shadow .25s, transform .25s; }
.trip-toolkit nav a:hover, .trip-toolkit nav a.active { border-color: var(--blue); box-shadow: 0 18px 42px rgb(7 20 45 / 10%); transform: translateY(-4px); }
.trip-toolkit nav a > span { grid-row: 1 / 4; font-size: 1.35rem; }
.trip-toolkit nav strong { font-size: .88rem; }
.trip-toolkit nav small { color: var(--muted); font-size: .64rem; line-height: 1.45; }
.trip-toolkit nav em { align-self: end; color: var(--blue); font-size: .66rem; font-style: normal; font-weight: 800; }
.dining-modes { width: min(1180px, calc(100% - 2rem)); margin: -2.5rem auto 5rem; padding: clamp(1.3rem, 4vw, 3rem); overflow: hidden; color: white; border-radius: 2rem; background: radial-gradient(circle at 85% 10%, rgb(255 112 93 / 28%), transparent 28%), radial-gradient(circle at 8% 90%, rgb(65 231 212 / 18%), transparent 30%), var(--ink); box-shadow: var(--shadow); }
.dining-modes > header { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, .7fr); gap: 2rem; align-items: end; }
.dining-modes h2 { max-width: 13ch; margin: .45rem 0 0; font-size: clamp(2rem, 5vw, 4.2rem); line-height: 1; letter-spacing: -.065em; }
.dining-modes > header > p { margin: 0; color: #b8c3d6; font-size: .8rem; line-height: 1.8; }
.dining-modes nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: .55rem; margin-top: 2.2rem; }
.dining-modes nav a { display: grid; gap: .3rem; min-height: 92px; padding: 1rem; border: 1px solid rgb(255 255 255 / 13%); border-radius: 1rem; background: rgb(255 255 255 / 5%); transition: border-color .25s, background .25s, transform .25s; }
.dining-modes nav a:hover, .dining-modes nav a.active { border-color: var(--aqua); background: rgb(65 231 212 / 11%); transform: translateY(-3px); }
.dining-modes nav strong { font-size: .84rem; }
.dining-modes nav span { color: #99a9c3; font-size: .65rem; }
.weekend-needs { width: min(1180px, calc(100% - 2rem)); margin: 0 auto 5rem; }
.weekend-needs > nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
.weekend-needs > nav > a { display: grid; grid-template-columns: auto 1fr auto; gap: .55rem 1rem; min-height: 155px; padding: 1.25rem; overflow: hidden; border: 1px solid var(--line); border-radius: 1.2rem; background: white; transition: border-color .3s, box-shadow .3s, transform .3s; }
.weekend-needs > nav > a:hover { border-color: var(--aqua); box-shadow: 0 18px 45px rgb(7 20 45 / 10%); transform: translateY(-5px); }
.weekend-needs > nav small { grid-row: 1 / 3; color: var(--blue); font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.weekend-needs > nav strong { font-size: 1.15rem; letter-spacing: -.02em; }
.weekend-needs > nav span { grid-column: 2 / -1; color: var(--muted); font-size: .76rem; line-height: 1.55; }
.weekend-needs > nav em { grid-column: 2 / -1; align-self: end; color: var(--blue); font-size: .72rem; font-style: normal; font-weight: 800; }
.live-checks { display: flex; flex-wrap: wrap; gap: .7rem 1rem; align-items: center; margin-top: 1rem; padding: 1rem 1.2rem; color: white; border-radius: 1rem; background: var(--ink); }
.live-checks > span { color: var(--aqua); font-size: .62rem; font-weight: 800; letter-spacing: .14em; }
.live-checks > strong { margin-right: auto; font-size: .78rem; }
.live-checks nav { display: flex; flex-wrap: wrap; gap: .45rem; }
.live-checks a { padding: .5rem .7rem; border: 1px solid rgb(255 255 255 / 18%); border-radius: 99px; color: #d4dced; font-size: .67rem; font-weight: 700; }
.results, .detail, .discovery, .medical-now { width: min(1180px, calc(100% - 2rem)); margin: 0 auto 8rem; }
.map-results--results-first { margin-top: -2.5rem; }
.map-results--results-first .results { margin-bottom: 5rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 2rem; }
.section-heading h2 { margin: .35rem 0 0; font-size: clamp(2rem, 5vw, 4.5rem); letter-spacing: -.06em; }
.section-heading > p { color: var(--muted); }
.refine-search { padding: .65rem .9rem; border: 1px solid currentcolor; border-radius: 999px; color: var(--blue); font-size: .72rem; font-weight: 800; white-space: nowrap; }
.place-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.place-card { display: flex; flex-direction: column; min-height: 315px; padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); transition: transform .35s, box-shadow .35s; }
.place-card:hover { transform: translateY(-8px); box-shadow: var(--shadow); }
.place-card header, .place-card footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.category, .open { display: inline-flex; align-items: center; padding: .4rem .65rem; border-radius: 99px; background: #edf1f5; font-size: .68rem; font-weight: 700; }
.open { color: #06776b; background: #d7fbf5; }
.place-card h3 { margin: 1.6rem 0 .6rem; font-size: 1.45rem; letter-spacing: -.035em; }
.feature-tags { display: flex; flex-wrap: wrap; gap: .3rem; margin: .75rem 0 -.65rem; }
.feature-tags span { padding: .28rem .5rem; color: #08765e; border-radius: 99px; background: #e1f8f3; font-size: .61rem; font-weight: 800; }
.address, .departments { color: var(--muted); font-size: .88rem; line-height: 1.65; }
.place-card dl { margin-top: auto; }
.place-card dl div { display: flex; justify-content: space-between; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .75rem; }
.place-card dt { color: var(--muted); }
.data-date { display: flex; justify-content: space-between; gap: .7rem; margin: .7rem 0 0; color: var(--muted); font-size: .68rem; }
.data-date span { font-weight: 700; }
.place-card footer { margin-top: .8rem; color: var(--blue); font-size: .78rem; font-weight: 700; }
.distance { color: var(--blue); font-size: .72rem; font-weight: 700; }
.medical-now { padding: clamp(1.5rem, 4vw, 3rem); color: white; border-radius: 2rem; background: linear-gradient(145deg, #07142d, #102b58); box-shadow: var(--shadow); }
.medical-now > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.medical-now h2 { margin: .4rem 0 0; font-size: clamp(2rem, 5vw, 4rem); letter-spacing: -.06em; }
.medical-now > header > a { color: var(--aqua); font-size: .82rem; font-weight: 700; }
.medical-guides { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-top: 2rem; }
.medical-guides article { display: flex; flex-direction: column; min-height: 280px; padding: 1.4rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: 1.2rem; background: rgb(255 255 255 / 6%); }
.medical-guides .city { width: fit-content; margin: 0; padding: .35rem .6rem; color: var(--aqua); border: 1px solid rgb(65 231 212 / 30%); border-radius: 99px; font-size: .68rem; font-weight: 700; }
.medical-guides h3 { margin: 1rem 0 .5rem; }
.medical-guides article > p:not(.city) { color: #b8c2d6; font-size: .82rem; line-height: 1.7; }
.medical-guides dl { margin: auto 0 1rem; font-size: .72rem; }
.medical-guides dl div { display: grid; grid-template-columns: 3rem 1fr; padding: .4rem 0; border-top: 1px solid rgb(255 255 255 / 10%); }
.medical-guides dt { color: #7e8ca6; }
.medical-guides a { color: var(--aqua); font-size: .75rem; font-weight: 700; }
.medical-caution { margin: 1.2rem 0 0; color: #aeb9ce; font-size: .72rem; line-height: 1.6; }
.map-toolbar { display: flex; align-items: center; gap: 1rem; margin: -1rem 0 1rem; }
.map-toolbar p { color: var(--muted); font-size: .72rem; }
.locate { display: inline-flex; gap: .5rem; align-items: center; flex: 0 0 auto; padding: .8rem 1rem; color: white; border: 0; border-radius: 99px; background: var(--blue); font-weight: 700; cursor: pointer; }
.locate:disabled { cursor: wait; opacity: .55; }
.map-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, .8fr); min-height: 540px; overflow: hidden; border: 1px solid var(--line); border-radius: 1.8rem; background: white; box-shadow: var(--shadow); }
.place-map { z-index: 1; min-height: 540px; background: #dfe9e5; }
.medical-picks { padding: 1.7rem; }
.medical-picks h3 { margin: .5rem 0 1.5rem; font-size: 1.5rem; }
.medical-picks a { display: grid; gap: .25rem; padding: 1rem 0; border-top: 1px solid var(--line); }
.medical-picks span, .medical-picks small { overflow: hidden; color: var(--muted); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.leaflet-control-attribution { font-size: 9px; }
.map-marker-shell { background: transparent; border: 0; }
.map-marker { display: grid; place-items: center; width: 42px; height: 42px; border: 3px solid white; border-radius: 50% 50% 50% 12%; background: var(--ink); box-shadow: 0 8px 22px rgb(7 20 45 / 30%); font-size: 17px; transform: rotate(-45deg); }
.map-marker--hospital { background: #e74657; }
.map-marker--restaurant { background: #ff8b4a; }
.map-marker--convenience { background: #1958ff; }
.map-marker--fuel { background: #078f82; }
.map-marker--shopping { background: #8a49d6; }
.map-marker--leisure { background: #de4d88; }
.map-marker--bath { background: #bf5c35; }
.map-marker--parking { background: #3c587e; }
.map-marker--charging { background: #168d47; }
.map-marker--toilet { background: #137ba8; }
.map-marker--lodging { background: #6348b2; }
.map-marker > span,
.map-marker > .ui-icon { transform: rotate(45deg); }
.map-marker > .ui-icon { width: 20px; height: 20px; color: white; }
.map-cluster-shell { background: transparent; border: 0; }
.map-cluster { display: grid; place-items: center; width: 48px; height: 48px; color: white; border: 4px solid rgb(255 255 255 / 88%); border-radius: 50%; background: rgb(7 20 45 / 90%); box-shadow: 0 8px 24px rgb(7 20 45 / 28%); font-size: .78rem; font-weight: 900; backdrop-filter: blur(8px); }
.map-popup { display: grid; gap: .35rem; font-family: "DM Sans", "Noto Sans JP", sans-serif; }
.map-popup small { color: var(--muted); }
.map-popup strong { font-size: 1rem; }
.map-popup span { color: var(--muted); font-size: .72rem; }
.map-popup a { margin-top: .4rem; color: var(--blue); font-size: .72rem; font-weight: 700; }
.nearby-results { margin-top: 1rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: 1.4rem; background: white; box-shadow: var(--shadow); }
.nearby-results[hidden] { display: none; }
.nearby-results > header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.nearby-results h3 { margin: .25rem 0 0; font-size: 1.45rem; }
.nearby-results > header > p { margin: 0; color: var(--muted); font-size: .68rem; }
.nearby-results ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; padding: 0; margin: 1rem 0 0; list-style: none; }
.nearby-results a { position: relative; display: grid; gap: .3rem; min-height: 145px; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; transition: transform .25s, border-color .25s; }
.nearby-results a:hover { border-color: var(--blue); transform: translateY(-3px); }
.nearby-results small { color: var(--blue); font-size: .62rem; font-weight: 800; }
.nearby-results strong { padding-right: 3.7rem; line-height: 1.35; }
.nearby-results span { color: var(--muted); font-size: .68rem; line-height: 1.5; }
.nearby-results em { position: absolute; top: 1rem; right: 1rem; color: var(--blue); font-size: .72rem; font-style: normal; font-weight: 800; }
.advertise-hero, .advertise-intro, .advertise-plans, .advertise-process, .advertise-contact { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; }
.advertise-hero { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .65fr); gap: clamp(2rem, 6vw, 6rem); min-height: 690px; padding: clamp(8rem, 14vw, 11rem) clamp(1.5rem, 6vw, 6rem) 5rem; overflow: hidden; color: white; border-radius: 0 0 2.4rem 2.4rem; background: radial-gradient(circle at 80% 15%, rgb(65 231 212 / 20%), transparent 28%), radial-gradient(circle at 15% 85%, rgb(25 88 255 / 32%), transparent 34%), var(--ink); }
.advertise-hero__copy { align-self: center; }
.advertise-hero h1 { max-width: 13ch; margin: 1rem 0 1.5rem; font-size: clamp(2.25rem, 5vw, 4.5rem); line-height: 1; letter-spacing: -.075em; }
.advertise-hero__copy > p:not(.eyebrow) { max-width: 42rem; color: #c0cada; line-height: 1.9; }
.advertise-hero__actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 2rem; }
.button-primary, .button-secondary { display: inline-flex; justify-content: center; padding: .95rem 1.3rem; border: 1px solid var(--aqua); border-radius: 99px; font-weight: 800; }
.button-primary { color: var(--ink); background: var(--aqua); }
.button-secondary { color: white; background: transparent; }
.advertise-hero__facts { align-self: end; margin: 0; border-top: 1px solid rgb(255 255 255 / 16%); }
.advertise-hero__facts div { padding: 1.1rem 0; border-bottom: 1px solid rgb(255 255 255 / 16%); }
.advertise-hero__facts dt { color: var(--aqua); font-size: .68rem; font-weight: 800; letter-spacing: .14em; }
.advertise-hero__facts dd { margin: .35rem 0 0; color: #c0cada; font-size: .8rem; }
.advertise-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; padding-block: 8rem; }
.advertise-intro h2, .advertise-plans h2, .advertise-process h2, .advertise-contact h2 { margin: .4rem 0; font-size: clamp(2rem, 5vw, 4.5rem); line-height: 1.05; letter-spacing: -.06em; }
.advertise-intro > p { align-self: end; margin: 0; color: var(--muted); line-height: 2; }
.advertise-plans, .advertise-process { margin-bottom: 8rem; }
.advertise-plans > header, .advertise-process > header { margin-bottom: 2rem; }
.advertise-plans > header > p:last-child, .advertise-contact > header > p:last-child { color: var(--muted); }
.advertise-plan-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; align-items: stretch; }
.advertise-plan-grid article { position: relative; display: flex; flex-direction: column; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid var(--line); border-radius: 1.5rem; background: white; }
.advertise-plan-grid article.featured { color: white; border-color: var(--ink); background: var(--ink); transform: translateY(-.7rem); }
.advertise-plan-grid article > p { color: var(--blue); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.advertise-plan-grid .featured > p { color: var(--aqua); }
.advertise-plan-grid h3 { margin: .5rem 0; font-size: 1.8rem; }
.advertise-plan-grid small { min-height: 2.5rem; color: var(--muted); line-height: 1.6; }
.advertise-plan-grid .featured small { color: #aeb9cc; }
.advertise-plan-grid ul { display: grid; gap: .65rem; padding: 1.2rem 0 1.2rem 1.2rem; font-size: .8rem; line-height: 1.5; }
.advertise-plan-grid a { margin-top: auto; padding: .8rem 1rem; color: var(--blue); border: 1px solid currentcolor; border-radius: 99px; font-size: .76rem; font-weight: 800; text-align: center; }
.advertise-plan-grid .featured a { color: var(--aqua); }
.advertise-plan__tag { position: absolute; top: 1rem; right: 1rem; padding: .3rem .55rem; color: var(--ink); border-radius: 99px; background: var(--aqua); font-size: .62rem; font-weight: 800; }
.advertise-process ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 0; list-style: none; counter-reset: none; }
.advertise-process li { display: flex; gap: 1rem; padding: 1.5rem; border-top: 1px solid var(--ink); }
.advertise-process li > span { color: var(--blue); font-size: .7rem; font-weight: 800; }
.advertise-process h3 { margin: 0 0 .5rem; }
.advertise-process li p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.7; }
.advertise-contact { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.5fr); gap: clamp(2rem, 6vw, 6rem); margin-bottom: 8rem; padding: clamp(1.5rem, 5vw, 4rem); border: 1px solid var(--line); border-radius: 2rem; background: white; box-shadow: var(--shadow); }
.advertise-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.advertise-form label > span { display: block; margin: 0 0 .35rem .15rem; color: var(--muted); font-size: .68rem; font-weight: 700; }
.advertise-form input:not([type="submit"]), .advertise-form select, .advertise-form textarea { width: 100%; min-height: 3rem; padding: .75rem .8rem; border: 1px solid #d5dbe3; border-radius: .65rem; background: white; font: inherit; }
.advertise-form .wide { grid-column: 1 / -1; }
.advertise-form footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.2rem; }
.advertise-form footer p { max-width: 30rem; color: var(--muted); font-size: .68rem; line-height: 1.6; }
.advertise-form input[type="submit"] { cursor: pointer; font: inherit; }
.advertise-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.detail { padding-top: 10rem; }
.detail > header { padding: 4rem 0; border-bottom: 1px solid var(--line); }
.detail h1 { max-width: 14ch; margin: .5rem 0; font-size: clamp(3rem, 8vw, 7rem); line-height: 1; letter-spacing: -.07em; }
.detail-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 4rem; padding-top: 3rem; }
.detail dl div { display: grid; grid-template-columns: 10rem 1fr; padding: 1.2rem 0; border-top: 1px solid var(--line); }
.detail dt { color: var(--muted); }
.detail-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.detail-tags span { padding: .45rem .7rem; border: 1px solid var(--line); border-radius: 99px; background: white; font-size: .7rem; }
.detail-tags .verified { color: #087267; border-color: #b8e9df; background: #dff8f3; }
.actions { display: flex; gap: 1rem; margin-top: 2rem; }
.source { padding: 2rem; border-radius: var(--radius); background: var(--ink); color: white; }
.source > p:first-child { color: var(--aqua); font-size: .65rem; letter-spacing: .16em; }
.source dl div { grid-template-columns: 7rem 1fr; border-color: rgb(255 255 255 / 12%); }
.source dt { color: #8f9bb2; }
.source > a { display: inline-block; margin-top: 1rem; color: var(--aqua); font-size: .75rem; font-weight: 700; }
.social-links { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; margin-top: 1rem; }
.social-links span { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .08em; }
.social-links a { padding: .55rem .8rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); font-size: .72rem; font-weight: 800; }
.public-source-records { display: grid; gap: .75rem; padding: 0; margin: 1.4rem 0 0; list-style: none; }
.public-source-records li { padding-top: .8rem; border-top: 1px solid rgb(255 255 255 / 12%); }
.public-source-records strong, .public-source-records small { display: block; }
.public-source-records small { margin-top: .2rem; color: #a9b4c8; font-size: .68rem; line-height: 1.5; }
.public-source-records p { margin: .45rem 0 0; color: #dce4f1; font-size: .68rem; line-height: 1.5; }
.public-source-records a { display: inline-block; margin-top: .45rem; color: var(--aqua); font-size: .68rem; font-weight: 800; }
.utility-badge { width: fit-content; margin: -.2rem 0 .7rem; padding: .28rem .55rem; border: 1px solid rgb(22 170 135 / 28%); border-radius: 999px; background: rgb(22 170 135 / 9%); color: #08765e; font-size: .64rem; font-weight: 800; }
.medical-note { margin-top: 2rem; padding: 1.2rem; color: #7a2d28; border: 1px solid #f0c7c1; border-radius: 1rem; background: #fff3f1; }
.medical-note p { margin-bottom: 0; font-size: .78rem; line-height: 1.7; }
.place-insights { margin-top: 5rem; padding: clamp(1.4rem, 5vw, 3.5rem); overflow: hidden; color: white; border-radius: 2rem; background: radial-gradient(circle at 92% 0, rgb(65 231 212 / 18%), transparent 28%), radial-gradient(circle at 0 100%, rgb(25 88 255 / 24%), transparent 35%), var(--ink); box-shadow: var(--shadow); }
.place-insights > header { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr); gap: 2rem; align-items: end; }
.place-insights h2 { max-width: 15ch; margin: .4rem 0 0; font-size: clamp(2rem, 5vw, 4.2rem); line-height: 1.02; letter-spacing: -.06em; }
.place-insights > header > p { margin: 0; color: #aebbd0; font-size: .8rem; line-height: 1.8; }
.insight-disclaimer { display: grid; grid-template-columns: minmax(210px, .6fr) 1.4fr; gap: 1rem 2rem; padding: 1.1rem 1.2rem; margin: 2rem 0 1rem; border: 1px solid rgb(65 231 212 / 30%); border-radius: 1rem; background: rgb(255 255 255 / 6%); }
.insight-disclaimer strong { color: var(--aqua); font-size: .78rem; }
.insight-disclaimer p { margin: 0; color: #c0cbdd; font-size: .7rem; line-height: 1.7; }
.place-insight-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 0; margin: 0; list-style: none; }
.place-insight-grid article { display: grid; align-content: start; gap: 1rem; height: 100%; padding: 1.4rem; border: 1px solid rgb(255 255 255 / 12%); border-radius: 1.2rem; background: rgb(255 255 255 / 7%); }
.place-insight-grid article.positive { border-color: rgb(65 231 212 / 32%); }
.place-insight-grid article.caution { border-color: rgb(255 175 101 / 45%); background: rgb(255 175 101 / 8%); }
.place-insight-grid article > header { display: flex; align-items: start; justify-content: space-between; gap: .8rem; }
.place-insight-grid article > header > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.insight-kind, .insight-stance { display: inline-flex; width: fit-content; padding: .28rem .5rem; border-radius: 99px; font-size: .6rem; font-weight: 800; }
.place-insight-grid .insight-kind { color: var(--aqua); background: rgb(65 231 212 / 12%); }
.place-insight-grid .insight-stance { color: #e2e9f4; border: 1px solid rgb(255 255 255 / 15%); }
.place-insight-grid article.caution .insight-stance { color: #ffd4a9; border-color: rgb(255 175 101 / 35%); }
.place-insight-grid header small { color: #8998b2; font-size: .62rem; }
.place-insight-grid .insight-body { margin: 0; color: #f2f6fb; font-size: .86rem; line-height: 1.85; white-space: pre-wrap; }
.place-insight-grid dl { margin: 0; }
.place-insight-grid dl div { grid-template-columns: 6rem 1fr; padding: .6rem 0; border-color: rgb(255 255 255 / 10%); font-size: .68rem; }
.place-insight-grid dt { color: #8998b2; }
.place-insight-grid dd { margin: 0; }
.place-insight-grid footer { padding-top: .8rem; border-top: 1px solid rgb(255 255 255 / 10%); }
.place-insight-grid footer > p { margin: 0 0 .65rem; color: #8998b2; font-size: .62rem; }
.place-insight-grid footer ul { display: flex; flex-wrap: wrap; gap: .45rem; padding: 0; margin: 0; list-style: none; }
.place-insight-grid footer a { color: var(--aqua); font-size: .66rem; font-weight: 800; overflow-wrap: anywhere; }
.detail-map-section { width: min(1180px, calc(100% - 2rem)); margin: -4rem auto 8rem; }
.detail-map { min-height: 480px; overflow: hidden; border-radius: 1.5rem; box-shadow: var(--shadow); }
.site-footer { display: grid; grid-template-columns: 1fr 1fr auto; gap: 3rem; padding: 4rem clamp(1.3rem, 6vw, 7rem); color: white; background: #030914; }
.site-footer p { max-width: 34rem; color: #98a2b6; font-size: .8rem; line-height: 1.7; }
.site-footer > div:last-child { display: grid; gap: .7rem; align-content: start; min-width: 11rem; font-size: .72rem; }
.site-footer > div:last-child a { color: var(--aqua); font-weight: 700; }
.policy { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; padding: 11rem 0 8rem; }
.policy > header { max-width: 900px; padding-bottom: 6rem; }
.policy > header h1 { max-width: 13ch; margin: 1rem 0 1.5rem; font-size: clamp(3rem, 8vw, 7rem); line-height: .98; letter-spacing: -.075em; }
.policy > header > p:last-child { max-width: 50rem; color: var(--muted); line-height: 1.9; }
.policy > section { margin-bottom: 7rem; }
.policy-principles, .policy-sources, .policy-matrix { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 0; list-style: none; }
.policy-principles li, .policy-sources article, .policy-matrix article { padding: 1.5rem; border: 1px solid var(--line); border-radius: 1.3rem; background: white; }
.policy-principles span, .policy-matrix article > span { color: var(--blue); font-size: .65rem; font-weight: 800; letter-spacing: .12em; }
.policy-principles strong { display: block; margin-top: 2.2rem; font-size: 1.1rem; }
.policy-principles p, .policy-matrix p { color: var(--muted); font-size: .78rem; line-height: 1.8; }
.policy-sources article { display: flex; flex-direction: column; min-height: 310px; }
.policy-sources article > header { display: flex; align-items: start; justify-content: space-between; gap: .7rem; }
.policy-sources h3, .policy-matrix h3 { margin: 0; font-size: 1.2rem; }
.policy-sources header span { flex: 0 0 auto; padding: .3rem .5rem; color: #08765e; border-radius: 99px; background: #dff8f3; font-size: .58rem; font-weight: 800; }
.policy-sources article > p { color: var(--muted); font-size: .74rem; line-height: 1.7; }
.policy-sources dl { margin-top: auto; }
.policy-sources dl div { display: grid; grid-template-columns: 6.5rem 1fr; padding: .5rem 0; border-top: 1px solid var(--line); font-size: .68rem; }
.policy-sources dt { color: var(--muted); }
.policy-sources dd { margin: 0; overflow-wrap: anywhere; }
.policy-sources footer, .policy-matrix nav, .policy-legal { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.policy-sources a, .policy-matrix a, .policy-legal a { color: var(--blue); font-size: .7rem; font-weight: 800; }
.policy-matrix article { min-height: 250px; }
.policy-matrix h3 { margin-top: .8rem; }
.policy-social { padding: clamp(1.5rem, 5vw, 4rem); color: white; border-radius: 2rem; background: radial-gradient(circle at 80% 10%, rgb(65 231 212 / 18%), transparent 30%), var(--ink); }
.policy-social > header { max-width: 760px; }
.policy-social h2 { margin: .5rem 0 1rem; font-size: clamp(2rem, 5vw, 4.5rem); line-height: 1.03; letter-spacing: -.06em; }
.policy-social > header > p:last-child, .policy-social .policy-caution { color: #b7c2d6; font-size: .8rem; line-height: 1.8; }
.policy-social .policy-matrix { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2rem; }
.policy-social .policy-matrix article { color: var(--ink); }
.policy-social .policy-legal a { color: var(--aqua); }
.policy-caution { margin: 2rem 0 0; }
.legal-policy { max-width: 1040px; }
.legal-policy > header { margin-bottom: 2rem; }
.legal-policy > header h1 { max-width: none; font-size: clamp(2.8rem, 7vw, 6.4rem); overflow-wrap: normal; word-break: keep-all; }
.legal-policy > section { max-width: 860px; margin-bottom: 3.2rem; }
.legal-policy > section h2 { margin: 0 0 1rem; font-size: clamp(1.25rem, 2.5vw, 1.7rem); letter-spacing: -.025em; }
.legal-policy > section p, .legal-policy > section li, .legal-policy address { color: var(--muted); font-size: .86rem; line-height: 1.9; }
.legal-policy > section li + li { margin-top: .45rem; }
.legal-policy address { font-style: normal; }
.legal-policy__meta { display: flex; flex-wrap: wrap; gap: .7rem 1.5rem; margin-top: 1.5rem; font-size: .72rem; }
.legal-policy__meta div { display: flex; gap: .5rem; }
.legal-policy__meta dt { color: var(--muted); }
.legal-policy__meta dd { margin: 0; font-weight: 800; }
.legal-policy__notice { max-width: 860px; padding: 1.4rem 1.6rem; margin-bottom: 3.2rem; color: white; border-radius: 1.25rem; background: var(--ink); }
.legal-policy__notice strong { color: var(--aqua); font-size: .78rem; letter-spacing: .04em; }
.legal-policy__notice p { margin: .55rem 0 0; color: #c2ccdc; font-size: .78rem; line-height: 1.8; }
.legal-policy__links { display: flex; flex-wrap: wrap; gap: .7rem 1.2rem; margin-top: 1.5rem; }
.legal-policy__links a { color: var(--blue); font-size: .75rem; font-weight: 800; }
.admin-table { width: 100%; margin-top: 2rem; border-collapse: collapse; background: white; }
.admin-table th, .admin-table td { padding: 1rem; border-bottom: 1px solid var(--line); text-align: left; }
.admin-table td:last-child { display: flex; gap: 1rem; }
.admin-table button { color: var(--coral); border: 0; background: none; cursor: pointer; }
.admin-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; max-width: 900px; margin-top: 2rem; }
.admin-form label span { display: block; margin-bottom: .4rem; color: var(--muted); font-size: .8rem; }
.admin-form input, .admin-form select { width: 100%; padding: .9rem; border: 1px solid var(--line); border-radius: .7rem; background: white; }
.admin-form > input[type="submit"], button.primary { width: auto; padding: 1rem 1.4rem; color: white; border: 0; border-radius: 99px; background: var(--blue); cursor: pointer; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.admin { min-height: 100vh; background: #eef1f5; }
.admin-sidebar { position: fixed; z-index: 10; inset: 0 auto 0 0; width: 230px; padding: 1.4rem; color: white; background: #07142d; }
.admin-brand { display: flex; gap: .7rem; align-items: center; padding-bottom: 2rem; border-bottom: 1px solid rgb(255 255 255 / 10%); }
.admin-brand span { display: grid; place-items: center; width: 2.2rem; aspect-ratio: 1; border: 1px solid rgb(255 255 255 / 30%); border-radius: 50%; }
.admin-sidebar nav { display: grid; gap: .35rem; margin-top: 1.5rem; }
.admin-sidebar nav a { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .8rem 1rem; border-radius: .65rem; color: #aeb9cd; font-size: .82rem; font-weight: 700; }
.admin-sidebar nav a small { display: grid; place-items: center; min-width: 1.45rem; height: 1.45rem; padding: 0 .35rem; color: white; border-radius: 99px; background: rgb(255 255 255 / 12%); font-size: .6rem; }
.admin-sidebar nav a:hover { color: white; background: rgb(255 255 255 / 8%); }
.admin-main { min-height: 100vh; margin-left: 230px; }
.admin-topbar { display: flex; align-items: center; justify-content: space-between; height: 72px; padding: 0 2rem; border-bottom: 1px solid #d9dee6; background: rgb(255 255 255 / 80%); backdrop-filter: blur(18px); }
.admin-topbar small, .admin-topbar strong { display: block; }
.admin-topbar small { color: var(--muted); font-size: .6rem; letter-spacing: .14em; }
.admin-topbar > span { color: var(--muted); font-size: .75rem; }
.admin-content { max-width: 1500px; margin: auto; padding: clamp(1.3rem, 3vw, 3rem); }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.admin-heading h1 { margin: .35rem 0; font-size: clamp(2rem, 4vw, 4rem); letter-spacing: -.06em; }
.admin-heading p:not(.eyebrow) { margin: 0; color: var(--muted); }
.admin-heading-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.admin-heading-actions form { margin: 0; }
.admin-primary, .editor-actions .admin-primary { display: inline-flex; justify-content: center; padding: .85rem 1.2rem; color: white; border: 0; border-radius: .75rem; background: var(--blue); font-weight: 700; cursor: pointer; }
.admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.admin-stats article { display: grid; gap: .45rem; min-height: 155px; padding: 1.2rem; border: 1px solid #dde2e9; border-radius: 1rem; background: white; }
.admin-stats article.alert { background: #fff9f7; }
.admin-stats article.accent { color: white; background: var(--blue); }
.admin-stats span, .admin-stats small, .admin-stats a { font-size: .7rem; }
.admin-stats strong { margin-top: auto; font-size: 2.3rem; }
.admin-stats a { color: var(--blue); font-weight: 700; }
.admin-stats .accent a { color: var(--aqua); }
.admin-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.admin-panel { padding: 1.4rem; border: 1px solid #dde2e9; border-radius: 1rem; background: white; }
.admin-panel.wide { grid-column: 1 / -1; }
.admin-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.admin-panel h2 { margin: 0; }
.admin-panel header small { color: var(--muted); letter-spacing: .1em; }
.quality-list, .run-list, .source-links { padding: 0; margin: 0; list-style: none; }
.quality-list li, .run-list li { display: flex; align-items: center; gap: .8rem; justify-content: space-between; padding: .8rem 0; border-top: 1px solid var(--line); }
.run-list strong { margin-right: auto; }
.run-list small { color: var(--muted); }
.run-state, .status-badge { display: inline-flex; width: fit-content; padding: .3rem .5rem; border-radius: 99px; background: #e8edf3; font-size: .62rem; font-weight: 700; }
.run-state.completed, .status-badge.published, .status-badge.approved, .status-badge.merged, .status-badge.matched, .status-badge.completed { color: #087267; background: #d6f7f0; }
.run-state.failed, .status-badge.archived, .status-badge.rejected, .status-badge.failed { color: #a43b30; background: #ffe5e1; }
.run-state.running, .run-state.queued, .status-badge.review, .status-badge.pending, .status-badge.separate { color: #1d54c9; background: #e1e9ff; }
.status-badge.queued, .status-badge.running { color: #1d54c9; background: #e1e9ff; }
.status-badge.no_evidence { color: #8a5a1f; background: #fff0d8; }
.status-badge.active { color: #087267; background: #d6f7f0; }
.status-badge.draft, .status-badge.paused { color: #8a5a1f; background: #fff0d8; }
.status-badge.ended { color: #667086; background: #e8edf3; }
.admin-filters { display: grid; grid-template-columns: 2fr repeat(7, minmax(110px, 1fr)); gap: .65rem; align-items: end; padding: 1rem; margin-bottom: 1rem; border: 1px solid #dce1e8; border-radius: 1rem; background: white; }
.admin-filters label span, .editor label > span, .review-actions label > span { display: block; margin: 0 0 .35rem .15rem; color: var(--muted); font-size: .65rem; font-weight: 700; }
.admin-filters input, .admin-filters select, .admin-filters button, .bulk-toolbar select, .editor input:not([type="checkbox"]), .editor select, .editor textarea, .review-actions textarea { width: 100%; min-height: 2.65rem; padding: .6rem .7rem; border: 1px solid #d5dbe3; border-radius: .55rem; background: white; }
.admin-filters button { color: white; border-color: var(--blue); background: var(--blue); font-weight: 700; cursor: pointer; }
.admin-filters > a { padding: .75rem .2rem; color: var(--muted); font-size: .72rem; text-align: center; }
.admin-table-form { border: 1px solid #dce1e8; border-radius: 1rem; background: white; overflow: hidden; }
.bulk-toolbar { display: flex; gap: .7rem; align-items: center; padding: .8rem 1rem; border-bottom: 1px solid var(--line); }
.bulk-toolbar strong { font-size: .75rem; }
.bulk-toolbar select { width: auto; }
.bulk-toolbar button { padding: .65rem 1rem; color: white; border: 0; border-radius: .5rem; background: var(--ink); cursor: pointer; }
.table-scroll { overflow-x: auto; }
.admin-table { min-width: 920px; margin: 0; }
.admin-table th { position: sticky; top: 0; z-index: 1; color: var(--muted); background: #f7f8fa; font-size: .65rem; }
.admin-table td { vertical-align: top; font-size: .75rem; }
.admin-table td strong, .admin-table td small { display: block; }
.admin-table td small { max-width: 280px; margin-top: .25rem; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.admin-table .select { width: 38px; }
.admin-table meter { width: 72px; accent-color: var(--aqua); }
.missing-badges { display: flex; flex-wrap: wrap; gap: .2rem; margin-top: .3rem; }
.missing-badges span { padding: .15rem .3rem; color: #a43b30; border-radius: .25rem; background: #ffe7e3; font-size: .55rem; }
.actions-cell { white-space: nowrap; }
.actions-cell a { margin-right: .7rem; color: var(--blue); font-weight: 700; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 1rem; padding: 1rem; }
.pagination a { padding: .55rem .8rem; border: 1px solid var(--line); border-radius: .5rem; }
.pagination .disabled { pointer-events: none; opacity: .35; }
.pagination span.disabled { padding: .55rem .8rem; }
.public-pagination { margin-top: 2rem; }
.pagination .page-status { color: var(--muted); font-size: .75rem; font-weight: 700; }
.editor { display: grid; gap: 1rem; }
.research-request-panel { display: grid; grid-template-columns: minmax(210px, .7fr) 2fr; gap: 1rem 2rem; padding: 1.4rem; margin-bottom: 1rem; border: 1px solid #cfdcfb; border-radius: 1rem; background: linear-gradient(135deg, #f8faff, #eef4ff); }
.research-request-panel > header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.research-request-panel h2 { margin: .25rem 0; }
.research-request-panel header p:not(.eyebrow), .research-request-message { margin: 0; color: var(--muted); font-size: .72rem; line-height: 1.65; }
.research-request-form { display: grid; grid-template-columns: 1fr auto; gap: .7rem; align-items: end; }
.research-request-form label span { display: block; margin: 0 0 .35rem .15rem; color: var(--muted); font-size: .65rem; font-weight: 700; }
.research-request-form textarea { width: 100%; min-height: 4.5rem; padding: .7rem; border: 1px solid #cfd7e5; border-radius: .6rem; background: white; resize: vertical; }
.research-request-form input[type="submit"] { min-height: 2.8rem; padding: .7rem 1rem; border: 0; border-radius: .6rem; cursor: pointer; }
.research-history { grid-column: 1 / -1; display: grid; gap: .4rem; padding: .75rem 0 0; margin: 0; border-top: 1px solid #d8e1f3; list-style: none; }
.research-history li { display: grid; grid-template-columns: auto auto auto minmax(12rem, 1fr) auto; gap: .6rem; align-items: center; font-size: .68rem; }
.research-history time, .research-history small { color: var(--muted); }
.research-history a { color: var(--blue); font-weight: 700; }
.editor-section { display: grid; grid-template-columns: minmax(180px, .6fr) 2fr; gap: 2rem; padding: 1.5rem; border: 1px solid #dce1e8; border-radius: 1rem; background: white; }
.editor-section header h2 { margin: 0 0 .4rem; }
.editor-section header p { color: var(--muted); font-size: .72rem; line-height: 1.6; }
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.field-grid .wide, .field-grid .full { grid-column: 1 / -1; }
.scene-options { grid-column: 1 / -1; padding: 1rem; border: 1px solid var(--line); border-radius: .75rem; }
.scene-options legend { padding: 0 .35rem; font-size: .72rem; font-weight: 800; }
.scene-options > p { margin: 0 0 .65rem; color: var(--muted); font-size: .65rem; }
.scene-checks { display: grid; grid-template-columns: repeat(3, 1fr); gap: .35rem .8rem; }
.editor .check { display: flex; gap: .5rem; align-items: center; min-height: 2.7rem; }
.editor .check input { width: 1.2rem; height: 1.2rem; }
.source-data div { display: grid; grid-template-columns: 7rem 1fr; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .75rem; }
.source-data dt { color: var(--muted); }
.field-locks, .admin-provenance { display: grid; gap: .55rem; padding: 0; margin: .75rem 0 1.2rem; list-style: none; }
.field-locks { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.field-locks li { padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .7rem; background: #f7f9fc; }
.field-locks strong, .field-locks small, .admin-provenance small { display: block; }
.field-locks small { margin-top: .2rem; color: var(--muted); font-size: .65rem; }
.admin-provenance li { padding: .85rem 0; border-top: 1px solid var(--line); }
.admin-provenance li > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.admin-provenance p { margin: .45rem 0; color: var(--muted); font-size: .7rem; line-height: 1.55; }
.admin-provenance a { color: var(--blue); font-size: .75rem; font-weight: 800; }
.editor details { margin: 1rem 0; }
.editor pre { max-height: 300px; padding: 1rem; overflow: auto; border-radius: .6rem; background: #07142d; color: #d7e3fb; font-size: .68rem; }
.editor-actions { position: sticky; z-index: 4; bottom: 1rem; display: flex; gap: .7rem; align-items: center; justify-content: end; padding: 1rem; border: 1px solid #dce1e8; border-radius: .9rem; background: rgb(255 255 255 / 92%); box-shadow: 0 12px 35px rgb(7 20 45 / 12%); backdrop-filter: blur(16px); }
.editor-actions > a:first-child { margin-right: auto; }
.editor-actions button, .editor-actions input, .danger { padding: .8rem 1rem; border: 1px solid var(--line); border-radius: .65rem; background: white; white-space: nowrap; cursor: pointer; }
.editor-actions input.admin-primary { width: auto; color: white; border: 0; background: var(--blue); }
.danger { color: #b93b32; border-color: #f0c9c4; }
.review-tabs { display: flex; gap: .5rem; margin-bottom: 1rem; }
.review-tabs a { display: flex; gap: .5rem; padding: .65rem .8rem; border: 1px solid var(--line); border-radius: 99px; background: white; font-size: .72rem; }
.review-tabs a.active { color: white; background: var(--ink); }
.suggestion-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.suggestion-list article { padding: 1.2rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.suggestion-list article header { display: grid; gap: .7rem; }
.suggestion-list article header > div { display: flex; align-items: center; justify-content: space-between; }
.suggestion-list article dl div { display: grid; grid-template-columns: 6rem 1fr; padding: .5rem 0; border-top: 1px solid var(--line); font-size: .7rem; }
.suggestion-list article dt { color: var(--muted); }
.suggestion-list article footer { display: flex; align-items: center; justify-content: space-between; color: var(--muted); font-size: .65rem; }
.suggestion-list article footer a { color: var(--blue); font-weight: 700; }
.diff-panel { padding: 1.5rem; margin-bottom: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.diff-panel > header { display: flex; justify-content: space-between; }
.diff-panel table { width: 100%; border-collapse: collapse; }
.diff-panel th, .diff-panel td { padding: 1rem; border-top: 1px solid var(--line); text-align: left; }
.diff-panel .before { color: var(--muted); text-decoration: line-through; }
.diff-panel .after { color: #087267; font-weight: 700; }
.source-links li { padding: .7rem 0; border-top: 1px solid var(--line); }
.source-links a { color: var(--blue); }
.admin-panel .source-links li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.admin-panel details { margin-top: 1rem; }
.admin-panel details summary { color: var(--blue); cursor: pointer; font-size: .75rem; font-weight: 700; }
.admin-panel details pre, .diff-panel pre { max-height: 320px; padding: 1rem; overflow: auto; border-radius: .6rem; background: #07142d; color: #d7e3fb; font-size: .68rem; line-height: 1.6; }
.source-records { margin-top: 1rem; }
.source-table { min-width: 940px; }
.duplicate-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1rem; }
.duplicate-summary article { padding: 1.5rem; border: 1px solid #dce1e8; border-radius: 1rem; background: white; }
.duplicate-summary h2 { margin: .4rem 0; font-size: 1.55rem; }
.duplicate-summary > article > p:not(.eyebrow) { min-height: 2.7rem; color: var(--muted); font-size: .75rem; }
.duplicate-summary dl div { display: flex; justify-content: space-between; padding: .65rem 0; border-top: 1px solid var(--line); font-size: .72rem; }
.duplicate-summary dt { color: var(--muted); }
.duplicate-summary article > a { display: inline-block; margin-top: .8rem; color: var(--blue); font-size: .75rem; font-weight: 700; }
.duplicate-comparison { width: 100%; min-width: 760px; border-collapse: collapse; }
.duplicate-comparison th, .duplicate-comparison td { width: 42%; padding: .85rem; border-top: 1px solid var(--line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.duplicate-comparison th:first-child { width: 16%; color: var(--muted); font-size: .7rem; }
.duplicate-comparison td { font-size: .75rem; }
.duplicate-comparison td.missing { color: #a43b30; background: #fff8f6; }
.duplicate-review .canonical-choices { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; padding: 0; border: 0; }
.duplicate-review .canonical-choices legend { margin-bottom: .5rem; color: var(--muted); font-size: .65rem; font-weight: 700; }
.duplicate-review .canonical-choices label { display: flex; gap: .7rem; align-items: center; padding: 1rem; border: 1px solid var(--line); border-radius: .7rem; cursor: pointer; }
.duplicate-review .canonical-choices label:has(input:checked) { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.duplicate-review .canonical-choices input { flex: 0 0 auto; width: 1.1rem; height: 1.1rem; }
.duplicate-review .canonical-choices span { display: grid; gap: .2rem; }
.duplicate-review .canonical-choices small { color: var(--muted); }
.review-warning { margin: 0; color: #8a5a1f; font-size: .7rem; line-height: 1.6; }
.resolution-result h2 { display: flex; align-items: center; gap: .6rem; }
.review-actions { display: grid; gap: 1rem; padding: 1.5rem; border-radius: 1rem; background: white; }
.review-actions > div { display: flex; gap: .7rem; justify-content: end; }
.insight-admin-filters { display: flex; gap: .7rem; align-items: end; padding: 1rem; margin-bottom: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.insight-admin-filters label { min-width: 210px; }
.insight-admin-filters label span { display: block; margin: 0 0 .35rem .15rem; color: var(--muted); font-size: .65rem; font-weight: 700; }
.insight-admin-filters select { width: 100%; min-height: 2.65rem; padding: .6rem .7rem; border: 1px solid #d5dbe3; border-radius: .55rem; background: white; }
.insight-admin-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.insight-admin-list > article { display: grid; align-content: start; gap: .9rem; padding: 1.2rem; border: 1px solid var(--line); border-top: 4px solid #b9c2d0; border-radius: 1rem; background: white; }
.insight-admin-list > article.positive { border-top-color: #16aa87; }
.insight-admin-list > article.caution { border-top-color: #ed9a49; }
.insight-admin-list article > header, .insight-admin-list article > footer, .insight-admin-list article > header > div { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.insight-admin-list article > header { align-items: start; flex-direction: column-reverse; }
.insight-admin-list article > header small { color: var(--ink); font-weight: 900; }
.insight-admin-list .insight-kind, .insight-review .insight-kind { color: #1752bd; background: #e7eeff; }
.insight-admin-summary { min-height: 5rem; margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.7; }
.insight-admin-list dl { margin: 0; }
.insight-admin-list dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-top: 1px solid var(--line); font-size: .68rem; }
.insight-admin-list dt { color: var(--muted); }
.insight-admin-list dd { margin: 0; text-align: right; }
.insight-admin-list .expired, .insight-review .expired { color: #b63b32; font-weight: 800; }
.insight-admin-list footer { padding-top: .3rem; color: var(--muted); font-size: .65rem; }
.insight-admin-list footer a { color: var(--blue); font-weight: 800; }
.insight-review { padding: clamp(1.3rem, 3vw, 2.2rem); margin-bottom: 1rem; border: 1px solid var(--line); border-top: 5px solid #b9c2d0; border-radius: 1rem; background: white; }
.insight-review.positive { border-top-color: #16aa87; }
.insight-review.caution { border-top-color: #ed9a49; }
.insight-review > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.insight-review > header > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.insight-review .insight-stance { color: #4d5b73; background: #eef1f5; }
.insight-review__notice { display: grid; grid-template-columns: minmax(220px, .55fr) 1.45fr; gap: 1rem 2rem; padding: 1rem; margin: 1.2rem 0 2rem; color: #7a4b13; border: 1px solid #f0d29f; border-radius: .8rem; background: #fff9ec; }
.insight-review__notice p { margin: 0; font-size: .72rem; line-height: 1.65; }
.insight-review__body { padding: 1.2rem; color: var(--ink); border-radius: .75rem; background: #f5f7fa; font-size: .9rem; line-height: 1.9; white-space: pre-wrap; }
.insight-review__meta div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: .7rem 0; border-top: 1px solid var(--line); font-size: .72rem; }
.insight-review__meta dt { color: var(--muted); }
.insight-review__meta dd { margin: 0; overflow-wrap: anywhere; }
.insight-source-list { padding: 0; margin: 0; list-style: none; }
.insight-source-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--line); }
.insight-source-list strong, .insight-source-list small { display: block; }
.insight-source-list small { margin-top: .25rem; color: var(--muted); font-size: .65rem; }
.insight-source-list a { flex: 0 0 auto; color: var(--blue); font-size: .72rem; font-weight: 800; }
.insight-review-actions .review-warning { max-width: 50rem; }
.advertising-inquiries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.advertising-inquiries > article { padding: 1.4rem; border: 1px solid var(--line); border-radius: 1rem; background: white; }
.advertising-inquiries article > header > div { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.advertising-inquiries article > header time { color: var(--muted); font-size: .68rem; }
.advertising-inquiries article h2 { margin: .8rem 0 .25rem; }
.advertising-inquiries article header p { margin: 0; color: var(--muted); font-size: .75rem; }
.inquiry-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin: 1rem 0; border-block: 1px solid var(--line); }
.inquiry-summary div { display: grid; align-content: start; gap: .25rem; padding: .8rem .5rem; }
.inquiry-summary dt, .inquiry-summary small { color: var(--muted); font-size: .62rem; }
.inquiry-summary dd { display: grid; gap: .2rem; margin: 0; overflow-wrap: anywhere; font-size: .72rem; }
.inquiry-message h3 { font-size: .72rem; }
.inquiry-message p { color: var(--muted); font-size: .75rem; line-height: 1.7; }
.inquiry-response { display: grid; grid-template-columns: minmax(130px, .45fr) 1fr auto; gap: .7rem; align-items: end; margin-top: 1rem; }
.inquiry-response label > span { display: block; margin-bottom: .3rem; color: var(--muted); font-size: .62rem; font-weight: 700; }
.inquiry-response select, .inquiry-response textarea { width: 100%; min-height: 2.65rem; padding: .6rem .7rem; border: 1px solid #d5dbe3; border-radius: .55rem; background: white; font: inherit; }
.inquiry-response input[type="submit"] { min-height: 2.65rem; }
.crawler-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-bottom: 1rem; }
.crawler-actions article { padding: 1.5rem; border-radius: 1rem; background: white; }
.crawler-actions article > p:first-child { color: var(--blue); font-size: .65rem; letter-spacing: .12em; }
.crawler-actions article > p:not(:first-child) { min-height: 3rem; color: var(--muted); font-size: .75rem; line-height: 1.6; }
.crawler-actions button { padding: .8rem 1rem; color: white; border: 0; border-radius: .6rem; background: var(--ink); cursor: pointer; }
.codex-flow { margin-bottom: 1rem; }
.codex-flow ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; padding: 0; list-style: none; counter-reset: flow; }
.codex-flow li { display: grid; align-content: start; gap: .6rem; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; counter-increment: flow; }
.codex-flow li::before { content: counter(flow, decimal-leading-zero); color: var(--blue); font-size: .7rem; font-weight: 700; }
.codex-flow code, .codex-flow span { overflow-wrap: anywhere; color: var(--muted); font-size: .68rem; line-height: 1.5; }
.flash { position: sticky; z-index: 20; top: 0; margin: 0; padding: .8rem 2rem; color: #075f56; background: #d7fbf5; }
.flash.alert { color: #8a332b; background: #ffe5e1; }
@media (max-width: 1100px) {
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
  .admin-filters { grid-template-columns: repeat(4, 1fr); }
  .admin-filters .wide { grid-column: span 2; }
  .suggestion-list { grid-template-columns: 1fr 1fr; }
  .insight-admin-list { grid-template-columns: 1fr 1fr; }
  .codex-flow ol { grid-template-columns: 1fr 1fr; }
  .crawler-actions { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .admin-sidebar { position: static; width: auto; padding: .8rem 1rem; }
  .admin-brand { padding: 0; border: 0; }
  .admin-sidebar nav { display: flex; gap: .2rem; margin: .7rem -1rem -.8rem; padding: .4rem 1rem; overflow-x: auto; scrollbar-width: none; }
  .admin-sidebar nav::-webkit-scrollbar { display: none; }
  .admin-sidebar nav a { flex: 0 0 auto; padding: .65rem .7rem; }
  .admin-main { margin-left: 0; }
  .admin-topbar { display: none; }
  .admin-heading { align-items: start; flex-direction: column; }
  .admin-stats, .admin-columns, .admin-filters, .suggestion-list, .insight-admin-list, .crawler-actions, .codex-flow ol, .duplicate-summary, .duplicate-review .canonical-choices, .advertising-inquiries { grid-template-columns: 1fr; }
  .admin-filters .wide { grid-column: auto; }
  .editor-section, .research-request-panel { grid-template-columns: 1fr; gap: 1rem; }
  .research-request-form, .research-history li { grid-template-columns: 1fr; }
  .field-grid { grid-template-columns: 1fr; }
  .field-grid .wide { grid-column: auto; }
  .editor-actions { flex-wrap: wrap; justify-content: stretch; }
  .editor-actions > * { flex: 1 1 auto; }
  .insight-admin-filters { align-items: stretch; flex-direction: column; }
  .insight-admin-filters label { min-width: 0; }
  .review-tabs { flex-wrap: wrap; }
  .review-actions > div { align-items: stretch; flex-direction: column; }
  .review-actions > div > * { width: 100%; }
  .insight-review__notice { grid-template-columns: 1fr; }
  .insight-source-list li { align-items: start; flex-direction: column; }
}
.reveal-ready [data-reveal-target="item"] { opacity: 0; transform: translateY(24px); transition: opacity .8s, transform .8s; }
.reveal-ready [data-reveal-target="item"].visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: 70ms; }
.reveal-delay-2 { transition-delay: 140ms; }
.reveal-delay-3 { transition-delay: 210ms; }
.reveal-delay-4 { transition-delay: 280ms; }
.reveal-delay-5 { transition-delay: 350ms; }
@keyframes drift { to { transform: scale(1.06) translate3d(-1%, 1%, 0); } }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 900px) {
  .site-header .desktop-navigation { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu__toggle { display: flex; gap: .4rem; align-items: center; min-height: 2.6rem; padding: .65rem .85rem; color: white; border: 1px solid rgb(255 255 255 / 30%); border-radius: 999px; background: rgb(255 255 255 / 8%); font-size: .68rem; font-weight: 800; cursor: pointer; }
  .mobile-menu__toggle .ui-icon { width: .9rem; height: .9rem; }
  .mobile-menu__panel { position: fixed; z-index: 30; top: 4.4rem; right: .75rem; left: .75rem; display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: 1rem; border: 1px solid rgb(255 255 255 / 16%); border-radius: 1.2rem; background: rgb(7 20 45 / 97%); box-shadow: 0 24px 65px rgb(0 0 0 / 35%); backdrop-filter: blur(22px); }
  .mobile-menu__panel[hidden] { display: none; }
  .site-header .mobile-menu__panel > nav:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, 1fr); gap: .3rem; }
  .mobile-menu__panel > nav:first-child a { padding: .7rem; border-radius: .65rem; background: rgb(255 255 255 / 5%); font-size: .72rem; }
  .mobile-menu__panel .locale-switcher { align-self: center; justify-content: end; }
  .mobile-menu__panel .account-actions { align-self: center; }
}
@media (max-width: 800px) {
  .site-header { gap: .7rem; padding: .8rem 1rem; }
  .site-header nav { display: flex; gap: .55rem; margin-left: auto; font-size: .65rem; white-space: nowrap; }
  .brand { gap: .45rem; }
  .brand-mark { width: 2.15rem; }
  .brand strong { font-size: .8rem; white-space: nowrap; }
  .brand small { display: none; }
  .hero { min-height: 82svh; }
  .hero--compact { min-height: 430px; }
  .hero--compact .hero-copy { width: calc(100% - 2.6rem); margin-top: 7rem; }
  .hero--compact .hero-copy > p:not(.eyebrow) { display: none; }
  .hero--compact .hero-event { margin-top: .7rem; }
  .hero-collage { display: none; }
  .hero-copy { margin-left: 1.3rem; }
  .hero h1 { font-size: 2.8rem; line-height: 1; letter-spacing: -.07em; }
  .hero h1 em { display: block; margin-top: .08em; }
  .search-form, .place-grid, .detail-grid, .site-footer, .medical-guides, .map-layout, .advertise-hero, .advertise-intro, .advertise-contact, .advertise-plan-grid, .advertise-process ol, .policy-principles, .policy-sources, .policy-matrix, .place-insights > header, .insight-disclaimer, .place-insight-grid { grid-template-columns: 1fr; }
  .dining-modes { border-radius: 1.4rem; }
  .trip-toolkit > header { grid-template-columns: 1fr; gap: .8rem; }
  .trip-toolkit nav { display: flex; margin-inline: -.2rem; padding: .2rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
  .trip-toolkit nav::-webkit-scrollbar { display: none; }
  .trip-toolkit nav a { flex: 0 0 min(72vw, 260px); scroll-snap-align: start; }
  .dining-modes > header { grid-template-columns: 1fr; gap: 1rem; }
  .dining-modes nav { display: flex; margin-inline: -.2rem; padding: .2rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
  .dining-modes nav::-webkit-scrollbar { display: none; }
  .dining-modes nav a { flex: 0 0 min(58vw, 210px); scroll-snap-align: start; }
  .scene-checks { grid-template-columns: 1fr 1fr; }
  .policy { padding-top: 8rem; }
  .policy > header { padding-bottom: 4rem; }
  .search-form button { grid-row: 3; }
  .weekend-needs > nav { display: flex; margin-inline: -.2rem; padding: .2rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
  .weekend-needs > nav::-webkit-scrollbar { display: none; }
  .weekend-needs > nav > a { flex: 0 0 min(78vw, 290px); scroll-snap-align: start; }
  .live-checks { align-items: start; flex-direction: column; }
  .place-grid { gap: .75rem; }
  .public-pagination { flex-wrap: wrap; }
  .advertise-hero { min-height: auto; padding-top: 8rem; border-radius: 0 0 1.5rem 1.5rem; }
  .advertise-intro { gap: 1rem; padding-block: 5rem; }
  .advertise-plan-grid article.featured { transform: none; }
  .advertise-form__grid, .inquiry-summary, .inquiry-response { grid-template-columns: 1fr; }
  .advertise-form .wide { grid-column: auto; }
  .advertise-form footer { align-items: stretch; flex-direction: column; }
  .medical-now { border-radius: 1.4rem; }
  .medical-now > header { align-items: start; flex-direction: column; }
  .section-heading { align-items: start; flex-direction: column; gap: .5rem; }
  .section-heading > p { margin: 0; }
  .medical-guides article { min-height: 240px; }
  .map-toolbar { align-items: start; flex-direction: column; }
  .place-map { min-height: 430px; }
  .medical-picks { display: none; }
  .nearby-results > header { align-items: start; flex-direction: column; }
  .nearby-results ol { display: flex; margin-inline: -.2rem; padding: .2rem; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
  .nearby-results ol::-webkit-scrollbar { display: none; }
  .nearby-results li { flex: 0 0 min(82vw, 290px); scroll-snap-align: start; }
}
@media (max-width: 560px) {
  .site-header { display: flex; padding-block: .7rem; }
  .mobile-menu { position: absolute; top: .7rem; right: 1rem; display: block; }
  .mobile-menu__toggle { position: relative; z-index: 1; visibility: visible; opacity: 1; }
  .mobile-menu__panel { grid-template-columns: 1fr; max-height: calc(100svh - 5.3rem); overflow-y: auto; }
  .mobile-menu__panel .account-actions { grid-column: 1; justify-content: stretch; margin-left: 0; flex-wrap: wrap; }
  .mobile-menu__panel .account-action { flex: 1 1 auto; text-align: center; }
  .mobile-menu__panel .locale-switcher { justify-content: flex-start; margin-left: 0; overflow-x: auto; }
  .brand strong { font-size: .82rem; }
  .hero-copy { width: auto; max-width: calc(100vw - 2.6rem); margin-right: 1.3rem; }
  .hero-copy > p { width: 100%; max-width: 100%; overflow-wrap: anywhere; }
  .hero-credit { right: .7rem; bottom: .65rem; left: .7rem; font-size: .52rem; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .reveal-ready [data-reveal-target="item"] { opacity: 1; transform: none; }
}
