.afl{--afl-ink:#0d0d0d;--afl-ink-2:#2b2926;--afl-muted:#6b655c;--afl-beige:#c8b48f;--afl-beige-2:#e9dfcc;--afl-beige-3:#f4efe6;--afl-paper:#faf8f4;--afl-white:#fff;--afl-line:#e4dccd;--afl-good:#2f6b46;--afl-warn:#8a5a00;--afl-radius:18px;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;color:var(--afl-ink);background:var(--afl-paper);min-height:100vh;-webkit-font-smoothing:antialiased}.afl :where(a){color:inherit}.afl :focus-visible{outline:2px solid var(--afl-beige);outline-offset:2px;border-radius:6px}.afl-container{width:100%;max-width:1180px;margin:0 auto;padding:0 16px}@media (min-width:768px){.afl-container{padding:0 28px}}.afl-header{background:var(--afl-ink);color:var(--afl-white);position:sticky;top:0;z-index:40}.afl-header-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px}.afl-nav a{font-size:13px;font-weight:600;letter-spacing:.02em;color:#e9e4da;text-decoration:none;padding:8px 10px;border-radius:10px}.afl-nav a:hover{background:hsla(0,0%,100%,.08);color:#fff}.afl-hero{background:radial-gradient(1200px 400px at 20% -10%,#2a2723 0,var(--afl-ink) 60%);color:var(--afl-white);padding:56px 0 64px}.afl-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--afl-beige)}.afl-h1{font-size:clamp(28px,5vw,48px);line-height:1.08;margin:10px 0 14px}.afl-h1,.afl-h2{font-weight:700;letter-spacing:-.01em}.afl-h2{font-size:clamp(20px,3vw,28px);margin:0 0 14px}.afl-h3{font-size:16px;font-weight:700;margin:0 0 8px}.afl-lead{font-size:16px;line-height:1.6;color:#d9d2c4;max-width:680px}.afl-section{padding:40px 0}.afl-card{background:var(--afl-white);border:1px solid var(--afl-line);border-radius:var(--afl-radius);padding:20px;box-shadow:0 1px 0 hsla(0,0%,5%,.02)}.afl-card-hover{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.afl-card-hover:hover{transform:translateY(-2px);box-shadow:0 12px 30px hsla(0,0%,5%,.08);border-color:var(--afl-beige)}.afl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:12px;font-weight:700;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:background .15s ease,transform .1s ease}.afl-btn:active{transform:scale(.98)}.afl-btn-primary{background:var(--afl-beige);color:var(--afl-ink)}.afl-btn-primary:hover{background:#d6c4a2}.afl-btn-dark{background:var(--afl-ink);color:var(--afl-white)}.afl-btn-dark:hover{background:var(--afl-ink-2)}.afl-btn-ghost{background:transparent;border-color:var(--afl-line);color:var(--afl-ink)}.afl-btn-ghost:hover{border-color:var(--afl-beige);background:var(--afl-beige-3)}.afl-input{width:100%;min-height:48px;border-radius:12px;border:1px solid var(--afl-line);background:var(--afl-white);padding:0 14px;font:inherit;font-size:15px;color:var(--afl-ink)}.afl-input:focus{outline:2px solid var(--afl-beige);border-color:var(--afl-beige)}textarea.afl-input{padding:12px 14px;min-height:140px}.afl-label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.afl-hint{font-size:12px;color:var(--afl-muted);margin-top:4px}.afl-search{display:grid;grid-template-columns:1fr;gap:10px;background:var(--afl-white);border-radius:18px;padding:10px;box-shadow:0 20px 50px rgba(0,0,0,.25)}@media (min-width:768px){.afl-search{grid-template-columns:1.4fr 1fr auto}}.afl-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;background:var(--afl-beige-3);color:var(--afl-ink-2);border:1px solid var(--afl-line);text-decoration:none}.afl-chip:hover{border-color:var(--afl-beige)}.afl-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.afl-badge-good{background:#e6f1ea;color:var(--afl-good)}.afl-badge-beige{background:var(--afl-beige-2);color:var(--afl-ink-2)}.afl-badge-muted{background:#efede9;color:var(--afl-muted)}.afl-grid{display:grid;gap:16px}@media (min-width:640px){.afl-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:900px){.afl-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.afl-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.afl-muted{color:var(--afl-muted)}.afl-small{font-size:13px}.afl-breadcrumbs{font-size:12px;color:var(--afl-muted);display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.afl-breadcrumbs a{text-decoration:none}.afl-breadcrumbs a:hover{text-decoration:underline}.afl-footer{background:var(--afl-ink);color:#cfc8ba;padding:40px 0;font-size:13px;margin-top:40px}.afl-footer a{color:#efe8da}.afl-stars{display:inline-flex;gap:2px;color:var(--afl-beige)}.afl-bar{height:8px;border-radius:999px;background:var(--afl-beige-3);overflow:hidden}.afl-bar>span{display:block;height:100%;background:var(--afl-beige)}.afl-map{width:100%;height:360px;border-radius:var(--afl-radius);overflow:hidden;border:1px solid var(--afl-line);background:var(--afl-beige-3)}.afl-fade{animation:afl-fade .45s ease both}@keyframes afl-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.afl-btn,.afl-card-hover,.afl-fade{animation:none!important;transition:none!important}}.afl-notice{border-left:3px solid var(--afl-beige);background:var(--afl-beige-3);padding:12px 14px;border-radius:10px;font-size:13px}.afl-table{width:100%;border-collapse:collapse;font-size:14px}.afl-table td,.afl-table th{padding:8px 0;border-bottom:1px solid var(--afl-line);text-align:left;vertical-align:top}.afl-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.afl-map-pop-name{font-weight:700;color:#0d0d0d;text-decoration:none}.afl-map-pop-name:hover{text-decoration:underline}.afl-map-pop-city{color:#5f5a52}