/* ==========================================================================
   Deere Street Assemblage — land sale marketing site
   Palette and type match deere_sign_72x36.svg (the roadside sign).
   No webfonts, no libraries. Mobile-first.
   ========================================================================== */

:root{
  --navy:#0F2A44;
  --navy-2:#16395B;
  --navy-9:#0A1E31;
  --amber:#E8B04B;
  --amber-ink:#8C6210;      /* amber darkened to pass contrast on white */
  --amber-line:#B07C12;
  --ink:#12202E;
  --ink-2:#41546A;
  --ink-3:#5A6B7E;          /* 5.0:1 on the tint, 5.4:1 on white — WCAG AA */
  --tint:#F4F6F8;
  --line:rgba(15,42,68,.14);
  --line-2:rgba(15,42,68,.28);
  --white:#fff;

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Helvetica,Arial,sans-serif;
  --wrap:1120px;
  --pad:clamp(20px,5vw,40px);
  --sec-y:clamp(56px,9vw,104px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(16px,.4vw + 15px,17px);
  line-height:1.62;
  color:var(--ink);
  background:var(--white);
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}
img,svg,iframe{max-width:100%}
img{height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{margin:0;line-height:1.1;letter-spacing:-.015em}
p{margin:0 0 1em}
ul,ol,dl{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}

.skip{position:absolute;left:-9999px;top:0;background:var(--amber);color:var(--navy);
  padding:12px 18px;font-weight:700;z-index:100}
.skip:focus{left:8px;top:8px}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid var(--amber);outline-offset:2px;border-radius:1px;
}

/* ------------------------------- type ---------------------------------- */
.eyebrow{
  font-size:12px;font-weight:700;letter-spacing:.19em;text-transform:uppercase;
  color:var(--amber-ink);margin:0 0 14px;
}
.eyebrow--amber{color:var(--amber)}
.eyebrow--tight{margin-top:clamp(40px,6vw,64px)}

.h2{font-size:clamp(27px,3.4vw,41px);font-weight:800;color:var(--navy);margin-bottom:.5em;max-width:20ch}
.h2--onnavy{color:var(--white)}
.h3{font-size:17px;font-weight:800;color:var(--navy);letter-spacing:.005em;margin:0 0 .55em}
.h3--onnavy{color:var(--amber)}

.lede{font-size:clamp(17px,1.4vw,19px);color:var(--ink-2);max-width:62ch;margin-bottom:2em}
.lede--onnavy{color:rgba(255,255,255,.76)}
.microcopy{font-size:13.5px;line-height:1.55;color:var(--ink-3);max-width:70ch;margin:0}

.rule{border:0;border-top:1px solid var(--line);margin:0}
.rule--onnavy{border-top-color:rgba(232,176,75,.45);max-width:340px;margin:26px 0}

.sec{padding-block:var(--sec-y)}
.sec--tint{background:var(--tint);border-block:1px solid var(--line)}
.sec--navy{background:var(--navy);color:var(--white)}

/* ------------------------------ buttons -------------------------------- */
.btn{
  display:inline-block;background:var(--navy);color:var(--white);
  font:700 15px/1 var(--sans);letter-spacing:.03em;
  padding:17px 26px;border:2px solid var(--navy);border-radius:0;
  text-decoration:none;cursor:pointer;text-align:center;
  transition:background .14s ease,color .14s ease,border-color .14s ease;
}
.btn:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn--amber{background:var(--amber);border-color:var(--amber);color:var(--navy)}
.btn--amber:hover{background:#F0C067;border-color:#F0C067;color:var(--navy)}
.btn--sm{padding:10px 15px;font-size:13px}
.btn--full{width:100%;padding-block:19px;font-size:16px}

.linkq{
  display:inline-flex;align-items:center;min-height:44px;
  color:var(--white);text-decoration:none;font-size:14.5px;
  font-weight:600;letter-spacing:.02em;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.4);
}
.linkq:hover{box-shadow:inset 0 -1px 0 var(--amber);color:var(--amber)}

/* ------------------------------ topbar --------------------------------- */
.topbar{
  position:fixed;inset:0 0 auto;z-index:40;background:rgba(15,42,68,.97);
  border-bottom:1px solid rgba(232,176,75,.35);
  transform:translateY(-102%);transition:transform .22s ease;
}
.topbar.is-on{transform:none}
@supports (backdrop-filter:blur(6px)){.topbar{backdrop-filter:blur(6px)}}
.topbar__in{
  max-width:var(--wrap);margin-inline:auto;padding:9px var(--pad);
  display:flex;align-items:center;gap:14px;
}
.topbar__name{color:var(--white);font-weight:800;font-size:14px;letter-spacing:.01em}
.topbar__spec{
  color:var(--amber);font-size:11.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;margin-right:auto;
}
@media (max-width:640px){
  .topbar__spec{display:none}
  .topbar__name{margin-right:auto;font-size:13px}
}

/* -------------------------------- hero --------------------------------- */
.hero{background:var(--navy);color:var(--white);padding:clamp(18px,3vw,26px)}
.hero__frame{
  border:2px solid rgba(232,176,75,.75);
  padding-block:clamp(48px,10vw,104px);
}
.hero__h1{
  font-size:clamp(42px,9.2vw,88px);font-weight:900;letter-spacing:-.03em;
  line-height:.98;color:var(--white);margin:0 0 22px;
}
.hero__spec{
  font-size:clamp(15px,2.1vw,22px);font-weight:800;color:var(--amber);
  letter-spacing:.03em;margin:0;
}
.hero__sub{font-size:clamp(14.5px,1.5vw,17px);color:rgba(255,255,255,.78);margin:0 0 20px;max-width:52ch}
.hero__pitch{
  display:inline-block;font-size:clamp(14px,1.5vw,16.5px);font-weight:800;
  color:var(--amber);letter-spacing:.05em;text-transform:uppercase;
  border:1px solid rgba(232,176,75,.5);padding:9px 15px;margin:0 0 34px;
}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin:0}

