:root{--primary:#3b1f5e;--accent:#c19a3c;--ink:#202226;--text:#575757;--bg:#fff;--alt:#f5f2ec;--line:#e6dfd2;--radius:14px;--shadow:0 10px 30px rgba(32,34,38,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:'Plus Jakarta Sans',system-ui,sans-serif;color:var(--text);line-height:1.7;font-size:16px;background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Marcellus',Georgia,serif;color:var(--ink);font-weight:400;line-height:1.2;margin:0 0 .5em}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}
.wrap{width:min(1200px,92%);margin:0 auto}.wrap.narrow{width:min(860px,92%)}
.center{text-align:center}.muted{color:#8a8a8a}.hp{position:absolute;left:-9999px;opacity:0}
.ic{flex:none;vertical-align:-3px}
/* topbar + header */
.topbar{background:var(--primary);color:#fff;font-size:14px}.topbar .wrap{display:flex;justify-content:space-between;align-items:center;padding:9px 0;gap:16px;flex-wrap:wrap}
.topbar a{display:inline-flex;align-items:center;gap:7px;margin-right:22px;opacity:.92}.topbar a:hover{opacity:1;color:var(--accent)}.tb-r a{margin:0 0 0 14px}
.hdr{background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 1px 0 var(--line)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:20px}
.logo img{height:64px;width:auto}.logo{font-family:'Marcellus',serif;font-size:26px;color:var(--primary)}
.nav{display:flex;align-items:center;gap:6px}.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.nav li{position:relative}.nav li>a{display:block;padding:12px 15px;font-weight:600;font-size:15px;color:var(--ink);border-radius:8px;transition:.2s}
.nav li>a:hover,.nav li.active>a{color:var(--accent)}
.caret{display:inline-block;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);margin-left:5px}
.nav .sub{position:absolute;left:0;top:100%;min-width:220px;background:#fff;box-shadow:var(--shadow);border-radius:10px;padding:8px;display:block;opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s;border-top:3px solid var(--accent)}
.nav li:hover>.sub,.nav li:focus-within>.sub{opacity:1;visibility:visible;transform:none}.nav .sub a{padding:10px 14px}
.burger{display:none;background:none;border:0;padding:8px;cursor:pointer}.burger span{display:block;width:26px;height:2px;background:var(--primary);margin:6px 0;transition:.25s}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--accent);color:#fff;border:0;padding:14px 28px;border-radius:50px;font:600 15px 'Plus Jakarta Sans',sans-serif;cursor:pointer;transition:.25s}
.btn:hover{background:var(--primary);transform:translateY(-2px);box-shadow:0 8px 20px rgba(59,31,94,.25)}.btn.sm{padding:10px 20px;font-size:14px}.nav-cta{margin-left:10px}
/* landing */
.landing{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 140px)}
.landing-panel{position:relative;background:var(--primary) center/cover;display:grid;place-items:center;text-align:center;color:#fff;padding:60px 24px;overflow:hidden}
.landing-panel:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(32,16,56,.84),rgba(59,31,94,.7));transition:.4s}
.landing-panel:hover:before{background:linear-gradient(160deg,rgba(32,16,56,.7),rgba(59,31,94,.5))}
.landing-panel+.landing-panel{border-left:1px solid rgba(255,255,255,.25)}
.landing-in{position:relative;max-width:420px}.landing h1{color:#fff;font-size:clamp(54px,8vw,104px);margin:.1em 0}.landing p{font-size:19px;opacity:.9;margin:0 0 28px}
.eyebrow{display:inline-block;color:var(--accent);font-weight:700;letter-spacing:.2em;font-size:13px;text-transform:uppercase;position:relative}
.landing .eyebrow{color:#e7cf99}
/* banner */
.banner{position:relative;background:var(--primary) center/cover;color:#fff;padding:90px 0;text-align:center}.banner-ov{position:absolute;inset:0;background:linear-gradient(rgba(32,16,56,.82),rgba(59,31,94,.8))}
.banner .wrap{position:relative}.banner h1{color:#fff;font-size:clamp(34px,5vw,56px);margin-bottom:10px}.crumbs{opacity:.85;font-size:15px}.crumbs span{margin:0 6px;color:var(--accent)}.crumbs a:hover{color:var(--accent)}
/* sections */
.sec{padding:90px 0}.sec.alt{background:var(--alt)}
.sec-head{margin-bottom:46px}.sec-head.center{text-align:center}.sec-head h2{font-size:clamp(30px,4vw,44px);margin-top:10px}
.sec-head .eyebrow:before{content:"";display:inline-block;width:34px;height:2px;background:var(--accent);vertical-align:middle;margin-right:12px}
.lead{font-size:18px;max-width:680px;margin:12px auto 0}.lead.light{color:#fff;opacity:.9}
.prose{font-size:16.5px}.prose h2,.prose h3,.prose h4{margin:1.4em 0 .5em;color:var(--primary)}.prose p{margin:0 0 1.1em}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1.2em}.prose li{margin:.45em 0}.prose li::marker{color:var(--accent)}.prose a{color:var(--primary);text-decoration:underline}.prose img{border-radius:10px;margin:1em 0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);transition:.3s;position:relative;overflow:hidden}
a.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:var(--accent)}
.service{padding:34px 30px;display:flex;flex-direction:column}.service .num{font-family:'Marcellus',serif;font-size:44px;color:var(--accent);opacity:.55;line-height:1;margin-bottom:14px}
.service h3{font-size:23px;color:var(--primary)}.service p{margin:0 0 18px;flex:1}.more{color:var(--accent);font-weight:700;font-size:14px}
.team{grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center}.person{text-align:center;padding-bottom:24px}
.ph{display:block;aspect-ratio:4/3.4;background:var(--alt);overflow:hidden}.ph img{width:100%;height:100%;object-fit:cover;transition:.5s}a.card:hover .ph img{transform:scale(1.06)}
.person h3{margin:18px 0 2px;font-size:24px;color:var(--primary)}.role{color:var(--accent);font-weight:600;font-size:14px;letter-spacing:.05em}
.post .pc-body{padding:24px 26px 28px}.post h3{font-size:21px;color:var(--primary);margin:6px 0 8px}.post p{margin:0 0 12px;font-size:15px}time{color:var(--accent);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.post .ph{aspect-ratio:16/10}
.quote{padding:32px}.quote blockquote{margin:0 0 22px;font-size:17px;font-style:italic}.quote figcaption{display:flex;align-items:center;gap:14px}.quote img{width:54px;height:54px;border-radius:50%;object-fit:cover}.quote b{display:block;color:var(--ink)}.quote em{font-size:14px;color:#888;font-style:normal}
.offices{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.office{padding:34px 28px;text-align:center}.office svg{color:var(--accent);margin:0 auto 12px}.office h3{font-size:22px;color:var(--primary)}.office p{margin:0}
/* about intro */
.two-col{display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}.about-media{position:relative;min-height:420px}
.about-img1{position:relative;width:78%;border-radius:var(--radius);box-shadow:var(--shadow);margin-left:auto}.about-img2{position:absolute;left:0;top:-30px;width:46%;border-radius:var(--radius);z-index:0;opacity:.9}
.counter-badge{position:absolute;left:0;bottom:-20px;background:var(--primary);color:#fff;padding:22px 28px;border-radius:var(--radius);box-shadow:var(--shadow);z-index:2;border-bottom:4px solid var(--accent)}
.counter-badge b{font:400 48px/1 'Marcellus',serif;display:block;color:var(--accent)}.counter-badge span{font-size:14px}
.about-text .prose{margin-bottom:26px}
/* stats */
.stats{position:relative;background:var(--primary) center/cover fixed;color:#fff;text-align:center}.stats-overlay{position:absolute;inset:0;background:linear-gradient(rgba(32,16,56,.88),rgba(59,31,94,.86))}.stats .wrap{position:relative}.stats .sec-head h2{color:#fff}.stats .eyebrow{color:#e7cf99}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}.stat{padding:26px 10px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius)}.stat b{font:400 52px/1 'Marcellus',serif;display:block;color:var(--accent)}.stat span{opacity:.9}
/* cta form */
.cta{background:var(--alt)}.cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.cta-grid:not(:has(.cta-img)){grid-template-columns:1fr;max-width:760px}
.cta-img{background:var(--primary) center/cover;min-height:380px}.cta-form{padding:46px}.cta-form .sec-head{margin-bottom:24px}
.form .f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form input,.form select,.form textarea,.news-form input{width:100%;padding:14px 16px;margin-bottom:14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);border-color:transparent}
.notice{padding:14px 0;text-align:center;font-weight:600}.notice.ok{background:#e9f6ec;color:#1d6b34}.notice.err{background:#fdecec;color:#a02020}
.map iframe{width:100%;border:0;display:block;filter:grayscale(.6)}
/* jobs, gallery */
.dept{margin:40px 0 14px;color:var(--primary);border-bottom:2px solid var(--accent);padding-bottom:8px}.job{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 26px;background:var(--alt);border-radius:12px;margin-bottom:14px}.job h4{margin:2px 0 4px;font-size:21px}.job p{margin:0;font-size:15px}.loc{font-size:13px;color:var(--accent);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.gallery a{display:block;border-radius:12px;overflow:hidden;aspect-ratio:1}.gallery img{width:100%;height:100%;object-fit:cover;transition:.5s}.gallery a:hover img{transform:scale(1.08)}
.lb{position:fixed;inset:0;background:rgba(0,0,0,.88);display:grid;place-items:center;z-index:200;cursor:zoom-out}.lb img{max-width:92vw;max-height:90vh;border-radius:8px}
/* detail pages */
.detail{display:grid;grid-template-columns:300px 1fr;gap:50px;align-items:start}.side{background:var(--alt);border-radius:var(--radius);padding:26px;position:sticky;top:110px}.side h4{font-size:20px;color:var(--primary);margin-bottom:12px}.side a{display:block;padding:10px 14px;border-radius:8px;font-size:15px;font-weight:500;border-left:3px solid transparent}.side a:hover,.side a.on{background:#fff;color:var(--primary);border-left-color:var(--accent)}
.detail article h2{font-size:clamp(28px,4vw,40px);color:var(--primary)}
.profile{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}.pf-photo img{border-radius:var(--radius);width:100%;box-shadow:var(--shadow)}.pf-meta{background:var(--alt);border-radius:var(--radius);padding:24px;margin-top:20px}.pf-meta h3{margin:0;font-size:26px;color:var(--primary)}.pf-meta a{display:flex;gap:10px;align-items:center;margin-top:10px;font-size:15px}.pf-meta a:hover{color:var(--accent)}
.pf-body h4{color:var(--accent);font-family:'Plus Jakarta Sans',sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:13px;font-weight:700;margin:0 0 4px}.pf-body>p{margin:0 0 22px;color:var(--ink);font-weight:500}
.article .hero-img{border-radius:var(--radius);margin-bottom:26px;width:100%}.article h2{font-size:clamp(28px,4vw,42px);color:var(--primary);margin-top:8px}
/* footer */
.ftr{background:#1d1030;color:#c9c3d4;margin-top:0}.ftr-news{background:var(--primary);padding:40px 0}.ftr-news .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}.ftr-news h3{color:#fff;font-size:30px;margin:6px 0 0}.ftr-news .eyebrow{color:#e7cf99}
.news-form{display:flex;gap:10px;flex:1;min-width:300px;max-width:560px}.news-form input{margin:0;border-radius:50px}
.ftr-grid{display:grid;grid-template-columns:1.3fr 1fr 1.4fr;gap:50px;padding:70px 0 50px}.ftr h4{color:#fff;font-size:22px;margin-bottom:18px;position:relative;padding-bottom:12px}.ftr h4:after{content:"";position:absolute;left:0;bottom:0;width:40px;height:2px;background:var(--accent)}
.flogo{height:78px;width:auto;margin-bottom:16px;border-radius:6px}.flinks,.fcontact{list-style:none;padding:0;margin:0}.flinks li{margin:9px 0}.flinks a:hover,.fcontact a:hover{color:var(--accent)}.fcontact li{display:flex;gap:12px;margin:12px 0}.fcontact .ic{color:var(--accent);margin-top:4px}
.socials{display:flex;gap:10px;margin-top:16px}.socials a{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:50%}.socials a:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.copy{border-top:1px solid rgba(255,255,255,.12);padding:20px 0;text-align:center;font-size:14px}.copy a:hover{color:var(--accent)}
@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.two-col,.profile,.detail,.cta-grid{grid-template-columns:1fr}.about-media{min-height:0;margin-bottom:40px}.side{position:static}.stat-row{grid-template-columns:repeat(2,1fr)}.ftr-grid{grid-template-columns:1fr 1fr}.cta-img{min-height:240px}}
@media(max-width:860px){.burger{display:block}.nav{position:absolute;left:0;right:0;top:100%;background:#fff;flex-direction:column;align-items:stretch;padding:10px 4%;box-shadow:var(--shadow);display:none;max-height:75vh;overflow:auto}.nav.open{display:flex}.nav ul{flex-direction:column}.nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 0 14px;display:block}.nav-cta{margin:10px 0}.landing{grid-template-columns:1fr;min-height:0}.landing-panel{min-height:46vh}.landing-panel+.landing-panel{border-left:0;border-top:1px solid rgba(255,255,255,.25)}.hdr{position:relative}}
@media(max-width:620px){.cards,.ftr-grid,.form .f2{grid-template-columns:1fr}.sec{padding:60px 0}.cta-form{padding:28px}.job{flex-direction:column;align-items:flex-start}.topbar .tb-r{display:none}.stat-row{grid-template-columns:1fr 1fr}}
