/* TOKENS */
:root{
  --a:#E87722;--f:#2D6E35;--cr:#F2F0EA;--s:#6B6355;
  --o:#FAF9F6;--l:#E8E4DC;--d:#1E1B18;--m:#3A342E;
  --ffd:'Cormorant',Georgia,serif;
  --ffl:'Jost',sans-serif;
  --ffb:'DM Sans',sans-serif;
  --t:.42s cubic-bezier(.25,.46,.45,.94);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--ffb);background:var(--o);color:var(--d);overflow-x:hidden;line-height:1.75;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}a{text-decoration:none;color:inherit;}
button{cursor:pointer;font-family:var(--ffb);border:none;outline:none;}

/* PREVIEW BANNER */
.pvbar{background:var(--d);color:rgba(242,240,234,.65);padding:9px 20px;text-align:center;font-family:var(--ffl);font-size:11px;letter-spacing:.08em;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;}
.pvbadge{background:var(--a);color:#fff;padding:2px 10px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;flex-shrink:0;}

/* NAV */
nav{position:sticky;top:0;z-index:1000;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 64px;background:rgba(250,249,246,.97);box-shadow:0 1px 0 rgba(107,99,85,.1);backdrop-filter:blur(16px);}
.nl{display:flex;align-items:center;}
.nl img{height:34px;width:auto;}
#lw{display:none;}#lg{display:block;}
.nls{display:flex;gap:36px;list-style:none;}
.nls a{font-family:var(--ffl);font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--s);transition:color var(--t);position:relative;padding-bottom:3px;}
.nls a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--a);transition:width var(--t);}
.nls a:hover{color:var(--a);}.nls a:hover::after{width:100%;}
.nc{font-family:var(--ffl);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:11px 26px;background:var(--a);color:#fff;transition:background var(--t);cursor:pointer;display:inline-block;}
.nc:hover{background:#c8661a;}
.nh{display:none;flex-direction:column;gap:5px;background:none;padding:4px;border:none;cursor:pointer;}
.nh span{display:block;width:24px;height:1.5px;background:var(--s);}
.mm{display:none;position:sticky;top:76px;left:0;right:0;background:var(--o);padding:24px 40px;border-top:1px solid var(--l);z-index:999;flex-direction:column;}
.mm.open{display:flex;}
.mm a{font-family:var(--ffl);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--s);padding:13px 0;border-bottom:1px solid var(--l);transition:color .2s;}
.mm a:hover{color:var(--a);}

/* HERO — full bleed, centre aligned */
#hero{position:relative;height:100vh;min-height:720px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.hi{position:absolute;inset:0;background-size:cover;background-position:center center;background-repeat:no-repeat;animation:hz 18s ease-out forwards;}
@keyframes hz{from{transform:scale(1.02);}to{transform:scale(1);}}
.hg{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(20,18,14,.7) 0%,rgba(20,18,14,.55) 45%,rgba(20,18,14,.75) 100%);}
.hl{position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(to right,transparent,var(--a),transparent);z-index:2;}
.hc{position:relative;z-index:2;padding:0 40px;max-width:900px;display:flex;flex-direction:column;align-items:center;}
.h-eye{font-family:var(--ffl);font-size:10.5px;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--a);margin-bottom:32px;display:flex;align-items:center;gap:16px;opacity:0;animation:fu .9s ease .3s forwards;}
.h-eye::before,.h-eye::after{content:'';display:block;width:28px;height:1px;background:var(--a);}
h1.ht{font-family:var(--ffd);font-weight:300;font-size:clamp(58px,8.5vw,116px);line-height:1;color:#fff;letter-spacing:-.02em;margin-bottom:18px;opacity:0;animation:fu .9s ease .5s forwards;white-space:nowrap;}
h1.ht em{font-style:italic;color:var(--a);font-weight:300;}
.h-sub{font-family:var(--ffd);font-size:clamp(20px,2.8vw,36px);font-weight:300;font-style:italic;color:rgba(255,255,255,.92);margin-bottom:52px;letter-spacing:.02em;opacity:0;animation:fu .9s ease .68s forwards;}
.h-tags{font-family:var(--ffl);font-size:clamp(13px,1.3vw,16px);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.95);margin-bottom:52px;opacity:0;animation:fu .9s ease .82s forwards;display:flex;align-items:center;gap:14px;}
.h-dot{width:4px;height:4px;border-radius:50%;background:var(--a);flex-shrink:0;}
.h-btns{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;opacity:0;animation:fu .9s ease .96s forwards;}
.bp{font-family:var(--ffl);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:15px 40px;background:var(--a);color:#fff;border:1.5px solid var(--a);transition:all var(--t);display:inline-block;}
.bp:hover{background:#c8661a;border-color:#c8661a;}
.bo{font-family:var(--ffl);font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;padding:15px 40px;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.42);transition:all var(--t);display:inline-block;}
.bo:hover{border-color:#fff;background:rgba(255,255,255,.08);}
.h-scroll{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:8px;font-family:var(--ffl);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.36);opacity:0;animation:fu 1s ease 1.4s forwards;}
.h-scroll-ln{width:1px;height:36px;background:linear-gradient(to bottom,var(--a),transparent);}
@keyframes fu{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}

/* SHARED */
.sw{max-width:1300px;margin:0 auto;}
.lb{font-family:var(--ffl);font-size:10.5px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--a);margin-bottom:16px;display:block;}
.sh{font-family:var(--ffd);font-size:clamp(36px,4.5vw,56px);font-weight:400;line-height:1.08;color:var(--d);}
.dv{width:36px;height:1px;background:var(--a);margin:22px 0;}
/* Reveal — visible by default with JS enhancement */
.rv{opacity:1;transform:none;transition:opacity .75s ease,transform .75s ease;}
.rv.hidden{opacity:0;transform:translateY(32px);}
.rv.visible{opacity:1;transform:translateY(0);}

