/*
Theme Name: One Duck Farm
Description: Single-property sale site for the 10.5-acre homestead at 2437 Hilham Highway, Hilham, TN.
Version: 1.5
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: oneduckfarm
*/
/* Layout: a field-guide to one property. Typographic hero over a hill horizon, then the land, the house, the numbers, and a showing request. */
:root{
  --bg:#f6f7f2; --surface:#ffffff; --fg:#1d2a22; --muted:#5b6a5f; --line:#d9dfd4;
  --pond:#2f5a4a; --honey:#c98a1b; --honey-soft:#f5e6c4; --hill-1:#c9d6c4; --hill-2:#a9bea4;
  --ph-a:#e9eee5; --ph-b:#dfe6da;
  --f-display:"Young Serif", Georgia, "Times New Roman", serif;
  --f-body:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-data:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#121915; --surface:#19221d; --fg:#e7ece6; --muted:#9aa89e; --line:#2c3a32;
  --pond:#8cc2aa; --honey:#e3a83c; --honey-soft:#3a2f17; --hill-1:#1f2c25; --hill-2:#283a30;
  --ph-a:#1c2620; --ph-b:#222e27; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#121915; --surface:#19221d; --fg:#e7ece6; --muted:#9aa89e; --line:#2c3a32;
  --pond:#8cc2aa; --honey:#e3a83c; --honey-soft:#3a2f17; --hill-1:#1f2c25; --hill-2:#283a30;
  --ph-a:#1c2620; --ph-b:#222e27; color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:17px;line-height:1.6}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px))}
h1,h2,h3{font-family:var(--f-display);font-weight:400;line-height:1.15;text-wrap:balance;margin:0}
h2{font-size:clamp(28px,4vw,38px)}
h3{font-size:21px}
p{margin:0}
.eyebrow{font-family:var(--f-data);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
a{color:var(--pond)}
a:focus-visible,button:focus-visible{outline:2px solid var(--honey);outline-offset:3px;border-radius:4px}
section{padding-block:64px}
section + section{border-top:1px solid var(--line)}

/* Hero */
.hero{position:relative;overflow:hidden;padding-block:56px 0}
.hero .status{display:inline-flex;align-items:center;gap:8px;background:var(--honey-soft);color:var(--fg);font-family:var(--f-data);font-size:13px;padding:5px 12px;border-radius:999px}
.hero .status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--honey)}
.hero h1{font-size:clamp(40px,8vw,84px);margin-top:20px;max-width:12ch}
.hero .addr{margin-top:14px;font-size:19px;color:var(--muted)}
.hero .price{font-family:var(--f-display);font-size:clamp(32px,5vw,46px);color:var(--pond);margin-top:26px}
.facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:18px;font-family:var(--f-data);font-size:15px}
.facts span b{font-weight:500;color:var(--fg)}
.facts span{color:var(--muted)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;gap:8px;font:600 15px var(--f-body);padding:12px 20px;border-radius:8px;text-decoration:none;border:1.5px solid var(--pond);color:var(--pond);background:transparent;cursor:pointer}
.btn.solid{background:var(--pond);color:var(--bg)}
.horizon{display:block;width:100%;height:120px;margin-top:40px}

/* Photos */
.photos-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px}
.photos-head p{color:var(--muted);max-width:52ch}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:28px}
.ph{position:relative;aspect-ratio:4/3;max-width:100%;border-radius:6px;overflow:hidden;
  background:repeating-linear-gradient(135deg,var(--ph-a) 0 14px,var(--ph-b) 14px 28px);
  display:flex;align-items:flex-end}
.ph.big{grid-column:span 2;grid-row:span 2}
.ph span{font-family:var(--f-data);font-size:12.5px;background:var(--surface);color:var(--fg);margin:10px;padding:4px 9px;border-radius:4px}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* Story */
.story{display:grid;grid-template-columns:1fr 1.3fr;gap:48px;align-items:start}
.story > *{min-width:0}
.story .lede{font-family:var(--f-display);font-size:clamp(22px,2.6vw,27px);line-height:1.35}
.story .body{display:grid;gap:16px;color:var(--fg)}
.story .body p{max-width:62ch}

