:root {
  --bg: #faf8f5;
  --card: #ffffff;
  --text: #1c1917;
  --muted: #57534e;
  --accent: #0f766e;
  --accent-light: #ccfbf1;
  --gold: #b45309;
  --gold-bg: #fef3c7;
  --border: #e7e5e4;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: var(--bg); color: var(--text); line-height: 1.6; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
.container { max-width: 1140px; margin: 0 auto; padding: 0 1.25rem; }
header { background: #134e4a; color: #fff; padding: 1rem 0; border-bottom: 3px solid #0d9488; }
.nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.brand { font-size: 1.35rem; font-weight: 800; color: #fff; letter-spacing: -0.02em; }
.brand span { color: #5eead4; }
.nav-links a { color: #e2e8f0; margin-left: 1.25rem; font-size: 0.95rem; font-weight: 500; }
.hero { background: linear-gradient(135deg, #134e4a 0%, #0f766e 100%); color: #fff; padding: 3rem 0 2.5rem; text-align: center; }
.hero h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: 0.75rem; line-height: 1.2; }
.hero p { max-width: 720px; margin: 0 auto 1.5rem; color: #ccfbf1; font-size: 1.08rem; }
.stats-bar { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 1rem; font-size: 0.9rem; color: #99f6e4; }
.search-box { background: var(--card); padding: 1.25rem; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,0.12); max-width: 960px; margin: -1.5rem auto 1rem; display: flex; gap: 0.75rem; flex-wrap: wrap; border: 1px solid var(--border); align-items: center; }
.search-box input, .search-box select { flex: 1; min-width: 170px; padding: 0.75rem 1rem; border: 1px solid #d6d3d1; border-radius: 8px; font-size: 1rem; }
.btn-search { background: var(--accent); color: #fff; border: none; padding: 0.78rem 1.4rem; border-radius: 8px; font-size: 1rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.btn-search:hover { background: #115e59; }
.btn-geo { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; padding: 0.75rem 1.1rem; border-radius: 8px; font-size: 0.92rem; font-weight: 700; cursor: pointer; white-space: nowrap; }
.btn-geo:hover { background: #fde68a; }
.search-status { max-width: 960px; margin: 0 auto 1.5rem; padding: 0.75rem 1.1rem; background: #ccfbf1; color: #134e4a; border-radius: 8px; font-weight: 600; display: none; justify-content: space-between; align-items: center; }
.region-map-box { background: var(--card); border: 1px solid var(--border); border-radius: 14px; padding: 1.5rem; margin: 1.5rem 0 2rem; display: grid; grid-template-columns: 380px 1fr; gap: 1.75rem; align-items: start; }
@media (max-width: 860px) { .region-map-box { grid-template-columns: 1fr; } }
.finland-map-wrap { position: relative; background: #141413; border: 3px solid #d4af37; border-radius: 12px; padding: 1rem 0.5rem; text-align: center; box-shadow: 0 8px 24px rgba(0,0,0,0.18); position: sticky; top: 1rem; }
.finland-svg { width: 100%; max-width: 345px; height: auto; display: block; margin: 0 auto; overflow: visible; }
.maakunta-path { fill: #ffffff; stroke: #141413; stroke-width: 2.2px; cursor: pointer; transition: fill 0.15s ease, transform 0.15s ease; stroke-linejoin: round; }
.maakunta-path:hover, .maakunta-path.active { fill: #2dd4bf; }
.labels-layer { pointer-events: none; }
.city-pin { cursor: pointer; }
.pin-outer { fill: rgba(245, 158, 11, 0.35); stroke: #f59e0b; stroke-width: 1.5px; transition: all 0.15s ease; }
.pin-inner { fill: #d97706; stroke: #ffffff; stroke-width: 1.2px; transition: all 0.15s ease; }
.pin-label { font-size: 10.2px; font-weight: 800; fill: #111827; paint-order: stroke; stroke: #ffffff; stroke-width: 3.2px; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.city-pin:hover .pin-outer { r: 10px; fill: rgba(245, 158, 11, 0.7); }
.city-pin:hover .pin-inner { fill: #b45309; r: 4.8px; }
.map-tip { position: fixed; z-index: 9999; pointer-events: none; background: rgba(15, 23, 42, 0.95); color: #fff; padding: 0.45rem 0.8rem; border-radius: 8px; font-size: 0.86rem; font-weight: 600; box-shadow: 0 6px 18px rgba(0,0,0,0.25); border: 1px solid #2dd4bf; display: none; white-space: nowrap; }
.region-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(155px, 1fr)); gap: 0.48rem; }
.region-btn { background: #f8fafc; border: 1px solid #cbd5e1; border-radius: 9px; padding: 0.45rem 0.75rem; text-align: left; cursor: pointer; transition: all 0.15s; font-size: 0.84rem; font-weight: 600; }
.region-btn:hover, .region-btn.active { background: var(--accent-light); border-color: var(--accent); color: #134e4a; font-weight: 700; }
.region-btn small { display: block; color: var(--muted); font-size: 0.73rem; font-weight: 400; }
.city-quick-grid { display: flex; flex-wrap: wrap; gap: 0.42rem; }
.city-quick-btn { background: #fffbeb; border: 1px solid #fde68a; color: #78350f; border-radius: 99px; padding: 0.35rem 0.75rem; font-size: 0.82rem; font-weight: 700; cursor: pointer; transition: all 0.15s; }
.city-quick-btn:hover { background: #fef3c7; border-color: #f59e0b; transform: translateY(-1px); }
.lang-switch { display: inline-flex; gap: 0.3rem; margin-left: 1rem; background: rgba(255,255,255,0.12); padding: 0.2rem; border-radius: 8px; }
.lang-btn { background: transparent; border: none; color: #e2e8f0; padding: 0.25rem 0.55rem; border-radius: 6px; font-size: 0.8rem; font-weight: 700; cursor: pointer; }
.lang-btn.active, .lang-btn:hover { background: #0d9488; color: #fff; }
.badge { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 99px; font-size: 0.78rem; font-weight: 600; margin-right: 0.4rem; margin-bottom: 0.35rem; }
.badge-ytj { background: #dcfce7; color: #166534; }
.badge-kk { background: var(--gold-bg); color: var(--gold); }
.badge-cat { background: #f3f4f6; color: #374151; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.25rem; margin: 1.5rem 0 2.5rem; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 1.25rem; display: flex; flex-direction: column; justify-content: space-between; transition: transform 0.15s, box-shadow 0.15s; }
.card:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.06); }
.card h3 { font-size: 1.15rem; margin-bottom: 0.35rem; color: #0f172a; }
.card-meta { font-size: 0.9rem; color: var(--muted); margin-bottom: 0.65rem; }
.card-desc { font-size: 0.92rem; color: #334155; margin-bottom: 1rem; }
.card-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; margin-top: auto; padding-top: 0.75rem; border-top: 1px solid #f5f5f4; }
.btn { display: inline-block; padding: 0.45rem 0.85rem; border-radius: 7px; font-size: 0.86rem; font-weight: 600; text-align: center; }
.btn-primary { background: var(--accent); color: #fff; }
.btn-outline { border: 1px solid #cbd5e1; color: #334155; }
.cities-wrap { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 2.5rem; }
.city-pill { background: var(--card); border: 1px solid var(--border); padding: 0.45rem 0.9rem; border-radius: 99px; font-size: 0.9rem; font-weight: 600; color: var(--text); }
.city-pill span { color: var(--muted); font-weight: 400; font-size: 0.82rem; }
.city-pill:hover { border-color: var(--accent); color: var(--accent); text-decoration: none; }
.promo-banner { background: linear-gradient(135deg, #1c1917 0%, #292524 100%); color: #fff; border-radius: 14px; padding: 1.75rem; margin: 2.5rem 0; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.25rem; border-left: 5px solid #f59e0b; }
.promo-banner h3 { font-size: 1.3rem; color: #fef3c7; margin-bottom: 0.35rem; }
.promo-banner p { color: #d6d3d1; max-width: 650px; font-size: 0.95rem; }
.btn-gold { background: #f59e0b; color: #1c1917; padding: 0.7rem 1.25rem; border-radius: 8px; font-weight: 700; }
.calc-box { background: var(--card); border: 2px solid #0d9488; border-radius: 16px; padding: 1.75rem; margin: 2rem 0; box-shadow: 0 10px 28px rgba(15, 118, 110, 0.08); }
.calc-step-pill { display: inline-block; background: var(--accent-light); color: #134e4a; font-size: 0.75rem; font-weight: 800; padding: 0.25rem 0.7rem; border-radius: 99px; letter-spacing: 0.04em; }
.calc-step-block { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px; padding: 1.15rem 1.25rem; margin-top: 1.1rem; }
.calc-step-title { font-size: 0.95rem; font-weight: 800; color: #0f172a; margin-bottom: 0.75rem; }
.calc-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.calc-grid-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; align-items: start; }
.calc-step-block label { display: block; font-size: 0.84rem; font-weight: 700; color: #334155; margin-bottom: 0.3rem; }
.calc-input { width: 100%; padding: 0.65rem 0.8rem; border: 1px solid #cbd5e1; border-radius: 8px; font-size: 0.98rem; font-weight: 600; background: #fff; color: #0f172a; }
.calc-input:focus { outline: 2px solid #0d9488; border-color: #0d9488; }
.calc-source-note { margin-top: 0.75rem; font-size: 0.85rem; color: #475569; line-height: 1.45; }
.src-badge { display: inline-block; padding: 0.18rem 0.55rem; border-radius: 6px; font-weight: 700; font-size: 0.78rem; margin-right: 0.35rem; }
.src-exact { background: #dcfce7; color: #166534; }
.src-est { background: #fef3c7; color: #92400e; }
.week-quick-btns { display: inline-flex; gap: 0.25rem; flex-wrap: wrap; }
.wk-btn { background: #fff; border: 1px solid #cbd5e1; border-radius: 7px; padding: 0.45rem 0.55rem; font-size: 0.78rem; font-weight: 700; cursor: pointer; color: #334155; }
.wk-btn.active, .wk-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); }
.calc-results-wrap { display: grid; grid-template-columns: 1.25fr 1fr; gap: 1.1rem; margin-top: 1.2rem; }
@media (max-width: 780px) { .calc-results-wrap { grid-template-columns: 1fr; } }
.calc-hero-card { background: linear-gradient(135deg, #134e4a 0%, #0f766e 100%); color: #fff; padding: 1.35rem 1.5rem; border-radius: 12px; display: flex; flex-direction: column; justify-content: center; }
.calc-hero-label { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; opacity: 0.9; margin-bottom: 0.35rem; }
.calc-hero-big { font-size: clamp(1.25rem, 2.5vw, 1.65rem); font-weight: 800; line-height: 1.25; margin-bottom: 0.5rem; }
.calc-hero-big .highlight-sum { color: #fde047; text-decoration: underline; text-underline-offset: 4px; }
.calc-hero-sub { font-size: 0.88rem; opacity: 0.95; line-height: 1.45; }
.calc-profit-card { background: #ecfdf5; border: 2px solid #10b981; color: #064e3b; padding: 1.35rem 1.5rem; border-radius: 12px; display: flex; flex-direction: column; justify-content: center; }
.calc-profit-card.is-loss { background: #fef2f2; border-color: #ef4444; color: #7f1d1d; }
.calc-profit-big { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 900; line-height: 1.15; margin-bottom: 0.4rem; }
.calc-targets-bar { margin-top: 1.1rem; background: #fffbeb; border: 1px solid #fde68a; border-radius: 12px; padding: 1rem 1.25rem; }
.calc-targets-heading { font-size: 0.9rem; font-weight: 800; color: #78350f; margin-bottom: 0.65rem; }
.calc-targets-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.75rem; }
.calc-target-item { background: #fff; border: 1px solid #fcd34d; border-radius: 9px; padding: 0.7rem 0.9rem; }
.ct-title { font-size: 0.8rem; font-weight: 700; color: #92400e; }
.ct-day { font-size: 1.05rem; color: #1c1917; margin: 0.2rem 0; }
.ct-tot { font-size: 0.8rem; color: #57534e; }
.btn-calc-card { background: #f0fdfa; border: 1px solid #99f6e4; color: #0f766e; cursor: pointer; }
.btn-calc-card:hover { background: #ccfbf1; text-decoration: none; }
.closed-box { background: #f5f5f4; border: 1px solid #d6d3d1; border-radius: 12px; padding: 1.5rem; margin: 2.5rem 0; }
.closed-box h3 { color: #44403c; margin-bottom: 0.4rem; font-size: 1.15rem; }
.closed-table { width: 100%; border-collapse: collapse; margin-top: 0.85rem; font-size: 0.9rem; }
.closed-table th, .closed-table td { text-align: left; padding: 0.5rem 0.75rem; border-bottom: 1px solid #e7e5e4; }
.closed-table th { color: #57534e; font-weight: 700; background: #e7e5e4; }
.closed-badge { background: #fee2e2; color: #991b1b; padding: 0.15rem 0.5rem; border-radius: 6px; font-size: 0.78rem; font-weight: 600; }
footer { background: #1c1917; color: #a8a29e; padding: 2.5rem 0; margin-top: 3rem; font-size: 0.9rem; }
footer a { color: #e7e5e4; }

/* Publication fixes: allow grid children to shrink and keep the mobile map in flow. */
.container, .region-map-box > *, .search-box > *, .calc-step-block, .calc-grid-2 > *, .calc-grid-4 > * { min-width: 0; }
.grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); }
.region-map-box { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); }
.region-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 155px), 1fr)); }
.calc-grid-2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.calc-grid-4 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.calc-targets-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.card h3, .card-desc, .card-meta, .form-help, .data-notice { overflow-wrap: anywhere; }
.search-status { gap: .75rem; flex-wrap: wrap; }
:focus-visible { outline: 3px solid #d97706; outline-offset: 3px; }
[hidden] { display: none !important; }
.ad-label { font-size: .69rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #655c48; margin-bottom: .65rem; }
.sponsor-banner { background:#070711; color:#fff; border:1px solid #353047; border-radius:12px; margin:1.7rem 0; overflow:hidden; box-shadow:0 8px 26px #0b071420; }
.sponsor-ad-label { color:#b9b4c7; margin:0; padding:.55rem 1.3rem; font-size:.62rem; }
.sponsor-image-link { display:block; line-height:0; }
/* Licensed banner artwork: show the entire original image, without crop, filters or overlays. */
.sponsor-image { display:block; width:100%; height:auto; }
.sponsor-purchase { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.35rem 1.65rem 1rem; background:linear-gradient(110deg,#150b20,#090d1c); border-top:1px solid #402039; }
.sponsor-copy { flex:1; min-width:0; }
.sponsor-banner h2 { color:#fff; max-width:670px; font-size:clamp(1.25rem,2.4vw,1.8rem); line-height:1.15; letter-spacing:-.025em; margin-bottom:.6rem; }
.sponsor-copy > p { color:#c6c1d2; font-size:.9rem; line-height:1.5; max-width:650px; }
.sponsor-cta { flex-shrink:0; display:inline-block; background:#ec3b99; color:#fff; border:1px solid #fc81c2; border-radius:7px; font-weight:800; font-size:.93rem; padding:.9rem 1.2rem; text-align:center; box-shadow:0 0 20px #e92c8c30; }
.sponsor-cta:hover { background:#c9217a; text-decoration:none; }
.sponsor-banner .ad-disclosure { color:#aaa4b6; font-size:.65rem; padding:0 1.65rem .9rem; background:#090b16; margin:0; }
.ad-slot { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; padding:1.4rem 1.6rem; margin:2rem 0; border:1px dashed #b5bcb5; background:#f1f3ee; border-radius:12px; }
.ad-slot > .ad-label { width:100%; margin:0; }.ad-slot > div { flex:1; min-width:min(100%, 240px); }.ad-slot h2 {font-size:1.15rem;}.ad-slot p {font-size:.88rem;max-width:650px;color:#575c52;}.ad-slot .btn { background:white; }
.contact-panel { background:#fff; border:1px solid var(--border); border-radius:14px; padding:1.7rem; margin:2rem 0; scroll-margin-top:1.5rem; }
.contact-panel h2 {font-size:1.35rem;}.contact-panel > p {color:var(--muted);margin:.4rem 0 1rem;}
.contact-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.contact-panel label {display:block;font-size:.85rem;font-weight:700;margin:.75rem 0 .3rem;}
.contact-panel input,.contact-panel select,.contact-panel textarea {width:100%;min-width:0;padding:.7rem;border:1px solid #cbd5e1;border-radius:7px;font:inherit;background:#fff;color:var(--text);}
.contact-panel textarea {resize:vertical;margin-bottom:.8rem;}.form-help {font-size:.8rem;color:var(--muted);margin:.8rem 0;}
.data-notice { background:#efeee9;border-radius:10px;padding:1.3rem 1.5rem;margin:2rem 0;font-size:.85rem;color:#57534e; }.data-notice h2 {font-size:1rem;color:#333;margin-bottom:.4rem;}
.source-note {font-size:.76rem;color:var(--muted);margin-top:.6rem;}.calc-warning {color:#92400e;background:#fffbeb;border-radius:8px;padding:.6rem .8rem;margin-top:.6rem;font-size:.85rem;}
.empty-results {padding:1rem;border:1px solid var(--border);border-radius:8px;margin:1rem 0;}
@media(max-width:860px) { .region-map-box {grid-template-columns:minmax(0,1fr);} .finland-map-wrap {position:static;top:auto;} }
@media(max-width:760px) { .sponsor-purchase {flex-direction:column;align-items:stretch;gap:1rem;padding:1.15rem;} .sponsor-banner .ad-disclosure {padding:0 1.15rem .9rem;} .sponsor-cta {align-self:flex-start;} }
@media(max-width:600px) { .contact-grid {grid-template-columns:minmax(0,1fr);} .contact-panel,.calc-box,.region-map-box {padding:1rem;} .search-box input,.search-box select {min-width:0;flex-basis:100%;width:100%;} .nav-links a {margin:0 .9rem 0 0;} .lang-switch {margin-left:0;} .calc-results-wrap {grid-template-columns:minmax(0,1fr);} .closed-box {overflow-x:auto;} }
/* Warm paper, forest green and brass. No external fonts or image treatments. */
:root {
  --bg:#f4f0e7; --text:#26372e; --muted:#666a60;
  --accent:#315e49; --accent-light:#e7eee5;
  --gold:#866a35; --gold-bg:#f2ead8; --border:#deddd1;
}
body {
  background-color:var(--bg);
  background-image:radial-gradient(ellipse at 0 0,#e8deca75,transparent 48%),radial-gradient(ellipse at 100% 35%,#e2e8db65,transparent 42%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.76' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23806c49' opacity='.045' filter='url(%23paper)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");
  color:var(--text); -webkit-font-smoothing:antialiased;
}
header { background:#203e31; border-bottom:1px solid #b7a47465; padding:1.15rem 0; }
.brand {font-weight:750;letter-spacing:-.045em;}.brand span {color:#d6c99e;}
.nav-links a {color:#eeeade;font-size:.88rem;}.nav-links a:hover {color:#e6d4a3;}
.lang-switch {border:1px solid #d9d5bd25;background:#ffffff08;}
.lang-btn.active,.lang-btn:hover {background:#d5c397;color:#243b30;}
.hero {background:radial-gradient(ellipse at 90% -40%,#6b7e5a80,transparent 65%),linear-gradient(125deg,#203e31,#324b38);padding:3.75rem 0 3.5rem;border-bottom:1px solid #a9935f;}
.hero h1 {font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em;font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.12;color:#fffdf6;margin-bottom:1.15rem;}
.hero p {color:#e4e4d5;font-size:1rem;line-height:1.75;max-width:730px;}
.stats-bar {color:#d8d4bd;font-size:.81rem;gap:1.3rem;}
.stats-bar strong {color:#fffdf4;font-weight:650;}
.search-box {position:relative;padding:1.25rem;border-radius:14px;border:1px solid #d5d4c5;box-shadow:0 10px 28px #263b2d12,0 2px 5px #263b2d08;}
.search-box input,.search-box select {background:#fcfcf8;border-color:#d8dbd0;}
.btn-search {background:#315e49;box-shadow:0 2px 4px #1d3f2812;}
.btn-search:hover {background:#244a38;}
.btn-geo {color:#66532d;background:#f5eedf;border-color:#d8c9a7;}
.btn-geo:hover {background:#eee3cc;}
.search-status {background:#e6ecdf;color:#2e4c38;border:1px solid #cbd6c1;}
.region-map-box {background:#ffffffed;border-color:#dcded3;border-radius:17px;padding:1.8rem;gap:2rem;margin:2rem 0;box-shadow:0 7px 24px #32463207;}
.region-map-box h2,.calc-header h2,#kaupungit,#results-heading,.contact-panel h2 {font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.025em;color:#2c4435;}
.region-map-box h3 {color:#655d43 !important;font-size:.78rem !important;letter-spacing:.1em !important;}
.finland-map-wrap {border:1px solid #ad9767;box-shadow:0 6px 18px #283d2920;}
.region-btn {background:#f8f9f4;border-color:#dce0d3;border-radius:7px;color:#344939;padding:.58rem .75rem;}
.region-btn:hover,.region-btn.active {background:#e7eddf;border-color:#82977b;color:#284b35;}
.region-btn small {color:#74786c;}
.city-quick-btn {background:#faf7ef;border-color:#ded5be;color:#70603d;}
.city-quick-btn:hover {background:#f1ead9;border-color:#ad9767;transform:translateY(-1px);}
.calc-box {background:#fafbf6;border:1px solid #c6d0bc;border-top:3px solid #8f9d74;border-radius:17px;box-shadow:0 6px 22px #31472e08;margin:2rem 0 3rem;padding:1.8rem;}
.calc-step-pill {background:#e8edde;color:#536342;font-size:.67rem;letter-spacing:.09em;}
.calc-step-block {background:#fff;border-color:#e0e3d8;}
.calc-step-title {color:#344735;}
.calc-input {border-color:#d3d9ca;}
.calc-hero-card {background:linear-gradient(120deg,#294b37,#3d5a3e);}
.calc-profit-card {background:#eef3e8;border:1px solid #a8bb91;color:#2d4b30;}
.calc-profit-card.is-loss {background:#fbefec;border-color:#dbada2;color:#783e33;}
.calc-targets-bar {background:#f5f0e3;border-color:#e1d6b9;}
.calc-targets-heading,.ct-title {color:#77623a;}.calc-target-item {border-color:#e1d6b9;}
.grid {gap:1.4rem;margin-top:1.6rem;}
.card {background:#fffefa;border:1px solid #deded2;border-radius:13px;padding:1.5rem;box-shadow:0 3px 9px #2f423006,0 12px 28px #2f423006;transition:border-color .18s,box-shadow .18s,transform .18s;}
.card:hover {border-color:#b0bba4;box-shadow:0 9px 25px #2f423014;transform:translateY(-2px);}
.card h3 {font-family:Georgia,'Times New Roman',serif;font-size:1.4rem;font-weight:500;letter-spacing:-.025em;line-height:1.2;color:#263e2e;margin:.5rem 0 .65rem;}
.card-meta {font-size:.83rem;line-height:1.65;}.card-desc {color:#697063;font-size:.86rem;line-height:1.7;}
.card-actions {margin-top:1.1rem;padding-top:1rem;border-top:1px solid #ebeade;gap:.5rem;}
.badge {font-size:.66rem;font-weight:600;letter-spacing:.01em;padding:.21rem .55rem;margin-right:.25rem;}
.badge-ytj {color:#4a6245;background:#edf1e7;}.badge-kk {color:#7c6536;background:#f4eedf;}.badge-cat {color:#6a6e61;background:#f0f1e9;}
.btn {font-size:.78rem;padding:.48rem .7rem;}.btn-primary {background:#315e49;}.btn-outline {border-color:#d5d9cb;color:#4d5e4b;background:#fffefa;}
.btn-calc-card {background:#eaf0e3;border-color:#cedac2;color:#3e6142;}
.city-pill {background:#fffefa;border-color:#deded1;color:#465340;font-size:.83rem;}
.source-note {color:#727b69;font-size:.73rem;}
.ad-slot {min-height:110px;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:1.25rem;padding:1.1rem 1.5rem;background:linear-gradient(110deg,#f0eadb,#f7f5ec);border:1px solid #d7ccb1;border-radius:11px;margin:1.7rem 0 2rem;box-shadow:0 3px 12px #4b493405;}
.ad-slot .ad-slot-mark {width:48px;height:48px;border:1px solid #c2b185;border-radius:50%;display:grid;place-items:center;color:#8c7545;font-size:1.2rem;background:#ffffff65;}
.ad-slot > .ad-slot-copy {min-width:0;}.ad-slot .ad-label {font-size:.59rem;letter-spacing:.14em;margin:0 0 .18rem;color:#8a7953;}
.ad-slot h2 {font-family:Georgia,'Times New Roman',serif;font-size:1.4rem;font-weight:400;letter-spacing:-.025em;color:#3d4935;line-height:1.15;margin-bottom:.25rem;}
.ad-slot p {font-size:.8rem;line-height:1.5;color:#747260;max-width:650px;}.ad-slot .btn {white-space:nowrap;background:#fffdf7;border:1px solid #bfb08b;color:#675832;font-size:.8rem;padding:.65rem .9rem;}
.contact-panel {background:#fffefa;border-color:#dddfd0;border-radius:16px;box-shadow:0 6px 22px #30442f06;padding:1.8rem;}
.data-notice {background:#eae9de;border:1px solid #dbddcd;color:#68705f;}
footer {background:#243b2c;border-top:2px solid #a28d5e;color:#c0c8b6;}footer a {color:#f2ecd9;}
@media(max-width:860px) {.region-map-box {padding:1.4rem;gap:1.5rem;}}
@media(max-width:660px) {
 .hero {padding:2.6rem 0 3rem;}.hero p {font-size:.93rem;}.stats-bar {font-size:.75rem;gap:.65rem 1.1rem;}
 .ad-slot {grid-template-columns:38px minmax(0,1fr);gap:.65rem 1rem;padding:1rem 1.15rem;}
 .ad-slot .ad-slot-mark {width:36px;height:36px;font-size:1rem;}
 .ad-slot .btn {grid-column:2;justify-self:start;}.ad-slot h2 {font-size:1.25rem;}
 .region-map-box,.calc-box,.contact-panel {padding:1.15rem;}.card {padding:1.25rem;}
 .hero h1 {font-size:clamp(1.9rem,7vw,2.6rem);}.nav {gap:.8rem;}
}
@media(prefers-reduced-motion:reduce) {.card,.region-btn,.city-quick-btn {transition:none;}.card:hover,.city-quick-btn:hover {transform:none;}}

/* Second compact placement and the advertiser catalogue. */
.ad-slot-after-calc {background:linear-gradient(115deg,#263e31,#3d5542);border-color:#788566;box-shadow:0 8px 24px #243b2c16;margin-top:-1rem;}
.ad-slot-after-calc h2 {color:#fff8e9;}.ad-slot-after-calc p {color:#d1dac7;}.ad-slot-after-calc .ad-label {color:#d1bd87;}
.ad-slot-after-calc .ad-slot-mark {background:#ffffff08;border-color:#aa986a;color:#e2c98e;}
.sales-page {padding-top:2.4rem;padding-bottom:1.5rem;}.sales-page h2,.sales-page h3 {font-family:Georgia,'Times New Roman',serif;color:#2c4435;font-weight:400;}
.sales-eyebrow {font-size:.75rem!important;letter-spacing:.13em;text-transform:uppercase;color:#d7c28e!important;}
.sales-terms {max-width:850px;line-height:1.8;color:#686d5e;margin:.7rem 0 1.5rem;}
.sales-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;}
.sales-card {display:flex;flex-direction:column;gap:1rem;background:#fffefa;border:1px solid #d9dccf;border-radius:15px;padding:1.6rem;box-shadow:0 8px 22px #283d2908;}
.sales-card h2 {font-size:1.7rem;}.sales-card p {line-height:1.75;font-size:.9rem;color:#626a5b;}
.sales-card .sales-price {font-size:2.7rem;line-height:1.1;font-weight:700;color:#2b4934;letter-spacing:-.05em;}.sales-price span {font-size:.9rem;font-weight:400;letter-spacing:0;}
.sales-card-gold {border-color:#b99b52;background:linear-gradient(145deg,#fffdf5,#f5edda);}
.sales-card .sales-note,.sales-note {font-size:.8rem;color:#7b735d;line-height:1.7;}.sales-total {margin-top:auto;}
.sales-button {display:block;background:#31543d;color:#fff!important;padding:.9rem 1rem;font-size:.86rem;text-align:center;border-radius:7px;}.sales-button:hover {background:#243e2d;text-decoration:none;}
.sales-preview,.sales-info {margin-top:2.5rem;padding:1.8rem;background:#fffdf6;border:1px solid #ded9c8;border-radius:15px;}.sales-info p {line-height:1.8;margin:.8rem 0 1.5rem;}
.gold-preview-card {position:relative;max-width:480px;margin:2.2rem auto 1rem;padding:2rem;border:2px solid #b79748;border-radius:13px;background:linear-gradient(140deg,#fffdf8,#f3e7ca);box-shadow:0 8px 24px #8e753414;}
.gold-crown {position:absolute;top:-22px;left:24px;font-size:2.1rem;line-height:1;color:#a17a26;background:#fcf8ed;padding:0 .4rem;}
.gold-preview-card h3 {font-size:1.8rem;margin:.6rem 0;}.gold-preview-card p {line-height:1.7;color:#6d644c;}.gold-example-button {display:inline-block;margin-top:1rem;color:#785b1f;font-weight:700;}
@media(max-width:850px) {.sales-grid {grid-template-columns:minmax(0,1fr);}.sales-card {padding:1.3rem;}.sales-preview,.sales-info {padding:1.25rem;}.sales-page h1 {overflow-wrap:anywhere;}}

/* Each directory card presents prices and contact channels in the same order. */
.nav-links a.nav-business {display:inline-flex;align-items:center;background:#dfcd97;color:#263d2e;border:1px solid #eadbb2;border-radius:999px;padding:.6rem 1rem;font-weight:700;white-space:nowrap;}
.nav-links a.nav-business:hover {background:#f1e2b8;text-decoration:none;}
.card-body {display:flex;flex-direction:column;flex:1;min-width:0;}
.card-heading {min-height:10.5rem;}.card-heading .badge {margin-bottom:.25rem;}
.card-details {margin:0;font-size:.82rem;line-height:1.5;}
.detail-row {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.65rem;padding:.55rem 0;border-bottom:1px solid #e9e8dc;}
.detail-row dt {color:#606955;font-weight:500;}.detail-row dd {margin:0;text-align:right;font-weight:650;color:#2d4634;min-width:0;}
.detail-row a {color:#315b44;}.detail-missing {color:#929485;font-size:.77rem;font-weight:400;}
.card-prices {padding:.1rem .7rem;background:#f4f4eb;border:1px solid #e3e2d3;border-radius:8px;}
.card-prices .detail-row:last-child,.card-channels .detail-row:last-child {border-bottom:0;}
.card-price-note {font-size:.67rem;line-height:1.5;color:#817653;min-height:2.7rem;margin:.4rem 0 .2rem;}
.card-channels {margin:0 0 .9rem;}.card .card-desc {margin:.3rem 0 .7rem;font-size:.77rem;}
.card .card-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem;}
.card-actions .btn {text-align:center;white-space:normal;}.card-actions .btn-calc-card {grid-column:1 / -1;}
@media(max-width:660px) {.nav-links a.nav-business {padding:.45rem .8rem;}.card-heading {min-height:0;margin-bottom:1.2rem;}}