/* ABOUT */
#about{padding:110px 64px;background:var(--o);}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:start;}
.ab{font-size:15.5px;color:var(--m);line-height:1.9;}.ab p+p{margin-top:22px;}
.ar{display:flex;flex-direction:column;gap:20px;padding-top:16px;}
.pi{padding:28px 32px;border-left:2px solid var(--a);background:var(--cr);transition:border-left-width .3s;}
.pi:hover{border-left-width:4px;}
.pi h4{font-family:var(--ffd);font-size:22px;font-weight:500;color:var(--d);margin-bottom:8px;}.pi p{font-size:14px;color:var(--s);line-height:1.75;}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--l);margin-top:60px;}
.stat-b{background:var(--o);padding:36px 28px;text-align:center;transition:background .3s;}.stat-b:hover{background:var(--cr);}
.stat-n{font-family:var(--ffd);font-size:52px;font-weight:300;color:var(--a);line-height:1;margin-bottom:8px;}
.stat-l{font-family:var(--ffl);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--s);}

/* LEADERSHIP */
#leadership{padding:110px 64px;background:var(--cr);}
.lhd{text-align:center;margin-bottom:68px;}.lsub{font-family:var(--ffd);font-size:19px;font-style:italic;color:var(--s);margin-top:12px;}
.lgd{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
.lc{background:var(--o);overflow:hidden;}
.li{height:480px;overflow:hidden;background:var(--l);}
.li img{width:100%;height:100%;object-fit:cover;object-position:center 10%;transition:transform .8s ease;display:block;}
.lc:hover .li img{transform:scale(1.04);}
.lb2{padding:36px;}.lr{font-family:var(--ffl);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--a);margin-bottom:10px;display:block;}
.ln{font-family:var(--ffd);font-size:30px;font-weight:500;color:var(--d);margin-bottom:14px;}
.lbi{font-size:14px;color:var(--s);line-height:1.85;}