/* --------------------------- rendering band ---------------------------- */
.band{margin:0;background:var(--navy-9)}
.band img{width:100%;aspect-ratio:1800/816;object-fit:cover}
.band__cap{
  max-width:var(--wrap);margin-inline:auto;padding:14px var(--pad) 18px;
  font-size:12.5px;line-height:1.5;color:rgba(255,255,255,.62);
}

/* ------------------------------- prose --------------------------------- */
.prose{display:grid;gap:clamp(30px,4vw,50px)}
@media (min-width:800px){.prose{grid-template-columns:1fr 1fr;gap:clamp(34px,4vw,58px) clamp(40px,5vw,72px)}}
.prose__col{border-top:2px solid var(--navy);padding-top:18px}
.prose__col p{color:var(--ink-2);margin-bottom:.95em}
.prose__col p:last-child{margin-bottom:0}
.prose__col strong{color:var(--ink);font-weight:700}

/* ---------------------------- facts grid ------------------------------- */
.facts{
  display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--line-2);border-left:1px solid var(--line-2);
  margin-bottom:26px;background:var(--white);
}
@media (min-width:560px){.facts{grid-template-columns:1fr 1fr}}
@media (min-width:900px){.facts{grid-template-columns:repeat(4,1fr)}}
.fact{
  border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  padding:18px 20px 16px;
}
.fact dt{
  font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:9px;
}
.fact dd{
  margin:0;font-size:clamp(20px,2.1vw,25px);font-weight:800;color:var(--navy);
  letter-spacing:-.02em;line-height:1.12;
}
.fact__note{margin:7px 0 0;font-size:12.5px;line-height:1.42;color:var(--ink-3)}

/* ----------------------------- site plan ------------------------------- */
.plan{margin:0 0 8px}
.plan__stage{
  border:1px solid var(--line-2);background:var(--white);
  padding:clamp(10px,2.5vw,22px);
  overflow-x:auto;                    /* diagram pans inside its own box … */
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;      /* … without ever scrolling the page */
}
/* min-width keeps the smallest labels above ~11px on a phone. Below roughly
   460px of stage width the diagram pans horizontally instead of shrinking. */
.plan__svg{display:block;width:100%;min-width:420px;max-width:560px;height:auto;margin-inline:auto}
.plan__hint{
  display:none;font-size:11.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);margin:9px 0 0;
}
@media (max-width:520px){.plan__hint{display:block}}
.plan__cap{
  font-size:12.5px;line-height:1.55;color:var(--ink-3);
  margin-top:14px;max-width:78ch;
}
.plan__cap strong{color:var(--ink-2)}

/* SVG label classes. Sizes are in viewBox units (600 wide); at the 420px
   floor above they land between 11px and 22px on screen. */
