/* ==========================================================================
   MOSS LANDSCAPING — homepage polish layer
   Design system + responsive + accessible header/menu. Loaded via mu-plugin.
   ========================================================================== */
:root{
  --moss-ever:#1E3A2F; --moss-ever-d:#152A22; --moss-char:#14140F;
  --moss-lime:#EDE8DF; --moss-paper:#FAF8F3; --moss-ink:#20261F;
  --moss-brass:#B08D4C; --moss-brass-l:#C9A867; --moss-brass-lt:#EFDCB0;
  --moss-mut:#586257;                 /* AA on paper/lime */
  --moss-line:#DAD3C6;
  --moss-serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --moss-sans:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --moss-max:1200px;
  --moss-pad:clamp(20px,5vw,40px);
  --moss-nav-h:78px;
}

/* --- base hardening --- */
html{-webkit-text-size-adjust:100%;}
body{overflow-x:hidden;}
.et-l--header *,.moss-header *{box-sizing:border-box;}
img{max-width:100%;height:auto;}

/* visible keyboard focus everywhere */
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--moss-brass-l);outline-offset:2px;border-radius:2px;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
}

/* =========================================================================
   HEADER  (Divi Theme Builder layout 99026 renders a single .moss-header block)
   Neutralise Divi's section/row/column wrappers so our markup owns the layout.
   ========================================================================= */
.et-l--header .et_pb_section,
.et-l--header .et_pb_row,
.et-l--header .et_pb_column,
.et-l--header .et_pb_module,
.et-l--header .et_pb_text_inner{margin:0 !important;padding:0 !important;width:100% !important;max-width:100% !important;}
.et-l--header .et_pb_row{display:block !important;}

.moss-header{font-family:var(--moss-sans);position:relative;z-index:1000;}

/* sticky, no jump, single header */
.et-l--header{position:sticky;top:0;z-index:1000;}
body.admin-bar .et-l--header{top:32px;}
@media (max-width:782px){body.admin-bar .et-l--header{top:46px;}}

/* utility bar (compact) */
.moss-util{background:var(--moss-char);color:rgba(255,255,255,.72);font-size:12.5px;}
.moss-util-inner{max-width:var(--moss-max);margin:0 auto;padding:0 var(--moss-pad);min-height:35px;line-height:1.1;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.moss-util a{color:rgba(255,255,255,.82);text-decoration:none;}
.moss-util a:hover{color:var(--moss-brass-l);}
.moss-util-left{display:flex;align-items:center;gap:20px;}
.moss-util-left a{min-height:24px;display:inline-flex;align-items:center;}
.moss-util-cta{display:inline-flex;align-items:center;min-height:24px;padding:0 13px;border:1px solid rgba(176,141,76,.4);
  border-radius:2px;color:rgba(201,168,103,.9) !important;text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:600;}
.moss-util-cta:hover{background:var(--moss-brass);color:#fff !important;border-color:var(--moss-brass);}

/* main nav */
/* kill Divi text-module list bullets inside header */
.et-l--header ul,.moss-nav-links,.moss-drawer-links{list-style:none !important;padding-left:0 !important;margin:0 !important;}
.et-l--header li,.moss-nav-links li,.moss-drawer-links li{list-style:none !important;background:none !important;padding-left:0 !important;}
.et-l--header li::before,.moss-nav-links li::before,.moss-drawer-links li::before{content:none !important;display:none !important;}

.moss-nav{background:var(--moss-ever-d);border-bottom:1px solid rgba(176,141,76,.28);}
/* neutralize wpautop <p> wrappers Divi adds around the logo/burger (excess margins) */
.moss-header p{margin:0 !important;padding:0 !important;}
.moss-nav-inner{max-width:var(--moss-max);margin:0 auto;padding:18px var(--moss-pad);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:24px;row-gap:0;}
.moss-nav-links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:28px;}
.moss-nav-left{justify-content:flex-end;}
.moss-nav-right{justify-content:flex-start;}
.moss-nav-links a{color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;
  font-size:13px;font-weight:600;line-height:1;padding:12px 2px;display:inline-block;position:relative;white-space:nowrap;}
.moss-nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:6px;height:1.5px;background:var(--moss-brass-l);transition:right .25s ease;}
.moss-nav-links a:hover::after,.moss-nav-links a[aria-current="page"]::after{right:0;}

/* brand: logo + tagline as one in-flow unit, centered vertically in the bar */
.moss-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-decoration:none;margin:0;padding:0;}
.moss-logo{height:34px;width:auto;display:block;margin:0;}
.moss-brand-tag{margin:0;color:var(--moss-brass-l);text-transform:uppercase;letter-spacing:.22em;font-size:9px;font-weight:600;white-space:nowrap;line-height:1;}

