/*
Theme Name: Mountain City Tennessee
Description: Rustic mountain theme for mountaincitytennessee.com: town guide, business directory, events and news.
Version: 1.4.0
Author: GreaterLink
Text Domain: mct
*/

:root{--paper:#F6F0E4;--cream:#FBF7EF;--card:#FFFDF8;--ink:#2B2620;--muted:#6E6457;--line:#E3D8C5;--forest:#2F4A3A;--pine:#1F3329;--red:#9E3B2C;--red2:#B8503E;--wood:#6B4A2F;--gold:#C99A3B;--shadow:0 10px 30px rgba(60,40,20,.12)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--paper);color:var(--ink);font:17px/1.6 "Source Sans 3",system-ui,sans-serif}
a{color:inherit;text-decoration:none}
h1,h2,h3,.serif{font-family:Alegreya,Georgia,serif;letter-spacing:-.01em}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
/* header */
.top{background:var(--cream);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:28px;height:78px}
.brand{display:flex;align-items:center;gap:12px}
.brand svg{flex:none}
.brand b{display:block;font-family:Alegreya,serif;font-size:25px;line-height:1;color:var(--pine)}
.brand b em{font-style:normal;color:var(--red)}.brand small{display:block;font-size:10px;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-top:5px}
.nav{display:flex;gap:24px;font-weight:600;font-size:15px;color:var(--pine)}
.nav a:hover{color:var(--red)}
.cta{margin-left:auto;display:flex;gap:10px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:8px;font-weight:700;font-size:15px;white-space:nowrap}
.btn.red{background:var(--red);color:#fff;box-shadow:0 4px 0 #7A2A1F}
.btn.red:hover{background:var(--red2)}
.btn.line{border:2px solid var(--forest);color:var(--forest)}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid var(--forest);color:var(--forest);border-radius:8px;font-size:20px;line-height:1;padding:7px 11px;cursor:pointer}
/* hero */
.hero{position:relative;min-height:600px;display:flex;align-items:center;color:#fff;background:#223 url(img/hero.webp) center/cover}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,24,18,.78),rgba(20,24,18,.35) 60%,rgba(20,24,18,.1))}
.hero .wrap{position:relative;width:100%}
.eyebrow{display:inline-block;font-size:13px;letter-spacing:.28em;font-weight:700;color:#F3D9A4;text-transform:uppercase;border-bottom:2px solid var(--gold);padding-bottom:4px}
.hero h1{font-size:68px;line-height:1.02;margin:18px 0 16px;max-width:760px;font-weight:800}
.hero p{font-size:20px;max-width:600px;color:#F1EADB}
.search{display:flex;background:var(--cream);border-radius:12px;padding:6px;max-width:640px;margin-top:30px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.search select,.search input{border:0;background:none;font:inherit;color:var(--ink);padding:12px 14px;outline:none}
.search select{border-right:1px solid var(--line);color:var(--forest);font-weight:700}
.search input{flex:1;min-width:0}
.ridge{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:70px;color:var(--paper)}.hero{overflow:hidden}
/* category tiles */
.cats{margin-top:-10px;position:relative;z-index:2}
.cats .grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.cat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 12px;text-align:center;box-shadow:var(--shadow);transition:.2s}
.cat:hover{transform:translateY(-3px);border-color:var(--gold)}
.cat .ic{width:48px;height:48px;margin:0 auto 10px;border-radius:50%;background:#EFE4D0;display:grid;place-items:center;color:var(--red)}
.cat b{display:block;font-family:Alegreya,serif;font-size:19px;color:var(--pine)}
.cat span{font-size:13px;color:var(--muted)}
/* sections */
section{padding:72px 0}
.sec-h{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}
.sec-h h2{font-size:42px;color:var(--pine);line-height:1.1}
.sec-h p{color:var(--muted);max-width:560px;margin-top:6px}
.sec-h a{color:var(--red);font-weight:700;white-space:nowrap}
.kicker{font-size:12px;letter-spacing:.26em;font-weight:700;color:var(--red);text-transform:uppercase}
.explore{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:260px 260px;gap:16px}
.tile{position:relative;border-radius:16px;overflow:hidden;color:#fff;display:flex;align-items:flex-end;padding:22px;background-size:cover;background-position:center;box-shadow:var(--shadow)}
.tile:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,18,12,.8),rgba(15,18,12,0) 60%)}
.tile>div{position:relative}
.tile.big{grid-row:span 2}
.tile b{display:block;font-family:Alegreya,serif;font-size:26px;line-height:1.1}
.tile span{font-size:14px;color:#EDE4D2}
/* events */
.band{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.events{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.event{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.event .ph{height:170px;background-size:cover;background-position:center;position:relative}
.date{position:absolute;left:16px;bottom:-22px;background:var(--red);color:#fff;border-radius:10px;padding:6px 12px;text-align:center;font-weight:700;line-height:1.1;box-shadow:0 6px 16px rgba(0,0,0,.2)}
.date small{display:block;font-size:12px;letter-spacing:.12em}
.date b{font-size:24px;font-family:Alegreya,serif}
.event .bd{padding:34px 18px 18px}
.event h3{font-size:22px;color:var(--pine);line-height:1.2}
.event p{font-size:15px;color:var(--muted);margin-top:6px}
.tag{display:inline-block;font-size:12px;font-weight:700;color:var(--forest);background:#E6EBDD;border-radius:999px;padding:3px 10px;margin-top:10px}
/* directory */
.dir{display:grid;grid-template-columns:1fr 1.2fr;gap:36px;align-items:center}
.dir .ph{height:420px;border-radius:18px;background:url(img/mainstreet.webp) center/cover;box-shadow:var(--shadow);position:relative}
.dir .ph:after{content:"Shop Local";position:absolute;left:20px;top:20px;background:var(--gold);color:var(--pine);font-weight:800;font-family:Alegreya,serif;font-size:20px;padding:6px 14px;border-radius:8px}
.dircats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}
.dircats a{display:flex;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 16px;font-weight:600;color:var(--pine)}
.dircats a:hover{border-color:var(--red)}
.dircats a span{color:var(--muted);font-weight:400}
/* news */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.story{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow)}
.story .kicker{font-size:11px}
.story h3{font-size:21px;color:var(--pine);margin:8px 0 6px;line-height:1.25}
.story p{font-size:15px;color:var(--muted)}
/* submit band */
.submit{background:var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40'%3E%3Cpath d='M0 40 L30 12 L50 26 L75 4 L120 40Z' fill='%23ffffff' fill-opacity='.04'/%3E%3C/svg%3E");color:#fff;border-radius:18px;padding:40px;display:grid;grid-template-columns:1.3fr 1fr;gap:30px;align-items:center}
.submit h2{font-size:36px;line-height:1.1}
.submit p{color:#DCE5D6;margin-top:8px}
.submit .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.btn.cream{background:var(--cream);color:var(--pine)}
/* footer */
footer{background:var(--pine);color:#CFD8C8;margin-top:72px;padding:56px 0 26px;font-size:15px}
footer .cols{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:28px}
footer h4{color:#fff;font-family:Alegreya,serif;font-size:19px;margin-bottom:10px}
footer li{list-style:none;margin:6px 0}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:34px;padding-top:18px;font-size:13px;display:flex;justify-content:space-between}
.sample{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;background:#F3E3C2;color:var(--wood);border-radius:4px;padding:2px 6px;margin-left:6px;vertical-align:middle}
@media(max-width:1000px){.nav{display:none}.cats .grid{grid-template-columns:repeat(3,1fr)}.explore{grid-template-columns:1fr 1fr;grid-template-rows:220px 220px 220px}.tile.big{grid-row:span 1;grid-column:span 2}.events,.news{grid-template-columns:1fr}.dir,.submit{grid-template-columns:1fr}.hero h1{font-size:46px}footer .cols{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.top .wrap{height:auto;padding-top:12px;padding-bottom:12px;gap:12px}.brand svg{width:34px;height:30px}.brand b{font-size:19px;white-space:nowrap}.brand small{display:none}.cta{display:none}.menu-btn{display:block}.cats .grid{grid-template-columns:repeat(2,1fr)}.explore{grid-template-columns:1fr}.tile.big{grid-column:span 1}.sec-h{flex-direction:column;align-items:start}.sec-h h2{font-size:32px}.hero h1{font-size:38px}.search{flex-wrap:wrap}.search select{border-right:0;border-bottom:1px solid var(--line);width:100%}.submit .acts{justify-content:flex-start}footer .cols{grid-template-columns:1fr}}

/* ---- Site-wide additions ---- */
.top{position:sticky;top:0;z-index:20}
.nav a.on{color:var(--red)}
.mob-nav{display:none}
@media(max-width:1000px){.menu-btn{display:block}.cta{display:none}.top.open .mob-nav{display:flex;flex-direction:column;gap:2px;padding:10px 24px 18px;background:var(--cream);border-bottom:1px solid var(--line)}.mob-nav a{padding:10px 0;font-weight:700;color:var(--pine);border-bottom:1px solid var(--line)}.mob-nav a.cta-m{color:var(--red)}}
.page-hero{position:relative;background:var(--pine) center/cover;color:#fff;padding:70px 0 90px;overflow:hidden}
.page-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,24,18,.82),rgba(20,24,18,.45))}
.page-hero .wrap{position:relative}
.page-hero h1{font-size:52px;line-height:1.05;margin:12px 0 10px;max-width:820px}
.page-hero p{font-size:19px;color:#EDE4D2;max-width:680px}
.page-hero .search{margin-top:22px}
.crumbs{font-size:14px;color:#E5DBC6;margin-bottom:4px}.crumbs a{color:#F3D9A4}.crumbs span{margin:0 6px;opacity:.7}
.content{max-width:820px;margin:0 auto}
.content>*+*{margin-top:1.05em}
.content h2{font-size:32px;color:var(--pine);margin-top:1.6em;line-height:1.15}
.content h3{font-size:23px;color:var(--pine);margin-top:1.3em}
.content a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.content ul,.content ol{padding-left:1.3em}.content li+li{margin-top:.35em}
.content .note{background:var(--cream);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:10px;padding:14px 18px;font-size:16px}
.card-list{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.info-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:var(--shadow)}
.info-card h3{margin:0 0 6px;font-size:22px}.info-card p{color:var(--muted);font-size:16px;margin:0}
.info-card .more{display:inline-block;margin-top:10px;font-weight:700;color:var(--red);text-decoration:none}
/* directory */
.dir-layout{display:grid;grid-template-columns:280px 1fr;gap:30px;align-items:start}
.side{position:sticky;top:100px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow)}
.side h4{font-family:Alegreya,serif;font-size:19px;color:var(--pine);margin:4px 6px 10px}
.side a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-weight:600;color:var(--pine);font-size:15px}
.side a:hover,.side a.on{background:#EFE4D0;color:var(--red)}
.side a span.n{margin-left:auto;font-size:12px;color:var(--muted);background:var(--paper);border-radius:999px;padding:1px 8px}
.side .ic{color:var(--red);display:grid}
.biz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.biz{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;transition:.2s}
.biz:hover{border-color:var(--gold);transform:translateY(-2px)}
.biz .cat-tag{font-size:12px;font-weight:700;color:var(--red);letter-spacing:.08em;text-transform:uppercase}
.biz h3{font-size:23px;color:var(--pine);line-height:1.15}
.biz p{color:var(--muted);font-size:15px}
.biz .meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--ink);margin-top:4px}
.biz .meta span{display:inline-flex;align-items:center;gap:6px}.biz .meta svg{width:16px;height:16px;color:var(--red)}
.empty{background:var(--card);border:2px dashed var(--line);border-radius:16px;padding:40px;text-align:center}
.empty h3{font-size:26px;color:var(--pine)}.empty p{color:var(--muted);max-width:520px;margin:8px auto 18px}
.detail{display:grid;grid-template-columns:1fr 340px;gap:32px;align-items:start}
.facts{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow);position:sticky;top:100px}
.facts h4{font-family:Alegreya,serif;font-size:21px;color:var(--pine);margin-bottom:10px}
.facts .row{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:15px}
.facts .row:first-of-type{border-top:0}
.facts .row svg{flex:none;width:20px;height:20px;color:var(--red);margin-top:2px}
.facts .row a{color:var(--red);word-break:break-word}
.facts .btn{width:100%;justify-content:center;margin-top:12px}
.hero-img{width:100%;border-radius:16px;box-shadow:var(--shadow);margin-bottom:24px}
/* events list */
.ev-list{display:flex;flex-direction:column;gap:16px}
.ev-row{display:grid;grid-template-columns:90px 1fr;gap:20px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);align-items:center}
.ev-row .date{position:static;box-shadow:none}
.ev-row h3{font-size:23px;color:var(--pine)}.ev-row p{color:var(--muted);font-size:15px}
.ev-row .when{font-weight:700;color:var(--wood);font-size:15px}
/* news */
.story a h3:hover{color:var(--red)}
.story .date-line{font-size:13px;color:var(--muted);margin-top:10px}
.story .thumb{display:block;margin:-22px -22px 16px;border-radius:14px 14px 0 0;overflow:hidden;aspect-ratio:3/2;background:#EFE4D0}.story .thumb img{width:100%;height:100%;object-fit:cover}
.pager{margin-top:30px;text-align:center}.pager .page-numbers{display:inline-block;padding:8px 14px;border:1px solid var(--line);border-radius:8px;margin:0 3px;background:var(--card)}.pager .current{background:var(--red);color:#fff;border-color:var(--red)}
/* forms */
.mct-form{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-bottom:22px}
.fld.full{grid-column:1/-1}
.fld label{display:block;font-weight:700;color:var(--pine);font-size:15px;margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid #D6C9B2;border-radius:9px;padding:11px 12px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.fld small{display:block;color:var(--muted);font-size:13px;margin-top:4px}
.req{color:var(--red)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.btn.big{padding:14px 26px;font-size:16px;border:0;cursor:pointer}
.notice{border-radius:12px;padding:16px 20px;margin-bottom:18px;font-weight:600}
.notice.ok{background:#E3EEDC;color:#2F4A3A;border:1px solid #B9D0AD}
.notice.bad{background:#F6E0DA;color:#8A2F22;border:1px solid #E3B3A7}
.btn{border:0;cursor:pointer;font-family:inherit}
@media(max-width:1000px){.dir-layout,.detail{grid-template-columns:1fr}.side,.facts{position:static}.card-list,.biz-grid{grid-template-columns:1fr}.page-hero h1{font-size:40px}}
@media(max-width:600px){.grid2{grid-template-columns:1fr}.page-hero{padding:48px 0 70px}.page-hero h1{font-size:32px}.ev-row{grid-template-columns:1fr}.mct-form{padding:20px}.empty{padding:28px 18px}}

/* ---- History (v1.1.0) ---- */
.hist-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:18px 0 10px}
.hcard{display:grid;grid-template-columns:150px 1fr;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none!important;transition:.2s}
.hcard:hover{border-color:var(--gold);transform:translateY(-2px)}
.hcard .img{background-size:cover;background-position:center top;min-height:130px}
.hcard .bd{padding:16px 18px}.hcard b{display:block;font-family:Alegreya,serif;font-size:21px;color:var(--pine);line-height:1.15}.hcard .bd span{display:block;color:var(--muted);font-size:15px;margin-top:4px}
.timeline{list-style:none;padding:0!important;margin:20px 0;position:relative}
.timeline:before{content:"";position:absolute;left:110px;top:6px;bottom:6px;width:3px;background:linear-gradient(var(--gold),var(--red));border-radius:3px}
.timeline li{display:grid;grid-template-columns:110px 1fr;gap:26px;position:relative;padding:10px 0;margin:0!important}
.timeline li:before{content:"";position:absolute;left:104px;top:18px;width:15px;height:15px;border-radius:50%;background:var(--cream);border:3px solid var(--red)}
.timeline .yr{font-family:Alegreya,serif;font-weight:800;color:var(--red);font-size:19px;text-align:right;padding-top:4px;line-height:1.2}
.timeline p{margin:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.timeline p a{white-space:nowrap}
.hfig{margin:1.4em 0}.hfig img{width:100%;height:auto;border-radius:14px;box-shadow:var(--shadow);display:block;border:6px solid #fff}
.hfig figcaption{font-size:15px;color:var(--muted);margin-top:8px;font-style:italic}
.hfig .credit{display:block;font-style:normal;font-size:12px;color:#8C8171;margin-top:3px}.hfig .credit a{color:#8C8171}
.sources{margin-top:2.2em;padding:18px 22px;background:var(--cream);border:1px solid var(--line);border-radius:12px;font-size:15px}
.sources h2{font-size:22px!important;margin:0 0 6px!important}.sources li{color:var(--muted)}
.hist-band{background:var(--pine);color:#fff;border-radius:18px;overflow:hidden;display:grid;grid-template-columns:1fr 1.1fr}
.hist-band .ph{background-size:cover;background-position:center top;min-height:340px}
.hist-band .bd{padding:40px}.hist-band h2{font-size:38px;line-height:1.1}.hist-band p{color:#DCE5D6;margin:10px 0 18px}
.hist-band ul{list-style:none;padding:0;margin:0 0 22px}.hist-band li{padding:7px 0;border-top:1px solid rgba(255,255,255,.12)}.hist-band li a{color:#F3D9A4;font-weight:600}
@media(max-width:1000px){.hist-cards{grid-template-columns:1fr}.hist-band{grid-template-columns:1fr}.hist-band .ph{min-height:260px}}
@media(max-width:600px){.hcard{grid-template-columns:110px 1fr}.timeline:before{left:8px}.timeline li{grid-template-columns:1fr;gap:6px;padding-left:30px}.timeline li:before{left:2px;top:14px}.timeline .yr{text-align:left}.hist-band .bd{padding:26px}.hist-band h2{font-size:30px}}
/* v1.1.1: timeline dot sits between year and text; header never wraps */
.timeline:before{left:127px}
.timeline li{grid-template-columns:110px 1fr;gap:36px}
.timeline li:before{left:120px}
.brand b,.nav a{white-space:nowrap}
@media(max-width:1320px){.top .wrap{gap:20px}.nav{gap:18px;font-size:14.5px}}
@media(max-width:1180px){.cta .btn.line{display:none}}
@media(max-width:600px){.timeline:before{left:8px}.timeline li{grid-template-columns:1fr;gap:6px;padding-left:30px}.timeline li:before{left:2px}}
.nav{gap:19px}.top .wrap{gap:22px}

/* ---- Business photos & logos (v1.2.0) ---- */
.biz{position:relative;overflow:hidden}
.biz.has-photo{padding-top:0}
.biz-photo{display:block;margin:0 -20px 12px;aspect-ratio:16/9;background:#EFE4D0;overflow:hidden}
.biz-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:.3s}
.biz:hover .biz-photo img{transform:scale(1.03)}
.logo-wrap{display:block;width:64px;height:64px;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 12px rgba(60,40,20,.15);overflow:hidden;flex:none}
.logo-wrap img{width:100%;height:100%;object-fit:contain;padding:4px;display:block}
.biz.has-photo .logo-wrap{position:relative;z-index:1;margin-top:-44px}
.biz.has-logo:not(.has-photo) .logo-wrap{margin-bottom:4px}
.facts-logo-wrap{display:flex;justify-content:center;margin:-4px 0 12px}
.facts-logo{max-width:160px;max-height:120px;width:auto;height:auto;object-fit:contain;border-radius:10px;background:#fff;border:1px solid var(--line);padding:8px}
.hero-img{width:100%;height:auto;border-radius:16px;box-shadow:var(--shadow);margin:0 0 24px;border:6px solid #fff}