/* Homestead features */
.features{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:32px;border-top:1px solid var(--line)}
.feat{padding:22px 22px 22px 0;border-bottom:1px solid var(--line);display:grid;gap:6px;align-content:start}
.feat .k{font-family:var(--f-data);font-size:13px;color:var(--honey)}
.feat p{color:var(--muted);font-size:15.5px}

/* Spec sheet */
.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:32px}
.specs > div{min-width:0}
.specs h3{margin-bottom:12px}
dl{margin:0;display:grid;gap:0}
dl div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15.5px}
dt{color:var(--muted)}
dd{margin:0;text-align:right;font-family:var(--f-data);font-size:14.5px;font-variant-numeric:tabular-nums}

/* Location */
.loc{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:28px}
.loc > div{min-width:0}
.loc ul{list-style:none;margin:0;padding:0}
.loc li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.loc li span:last-child{font-family:var(--f-data);font-size:14.5px;color:var(--muted);white-space:nowrap}

/* Contact */
.contact{background:var(--pond);color:var(--bg)}
.contact .wrap{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.contact .wrap > *{min-width:0}
.contact .eyebrow{color:inherit;opacity:.75}
.contact h2{margin-top:10px}
.contact p{margin-top:14px;opacity:.9;max-width:50ch}
.card{background:var(--surface);color:var(--fg);border-radius:10px;padding:24px;display:grid;gap:8px}
.card .name{font-family:var(--f-display);font-size:23px}
.card .org{color:var(--muted);font-size:15px}
.phone-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px}
.phone{font-family:var(--f-data);font-size:22px;user-select:all}
.copy{font:600 13px var(--f-body);padding:7px 12px;border-radius:6px;border:1.5px solid var(--pond);color:var(--pond);background:transparent;cursor:pointer}
.card .mls{font-family:var(--f-data);font-size:12.5px;color:var(--muted);margin-top:6px}

footer{padding-block:28px;color:var(--muted);font-size:13.5px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}

@media (max-width:860px){
  .gallery{grid-template-columns:repeat(2,1fr)}
  .story,.loc,.contact .wrap{grid-template-columns:1fr;gap:28px}
  .features,.specs{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  section{padding-block:48px}
  .features,.specs{grid-template-columns:1fr}
  .ph.big{grid-column:span 2;grid-row:span 1}
}
@media (prefers-reduced-motion:no-preference){.btn,.copy{transition:transform .15s}.btn:hover{transform:translateY(-1px)}}

/* WordPress additions */
.topbar{padding-block:14px;border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.brand{font-family:var(--f-display);font-size:20px;color:var(--fg);text-decoration:none}
.topnav{display:flex;gap:18px;font-size:15px;flex-wrap:wrap}
.topnav a{color:var(--muted);text-decoration:none}
.topnav a:hover{color:var(--pond)}
.hero-photo{margin:0;max-width:100%}
.hero-photo img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;border-radius:8px}
.photo-content{margin-top:28px}
.photo-content .wp-block-gallery{gap:10px !important}
.photo-content .wp-block-gallery figure.wp-block-image img{aspect-ratio:4/3;object-fit:cover;border-radius:6px}
.photo-content figcaption{font-family:var(--f-data);font-size:12.5px}
.photo-empty{margin-top:28px;padding:28px;border:1.5px dashed var(--line);border-radius:8px;color:var(--muted)}
.plain{padding-block:56px}
.plain .entry{max-width:720px}
.plain .entry h1{font-size:clamp(32px,5vw,48px);margin-bottom:20px}
.plain .entry p{margin-bottom:1em}

/* ---------- Photo albums (v1.1) ----------
   Each Heading + Gallery pair on the Home page becomes its own slider.
   Without JavaScript the galleries show as plain grids under their headings. */
.photo-content > h2,.photo-content > h3,.photo-content > h4{margin:44px 0 12px;font-size:24px}
.photo-content > h2:first-child,.photo-content > h3:first-child,.photo-content > h4:first-child{margin-top:8px}

.odf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.odf-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);color:var(--fg);text-decoration:none;font:500 14.5px var(--f-body)}
.odf-chip:hover{border-color:var(--pond);color:var(--pond)}
.odf-chip-n{font-family:var(--f-data);font-size:12px;color:var(--muted)}