/* OUR WORK */
#work{padding:110px 64px;background:var(--o);}
/* upload panel */
.up-panel{background:var(--cr);border:1px solid var(--l);border-left:3px solid var(--a);padding:20px 24px;margin-top:28px;}
.up-title{font-family:var(--ffl);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);margin-bottom:8px;}
.up-desc{font-size:13px;color:var(--s);margin-bottom:14px;}
.up-zone{border:2px dashed var(--l);padding:26px;text-align:center;cursor:pointer;background:white;transition:all .3s;}
.up-zone:hover,.drag{border-color:var(--a)!important;background:rgba(232,119,34,.03)!important;}
.up-zone-t{font-family:var(--ffd);font-size:16px;font-style:italic;color:var(--s);margin-bottom:4px;}
.up-zone-s{font-size:12px;color:rgba(107,99,85,.6);}
.up-hidden{display:none;}
.up-form{display:none;background:white;padding:16px;border-top:1px solid var(--l);}
.up-form.open{display:block;}
.up-prev{width:100%;max-height:140px;object-fit:contain;margin-bottom:14px;border:1px solid var(--l);}
.up-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.up-lbl{font-family:var(--ffl);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--s);margin-bottom:5px;display:block;}
.up-inp{width:100%;padding:9px 12px;border:1px solid var(--l);background:var(--o);font-family:var(--ffb);font-size:13px;color:var(--d);}
.up-inp:focus{outline:none;border-color:var(--a);}
.up-sel{width:100%;padding:9px 12px;border:1px solid var(--l);background:var(--o);font-family:var(--ffb);font-size:13px;color:var(--d);appearance:none;}
.up-btns{display:flex;gap:10px;}
.up-add{padding:10px 22px;background:var(--a);color:#fff;font-family:var(--ffl);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s;}
.up-add:hover{background:#c8661a;}
.up-cancel{padding:10px 18px;background:white;color:var(--s);border:1px solid var(--l);font-family:var(--ffl);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;}
.filter-wrap{display:flex;gap:8px;flex-wrap:wrap;margin:28px 0 36px;}
.fb{font-family:var(--ffl);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:9px 22px;background:transparent;color:var(--s);border:1px solid var(--l);transition:all .3s;cursor:pointer;}
.fb:hover,.fb.act{background:var(--a);border-color:var(--a);color:#fff;}
.ms{columns:3;column-gap:12px;}
.mi{break-inside:avoid;margin-bottom:12px;position:relative;overflow:hidden;cursor:pointer;}
.mi img{width:100%;display:block;transition:transform .65s ease;object-fit:cover;}
.mi:hover img{transform:scale(1.05);}
.ph{width:100%;background:linear-gradient(145deg,#EDE9E0,#DEDAD0);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:20px;text-align:center;position:relative;overflow:hidden;}
.ph::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 22px,rgba(107,99,85,.04) 22px,rgba(107,99,85,.04) 23px);}
.ph-t{aspect-ratio:3/4;}.ph-s{aspect-ratio:1;}.ph-n{aspect-ratio:4/3;}
.ph-icon{font-size:26px;opacity:.35;position:relative;z-index:1;}
.ph-fname{font-family:var(--ffl);font-size:9px;letter-spacing:.1em;color:var(--s);opacity:.55;position:relative;z-index:1;max-width:150px;line-height:1.5;word-break:break-all;}
.ph-cat{font-family:var(--ffl);font-size:9px;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;background:rgba(232,119,34,.14);color:var(--a);position:relative;z-index:1;}
.mo{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,18,14,.88) 0%,transparent 58%);opacity:0;transition:opacity var(--t);display:flex;flex-direction:column;justify-content:flex-end;padding:20px;}
.mi:hover .mo{opacity:1;}
.mc{font-family:var(--ffd);font-size:15px;font-style:italic;color:var(--cr);line-height:1.35;margin-bottom:6px;}
.mt{font-family:var(--ffl);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);}

