:root { --ink:#173228; --muted:#607269; --brand:#146b4a; --brand-dark:#0c4c34; --lime:#bfe36a; --soft:#e8f3ed; --paper:#fbfaf4; --white:#fff; --line:#d9e3dc; }
* { box-sizing:border-box; }
html { background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Tahoma,Arial,sans-serif; line-height:1.6; text-rendering:optimizeLegibility; }
a { color:inherit; }
button,input { font:inherit; }
.site-shell { width:min(100% - 2rem,72rem); min-height:100vh; margin-inline:auto; display:flex; flex-direction:column; }
.site-header { min-height:6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:.75rem; text-decoration:none; }
.brand-mark { width:4.2rem; height:4.2rem; display:grid; place-items:center; overflow:hidden; color:transparent; background:white url("../assets/anabadeicon.jpeg") center/contain no-repeat; border:1px solid var(--line); border-radius:.85rem; font-size:0; box-shadow:0 .25rem .8rem rgba(17,70,48,.08); }
.brand-name { display:flex; align-items:baseline; gap:.55rem; font-size:1.25rem; font-weight:900; }
.brand-name small { color:var(--muted); font:700 .73rem/1 Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.header-note,.back-link { color:var(--brand); font-size:.88rem; font-weight:800; text-decoration:none; }
.header-actions{display:flex;align-items:center;gap:1rem}.header-cta{padding:.55rem .9rem;color:white;background:var(--brand);border-radius:.7rem;font-size:.82rem;font-weight:900;text-decoration:none}.header-cta:hover{background:var(--brand-dark)}
.hero { position:relative; min-height:29rem; display:grid; grid-template-columns:minmax(0,1fr) 15rem; align-items:center; gap:4rem; padding:clamp(4rem,10vw,7.5rem) clamp(0rem,4vw,3rem); overflow:hidden; }
.hero::before { content:""; position:absolute; z-index:-1; width:25rem; height:25rem; inset:50% auto auto -10rem; border:1px solid #d4e6da; border-radius:50%; transform:translateY(-50%); box-shadow:0 0 0 3.5rem #eff5ef,0 0 0 7rem #f5f7f1; }
.eyebrow { display:inline-block; margin:0 0 1rem; padding:.35rem .75rem; color:var(--brand-dark); background:var(--lime); border-radius:999px; font-size:.82rem; font-weight:900; }
h1 { margin:0; max-width:12ch; font-size:clamp(3.3rem,8vw,6.5rem); line-height:.98; letter-spacing:-.06em; }
h1 em { color:var(--brand); font-style:normal; }
.intro { max-width:39rem; margin:1.5rem 0 0; color:var(--muted); font-size:clamp(1.08rem,2vw,1.35rem); }
.hero-stamp { width:13rem; aspect-ratio:1; display:grid; place-content:center; text-align:center; color:white; background:var(--brand); border:.75rem solid var(--soft); border-radius:48% 52% 57% 43%; transform:rotate(6deg); box-shadow:1.5rem 1.5rem 0 var(--lime); }
.hero-stamp span,.hero-stamp strong { display:block; }.hero-stamp span { font-size:1.2rem; }.hero-stamp strong { font-size:2rem; }
.directory-panel { margin-bottom:5rem; padding:clamp(1.25rem,4vw,2.5rem); background:var(--white); border:1px solid var(--line); border-radius:1.5rem; box-shadow:0 1rem 3rem rgba(17,70,48,.07); }
.panel-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:1.75rem; }
.panel-heading h2 { margin:.1rem 0 0; font-size:clamp(1.7rem,4vw,2.4rem); line-height:1.2; }.panel-heading p { margin:0; color:var(--muted); }.panel-heading>p { max-width:24rem; text-align:left; }
.step { margin:0; color:var(--brand)!important; font-size:.8rem; font-weight:900; }
.region-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.region-card { min-height:6rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.9rem; padding:1rem; color:var(--ink); background:#fcfdfa; border:1px solid var(--line); border-radius:1rem; text-decoration:none; transition:.15s ease; }
.region-card:hover,.town-row:hover { background:var(--soft); border-color:var(--brand); transform:translateY(-2px); }.region-card:focus-visible,.town-row:focus-visible { outline:3px solid var(--lime); outline-offset:2px; }
.region-card strong,.region-card small,.town-row strong,.town-row small { display:block; }.region-card small,.town-row small { margin-top:.1rem; color:var(--muted); font:600 .76rem/1.3 Arial,sans-serif; }.region-number { color:var(--brand); font:800 .7rem/1 Arial,sans-serif; }.arrow { color:var(--brand); font-size:1.2rem; }
.skeleton { min-height:6rem; border-radius:1rem; background:linear-gradient(90deg,#eef2ee,#f8faf8,#eef2ee); background-size:200% 100%; animation:loading 1.4s infinite; }
.notice { display:flex; flex-direction:column; gap:.3rem; padding:1.25rem; color:var(--brand-dark); background:var(--soft); border-right:.3rem solid var(--brand); border-radius:.8rem; }.notice span { color:var(--muted); }.notice-error { color:#742d28; background:#faecea; border-color:#a43d35; }
.inner-page { flex:1; padding-block:2.5rem 5rem; }.breadcrumbs { display:flex; align-items:center; gap:.55rem; margin-bottom:3rem; color:var(--muted); font-size:.84rem; }.breadcrumbs a { color:var(--brand); }
.towns-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2rem; }.towns-heading h1 { max-width:none; margin:.1rem 0 .35rem; font-size:clamp(2.4rem,6vw,4.5rem); }.towns-heading p { margin:0; color:var(--muted); }.result-count { flex:0 0 auto; padding:.45rem .8rem; color:var(--brand-dark); background:var(--lime); border-radius:999px; font-size:.8rem; font-weight:900; }
.town-search { margin-bottom:1.25rem; padding:1.2rem; background:var(--brand); border-radius:1.2rem; }.town-search label { display:block; margin-bottom:.45rem; color:white; font-size:.83rem; font-weight:800; }.town-search div { display:grid; grid-template-columns:1fr auto; gap:.55rem; }.town-search input { width:100%; min-height:3.25rem; padding:.7rem 1rem; color:var(--ink); background:white; border:0; border-radius:.75rem; outline:none; }.town-search input:focus { box-shadow:0 0 0 3px var(--lime); }.town-search button { min-width:6.5rem; color:var(--brand-dark); background:var(--lime); border:0; border-radius:.75rem; font-weight:900; cursor:pointer; }
.town-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }.town-row { min-height:5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.1rem; color:var(--ink); background:white; border:1px solid var(--line); border-radius:.9rem; text-decoration:none; transition:.15s ease; }
.categories-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:3rem; margin-bottom:2.5rem; }.categories-heading h1 { max-width:none; margin:.15rem 0 .7rem; font-size:clamp(2.6rem,6vw,5rem); line-height:1.05; }.categories-heading h1 em { display:inline-block; }.categories-heading>div>p:last-child { margin:0; color:var(--muted); font-size:1.05rem; }
.selected-place { min-width:11rem; padding:1.1rem 1.25rem; color:white; background:var(--brand); border-radius:1.2rem 1.2rem .35rem 1.2rem; box-shadow:.65rem .65rem 0 var(--lime); }.selected-place span,.selected-place strong { display:block; }.selected-place span { margin-bottom:.1rem; color:#d9eee4; font-size:.76rem; }.selected-place strong { font-size:1.25rem; }
.category-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }.category-card { min-height:8.5rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.15rem; padding:1.2rem; color:var(--ink); background:white; border:1px solid var(--line); border-radius:1.2rem; text-decoration:none; transition:.15s ease; }.category-card:hover { color:white; background:var(--brand); border-color:var(--brand); transform:translateY(-3px); box-shadow:0 1rem 2rem rgba(17,70,48,.12); }.category-card:focus-visible { outline:3px solid var(--lime); outline-offset:2px; }
.category-symbol { width:3.8rem; height:3.8rem; display:grid; place-items:center; color:var(--brand-dark); background:var(--lime); border-radius:1rem; font-size:1.55rem; font-weight:900; }.category-copy small,.category-copy strong,.category-copy>span { display:block; }.category-copy small { color:var(--brand); font-size:.7rem; font-weight:900; }.category-copy strong { margin:.12rem 0; font-size:1.22rem; }.category-copy>span { color:var(--muted); font:600 .76rem/1.3 Arial,sans-serif; }.category-card:hover .category-copy small,.category-card:hover .category-copy>span,.category-card:hover .category-arrow { color:#d9eee4; }.category-arrow { color:var(--brand); font-size:1.35rem; }.category-skeleton { min-height:8.5rem; }
.specialties-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(16rem,22rem); align-items:end; gap:3rem; margin-bottom:2.5rem; }.specialties-heading h1 { max-width:none; margin:.15rem 0 .7rem; font-size:clamp(3rem,7vw,6.5rem); line-height:1; }.specialties-heading>div>p:last-child { margin:0; color:var(--muted); font-size:1.05rem; }
.selection-summary { display:grid; grid-template-columns:1fr 1fr; color:white; background:var(--brand); border-radius:1.2rem; overflow:hidden; box-shadow:.65rem .65rem 0 var(--lime); }.selection-summary div { min-width:0; padding:1rem; }.selection-summary div+div { border-right:1px solid rgba(255,255,255,.2); }.selection-summary span,.selection-summary strong { display:block; }.selection-summary span { color:#d9eee4; font-size:.72rem; }.selection-summary strong { overflow:hidden; margin-top:.12rem; font-size:.95rem; text-overflow:ellipsis; white-space:nowrap; }
.specialty-list { display:grid; gap:.7rem; }.specialty-row { min-height:6rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.1rem; padding:1rem 1.15rem; color:var(--ink); background:white; border:1px solid var(--line); border-radius:1rem; text-decoration:none; transition:.15s ease; }.specialty-row:hover { background:var(--soft); border-color:var(--brand); transform:translateX(-3px); }.specialty-row:focus-visible { outline:3px solid var(--lime); outline-offset:2px; }.specialty-index { width:2.4rem; height:2.4rem; display:grid; place-items:center; color:var(--brand); background:var(--soft); border-radius:50%; font:800 .7rem/1 Arial,sans-serif; }.specialty-copy strong,.specialty-copy small { display:block; }.specialty-copy strong { font-size:1.1rem; }.specialty-copy small { margin-top:.12rem; color:var(--muted); font:600 .76rem/1.3 Arial,sans-serif; }.specialty-action { color:var(--brand); font-size:.8rem; font-weight:900; }.specialty-action b { margin-right:.3rem; font-size:1.05rem; }.specialty-skeleton { min-height:6rem; }
.providers-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:3rem; margin-bottom:2.5rem; }.providers-heading h1 { max-width:none; margin:.15rem 0 .7rem; font-size:clamp(3rem,7vw,6.5rem); line-height:1; }.providers-heading>div>p:last-child { margin:0; color:var(--muted); font-size:1.05rem; }.results-meta { min-width:13rem; padding:1rem 1.1rem; background:white; border:1px solid var(--line); border-radius:1rem; }.results-meta span,.results-meta strong,.results-meta b { display:block; }.results-meta span { color:var(--muted); font-size:.7rem; }.results-meta strong { color:var(--brand); font-size:.9rem; }.results-meta b { margin-top:.55rem; font-size:1.2rem; }
.providers-list { display:grid; gap:1rem; }.provider-card { padding:1.25rem; background:white; border:1px solid var(--line); border-radius:1.3rem; box-shadow:0 .6rem 1.8rem rgba(17,70,48,.05); }.provider-card-top { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1rem; }.provider-avatar { width:4rem; height:4rem; display:grid; place-items:center; color:white; background:var(--brand); border-radius:1.1rem; font-size:1.65rem; font-weight:900; box-shadow:.35rem .35rem 0 var(--lime); }.provider-title>div { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }.provider-title h2 { margin:0; font-size:1.3rem; }.provider-title p { margin:.1rem 0 0; color:var(--brand); font-size:.82rem; font-weight:800; }.verified-badge { width:fit-content; padding:.2rem .55rem; color:var(--brand-dark); background:var(--lime); border-radius:999px; font-size:.68rem; font-weight:900; }.profile-link { color:var(--brand); font-size:.8rem; font-weight:900; text-decoration:none; }.provider-description { margin:1.15rem 0; color:var(--muted); }.provider-address { display:flex; gap:.65rem; padding:.7rem .85rem; background:var(--paper); border-radius:.7rem; font-size:.82rem; }.provider-address span { color:var(--muted); }.contact-actions { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1rem; }.contact-button { min-height:2.8rem; display:inline-flex; align-items:center; justify-content:center; padding:.6rem 1rem; border:1px solid transparent; border-radius:.75rem; font-size:.82rem; font-weight:900; text-decoration:none; }.call-button { color:white; background:var(--brand); }.whatsapp-button { color:#0b5135; background:#c9f0d7; }.map-button { color:var(--brand); background:white; border-color:var(--line); }.contact-button:focus-visible { outline:3px solid var(--lime); outline-offset:2px; }.provider-skeleton { min-height:15rem; }
.profile-page { display:grid; align-items:center; }.profile-skeleton { display:block; min-height:28rem; }.profile-hero { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:1.5rem; padding:2rem; color:white; background:var(--brand); border-radius:1.5rem 1.5rem .5rem 1.5rem; box-shadow:1rem 1rem 0 var(--lime); }.profile-avatar { width:7rem; height:7rem; display:grid; place-items:center; color:var(--brand-dark); background:var(--lime); border-radius:1.8rem; font-size:3rem; font-weight:900; transform:rotate(-3deg); }.profile-heading .eyebrow { margin-bottom:.55rem; color:var(--brand-dark); }.profile-heading>div { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; }.profile-heading h1 { max-width:none; font-size:clamp(2.2rem,6vw,4.5rem); }.profile-heading>p:last-child { margin:.65rem 0 0; color:#d9eee4; }.profile-grid { display:grid; grid-template-columns:minmax(0,1fr) 19rem; gap:1.2rem; margin-top:2.5rem; }.profile-main { display:grid; gap:.8rem; }.profile-section { padding:1.25rem; background:white; border:1px solid var(--line); border-radius:1rem; }.section-label { color:var(--brand); font-size:.72rem; font-weight:900; }.profile-section p { margin:.45rem 0 0; color:var(--muted); }.tag-list { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.65rem; }.tag-list span { padding:.35rem .65rem; color:var(--brand-dark); background:var(--soft); border-radius:999px; font-size:.78rem; font-weight:800; }.profile-contact { height:fit-content; position:sticky; top:1rem; padding:1.25rem; color:white; background:var(--brand-dark); border-radius:1.1rem; }.profile-contact>p { margin:0 0 .8rem; font-weight:900; }.profile-actions { display:grid; gap:.55rem; }.profile-actions .contact-button { width:100%; }.profile-contact>small { display:block; margin-top:1rem; color:#b9d2c6; font-size:.7rem; line-height:1.6; }
footer { min-height:5rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; color:var(--muted); border-top:1px solid var(--line); font-size:.84rem; }
.legal-footer{flex-wrap:wrap}.legal-footer nav{display:flex;flex-wrap:wrap;gap:.65rem}.legal-footer a{color:var(--brand);text-decoration:none}
@keyframes loading { to { background-position:-200% 0; } }
@media(max-width:48rem){.hero{min-height:auto;grid-template-columns:1fr;gap:2.5rem;padding-block:4.5rem}.hero-stamp{width:8rem;justify-self:end;margin-left:1rem;border-width:.45rem;box-shadow:.8rem .8rem 0 var(--lime)}.hero-stamp span{font-size:.9rem}.hero-stamp strong{font-size:1.35rem}.region-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.town-list{grid-template-columns:1fr}.categories-heading,.specialties-heading,.providers-heading{grid-template-columns:1fr}.selected-place{width:fit-content}.selection-summary{max-width:24rem}.category-grid{grid-template-columns:1fr}.results-meta{width:fit-content}.profile-grid{grid-template-columns:1fr}.profile-contact{position:static}}
@media(max-width:34rem){.site-shell{width:min(100% - 1.25rem,72rem)}.site-header{min-height:5rem}.brand-mark{width:3.4rem;height:3.4rem}.brand-name{font-size:1.05rem}.header-note{display:none}.hero{padding-block:3.5rem}h1{font-size:clamp(3.1rem,17vw,4.8rem)}.panel-heading{display:block}.panel-heading>p{margin-top:.7rem;text-align:right}.region-grid{grid-template-columns:1fr}.towns-heading{align-items:flex-start;flex-direction:column;gap:1rem}.town-search div{grid-template-columns:1fr}.town-search button{min-height:3rem}.categories-heading h1,.specialties-heading h1,.providers-heading h1{font-size:clamp(2.6rem,13vw,4rem)}.category-card{min-height:7.5rem}.category-symbol{width:3.2rem;height:3.2rem}.specialty-row{grid-template-columns:auto 1fr}.specialty-action{grid-column:2}.selection-summary{grid-template-columns:1fr}.selection-summary div+div{border-top:1px solid rgba(255,255,255,.2);border-right:0}.provider-card-top{grid-template-columns:auto 1fr}.profile-link{grid-column:2}.contact-actions{display:grid;grid-template-columns:1fr 1fr}.map-button{grid-column:1/-1}.profile-hero{grid-template-columns:1fr;padding:1.4rem;box-shadow:.6rem .6rem 0 var(--lime)}.profile-avatar{width:5rem;height:5rem;font-size:2rem}.profile-heading h1{font-size:2.4rem}footer{align-items:flex-start;flex-direction:column;justify-content:center;padding-block:1.2rem}}
@media(prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important}}
