/*
Theme Name: ASCE Core
Theme URI: https://asce-jo.com/
Author: ASCE
Description: Lightweight, responsive WordPress theme built for ASCE Projects, with independent off-canvas mobile navigation.
Version: 1.5.0
Requires at least: 6.2
Requires PHP: 7.4
Text Domain: asce-core
*/
:root{--asce-theme-navy:#14212d;--asce-theme-ink:#192b38;--asce-theme-copper:#b57d55;--asce-theme-sand:#e8be90;--asce-theme-ivory:#f7f4ef;--asce-theme-radius:18px;--asce-content-max:1280px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:94px}body{margin:0;background:var(--asce-theme-ivory);color:var(--asce-theme-ink);font-family:Inter,Arial,sans-serif}a{color:inherit}img{max-width:100%;height:auto}.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}.screen-reader-text:focus{clip:auto;width:auto;height:auto;z-index:100000;background:#fff;padding:12px}.asce-core-wrap{width:min(var(--asce-content-max,1280px),calc(100% - 48px));margin-inline:auto}.asce-core-header{position:sticky;top:0;z-index:999;background:rgba(247,244,239,.96);border-bottom:1px solid #14212d18;box-shadow:0 10px 28px #14212d0a;backdrop-filter:blur(18px)}body.admin-bar .asce-core-header{top:32px}.asce-core-header-inner{min-height:84px;display:flex;align-items:center;gap:24px}.asce-core-logo{display:inline-flex;flex-direction:column;text-decoration:none;flex-shrink:0;line-height:1}.asce-core-logo strong{font-size:30px;letter-spacing:.14em;color:var(--asce-theme-navy)}.asce-core-logo small{font-size:9px;letter-spacing:.22em;color:var(--asce-theme-copper);margin-top:6px}.asce-core-logo img{max-height:55px;max-width:195px;width:auto}.asce-core-desktop{margin-left:auto}.asce-core-desktop ul,.asce-core-drawer ul{list-style:none;margin:0;padding:0}.asce-core-desktop>div>ul,.asce-core-desktop>ul{display:flex;align-items:center;gap:4px}.asce-core-desktop li{position:relative}.asce-core-desktop a{display:block;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:700;text-decoration:none;transition:background .25s,color .25s,transform .25s}.asce-core-desktop a:hover,.asce-core-desktop a:focus-visible{background:#f0e6da;color:#a66e45;transform:translateY(-2px)}.asce-core-desktop .current-menu-item>a,.asce-core-desktop .current_page_item>a,.asce-core-desktop .current-menu-ancestor>a{background:linear-gradient(115deg,#efe2d3,#e6eef1);box-shadow:inset 0 0 0 1px #b57d5533;color:var(--asce-theme-ink)}.asce-core-desktop .sub-menu{position:absolute;top:100%;left:0;min-width:205px;background:#fff;border:1px solid #b57d5526;border-radius:14px;padding:8px;box-shadow:0 15px 35px #14212d1c;opacity:0;visibility:hidden;transform:translateY(8px);transition:.22s;z-index:10}.asce-core-desktop li:hover>.sub-menu,.asce-core-desktop li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}.asce-core-cta{display:inline-flex;align-items:center;gap:12px;padding:13px 19px;border-radius:14px;background:var(--asce-theme-navy);color:white;text-decoration:none;font-weight:700;font-size:13px;white-space:nowrap;transition:transform .25s,background .25s,box-shadow .25s}.asce-core-cta:hover{background:#60402f;box-shadow:0 12px 25px #60402f33;transform:translateY(-2px)}.asce-core-menu-button,.asce-core-close{display:none;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #14212d2b;border-radius:13px;background:transparent;color:var(--asce-theme-navy);cursor:pointer}.asce-core-overlay{position:fixed;inset:0;background:#08131dcc;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;z-index:1001}.asce-core-drawer{position:fixed;inset:0 0 0 auto;width:min(390px,88vw);background:linear-gradient(155deg,#f7f4ef,#fff);z-index:1002;padding:25px;overflow-y:auto;box-shadow:-18px 0 50px #08131d22;transform:translateX(105%);visibility:hidden;transition:transform .38s cubic-bezier(.2,.75,.2,1),visibility .38s}.asce-core-drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.asce-core-drawer .asce-core-close{display:inline-flex}.asce-core-drawer li{border-bottom:1px solid #14212d14}.asce-core-drawer a{display:block;padding:16px 10px;border-radius:10px;text-decoration:none;font-size:16px;font-weight:700;transition:background .2s,color .2s,padding .2s}.asce-core-drawer a:hover,.asce-core-drawer a:focus-visible{background:#f0e6da;color:#a66e45;padding-left:17px}.asce-core-drawer .current-menu-item>a,.asce-core-drawer .current_page_item>a{color:#a66e45;background:#f0e6da}.asce-core-drawer .sub-menu{padding:0 0 8px 18px}.asce-core-drawer .sub-menu a{font-size:14px;padding:11px}.asce-core-drawer .asce-core-cta{margin-top:24px;justify-content:center;color:#fff;padding:16px}.asce-core-open{overflow:hidden}.asce-core-open .asce-core-overlay{opacity:1;visibility:visible}.asce-core-open .asce-core-drawer{transform:translateX(0);visibility:visible}.asce-core-main{min-height:45vh}.asce-core-article{padding-block:55px 85px}.asce-core-article h1{font-size:clamp(30px,4vw,54px)}.asce-core-footer{background:linear-gradient(110deg,#14212d,#263039 45%,#60402f);color:#f7f4ef;padding:65px 0 22px}.asce-core-footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:42px}.asce-core-footer h2,.asce-core-footer h3{color:#e8be90}.asce-core-footer h2{font-size:30px;letter-spacing:.1em;margin:0}.asce-core-footer h3{font-size:14px;margin-top:5px}.asce-core-footer p,.asce-core-footer a{color:#e2e2e1;font-size:13px;line-height:1.9}.asce-core-footer a{text-decoration:none;display:block;transition:color .25s,transform .25s}.asce-core-footer a:hover{color:#e8be90;transform:translateX(3px)}.asce-core-footer ul{list-style:none;padding:0;margin:0}.asce-core-footer-bottom{border-top:1px solid #ffffff30;margin-top:42px;padding-top:20px;color:#ddd;font-size:12px;display:flex;justify-content:space-between}.asce-core-footer-bottom a{font-size:12px}.asce-core-footer .asce-core-logo strong{color:#fff}.asce-core-footer .asce-core-logo small{color:#e8be90}@media(max-width:1050px){.asce-core-desktop,.asce-core-header-inner>.asce-core-cta{display:none}.asce-core-menu-button{display:inline-flex;margin-left:auto}.asce-core-header-inner{min-height:75px}}@media(max-width:782px){body.admin-bar .asce-core-header{top:46px}}@media(max-width:650px){.asce-core-wrap{width:calc(100% - 32px)}.asce-core-footer-grid{grid-template-columns:1fr;gap:22px}.asce-core-footer-bottom{flex-direction:column;gap:12px}.asce-core-header-inner{min-height:69px}.asce-core-logo strong{font-size:25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.asce-core-header *, .asce-core-overlay,.asce-core-drawer,.asce-core-footer *{animation:none!important;transition:none!important}}

/* Customizer brand color and mobile logo sizing */
.asce-core-logo .custom-logo-link{display:inline-flex;align-items:center}.asce-core-logo .custom-logo{object-fit:contain;max-height:56px;width:auto}.asce-core-desktop a:hover,.asce-core-drawer a:hover{color:var(--asce-theme-copper)}@media(max-width:650px){.asce-core-logo .custom-logo{max-height:46px;max-width:160px}}

/* ASCE v1.3 — editable animated text brand, independent of uploaded logo */
.asce-core-brand{--asce-brand-color:#14212d;--asce-brand-bg:transparent;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;position:relative;isolation:isolate;max-width:100%;min-width:0;text-decoration:none!important;color:var(--asce-brand-color)!important;padding:7px 10px;border-radius:15px;flex-shrink:0;overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.asce-core-brand--none{background:transparent}.asce-core-brand--solid{background:var(--asce-brand-bg)}.asce-core-brand--glass{background:color-mix(in srgb,var(--asce-brand-bg) 30%,transparent);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px #ffffff24}
.asce-core-brand-word{font-family:Arial,Helvetica,sans-serif;font-size:clamp(30px,3vw,43px);font-weight:900;letter-spacing:-.085em;line-height:.94;color:inherit;display:block;text-transform:none;white-space:nowrap;padding-right:.09em}
.asce-core-brand-tag{font-size:8px;font-weight:750;letter-spacing:.22em;color:inherit;opacity:.78;white-space:nowrap;line-height:1.4}
.asce-core-brand-image{max-width:195px;max-height:57px;width:auto;height:auto;object-fit:contain}
.asce-core-brand:hover{transform:translateY(-2px)}
.asce-core-brand--reveal .asce-core-brand-word{animation:asceBrandReveal .85s both cubic-bezier(.2,.8,.2,1)}
.asce-core-brand--shimmer .asce-core-brand-word{background:linear-gradient(110deg,var(--asce-brand-color) 25%,#e8be90 46%,var(--asce-brand-color) 65%);background-size:260% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:asceBrandShimmer 6s ease-in-out infinite}
.asce-core-brand--float .asce-core-brand-word{animation:asceBrandFloat 5s ease-in-out infinite}
@keyframes asceBrandReveal{from{opacity:0;transform:translateY(12px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes asceBrandShimmer{0%,18%{background-position:100% 0}55%,100%{background-position:0 0}}
@keyframes asceBrandFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.asce-core-footer .asce-core-brand{color:var(--asce-brand-color)!important}
@media(max-width:650px){.asce-core-brand-word{font-size:32px}.asce-core-brand-tag{font-size:7px}.asce-core-brand{padding:6px 8px}.asce-core-brand-image{max-width:155px;max-height:45px}}
@media(prefers-reduced-motion:reduce){.asce-core-brand,.asce-core-brand-word{animation:none!important;transition:none!important;filter:none!important}}

/* v1.4.0 – transparent wordmark, polished tracking, gradient ink and glint */
.asce-core-header .asce-core-brand--none,.asce-core-footer .asce-core-brand--none{background:transparent!important;box-shadow:none!important;backdrop-filter:none!important}
.asce-core-brand{border-radius:14px;--asce-ink-gradient:linear-gradient(112deg,#14212d 3%,#304658 40%,#b57d55 75%,#e8be90 100%)}
.asce-core-footer .asce-core-brand{--asce-ink-gradient:linear-gradient(112deg,#f7f4ef 0%,#e8be90 45%,#b57d55 78%,#fff 100%)}
.asce-core-brand--gradient-copper{--asce-ink-gradient:linear-gradient(115deg,#805137,#b57d55,#f0cda3,#a16a46)}
.asce-core-brand--gradient-navy{--asce-ink-gradient:linear-gradient(115deg,#14212d,#436075,#8ba1ae,#263039)}
.asce-core-footer .asce-core-brand--gradient-navy{--asce-ink-gradient:linear-gradient(115deg,#9fb4c0,#fff,#738fa0,#e5eaf0)}
.asce-core-brand-word{letter-spacing:var(--asce-brand-spacing,2px);padding-inline:.07em .15em;line-height:1.12;position:relative}
.asce-core-brand-tag{letter-spacing:clamp(.08em,.18em,.22em);line-height:1.65;max-width:100%;white-space:normal}
.asce-core-brand--gradient-theme .asce-core-brand-word,.asce-core-brand--gradient-copper .asce-core-brand-word,.asce-core-brand--gradient-navy .asce-core-brand-word{background:var(--asce-ink-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.asce-core-brand--shine .asce-core-brand-word{background-image:linear-gradient(108deg,var(--asce-brand-color) 0%,var(--asce-brand-color) 34%,#fff4d9 47%,#e8be90 51%,var(--asce-brand-color) 64%,var(--asce-brand-color) 100%);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:asceBrandPremiumShine 5.8s ease-in-out infinite}
.asce-core-brand--shine:is(.asce-core-brand--gradient-theme,.asce-core-brand--gradient-copper,.asce-core-brand--gradient-navy) .asce-core-brand-word{background-image:linear-gradient(108deg,#14212d 0%,#304658 24%,#b57d55 38%,#fff8e7 49%,#e8be90 52%,#60402f 66%,#14212d 100%)}
.asce-core-footer .asce-core-brand--shine:is(.asce-core-brand--gradient-theme,.asce-core-brand--gradient-copper,.asce-core-brand--gradient-navy) .asce-core-brand-word{background-image:linear-gradient(108deg,#f7f4ef,#e8be90 32%,#fff 49%,#b57d55 65%,#f7f4ef)}
@keyframes asceBrandPremiumShine{0%,22%{background-position:100% 0}57%,100%{background-position:0 0}}
@media(max-width:650px){.asce-core-brand{padding:5px 6px}.asce-core-brand-word{font-size:clamp(29px,7.5vw,37px);letter-spacing:var(--asce-brand-spacing,2px)}.asce-core-brand-tag{font-size:6.5px;letter-spacing:.14em}}
@media(prefers-reduced-motion:reduce){.asce-core-brand--shine .asce-core-brand-word{animation:none!important;background-position:0 0}}

/* v1.4.1: dark brown + deep blue lettering, independent of logo surface */
.asce-core-brand--gradient-brownblue{--asce-ink-gradient:linear-gradient(112deg,#142c3c 0%,#23485e 30%,#46352f 63%,#6a4432 100%)}
.asce-core-brand--gradient-brownblue .asce-core-brand-word{background:var(--asce-ink-gradient);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.asce-core-brand--gradient-brownblue.asce-core-brand--shine .asce-core-brand-word{background-image:linear-gradient(108deg,#142c3c 0%,#23485e 24%,#46352f 40%,#e8be90 49%,#6a4432 57%,#23485e 78%,#142c3c 100%);background-size:300% 100%;animation:asceBrandPremiumShine 5.8s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.asce-core-brand--gradient-brownblue.asce-core-brand--shine .asce-core-brand-word{animation:none!important}}

/* v1.5.0: independent logo typography and reliably animated gradient */
.asce-core-header .asce-core-brand-word,.asce-core-footer .asce-core-brand-word,.asce-core-drawer .asce-core-brand-word{font-family:var(--asce-brand-font,Inter,Arial,sans-serif);font-size:var(--asce-brand-size,42px);letter-spacing:var(--asce-brand-spacing,1px);font-weight:900;line-height:1.12}
@media(max-width:650px){.asce-core-header .asce-core-brand-word,.asce-core-drawer .asce-core-brand-word{font-size:clamp(20px, var(--asce-brand-size,42px), 56px)}}
.asce-core-brand--shine .asce-core-brand-word{background-size:300% 100%!important;background-repeat:no-repeat!important;animation:asceBrandPremiumShine 5.8s ease-in-out infinite!important}
@keyframes asceBrandPremiumShine{0%,18%{background-position:100% center}55%,100%{background-position:0% center}}
@media(prefers-reduced-motion:reduce){.asce-core-brand--shine .asce-core-brand-word{animation:none!important}}

/* v1.5.1 preserve entered letter case */
.asce-core-header .asce-core-brand-word,.asce-core-footer .asce-core-brand-word,.asce-core-drawer .asce-core-brand-word{text-transform:none!important;font-variant-caps:normal}