.pl{font-family:var(--sans);fill:var(--navy)}
.pl--hd{font-size:21px;font-weight:800;letter-spacing:.01em}
.pl--sm{font-size:17px;font-weight:700;letter-spacing:.07em}
.pl--xs{font-size:16px;font-weight:600;letter-spacing:.02em}
.pl--mut{fill:var(--ink-3);font-weight:700;letter-spacing:.08em}
.pl--dim{font-size:16px;font-weight:800;letter-spacing:.09em}
.pl--env{font-size:16px;font-weight:800;letter-spacing:.13em;fill:var(--amber-ink)}
.pl--envbig{font-size:33px;font-weight:900;letter-spacing:-.01em;fill:var(--navy)}
.pl--peak{font-size:15px;font-weight:800;letter-spacing:.06em;fill:var(--amber-ink)}
.pl--st{font-size:24px;font-weight:900;letter-spacing:.1em;fill:#fff}
.pl--sto{font-size:13px;font-weight:700;letter-spacing:.07em;fill:rgba(255,255,255,.72)}

/* ------------------------------ gallery -------------------------------- */
/* auto-fit so the row stays balanced whatever the tile count is. At 6+ tiles
   swap the 960px rule for repeat(3,1fr) so the last row isn't a stub. */
.grid{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:520px){.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}

.tile{
  display:block;width:100%;padding:0;text-align:left;background:var(--white);
  border:1px solid var(--line-2);cursor:pointer;font:inherit;color:inherit;
  transition:border-color .14s ease,transform .14s ease;
}
button.tile:hover{border-color:var(--navy);transform:translateY(-2px)}
.tile__thumb{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--tint);
  border-bottom:1px solid var(--line)}
.tile__thumb img{width:100%;height:100%;object-fit:cover}
.tile__label{
  display:block;padding:12px 14px;font-size:13.5px;font-weight:700;color:var(--navy);
}
.tile__label span{display:block;font-weight:500;font-size:12px;color:var(--ink-3);margin-top:3px}

/* miniature of the site plan used as the diagram thumbnail */
.tile__thumb--plan{display:grid;place-items:center;background:var(--tint)}
.mini{display:block;width:46%;aspect-ratio:2/3;border:2px solid var(--navy);
  background:var(--white);position:relative}
.mini__env{position:absolute;inset:10% 20%;background:rgba(232,176,75,.35);
  border:1.5px dashed var(--amber-line)}

.tile--empty{cursor:default;border-style:dashed;background:transparent}
.tile__thumb--empty{
  display:grid;place-items:center;border-bottom:1px dashed var(--line-2);
  background:repeating-linear-gradient(45deg,transparent,transparent 9px,rgba(15,42,68,.045) 9px,rgba(15,42,68,.045) 18px);
}
.tile__thumb--empty span{
  font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
.tile--empty .tile__label{color:var(--ink-3)}

/* ----------------------------- documents ------------------------------- */
.docs{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:720px){.docs{grid-template-columns:1fr 1fr}}
.doc{
  display:flex;gap:16px;align-items:flex-start;height:100%;
  background:var(--white);border:1px solid var(--line-2);
  padding:18px 18px 17px;text-decoration:none;color:inherit;
  transition:border-color .14s ease,box-shadow .14s ease;
}
a.doc:hover{border-color:var(--navy);box-shadow:inset 3px 0 0 var(--amber)}
.doc__kind{
  flex:none;font-size:10.5px;font-weight:800;letter-spacing:.1em;
  background:var(--navy);color:var(--white);padding:5px 8px;margin-top:2px;
}
.doc__body{display:block;flex:1 1 auto}
.doc__body strong{display:block;font-size:16px;font-weight:800;color:var(--navy);line-height:1.28}
.doc__meta{
  display:block;font-size:11.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--amber-ink);margin-top:6px;
}
.doc__desc{display:block;font-size:13.5px;line-height:1.5;color:var(--ink-3);margin-top:7px}
.doc__go{flex:none;font-size:19px;color:var(--ink-3);line-height:1}
.doc--soon{background:transparent;border-style:dashed}
.doc--soon .doc__kind{background:var(--ink-3)}
.doc--soon .doc__body strong{color:var(--ink-2)}
.doc--soon .doc__meta{color:var(--ink-3)}

/* -------------------------------- map ---------------------------------- */
.mapwrap{border:1px solid var(--line-2);background:var(--tint);aspect-ratio:16/10;max-height:520px}
@media (max-width:600px){.mapwrap{aspect-ratio:4/3}}
.mapwrap iframe{width:100%;height:100%;border:0;display:block}
.maplink{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:14px 0 34px;font-size:14.5px}
.maplink a{font-weight:700;color:var(--navy)}

.near{display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--line-2);border-left:1px solid var(--line-2);margin-bottom:14px}
@media (min-width:720px){.near{grid-template-columns:repeat(3,1fr)}}
@media (min-width:960px){.near{grid-template-columns:repeat(6,1fr)}}
.near li{
  border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
  padding:14px 16px;display:flex;flex-direction:column;gap:5px;
}
.near strong{font-size:13.5px;font-weight:700;color:var(--navy);line-height:1.3}
.near span{font-size:13px;color:var(--ink-3);font-weight:600}

/* ------------------------------ contact -------------------------------- */
.contact{display:grid;gap:clamp(32px,5vw,56px)}
@media (min-width:860px){.contact{grid-template-columns:1.35fr 1fr;gap:clamp(40px,5vw,72px)}}