.moss-nav-cta,.moss-burger{display:none;}

/* buttons */
.moss-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:0 30px;font-family:var(--moss-sans);font-size:13px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;text-decoration:none;border-radius:2px;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.moss-btn-primary{background:var(--moss-brass);color:#fff;border:1px solid var(--moss-brass);}
.moss-btn-primary:hover{background:var(--moss-brass-l);border-color:var(--moss-brass-l);}
.moss-btn-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.8);}
.moss-btn-secondary:hover{background:#fff;color:var(--moss-ever);}

/* -------- mobile / tablet header (<= 980px) -------- */
@media (max-width:640px){
  .moss-util-inner{font-size:12px;gap:10px;justify-content:center;padding:0 var(--moss-pad);min-height:33px;}
  .moss-util-left{justify-content:center;width:100%;}
  .moss-util-cta{display:none;}
  .moss-util-left a[href^="mailto"]{display:none;}
}

/* =========================================================================
   FOOTER — remove demo social (no real profile URLs) + non-functional
   newsletter (no ESP wired). Restore when real assets exist.
   ========================================================================= */
.et-l--footer .et_pb_social_media_follow{display:none !important;}
.et-l--footer .et_pb_column:has(form),
.et-l--footer .et_pb_column:has(.et_pb_signup),
.et-l--footer .et_pb_column:has(input[type="email"]){display:none !important;}
@media (max-width:768px){
  .et-l--footer .et_pb_column{text-align:center;margin-bottom:28px;}
  .et-l--footer .et_pb_row{padding-left:var(--moss-pad) !important;padding-right:var(--moss-pad) !important;}
}
@media (max-width:980px){
  .moss-nav-inner{grid-template-columns:1fr auto;min-height:0;padding-top:16px;padding-bottom:16px;}
  .moss-nav-left,.moss-nav-right{display:none;}
  .moss-brand{flex-direction:row;gap:10px;align-items:center;justify-self:start;grid-column:1;}
  .moss-brand-tag{display:none;}
  .moss-logo{height:30px;}
  .moss-burger{display:inline-flex;align-items:center;justify-content:center;justify-self:end;grid-column:2;
    width:48px;height:48px;background:transparent;border:1px solid rgba(255,255,255,.28);border-radius:3px;color:#fff;cursor:pointer;}
  .moss-burger svg{width:24px;height:24px;stroke:#fff;}
}

/* drawer */
.moss-drawer{position:fixed;inset:0;z-index:1100;display:none;}
.moss-drawer.is-open{display:block;}
.moss-drawer-overlay{position:absolute;inset:0;background:rgba(10,16,12,.6);opacity:0;transition:opacity .25s;}
.moss-drawer.is-open .moss-drawer-overlay{opacity:1;}
.moss-drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(86vw,360px);
  background:var(--moss-ever-d);box-shadow:-20px 0 60px rgba(0,0,0,.4);
  transform:translateX(100%);transition:transform .28s ease;padding:24px 26px calc(24px + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;overflow-y:auto;}
.moss-drawer.is-open .moss-drawer-panel{transform:translateX(0);}
.moss-drawer-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.moss-drawer-logo{height:28px;}
.moss-drawer-close{width:44px;height:44px;background:transparent;border:1px solid rgba(255,255,255,.28);border-radius:3px;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.moss-drawer-close svg{width:22px;height:22px;stroke:#fff;}
.moss-burger:focus-visible,.moss-drawer-close:focus-visible{outline-color:rgba(255,255,255,.75);}
.moss-drawer-links{list-style:none;margin:14px 0 0;padding:0;}
.moss-drawer-links li{border-bottom:1px solid rgba(255,255,255,.1);}
.moss-drawer-links a{display:flex;align-items:center;min-height:52px;color:#fff;text-decoration:none;
  font-family:var(--moss-serif);font-size:22px;letter-spacing:.01em;}
.moss-drawer-links a:hover{color:var(--moss-brass-l);}
.moss-drawer-cta{margin-top:24px;width:100%;}
.moss-drawer-phone{display:flex;align-items:center;gap:8px;min-height:44px;margin-top:16px;color:var(--moss-brass-l);
  text-decoration:none;font-weight:600;letter-spacing:.02em;font-size:15px;}
body.moss-nav-open{overflow:hidden;}

/* =========================================================================
   HOMEPAGE  (native Divi content, body.home)
   Responsive spacing + hero + card polish. Layered over inline styles.
   ========================================================================= */
.home #main-content .et_pb_section{padding-top:clamp(56px,9vw,120px) !important;padding-bottom:clamp(56px,9vw,120px) !important;}
.home #main-content .et_pb_row{max-width:var(--moss-max) !important;padding-left:var(--moss-pad) !important;padding-right:var(--moss-pad) !important;}

/* ---- HERO (section 1): full-bleed image, refined left→right gradient, centered ---- */
.home #main-content .et_pb_section:first-of-type{position:relative;overflow:hidden;display:flex;align-items:center;
  min-height:clamp(520px,74vh,720px);
  padding-top:clamp(90px,10vh,120px) !important;padding-bottom:clamp(90px,10vh,120px) !important;
  background-position:45% center !important;background-size:cover !important;}
.home #main-content .et_pb_section:first-of-type::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(15,36,29,.88) 0%,rgba(15,36,29,.80) 20%,rgba(15,36,29,.55) 38%,rgba(17,40,32,.22) 52%,rgba(17,40,32,.05) 66%,rgba(17,40,32,0) 100%);}
.home #main-content .et_pb_section:first-of-type > *{position:relative;z-index:1;width:100%;}
.home #main-content .et_pb_section:first-of-type h1{font-size:clamp(34px,5vw,58px) !important;text-wrap:balance;}

/* ---- CREDENTIAL STRIP (section 2): compact + dividers ---- */
.home #main-content .et_pb_section:nth-of-type(2){padding-top:30px !important;padding-bottom:30px !important;}
.home #main-content .et_pb_section:nth-of-type(2) .et_pb_column{position:relative;}
.home #main-content .et_pb_section:nth-of-type(2) .et_pb_column:not(:last-child)::after{content:"";position:absolute;
  top:50%;right:0;transform:translateY(-50%);height:34px;width:1px;background:rgba(176,141,76,.3);}
@media (max-width:767px){
  .home #main-content .et_pb_section:nth-of-type(2){padding-top:26px !important;padding-bottom:26px !important;}
  .home #main-content .et_pb_section:nth-of-type(2) .et_pb_column{width:50% !important;float:left !important;margin:0 0 16px !important;}
  .home #main-content .et_pb_section:nth-of-type(2) .et_pb_column:not(:last-child)::after{display:none;}
  .home #main-content .et_pb_section:nth-of-type(2) .et_pb_column:nth-child(odd)::after{content:"";display:block;position:absolute;top:20%;right:0;height:60%;width:1px;background:rgba(176,141,76,.28);}
}

/* ---- FULL-BLEED RHYTHM BAND (section 5) ---- */
.home #main-content .et_pb_section:nth-of-type(5){position:relative;overflow:hidden;background-position:center !important;background-size:cover !important;}
.home #main-content .et_pb_section:nth-of-type(5)::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,18,13,.72),rgba(10,18,13,.6));}
.home #main-content .et_pb_section:nth-of-type(5) > *{position:relative;z-index:1;}

/* ---- selected-work images: 3:2 ratio + hover ---- */
.home #main-content .et_pb_image{overflow:hidden;border-radius:2px;}
.home #main-content .et_pb_image img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:center;display:block;transition:transform .6s ease;}
.home #main-content .et_pb_column:hover .et_pb_image img{transform:scale(1.04);}
.home #main-content .et_pb_column[href],.home #main-content a.et_pb_column{cursor:pointer;}

/* TABLET: 3- and 4-up rows become 2-up instead of narrow columns */
@media (min-width:641px) and (max-width:980px){
  body.home #main-content .et_pb_column.et_pb_column_1_4,
  body.home #main-content .et_pb_column.et_pb_column_1_3{
    width:48% !important;max-width:48% !important;margin:0 1% 32px !important;float:left !important;}
  body.home #main-content .et_pb_column.et_pb_column_1_4:nth-of-type(2n+1),
  body.home #main-content .et_pb_column.et_pb_column_1_3:nth-of-type(2n+1){clear:left !important;}
}

/* mobile spacing + typography */
@media (max-width:767px){
  .home #main-content .et_pb_section:not(:first-of-type){padding-top:60px !important;padding-bottom:60px !important;}
  .home #main-content p{font-size:16px !important;line-height:1.65 !important;}
  .home #main-content h2{font-size:32px !important;line-height:1.16 !important;}
  .home #main-content h3{font-size:21px !important;}
  .home #main-content .et_pb_section:not(:first-of-type) .et_pb_column{margin-bottom:26px;}
  .home #main-content .et_pb_section:first-of-type h1{font-size:34px !important;line-height:1.08 !important;}
  .home #main-content .et_pb_section:nth-of-type(5) h2{font-size:29px !important;}
}
@media (max-width:400px){
  .home #main-content .et_pb_section:first-of-type h1{font-size:31px !important;}
  .home #main-content .et_pb_section:first-of-type h1 span{white-space:normal !important;}
}
