/* ==========================================================================
   JASH1 HOMES — Design System
   Hand-written CSS. No framework, no build step.
   Palette derived from logo.jpg: forest #0D5139 + copper #A7654A.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
:root{
  /* brand */
  --forest-950:#04180F;
  --forest-900:#072B1F;
  --forest-800:#0B3D2C;
  --forest-700:#0D5139;   /* logo green */
  --forest-600:#14664A;
  --forest-500:#20805E;
  --forest-200:#A9C8BB;
  --forest-100:#D8E7E0;

  --copper-800:#5C3319;
  --copper-700:#6F3F22;   /* logo copper shadow */
  --copper-600:#8F5231;
  --copper-500:#A7654A;   /* logo copper mid */
  --copper-400:#C08161;
  --copper-300:#D8A98D;
  --copper-200:#EBCDB9;

  /* neutrals */
  --ink:#12211B;
  --ink-70:rgba(18,33,27,.70);
  --ink-55:rgba(18,33,27,.55);
  --ink-40:rgba(18,33,27,.40);
  --bone:#F7F4EE;
  --bone-2:#EFEAE1;
  --bone-3:#E4DED2;
  --paper:#FFFFFF;

  --line:rgba(13,81,57,.16);
  --line-soft:rgba(13,81,57,.09);
  --line-dark:rgba(255,255,255,.14);
  --line-dark-soft:rgba(255,255,255,.08);

  /* type */
  --font-display:"Newsreader","Georgia",serif;
  --font-sans:"Manrope","Segoe UI",system-ui,-apple-system,sans-serif;

  --fs-mega:clamp(2.9rem,1.2rem + 6.6vw,6.5rem);
  --fs-h1:clamp(2.4rem,1.35rem + 4.1vw,4.6rem);
  --fs-h2:clamp(1.95rem,1.25rem + 2.7vw,3.4rem);
  --fs-h3:clamp(1.35rem,1.1rem + 1vw,1.9rem);
  --fs-h4:clamp(1.1rem,1rem + .45vw,1.3rem);
  --fs-lead:clamp(1.03rem,.97rem + .35vw,1.22rem);
  --fs-body:1rem;
  --fs-sm:.9rem;
  --fs-xs:.78rem;
  --fs-eyebrow:.72rem;

  /* rhythm */
  --gutter:clamp(1.25rem,4vw,2.5rem);
  --maxw:1280px;
  --maxw-narrow:820px;
  --section-y:clamp(4.5rem,3rem + 7vw,9rem);
  --section-y-sm:clamp(3rem,2rem + 4vw,5.5rem);

  /* shape */
  --r-xs:4px;
  --r-sm:8px;
  --r-md:14px;
  --r-lg:22px;
  --r-xl:34px;
  --r-pill:999px;

  /* elevation */
  --sh-sm:0 1px 2px rgba(7,43,31,.06),0 2px 8px rgba(7,43,31,.05);
  --sh-md:0 2px 4px rgba(7,43,31,.05),0 12px 32px -8px rgba(7,43,31,.14);
  --sh-lg:0 4px 8px rgba(7,43,31,.05),0 28px 64px -16px rgba(7,43,31,.22);
  --sh-copper:0 16px 40px -14px rgba(143,82,49,.55);

  /* motion */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);

  /* copper gradient (mirrors the logo's metallic sweep) */
  --grad-copper:linear-gradient(105deg,var(--copper-700) 0%,var(--copper-400) 34%,var(--copper-200) 50%,var(--copper-500) 68%,var(--copper-700) 100%);
  --grad-copper-text:linear-gradient(105deg,var(--copper-700) 0%,var(--copper-500) 28%,var(--copper-400) 50%,var(--copper-600) 74%,var(--copper-700) 100%);
  --grad-forest:linear-gradient(160deg,var(--forest-800) 0%,var(--forest-950) 100%);

  --header-h:92px;
}

