/*
Theme Name: LORE Realty Group
Theme URI: https://lorerealty.com
Author: LORE Realty Group
Description: Custom theme for LORE Realty Group of Keller Williams Realty Elite. Built from the 2024 LORE brand kit. Works with the LORE Core plugin (Listings, Team, Leads).
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: lore
*/
html,body{margin:0;padding:0}
img{max-width:100%;height:auto}

/* Layout: LORE brand kit (Olivia Seals, 2024). Black + gold, alternating with #F3F3F3 bands.
   Serif "LORE" voice (Times New Roman) for display, Montserrat for everything else.
   Deliberately single-theme: the brand is black and gold in every context. */
:root{
  --black:#000000; --coal:#111010; --gold:#EEC178; --bronze:#86704E; --light:#F3F3F3; --white:#FFFFFF;
  --ink:#141210; --muted:#5E5547; --muted-dark:#B9AE9C; --line:#DED8CD; --line-dark:#2A2621;
  --serif:"Times New Roman", Tinos, Times, Georgia, serif;
  --sans:Montserrat, "Helvetica Neue", Arial, system-ui, sans-serif;
  --wrap:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{background:var(--black);color:var(--light);font:16px/1.65 var(--sans)}

[id]{scroll-margin-top:96px}
.admin-bar .site-header{top:32px}@media (max-width:782px){.admin-bar .site-header{top:0}}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--gold);color:#000;padding:10px 14px}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:700;line-height:1.1;text-wrap:balance;margin:0}
h2{font-size:clamp(2rem,4.4vw,3.1rem)}
h3{font-size:1.4rem}
p{margin:0}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font:600 .74rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--bronze)}
.dark .eyebrow{color:var(--gold)}
.lede{max-width:60ch;font-size:1.04rem}
.light{background:var(--light);color:var(--ink)}
.light .lede{color:var(--muted)}
.dark{background:var(--black);color:var(--light)}
.dark .lede{color:var(--muted-dark)}
.ph{color:#9A6A12;border-bottom:1px dashed currentColor}
.dark .ph{color:var(--gold)}
.rule{display:block;width:72px;height:3px;background:var(--gold)}
.btn{display:inline-flex;align-items:center;gap:.5em;font:600 .82rem var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:1.05em 1.6em;border:1.5px solid transparent;text-decoration:none;cursor:pointer;border-radius:0}
.btn-gold{background:var(--gold);color:var(--black)}
.btn-gold:hover{background:#F5D29A}
.btn-line{border-color:currentColor;background:transparent;color:inherit}
.btn-dark{background:var(--black);color:var(--gold)}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* Header: team name and firm name shown together on every screen (NCREC Rule 58A .0105) */
.site-header{position:sticky;top:0;z-index:20;background:var(--black);border-bottom:1px solid var(--line-dark)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-width:0}
.brand img{width:62px;height:auto;mix-blend-mode:screen;flex:none}
.mark{display:grid;gap:2px}
.mark .word{display:flex;align-items:flex-end;gap:8px}
.mark b{font:700 1.65rem/0.9 var(--serif);letter-spacing:.02em;color:var(--white)}
.mark i{font:600 .58rem/1 var(--sans);letter-spacing:.32em;font-style:normal;color:var(--light);padding-bottom:3px}
.mark small{font:500 .7rem var(--sans);letter-spacing:.06em;color:var(--gold)}
nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0;font:600 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase}
nav a{text-decoration:none;color:var(--light)}
nav a:hover{color:var(--gold)}
.menu{display:none;position:relative}
.menu summary{list-style:none;cursor:pointer;font:600 .74rem var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:.7em 1em;border:1px solid var(--bronze);color:var(--gold)}
.menu summary::-webkit-details-marker{display:none}
.menu ul{position:absolute;right:0;top:calc(100% + 11px);background:var(--black);border:1px solid var(--line-dark);flex-direction:column;gap:0;padding:6px 0;min-width:210px}
.menu li a{display:block;padding:12px 20px}
@media (max-width:900px){nav.wide{display:none}.menu{display:block}}
@media (max-width:420px){.brand img{width:48px}.mark b{font-size:1.4rem}}

/* Hero */
.hero .wrap{width:100%;padding-block:64px 80px;display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(2.6rem,6vw,4.6rem);color:var(--white)}
.hero h1 em{font-style:italic;font-weight:400;color:var(--gold)}
.hero .sub{margin-top:24px;max-width:50ch;color:var(--muted-dark);font-size:1.06rem}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero .logo{justify-self:center;width:100%;max-width:360px}
.est{display:flex;align-items:center;gap:14px;margin-bottom:22px;font:600 .72rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
@media (max-width:780px){.hero .wrap{width:100%;grid-template-columns:1fr;padding-block:36px 56px}.hero .logo{max-width:220px;order:-1}}

/* Proof strip */
.proof{border-block:1px solid var(--line-dark);background:var(--coal)}
.proof .wrap{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-block:30px}
.stat b{display:block;font:700 clamp(1.9rem,3.6vw,2.6rem)/1 var(--serif);color:var(--gold);font-variant-numeric:tabular-nums lining-nums}
.stat span{display:block;color:var(--muted-dark);font-size:.82rem;margin-top:8px;letter-spacing:.02em}
.proof .src{grid-column:1/-1;font-size:.72rem;color:#8C8275}
@media (max-width:700px){.proof .wrap{width:100%;grid-template-columns:repeat(2,1fr)}}

section.band{padding-block:92px}
.head{display:grid;gap:16px;margin-bottom:48px}

/* Buy / Sell */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.path{display:grid;gap:18px;align-content:start;min-width:0;border-top:3px solid var(--black);padding-top:26px}
.steps{list-style:none;margin:4px 0 6px;padding:0;display:grid;gap:16px;counter-reset:s}
.steps li{display:grid;grid-template-columns:34px 1fr;gap:14px;counter-increment:s}
.steps li::before{content:counter(s);font:700 1.5rem/1 var(--serif);color:var(--bronze);padding-top:2px}
.steps b{display:block;font-weight:600}
.steps span{color:var(--muted);font-size:.93rem}
@media (max-width:820px){.paths{grid-template-columns:1fr;gap:56px}}

/* Forms (white card on black) */
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
form{display:grid;gap:14px;background:var(--white);color:var(--ink);padding:30px;border-top:4px solid var(--gold);color-scheme:light}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font:600 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
input,select,textarea{font:400 1rem var(--sans);letter-spacing:0;text-transform:none;padding:.75em .8em;border:1px solid var(--line);background:#FBFAF8;color:var(--ink);width:100%;border-radius:0}
textarea{min-height:110px;resize:vertical}
.note{font-size:.78rem;color:var(--muted)}
.sent{background:#FBF1DE;border-left:3px solid var(--gold);padding:12px 14px;font-size:.9rem;color:var(--ink)}
@media (max-width:820px){.split{grid-template-columns:1fr}}
@media (max-width:480px){.row2{grid-template-columns:1fr}form{padding:22px}}

/* Story */
.story{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.story blockquote{margin:0;font:italic 400 clamp(1.4rem,2.6vw,1.9rem)/1.35 var(--serif);color:var(--ink);border-left:3px solid var(--gold);padding-left:24px}
.story .body{display:grid;gap:16px;color:var(--muted)}
@media (max-width:820px){.story{grid-template-columns:1fr;gap:32px}}

/* Team */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:56px}
.person{display:grid;gap:14px;align-content:start;min-width:0}
.portrait{width:100%;aspect-ratio:4/5;max-width:100%;background:#E7E2D8;display:grid;place-items:center;color:#9A6A12;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;border:1px dashed #B8A27A}
.person .role{font:600 .72rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--bronze)}
.person p{color:var(--muted);font-size:.93rem}
.person .lic{font-size:.76rem}
@media (max-width:900px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.team{grid-template-columns:1fr}.portrait{max-width:320px}}

/* Join */
.perks{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.perk{border-top:1px solid var(--bronze);padding-top:20px;display:grid;gap:10px;align-content:start}
.perk h3{color:var(--white);font-size:1.3rem}
.perk p{color:var(--muted-dark);font-size:.93rem}
@media (max-width:820px){.perks{grid-template-columns:1fr;gap:28px}}

/* Reviews */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.quotes figure{margin:0;display:grid;gap:14px;align-content:start;background:var(--white);padding:28px}
.quotes figure p{font:italic 400 1.15rem/1.45 var(--serif)}
.quotes figcaption{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bronze)}
@media (max-width:820px){.quotes{grid-template-columns:1fr}}

/* Contact */
.lines{display:grid;gap:20px;margin-top:28px}
.lines span{display:block;font:600 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.lines b{font-weight:500;font-size:1.05rem;user-select:all}

footer{background:var(--black);color:var(--muted-dark);font-size:.82rem;border-top:1px solid var(--line-dark)}
footer .wrap{width:100%;padding-block:48px;display:grid;gap:16px}
footer .firm{font:700 1.15rem var(--serif);color:var(--white)}
footer p{max-width:82ch}
footer a{color:var(--gold)}
.eho{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--light)}
.eho svg{width:24px;height:24px}

/* ---------- WordPress additions ---------- */
.hp{position:absolute!important;left:-9999px;height:0;overflow:hidden}
.btn-sm{padding:.8em 1.2em;font-size:.72rem}

/* Listing cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{display:grid;background:var(--white);color:var(--ink);text-decoration:none;min-width:0;border:1px solid var(--line)}
.dark .card{border-color:var(--line-dark)}
.card .photo{position:relative;aspect-ratio:4/3;max-width:100%;background:#E7E2D8 center/cover no-repeat;overflow:hidden}
.card .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
@media (prefers-reduced-motion:no-preference){.card:hover .photo img{transform:scale(1.04)}}
.pill{position:absolute;left:12px;top:12px;font:700 .64rem var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:.55em .9em;background:var(--black);color:var(--gold)}
.pill.s-sold{background:var(--bronze);color:var(--white)}
.pill.s-under-contract{background:var(--gold);color:var(--black)}
.card .info{padding:20px 22px 22px;display:grid;gap:6px}
.card .price{font:700 1.6rem/1 var(--serif);font-variant-numeric:lining-nums}
.card .addr{font-weight:600;font-size:.95rem}
.card .city{color:var(--muted);font-size:.85rem}
.facts{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}
.facts b{color:var(--ink);font-weight:700}
.courtesy{font-size:.7rem;color:var(--muted);margin-top:6px}
@media (max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.empty{border:1px dashed var(--bronze);padding:32px;text-align:center;display:grid;gap:10px;justify-items:center}
.section-foot{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.section-foot .head{margin:0}

/* Page heads */
.page-head{padding-block:64px 56px;border-bottom:1px solid var(--line-dark)}
.page-head h1{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--white);margin-top:12px}
.page-head p{margin-top:16px}

/* Filters */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px}
.filters a{font:600 .72rem var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:.75em 1.1em;border:1px solid var(--line);text-decoration:none;color:var(--ink);background:var(--white)}
.filters a[aria-current="true"]{background:var(--black);color:var(--gold);border-color:var(--black)}

/* Single listing */
.listing-hero{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:start;padding-block:48px 72px}
.listing-hero .main-photo{aspect-ratio:3/2;max-width:100%;background:#1A1816;overflow:hidden}
.listing-hero .main-photo img{width:100%;height:100%;object-fit:cover;display:block}
.spec{background:var(--white);color:var(--ink);padding:28px;border-top:4px solid var(--gold);display:grid;gap:16px;position:sticky;top:110px}
.spec .price{font:700 2.4rem/1 var(--serif)}
.spec dl{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin:0}
.spec dt{font:600 .66rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.spec dd{margin:2px 0 0;font-weight:600;font-variant-numeric:tabular-nums}
@media (max-width:860px){.listing-hero{grid-template-columns:1fr}.spec{position:static}}

/* Article / page content */
.entry{max-width:740px;font-size:1.05rem;line-height:1.75}
.entry > * + *{margin-top:1.1em}
.entry h2{font-size:1.9rem;margin-top:1.6em}
.entry h3{font-size:1.4rem;margin-top:1.4em}
.entry a{color:#7A5A1E;text-underline-offset:3px}
.entry img,.entry figure{max-width:100%}
.entry figure{margin-left:0;margin-right:0}
.entry blockquote{margin-left:0;border-left:3px solid var(--gold);padding-left:20px;font:italic 1.25rem/1.5 var(--serif)}
.entry .wp-block-gallery{gap:8px}
.post-list{display:grid;gap:40px;max-width:760px}
.post-list article{display:grid;gap:10px;padding-bottom:36px;border-bottom:1px solid var(--line)}
.post-list h2{font-size:1.7rem}
.post-list h2 a{text-decoration:none}
.meta{font:600 .7rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--bronze)}
.pagination{display:flex;gap:8px;margin-top:48px;flex-wrap:wrap}
.pagination .page-numbers{padding:.6em .95em;border:1px solid var(--line);text-decoration:none;color:var(--ink);background:var(--white)}
.pagination .current{background:var(--black);color:var(--gold);border-color:var(--black)}
.alignwide{max-width:none}

.journal-excerpt{color:var(--muted);font-size:.9rem}
@media (max-width:480px){.est .rule{width:28px}.est{letter-spacing:.2em}}

/* Team photo */
.team-photo{margin:48px 0 0}
.team-photo img{display:block;width:100%;height:auto;border-radius:4px}

/* Postcards and agent cards */
.postcard{border:1px solid var(--gold);padding:28px;margin:0 0 40px;max-width:900px;background:var(--white);display:grid;gap:8px}
.postcard .pill{position:static;justify-self:start}
.pill.s-just-listed{background:var(--gold);color:var(--black)}
.pill.s-just-sold{background:var(--black);color:var(--gold)}
.postcard .pc-addr{font:700 1.5rem/1.2 var(--serif);margin:6px 0 0}
.postcard .pc-price{font:700 1.2rem var(--sans);color:var(--bronze);margin:0}
.postcard .pc-facts{margin:0;color:var(--muted)}
.agent-card{display:flex;gap:16px;align-items:center;margin-top:14px;padding-top:16px;border-top:1px solid var(--line);max-width:900px}
.agent-card img{width:76px;height:76px;border-radius:50%;object-fit:cover;object-position:top;flex:none}
.agent-card b{display:block;font-size:1.05rem}
.agent-label,.agent-role{display:block;font:600 .7rem/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bronze)}
.agent-card a{font-size:.9rem}

.bio-more summary{cursor:pointer;font:600 .8rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--bronze);margin-top:6px}
.bio-more[open] summary{margin-bottom:8px}

nav.wide a{white-space:nowrap}

/* Footer links */
footer .foot-links{line-height:2;max-width:none}
footer .foot-links span{color:var(--line-dark);margin:0 4px}

/* Header fit with 8 menu items */
.brand{flex:none}
.mark small,.mark .word{white-space:nowrap}
nav.wide ul{gap:clamp(14px,1.5vw,26px);letter-spacing:.12em}
@media (max-width:1180px){nav.wide{display:none}.menu{display:block}}