/* TESTIMONIALS — single section, no duplicate */
.tsti{margin-top:80px;padding-top:68px;border-top:1px solid var(--l);}
.tsti-lbl{font-family:var(--ffl);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--a);text-align:center;margin-bottom:14px;display:block;}
.tsti-h{font-family:var(--ffd);font-size:clamp(28px,3.8vw,46px);font-weight:400;color:var(--d);text-align:center;margin-bottom:48px;}
.tsti-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;justify-content:center;}
.tsti-grid:has(> .vc:only-child){grid-template-columns:minmax(0,640px);justify-content:center;}
.vc{background:var(--cr);border:1px solid var(--l);overflow:hidden;position:relative;}
.ve{width:100%;aspect-ratio:16/9;background:#000;overflow:hidden;position:relative;}
.ve iframe{position:absolute;top:-60px;left:0;width:100%;height:calc(100% + 60px);border:none;}
.vlbl{padding:18px 22px;font-family:var(--ffd);font-size:16px;font-style:italic;color:var(--d);}
.v-del{position:absolute;top:10px;right:10px;background:rgba(192,57,43,.92);color:#fff;border:none;width:30px;height:30px;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;z-index:5;opacity:0;transition:opacity .25s;}
.vc:hover .v-del{opacity:1;}
.v-tag{position:absolute;top:10px;left:10px;background:var(--f);color:#fff;font-family:var(--ffl);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;z-index:5;}
/* Video admin panel — mirrors gallery upload panel */
.vp{background:var(--cr);border:1px solid var(--l);border-left:3px solid var(--a);padding:20px 24px;margin-bottom:36px;}
.vp-title{font-family:var(--ffl);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--a);margin-bottom:8px;}
.vp-desc{font-size:13px;color:var(--s);margin-bottom:14px;line-height:1.7;}
.vp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.vp-row{display:block;margin-bottom:10px;}
.vp-lbl{font-family:var(--ffl);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--s);margin-bottom:5px;display:block;}
.vp-inp{width:100%;padding:9px 12px;border:1px solid var(--l);background:white;font-family:var(--ffb);font-size:13px;color:var(--d);}
.vp-inp:focus{outline:none;border-color:var(--a);}
.vp-btns{display:flex;gap:10px;}
.vp-add{padding:10px 22px;background:var(--a);color:#fff;font-family:var(--ffl);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s;}
.vp-add:hover{background:#c8661a;}
.vp-clear{padding:10px 18px;background:white;color:var(--s);border:1px solid var(--l);font-family:var(--ffl);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;}
.vp-note{font-size:11px;color:rgba(107,99,85,.55);margin-top:10px;font-style:italic;}
.vp-err{font-size:12px;color:#c0392b;margin-top:8px;display:none;}
.vp-err.show{display:block;}

/* OFFERINGS */
#offerings{padding:110px 64px;background:var(--cr);}
.og{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--l);margin-top:52px;}
.ob{background:var(--cr);padding:52px 40px;position:relative;overflow:hidden;transition:background var(--t);}
.ob::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--a);transform:scaleX(0);transition:transform .5s;transform-origin:left;}
.ob:hover::before{transform:scaleX(1);}.ob:hover{background:var(--o);}
.on{font-family:var(--ffd);font-size:76px;font-weight:300;color:var(--s);line-height:1;margin-bottom:28px;transition:color var(--t);}
.ob:hover .on{color:rgba(232,119,34,.14);}
.oti{font-family:var(--ffd);font-size:30px;font-weight:500;color:var(--d);margin-bottom:16px;}
.od{font-size:14.5px;color:var(--s);line-height:1.85;}

/* PHILOSOPHY */
#philosophy{padding:110px 64px;background:var(--o);}
.pg{display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:center;}
.pt{font-family:var(--ffd);font-size:clamp(30px,3.5vw,50px);font-weight:400;line-height:1.1;color:var(--d);margin-bottom:28px;}
.pb{font-size:15.5px;color:var(--m);line-height:1.9;margin-bottom:44px;}
.pps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.pp{border-top:1.5px solid var(--a);padding-top:18px;}
.pp h5{font-family:var(--ffd);font-size:21px;font-weight:500;color:var(--d);margin-bottom:8px;}.pp p{font-size:13.5px;color:var(--s);line-height:1.75;}
.tw{position:relative;width:340px;height:340px;margin:0 auto;}
.tw svg{width:100%;height:100%;}
.tl2{position:absolute;font-family:var(--ffd);font-size:17px;font-weight:500;color:var(--d);text-align:center;line-height:1.25;}
.tl2 small{display:block;font-family:var(--ffb);font-size:11px;color:var(--s);margin-top:4px;}
.tt2{top:-22px;left:50%;transform:translateX(-50%);text-align:center;}.tlt{bottom:4px;left:-48px;text-align:center;}.trt{bottom:4px;right:-48px;text-align:center;}

/* FAQ */
#faq{padding:110px 64px;background:var(--cr);}
.fql{max-width:820px;}
.fi{border-bottom:1px solid var(--l);}
.fq{width:100%;display:flex;justify-content:space-between;align-items:center;padding:24px 0;background:none;font-family:var(--ffd);font-size:20px;font-weight:400;color:var(--d);text-align:left;gap:20px;transition:color .3s;cursor:pointer;}
.fq:hover{color:var(--a);}
.fi-i{flex-shrink:0;width:18px;height:18px;position:relative;}
.fi-i::before,.fi-i::after{content:'';position:absolute;background:var(--a);transition:all .3s;}
.fi-i::before{width:14px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%);}
.fi-i::after{width:1px;height:14px;top:50%;left:50%;transform:translate(-50%,-50%);}
.fi.open .fi-i::after{opacity:0;}
.fa{font-size:15px;color:var(--s);line-height:1.88;max-height:0;overflow:hidden;transition:max-height .42s ease,padding .42s ease;}
.fi.open .fa{max-height:1200px;padding-bottom:26px;}