.field{margin-bottom:17px}
.field-row{display:grid;gap:0 18px}
@media (min-width:520px){.field-row{grid-template-columns:1fr 1fr}}
.field label{
  display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:7px;
}
.req{color:var(--amber)}
.field input,.field select,.field textarea{
  width:100%;font:inherit;font-size:16px;color:var(--white);
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.26);border-radius:0;
  padding:13px 14px;transition:border-color .14s ease,background .14s ease;
}
.field textarea{resize:vertical;min-height:104px;line-height:1.5}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.52)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:rgba(255,255,255,.45)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--amber);background:rgba(255,255,255,.1);outline-offset:0;
}
.field select{
  appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23E8B04B' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;
}
.field select option{color:var(--ink);background:var(--white)}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.formnote{font-size:13px;line-height:1.5;margin:14px 0 0;color:rgba(255,255,255,.7)}
.formnote--fine{font-size:12px;color:rgba(255,255,255,.5)}
.formnote.is-err{color:#FFC9C0;font-weight:600}
.formnote.is-ok{color:var(--amber);font-weight:700;font-size:14.5px}
.form.is-sent .field,.form.is-sent .btn,.form.is-sent .formnote--fine{display:none}

.contact__aside{border-top:2px solid var(--amber);padding-top:22px}
.contact__line{display:flex;flex-direction:column;gap:4px;margin:0 0 18px;font-size:15px}
.contact__lbl{
  font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.5);
}
.contact__line a{color:var(--amber);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(232,176,75,.4);align-self:flex-start}
.contact__line a:hover{border-bottom-color:var(--amber)}
.contact__line span:not(.contact__lbl){color:rgba(255,255,255,.85);line-height:1.5}
.contact__line a.is-placeholder{color:rgba(255,255,255,.42);border-bottom-style:dashed;font-weight:600}
.contact__welcome{
  font-size:13px;line-height:1.55;color:rgba(255,255,255,.55);
  border-top:1px solid rgba(255,255,255,.16);padding-top:16px;margin:24px 0 0;
}

/* ------------------------------- footer -------------------------------- */
.foot{background:var(--navy-9);color:rgba(255,255,255,.6);padding-block:34px;
  border-top:1px solid rgba(232,176,75,.3)}
.foot__disc{font-size:13px;line-height:1.6;color:rgba(255,255,255,.72);max-width:80ch;margin-bottom:16px}
.foot__meta{display:flex;flex-direction:column;gap:5px;font-size:12px;margin:0;color:rgba(255,255,255,.58)}

/* ------------------------------ lightbox ------------------------------- */
.lb{
  width:100%;max-width:100%;height:100%;max-height:100%;
  border:0;padding:0;margin:0;background:rgba(8,20,33,.97);color:var(--white);
  overflow:hidden;
}
.lb::backdrop{background:rgba(8,20,33,.94)}
.lb__fig{margin:0;height:100%;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:56px 16px 20px}
.lb__stage{
  flex:1 1 auto;min-height:0;width:100%;display:flex;
  align-items:center;justify-content:center;
}
.lb__stage img{max-width:100%;max-height:100%;width:auto;object-fit:contain}
.lb__stage svg{max-width:min(100%,520px);max-height:100%;height:auto;
  background:var(--white);padding:12px}
.lb__cap{
  flex:none;font-size:13px;line-height:1.5;color:rgba(255,255,255,.7);
  text-align:center;max-width:76ch;padding-top:14px;
}
.lb__x,.lb__nav{
  position:absolute;background:rgba(255,255,255,.08);color:var(--white);
  border:1px solid rgba(255,255,255,.22);cursor:pointer;font:inherit;
  display:grid;place-items:center;
}
.lb__x{top:12px;right:12px;width:44px;height:44px;font-size:17px}
.lb__nav{top:50%;transform:translateY(-50%);width:46px;height:64px;font-size:30px;line-height:1}
.lb__nav--prev{left:8px}
.lb__nav--next{right:8px}
.lb__x:hover,.lb__nav:hover{background:var(--amber);color:var(--navy);border-color:var(--amber)}
@media (max-width:520px){
  .lb__nav{width:38px;height:52px;font-size:24px}
  .lb__fig{padding:52px 8px 16px}
}

/* --------------------------- motion / print ---------------------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;
    scroll-behavior:auto !important}
}
html{scroll-behavior:smooth;scroll-padding-top:64px}

@media print{
  .topbar,.lb,.hero__cta,.mapwrap,.form{display:none}
  .sec--navy,.hero{background:#fff;color:#000}
  .hero__h1,.h2--onnavy{color:#000}
  body{font-size:11pt}
}