/* ---------- 2. Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  font-family:var(--font-sans);
  font-size:var(--fs-body);
  line-height:1.65;
  color:var(--ink);
  background:var(--bone);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;line-height:1.06;letter-spacing:-.02em;font-optical-sizing:auto}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);line-height:1.18}
h4{font-size:var(--fs-h4);line-height:1.3}
::selection{background:var(--copper-500);color:#fff}
:focus-visible{outline:2.5px solid var(--copper-500);outline-offset:3px;border-radius:2px}

/* ---------- 3. Layout primitives ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-wide{max-width:1520px}
.wrap-narrow{max-width:var(--maxw-narrow)}
.section{padding-block:var(--section-y);position:relative}
.section-sm{padding-block:var(--section-y-sm)}
.section-tight{padding-block:clamp(2.5rem,2rem + 2vw,3.5rem)}
.grid{display:grid;gap:clamp(1.25rem,2.4vw,2.25rem)}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.flow>*+*{margin-top:1.1em}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:var(--gutter);top:-100px;z-index:200;background:var(--forest-700);color:#fff;padding:.75rem 1.25rem;border-radius:var(--r-sm);font-weight:700;transition:top .25s var(--ease-out)}
.skip-link:focus{top:12px}

/* dark surface */
.on-dark{background:var(--forest-900);color:var(--bone)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:#fff}
.on-dark .lead{color:rgba(247,244,238,.76)}
.on-dark .muted{color:rgba(247,244,238,.6)}
.surface-bone-2{background:var(--bone-2)}
.surface-paper{background:var(--paper)}

/* subtle blueprint grid texture used behind sections */
.tex-grid::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 10%,transparent 75%);
          mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 10%,transparent 75%);
}
.on-dark.tex-grid::before{
  background-image:linear-gradient(var(--line-dark-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-dark-soft) 1px,transparent 1px);
}

/* ---------- 4. Typography helpers ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-sans);font-size:var(--fs-eyebrow);font-weight:800;
  letter-spacing:.2em;text-transform:uppercase;color:var(--copper-600);
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--grad-copper);border-radius:2px;flex:none}
.on-dark .eyebrow{color:var(--copper-300)}
.eyebrow-plain::before{display:none}

.lead{font-size:var(--fs-lead);color:var(--ink-70);line-height:1.68;max-width:62ch}
.muted{color:var(--ink-55)}
.small{font-size:var(--fs-sm)}
.acc{color:var(--copper-600)}
.on-dark .acc{color:var(--copper-300)}
.serif-em{font-family:var(--font-display);font-style:italic;font-weight:300}
.metal{
  /* solid copper is the floor; the gradient only replaces it where text-clipping works */
  color:var(--copper-600);
  background-image:var(--grad-copper-text);
  -webkit-background-clip:text;background-clip:text;
}
/* on dark surfaces the brighter display ramp is the readable one */
.on-dark .metal,.phero .metal,.cta-band .metal{color:var(--copper-300);background-image:var(--grad-copper)}
@supports (-webkit-background-clip:text) or (background-clip:text){
  .metal{color:transparent}
}
.balance{text-wrap:balance}
.pretty{text-wrap:pretty}

/* section heading block */
.sec-head{max-width:var(--maxw-narrow)}
.sec-head .eyebrow{margin-bottom:1.15rem}
.sec-head h2{margin-bottom:1.1rem}
.sec-head--split{display:grid;gap:1.75rem;max-width:none}
@media(min-width:900px){
  .sec-head--split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:end;gap:3rem}
  .sec-head--split .sec-head-aside{padding-bottom:.4rem}
}

/* rules */
.rule{height:1px;background:var(--line);border:0}
.on-dark .rule{background:var(--line-dark)}
.rule-copper{height:2px;width:56px;background:var(--grad-copper);border:0;border-radius:2px}

/* ---------- 5. Buttons ---------- */
.btn{
  --btn-bg:var(--forest-700);--btn-fg:#fff;--btn-bd:var(--forest-700);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.7rem;border-radius:var(--r-pill);
  background:var(--btn-bg);color:var(--btn-fg);border:1.5px solid var(--btn-bd);
  font-family:var(--font-sans);font-size:.92rem;font-weight:700;letter-spacing:.01em;
  cursor:pointer;overflow:hidden;isolation:isolate;
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),color .3s var(--ease-out),border-color .3s var(--ease-out),background-color .3s var(--ease-out);
}
.btn::after{ /* wipe fill */
  content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  background:var(--grad-copper);
  transform:translateY(101%);
  transition:transform .5s var(--ease-out);
}
.btn:hover{color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:var(--sh-copper)}
.btn:hover::after{transform:translateY(0)}
.btn:active{transform:translateY(0) scale(.985)}
.btn .ico{width:17px;height:17px;flex:none;transition:transform .4s var(--ease-out)}
.btn:hover .ico{transform:translateX(4px)}