/* RESOURCES */
#resources{padding:110px 64px;background:var(--o);}
.rg{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.rc{border:1px solid var(--l);background:var(--cr);overflow:hidden;display:flex;flex-direction:column;height:100%;}
.rch{padding:32px;border-bottom:1px solid var(--l);flex:1;}
.rg{align-items:stretch;}
.rl{font-family:var(--ffl);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--a);margin-bottom:12px;display:block;}
.rc h3{font-family:var(--ffd);font-size:23px;font-weight:500;color:var(--d);margin-bottom:12px;}.rdc{font-size:13.5px;color:var(--s);line-height:1.75;}
.rcb{padding:24px 32px;}
.tt{width:100%;font-family:var(--ffl);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:14px 24px;background:var(--a);color:#fff;border:none;cursor:pointer;transition:background var(--t);}
.tt:hover{background:#c8661a;}
.tp{display:none;padding:24px 32px;border-top:1px solid var(--l);background:var(--o);}
.tp.op{display:block;}
.tp label{display:block;font-family:var(--ffl);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--s);margin-bottom:8px;margin-top:16px;}
.tp label:first-child{margin-top:0;}
.tp select,.tp input{width:100%;padding:10px 14px;border:1px solid var(--l);background:#fff;font-family:var(--ffb);font-size:14px;color:var(--d);appearance:none;transition:border-color .3s;}
.tp select:focus,.tp input:focus{border-color:var(--a);outline:none;}
.rgrp{display:flex;gap:8px;flex-wrap:wrap;}
.rb{padding:8px 14px;border:1px solid var(--l);background:#fff;font-size:13px;color:var(--s);cursor:pointer;transition:all .2s;font-family:var(--ffb);}.rb.sel{background:var(--a);color:#fff;border-color:var(--a);}
.cbg{display:flex;flex-direction:column;gap:10px;}
.ci{display:flex;align-items:center;gap:12px;font-size:14.5px;color:var(--m);cursor:pointer;padding:12px 16px;border:1px solid var(--l);background:var(--o);transition:border-color .25s,background .25s,color .25s;}
.ci:hover{border-color:var(--s);background:#fff;}
.ci input[type="checkbox"]{width:20px;height:20px;accent-color:var(--a);cursor:pointer;flex-shrink:0;margin:0;}
.ci:has(input:checked){border-color:var(--a);background:#fff8f1;color:var(--d);font-weight:500;}
.utg{display:flex;gap:8px;margin-bottom:12px;}.ub{padding:6px 16px;font-family:var(--ffl);font-size:11px;letter-spacing:.1em;border:1px solid var(--l);background:#fff;color:var(--s);cursor:pointer;transition:all .2s;}.ub.act{background:var(--s);color:#fff;border-color:var(--s);}
.cb{width:100%;margin-top:20px;padding:13px;background:var(--f);color:#fff;font-family:var(--ffl);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s;}.cb:hover{background:#1e5221;}
.tr{margin-top:20px;padding:20px;background:var(--cr);border-left:2px solid var(--a);display:none;}.tr.sh{display:block;}
.rv2{font-family:var(--ffd);font-size:30px;font-weight:500;color:var(--d);}.rl2{font-size:12px;color:var(--s);margin-top:4px;}

/* CONTACT */
#contact{padding:110px 64px;background:var(--cr);}
.cg{display:grid;grid-template-columns:1fr 1fr;gap:88px;}
.cd{font-size:15px;color:var(--s);line-height:1.85;margin-top:20px;margin-bottom:44px;}
.cdt{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px;}
.ico{width:38px;height:38px;border:1px solid rgba(232,119,34,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ico svg{width:14px;height:14px;stroke:var(--a);fill:none;stroke-width:1.5;}
.cdt-t{font-size:14.5px;color:var(--m);line-height:1.65;}
.cdt-t strong{display:block;font-family:var(--ffl);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--a);margin-bottom:4px;font-weight:400;}
.cdt-t a,.cdt-t a:link,.cdt-t a:visited{color:var(--m);text-decoration:none;transition:color .2s ease,background .2s ease;}
.cdt-t a:hover,.cdt-t a:focus{color:var(--a);background:rgba(232,119,34,.08);outline:none;}
.cdt-t a:active{color:var(--a);background:rgba(232,119,34,.16);}
.cdt-t a::selection{background:var(--a);color:#fff;}
.socs{display:flex;gap:10px;margin-top:36px;}
.sc2{width:42px;height:42px;border:1px solid var(--l);display:flex;align-items:center;justify-content:center;transition:all .3s;}
.sc2:hover{border-color:var(--a);background:rgba(232,119,34,.07);}
.sc2 svg{width:16px;height:16px;fill:var(--s);transition:fill .3s;}.sc2:hover svg{fill:var(--a);}
.cf{display:flex;flex-direction:column;gap:16px;}
.fl2{font-family:var(--ffl);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--s);margin-bottom:8px;display:block;}
.cf input,.cf select,.cf textarea{width:100%;background:var(--o);border:1px solid var(--l);color:var(--d);padding:14px 18px;font-family:var(--ffb);font-size:14.5px;outline:none;transition:border-color .3s;appearance:none;}
.cf input:focus,.cf select:focus,.cf textarea:focus{border-color:var(--a);}
.cf select option{background:var(--o);}.cf textarea{resize:vertical;min-height:120px;}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.sb{padding:16px 44px;background:var(--a);color:#fff;font-family:var(--ffl);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;border:none;cursor:pointer;transition:background .3s;align-self:flex-start;}.sb:hover{background:#c8661a;}
.form-msg{margin-top:12px;font-size:14px;font-family:var(--ffd);font-style:italic;display:none;}.form-msg.ok{color:var(--a);display:block;}.form-msg.err{color:#c0392b;display:block;}

/* FOOTER */
footer{background:#444444;padding:52px 64px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;}
.ft-copy{font-family:var(--ffl);font-size:11px;letter-spacing:.1em;color:#d3d3d2;}
.ft-links{display:flex;gap:28px;}
.ft-links a{font-family:var(--ffl);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#d3d3d2;transition:color .3s;}.ft-links a:hover{color:var(--a);}

/* TOAST */
.toast-el{position:fixed;bottom:24px;right:24px;background:var(--d);color:var(--cr);padding:13px 20px;font-size:13px;z-index:9999;display:none;align-items:center;gap:10px;border-left:3px solid var(--a);max-width:400px;box-shadow:0 4px 24px rgba(0,0,0,.2);}
.toast-el.show{display:flex;}.toast-dot{width:6px;height:6px;border-radius:50%;background:var(--a);flex-shrink:0;}

/* RESPONSIVE */
@media(max-width:1024px){
  nav,#about,#leadership,#work,#offerings,#philosophy,#faq,#resources,#contact,footer{padding-left:40px;padding-right:40px;}
  .ag,.lgd,.pg,.cg{grid-template-columns:1fr;gap:48px;}
  .og,.rg{grid-template-columns:1fr;}
  .ms{columns:2;}
  .tsti-grid{grid-template-columns:1fr;}
  .nls,.nc{display:none;}.nh{display:flex;}
  .stat-row{grid-template-columns:1fr 1fr;}
  h1.ht{white-space:normal;}
}
@media(max-width:640px){
  nav,#about,#leadership,#work,#offerings,#philosophy,#faq,#resources,#contact,footer{padding-left:24px;padding-right:24px;}
  .ms{columns:1;}.fr,.pps{grid-template-columns:1fr;}
  footer{flex-direction:column;text-align:center;}
  .hc{padding:0 20px;}
  .stat-row{grid-template-columns:1fr;}
  h1.ht{font-size:clamp(44px,14vw,80px);}
  /* Less vertical whitespace on small screens */
  #about,#leadership,#work,#offerings,#philosophy,#faq,#resources,#contact{padding-top:72px;padding-bottom:72px;}
  /* Iron triangle: shrink to fit and pull labels in so they don't clip */
  .tw{width:260px;height:260px;}
  .tt2{top:-18px;}
  .tlt{bottom:-2px;left:-14px;}
  .trt{bottom:-2px;right:-14px;}
  .tl2{font-size:14.5px;}
  .tl2 small{font-size:10px;}
  /* Gallery: captions visible on tap (no hover on touch) */
  .mi .mo{opacity:1;padding:14px;}
  .mc{font-size:13.5px;}
  .mt{font-size:9px;}
  /* Leadership photo: shorter so bio is visible above the fold */
  .li{height:320px;}
  .ln{font-size:24px;}
  .lbi{font-size:13.5px;line-height:1.75;}
  /* Prevent iOS from auto-zooming on input focus (requires 16px+) */
  .cf input,.cf select,.cf textarea,.tp input,.tp select,.up-inp,.vp-inp{font-size:16px;}
  /* FAQ headings slightly tighter on narrow viewports */
  .fq{font-size:17px;padding:20px 0;}
  .fa{font-size:14px;}
  /* Slightly bigger tap targets on gallery filter chips */
  .fb{padding:11px 18px;}
}
/* Show gallery overlay on every touch device (covers iPads in landscape too) */
@media (hover: none){
  .mi .mo{opacity:1;}
}

/* ===== ENHANCED RESPONSIVE (multi-page site) ===== */

/* Tablet — refined behaviour between 768 and 1024px.
   The 1024 block above already applies here; this layers tablet-specific polish. */
@media(max-width:1024px) and (min-width:768px){
  nav{padding:0 40px;}
  /* Tighten section vertical spacing on tablet */
  #about,#leadership,#work,#offerings,#philosophy,#faq,#resources,#contact{padding-top:96px;padding-bottom:96px;}
  /* Hero a touch smaller on tablet */
  h1.ht{font-size:clamp(56px,9vw,90px);}
  .h-sub{font-size:clamp(18px,2.4vw,28px);margin-bottom:36px;}
  .h-tags{font-size:13px;margin-bottom:36px;}
  .h-btns{gap:16px;}
  /* Gallery: 2 columns on tablet (already set, made explicit here) */
  .ms{columns:2;column-gap:14px;}
  /* Contact form fields stay single column on tablet for breathing room */
  .fr{grid-template-columns:1fr;gap:0;}
  /* Larger tap targets on tablet */
  .nh{padding:8px;}
  .nh span{width:26px;}
}

/* Mobile menu transition — smoother slide-down.
   pointer-events:none on collapsed state so the invisible overlay can't
   intercept clicks on the hamburger or content below the nav. */
.mm{transition:max-height .35s ease,padding .25s ease,opacity .25s ease;will-change:max-height;}
.mm{max-height:0;overflow:hidden;padding-top:0;padding-bottom:0;opacity:0;display:flex;pointer-events:none;}
.mm.open{max-height:560px;opacity:1;padding-top:24px;padding-bottom:24px;pointer-events:auto;}

/* Ensure nav stays on top of EVERYTHING (including the sticky mm overlay) */
nav#nav{z-index:1100;}
.nh{position:relative;z-index:1101;}

/* Hero adjustments — apply at the original tablet breakpoint */
@media(max-width:1024px){
  .h-btns{flex-direction:row;flex-wrap:wrap;justify-content:center;}
  .h-btns .bp,.h-btns .bo{flex:1 1 auto;text-align:center;min-width:160px;}
  /* Hero tags allowed to wrap, tighter spacing so they don't overflow */
  .h-tags{flex-wrap:wrap;justify-content:center;letter-spacing:.16em;gap:10px;padding:0 16px;}
}

/* Hero tags on mobile — even tighter, allow vertical stack if needed */
@media(max-width:640px){
  .h-tags{font-size:11px;letter-spacing:.14em;gap:8px;padding:0 20px;line-height:1.6;}
  .h-dot{width:3px;height:3px;}
}

/* Small mobile (<=480px) — refinements for narrow phones */
@media(max-width:480px){
  nav{padding:0 18px;height:64px;}
  .mm{top:64px;padding-left:18px;padding-right:18px;}
  nav .nl img{height:34px;}
  /* Tighter sections on very small screens */
  #about,#leadership,#work,#offerings,#philosophy,#faq,#resources,#contact{padding-top:56px;padding-bottom:56px;padding-left:18px;padding-right:18px;}
  footer{padding:48px 18px 32px;gap:14px;}
  /* Hero text size */
  h1.ht{font-size:clamp(38px,12vw,64px);line-height:1.05;}
  .h-sub{font-size:18px;margin-bottom:28px;}
  .h-tags{font-size:11px;letter-spacing:.18em;gap:10px;margin-bottom:28px;}
  /* Buttons stack vertically on very small screens */
  .h-btns{flex-direction:column;width:100%;gap:12px;}
  .h-btns .bp,.h-btns .bo{width:100%;padding:14px 20px;}
  /* Iron triangle even smaller on tiny screens */
  .tw{width:220px;height:220px;}
  /* Contact form padding */
  .cf{gap:18px;}
  /* Leadership image height shorter */
  .li{height:280px;}
  /* Section headings on small mobile */
  h2.sh{font-size:clamp(32px,8vw,46px);line-height:1.1;}
  h2.pt{font-size:clamp(28px,7vw,40px);line-height:1.15;}
  /* Tool description text slightly tighter */
  .rdc{font-size:13px;}
}

/* Landscape phone — reduce hero height so content shows */
@media(max-height:520px) and (orientation:landscape){
  #hero{min-height:auto;padding:60px 20px;}
  .hc{padding:0;}
  h1.ht{font-size:clamp(36px,7vw,56px);}
}

/* Touch device general tap target enforcement */
@media (hover: none){
  /* Min 44px tap targets per Apple HIG */
  nav a,.mm a,.h-btns a,.bp,.bo,.fq,.tt,.cb,.fb,.ub,.rb{min-height:44px;}
  /* Prevent iOS tap-highlight orange flash on buttons */
  button,a{-webkit-tap-highlight-color:rgba(232,119,34,.18);}
}