.photo-content.odf-ready{margin-top:8px}
.odf-album{margin-top:48px;padding-block:0;border-top:0;scroll-margin-top:24px;min-width:0}
.odf-album + .odf-album{padding-top:40px;border-top:1px solid var(--line)}
.odf-album:first-child{margin-top:28px}
.odf-album-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px}
.odf-album-title{font-size:clamp(22px,3vw,26px)}
.odf-album-count{font-family:var(--f-data);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.odf-album-intro{margin-top:8px;color:var(--muted);max-width:62ch}
.odf-album-intro p + p{margin-top:8px}
.odf-album-note{margin-top:10px;color:var(--muted);font-size:15px}

.odf-frame{position:relative;margin-top:14px;border-radius:8px;overflow:hidden;background:var(--ph-a)}
.odf-track{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.odf-track::-webkit-scrollbar{display:none}
.odf-track:focus-visible{outline:2px solid var(--honey);outline-offset:-2px}
.odf-slide{flex:0 0 100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;aspect-ratio:3/2;max-height:72vh;min-width:0}
.odf-open{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.odf-open img{display:block;width:100%;height:100%;object-fit:contain}

.odf-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.88);color:#1d2a22;cursor:pointer;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.odf-nav svg{width:22px;height:22px}
.odf-nav:disabled{opacity:0;pointer-events:none}
.odf-prev{left:12px}
.odf-next{right:12px}
.odf-badge{position:absolute;right:12px;bottom:12px;font-family:var(--f-data);font-size:12.5px;padding:4px 9px;border-radius:4px;background:rgba(18,25,21,.72);color:#fff;pointer-events:none}

.odf-caption{margin-top:10px;font-family:var(--f-data);font-size:13px;color:var(--muted)}
.odf-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.odf-thumb{flex:0 0 auto;width:84px;aspect-ratio:4/3;padding:0;border:2px solid transparent;border-radius:5px;overflow:hidden;background:var(--ph-a);cursor:pointer;opacity:.6}
.odf-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.odf-thumb:hover{opacity:.9}
.odf-thumb.is-current{border-color:var(--honey);opacity:1}

.odf-noscroll{overflow:hidden}
.odf-viewer{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#0d120f;color:#e7ece6;display:none;grid-template-rows:auto 1fr auto}
.odf-viewer[open]{display:grid}
.odf-viewer::backdrop{background:#0d120f}
.odf-v-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px, env(safe-area-inset-left, 0px))}
.odf-v-info{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;min-width:0}
.odf-v-title{font-family:var(--f-display);font-size:19px}
.odf-v-count{font-family:var(--f-data);font-size:13px;color:#9aa89e}
.odf-v-close{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.odf-v-close svg{width:22px;height:22px}
.odf-v-stage{position:relative;min-height:0;display:grid;place-items:center;padding:0 8px}
.odf-v-img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.odf-v-cap{padding:10px 16px 16px;text-align:center;font-family:var(--f-data);font-size:13.5px;color:#c5cfc7}

@media (max-width:560px){
  .odf-nav{width:38px;height:38px}
  .odf-prev{left:8px}.odf-next{right:8px}
  .odf-thumb{width:68px}
  .odf-viewer .odf-nav{display:none}
}
@media (prefers-reduced-motion:no-preference){.odf-thumb,.odf-chip{transition:opacity .15s,border-color .15s,color .15s}}

/* Listing links (v1.5) */
.card-links{display:grid;gap:6px;margin-top:10px;padding-top:12px;border-top:1px solid var(--line);font-size:15px}
.card-links a{color:var(--pond);font-weight:600;text-decoration:none}
.card-links a:hover{text-decoration:underline}
.foot-links a{color:var(--muted)}
.foot-links a:hover{color:var(--pond)}