.btn-copper{--btn-bg:var(--copper-600);--btn-bd:var(--copper-600)}
.btn-copper::after{background:var(--forest-700)}
.btn-copper:hover{box-shadow:0 16px 40px -14px rgba(13,81,57,.5)}
.btn-ghost{--btn-bg:transparent;--btn-fg:var(--ink);--btn-bd:var(--line)}
.btn-ghost:hover{--btn-fg:#fff}
.on-dark .btn-ghost{--btn-fg:#fff;--btn-bd:rgba(255,255,255,.3)}
.btn-light{--btn-bg:var(--bone);--btn-fg:var(--forest-900);--btn-bd:var(--bone)}
.btn-sm{padding:.68rem 1.25rem;font-size:.85rem}
.btn-lg{padding:1.12rem 2.15rem;font-size:1rem}
.btn-block{width:100%}

/* text link with animated underline */
.tlink{
  display:inline-flex;align-items:center;gap:.5rem;
  font-weight:700;font-size:.92rem;color:var(--forest-700);
  padding-bottom:3px;background-image:linear-gradient(var(--copper-500),var(--copper-500));
  background-size:0% 1.5px;background-repeat:no-repeat;background-position:0 100%;
  transition:background-size .45s var(--ease-out),color .3s var(--ease-out);
}
.tlink:hover{background-size:100% 1.5px;color:var(--copper-600)}
.tlink .ico{width:16px;height:16px;transition:transform .4s var(--ease-out)}
.tlink:hover .ico{transform:translateX(4px)}
.on-dark .tlink{color:var(--copper-300)}
.on-dark .tlink:hover{color:#fff}

/* ---------- 6. Icons ---------- */
.ico{display:inline-block;width:1.25em;height:1.25em;vertical-align:middle;flex:none}
.ico svg{width:100%;height:100%;display:block;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.ico-box{
  display:grid;place-items:center;width:56px;height:56px;flex:none;
  border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--paper);color:var(--forest-700);
  transition:transform .5s var(--ease-out),background-color .4s var(--ease-out),color .4s var(--ease-out),border-color .4s var(--ease-out);
}
.ico-box .ico{width:26px;height:26px}
.on-dark .ico-box{background:rgba(255,255,255,.05);border-color:var(--line-dark);color:var(--copper-300)}

/* ---------- 7. Header ---------- */
/* Always a solid light bar so the supplied logo.png reads at full contrast
   on every page (logo-white.png is reserved for the footer). */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:90;
  background:rgba(247,244,238,.88);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid var(--line-soft);
  transition:box-shadow .45s var(--ease-out),transform .5s var(--ease-out),background-color .45s var(--ease-out);
}
.site-header.is-stuck{background:rgba(247,244,238,.96);box-shadow:0 12px 34px -24px rgba(7,43,31,.6)}
.site-header.is-hidden{transform:translateY(-102%)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:var(--header-h)}

.brand{display:flex;align-items:center;flex:none}
.brand img{height:62px;width:auto;transition:height .4s var(--ease-out)}
.site-header.is-stuck .brand img{height:56px}
@media(max-width:640px){.brand img{height:52px}.site-header.is-stuck .brand img{height:48px}}

.nav{display:none}
@media(min-width:1080px){.nav{display:flex;align-items:center;gap:.35rem}}
.nav-item{position:relative}
.nav-link{
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.55rem .85rem;border-radius:var(--r-pill);
  font-size:.9rem;font-weight:600;color:var(--ink-70);
  transition:color .3s var(--ease-out),background-color .3s var(--ease-out);
}
.nav-link:hover,.nav-link[aria-current=page]{color:var(--forest-700);background:rgba(13,81,57,.07)}
.nav-link .ico{width:13px;height:13px;transition:transform .35s var(--ease-out);opacity:.7}
.nav-item:hover .nav-link .ico{transform:rotate(180deg)}

.dropdown{
  position:absolute;top:calc(100% + 14px);left:50%;translate:-50% 0;
  min-width:620px;padding:.85rem;border-radius:var(--r-lg);
  background:var(--paper);border:1px solid var(--line-soft);box-shadow:var(--sh-lg);
  display:grid;grid-template-columns:1fr 1fr;gap:.2rem;
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.985);transform-origin:top center;
  transition:opacity .35s var(--ease-out),transform .35s var(--ease-out),visibility .35s;
}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.dd-link{display:flex;align-items:center;gap:.8rem;padding:.72rem .8rem;border-radius:var(--r-sm);transition:background-color .28s var(--ease-out)}
.dd-link:hover{background:var(--bone)}
.dd-link .ico{width:19px;height:19px;color:var(--copper-600)}
.dd-link b{font-size:.9rem;font-weight:700;color:var(--ink)}
.dd-link small{display:block;font-size:.74rem;color:var(--ink-55);line-height:1.4;margin-top:1px}
.dd-foot{grid-column:1/-1;margin-top:.35rem;padding:.85rem .8rem 0;border-top:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}

.header-cta{display:none;align-items:center;gap:1.1rem;flex:none}
@media(min-width:1080px){.header-cta{display:flex}}
.header-phone{display:inline-flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:700;color:var(--forest-800);transition:color .3s}
.header-phone .ico{width:16px;height:16px;color:var(--copper-600)}
.header-phone:hover{color:var(--copper-600)}

.burger{position:relative;display:block;width:46px;height:46px;border-radius:var(--r-pill);border:1px solid var(--line);color:var(--forest-800);flex:none;transition:border-color .35s,color .35s}
@media(min-width:1080px){.burger{display:none}}
.burger span{
  position:absolute;left:50%;top:50%;width:19px;height:1.7px;margin-left:-9.5px;margin-top:-.85px;
  background:currentColor;border-radius:2px;
  transition:transform .45s var(--ease-out),opacity .25s var(--ease-out);
}
.burger span:nth-child(1){transform:translateY(-6px)}
.burger span:nth-child(3){transform:translateY(6px)}
body.nav-open .burger span:nth-child(1){transform:translateY(0) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(0) rotate(-45deg)}

/* scroll progress */
.scroll-bar{position:fixed;top:0;left:0;height:2.5px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:var(--grad-copper);z-index:95;pointer-events:none}

/* mobile drawer */
.drawer{
  position:fixed;top:var(--header-h);left:0;right:0;bottom:0;z-index:89;background:var(--forest-900);
  padding:1.75rem var(--gutter) 2.5rem;
  overflow-y:auto;
  clip-path:circle(0% at 92% 0%);
  visibility:hidden;
  transition:clip-path .7s var(--ease-inout),visibility .7s;
}
body.nav-open .drawer{clip-path:circle(155% at 92% 0%);visibility:visible}
body.nav-open{overflow:hidden}
.drawer-nav{display:flex;flex-direction:column;border-top:1px solid var(--line-dark-soft)}
.drawer-nav a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.95rem .25rem;border-bottom:1px solid var(--line-dark-soft);
  font-family:var(--font-display);font-size:1.4rem;font-weight:500;color:#fff;
  opacity:0;transform:translateY(18px);
}
body.nav-open .drawer-nav a{animation:drawerIn .6s var(--ease-out) forwards;animation-delay:calc(.16s + var(--i,0)*.04s)}
@keyframes drawerIn{to{opacity:1;transform:translateY(0)}}
.drawer-nav a .ico{width:17px;height:17px;color:var(--copper-400)}
.drawer-sub{padding-left:1.1rem !important;font-size:.98rem !important;font-family:var(--font-sans) !important;font-weight:600 !important;color:rgba(255,255,255,.62) !important}
.drawer-foot{margin-top:2rem;display:grid;gap:1.25rem}
.drawer-foot .btn{width:100%}
.drawer-contact{display:grid;gap:.55rem;font-size:.9rem;color:rgba(255,255,255,.66)}
.drawer-contact a{display:inline-flex;align-items:center;gap:.6rem}
.drawer-contact .ico{width:16px;height:16px;color:var(--copper-400)}
