:root { --green:#004230; --green-deep:#003426; --green-light:#71ab3a; --green-light-soft:#f1f7e9; --green-light-line:#c8dfb3; --orange:#fea66b; --ink:#17362d; --muted:#667872; --line:#dce8e3; }
* { box-sizing:border-box; }
body { min-width:320px; margin:0; color:var(--ink); background:radial-gradient(circle at 0 0,rgba(254,166,107,.13),transparent 27rem),radial-gradient(circle at 97% 8%,rgba(113,171,58,.16),transparent 29rem),radial-gradient(circle at 95% 90%,rgba(0,66,48,.08),transparent 33rem),#fff; font-family:Montserrat,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.directory-profile-page { min-height:100svh; padding:clamp(18px,4vw,54px); }
.directory-profile-shell { width:min(100%,1120px); margin:0 auto; }
.directory-profile-card { overflow:hidden; border:1px solid rgba(113,171,58,.3); border-radius:28px; background:rgba(255,255,255,.96); box-shadow:0 26px 80px rgba(0,66,48,.12),0 10px 30px rgba(113,171,58,.08); }
.directory-profile-hero { padding:clamp(30px,5vw,62px); background:linear-gradient(135deg,rgba(113,171,58,.14),transparent 44%),linear-gradient(145deg,var(--green-deep),var(--green) 66%,#216c36); color:#fff; }
.directory-profile-breadcrumb { display:inline-flex; align-items:center; gap:8px; color:rgba(255,255,255,.84); font-size:.74rem; font-weight:750; text-decoration:none; }
.directory-profile-breadcrumb:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.directory-profile-breadcrumb:focus-visible,.directory-profile-back:focus-visible { outline:3px solid var(--green-light); outline-offset:4px; }
.directory-profile-identity { display:flex; align-items:center; gap:clamp(18px,3vw,30px); margin-top:clamp(30px,5vw,48px); }
.directory-profile-avatar { display:block; width:clamp(94px,13vw,138px); height:clamp(94px,13vw,138px); flex:0 0 auto; border:3px solid rgba(255,255,255,.8); border-radius:50%; background:#fff; object-fit:cover; box-shadow:0 12px 30px rgba(0,0,0,.18); }
.directory-profile-avatar--fallback { display:grid; place-items:center; background:linear-gradient(145deg,#fff,#eaf3df); color:var(--green); font-size:clamp(1.8rem,4vw,3rem); font-weight:850; }
.directory-profile-kicker { margin:0 0 12px; color:var(--orange); font-size:.72rem; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.directory-profile-kicker::before { display:inline-block; width:27px; height:2px; margin:0 9px 3px 0; content:""; background:currentColor; }
.directory-profile-hero h1 { max-width:760px; margin:0; color:#fff; font-size:clamp(2rem,4vw,3.55rem); font-weight:800; letter-spacing:-.065em; line-height:1.05; overflow-wrap:anywhere; }
.directory-profile-profession { margin:12px 0 0; color:var(--orange); font-size:clamp(.94rem,1.7vw,1.2rem); font-weight:800; }
.directory-profile-content { padding:clamp(28px,5vw,58px); background:linear-gradient(180deg,rgba(241,247,233,.48),transparent 30%); }
.directory-profile-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.8fr); gap:clamp(20px,3vw,34px); }
.directory-profile-contributions { margin-top:clamp(26px,4vw,46px); padding-top:clamp(26px,4vw,42px); border-top:1px solid rgba(113,171,58,.3); }
.directory-profile-contributions__heading { max-width:670px; }
.directory-profile-contributions__heading .directory-profile-kicker { margin-bottom:10px; color:#b65d24; }
.directory-profile-contributions__heading h2 { margin:0; color:var(--green); font-size:clamp(1.38rem,2.6vw,2rem); letter-spacing:-.055em; }
.directory-profile-contributions__heading h2::after { display:block; width:42px; height:3px; margin-top:15px; content:""; border-radius:99px; background:var(--green-light); }
.directory-profile-contributions__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,2.4vw,25px); margin-top:clamp(22px,3vw,31px); }
.directory-profile-contribution-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid rgba(113,171,58,.34); border-radius:16px; background:#fff; box-shadow:0 11px 28px rgba(0,66,48,.06); transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.directory-profile-contribution-card:hover { border-color:rgba(0,66,48,.45); box-shadow:0 15px 33px rgba(0,66,48,.11); transform:translateY(-2px); }
.directory-profile-contribution-card__media { position:relative; aspect-ratio:16 / 9; overflow:hidden; background:linear-gradient(135deg,rgba(113,171,58,.25),rgba(0,66,48,.9)); }
.directory-profile-contribution-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.directory-profile-contribution-card__media--fallback::before { position:absolute; top:50%; left:50%; width:42px; height:42px; content:""; background:rgba(255,255,255,.92); -webkit-mask:center / contain no-repeat url("../../include/img/fa-lightbulb-thin.svg?v=1.3.1-contribution-2"); mask:center / contain no-repeat url("../../include/img/fa-lightbulb-thin.svg?v=1.3.1-contribution-2"); transform:translate(-50%,-50%); }
.directory-profile-contribution-card__body { display:flex; height:100%; min-width:0; flex-direction:column; align-items:flex-start; padding:18px; }
.directory-profile-contribution-card__meta { display:flex; min-width:0; flex-wrap:wrap; gap:6px; }
.directory-profile-contribution-card__meta span { display:inline-flex; min-height:23px; align-items:center; padding:4px 7px; border-radius:999px; font-size:.62rem; font-weight:800; line-height:1.15; }
.directory-profile-contribution-card__type { background:var(--green); color:#fff; }
.directory-profile-contribution-card__category { background:#fff1e7; color:#a44a18; }
.directory-profile-contribution-card__audience { background:var(--green-light-soft); color:#245d28; }
.directory-profile-contribution-card__date { display:block; margin-top:14px; color:#71817b; font-size:.68rem; font-weight:700; }
.directory-profile-contribution-card h3 { margin:8px 0 18px; color:var(--green); font-size:1rem; font-weight:800; letter-spacing:-.035em; line-height:1.26; overflow-wrap:anywhere; }
.directory-profile-contribution-card__link { display:inline-flex; min-height:39px; align-items:center; margin-top:auto; color:var(--green); font-size:.74rem; font-weight:850; text-decoration:underline; text-decoration-color:var(--orange); text-decoration-thickness:2px; text-underline-offset:5px; }
.directory-profile-contribution-card__link:hover { color:#216c36; }
.directory-profile-contribution-card__link:focus-visible { outline:3px solid rgba(113,171,58,.6); outline-offset:4px; }
.directory-profile-panel { padding:clamp(22px,4vw,34px); border:1px solid rgba(113,171,58,.3); border-radius:18px; background:rgba(255,255,255,.88); box-shadow:0 15px 34px rgba(0,66,48,.06); }
.directory-profile-panel--secondary { margin-top:clamp(20px,3vw,34px); }
.directory-profile-panel h2 { margin:0; color:var(--green); font-size:clamp(1.2rem,2vw,1.55rem); letter-spacing:-.05em; }
.directory-profile-panel h2::after { display:block; width:42px; height:3px; margin-top:15px; content:""; border-radius:99px; background:var(--green-light); }
.directory-profile-description { margin:21px 0 0; color:#466057; font-size:.88rem; font-weight:500; line-height:1.8; white-space:pre-line; }
.directory-profile-empty { margin:21px 0 0; color:var(--muted); font-size:.84rem; line-height:1.65; }
.directory-profile-location-list { display:grid; gap:12px; margin:21px 0 0; }
.directory-profile-location { padding:16px 17px; border:1px solid #e1ecd9; border-radius:12px; background:var(--green-light-soft); }
.directory-profile-location strong { display:block; color:var(--green); font-size:.82rem; }
.directory-profile-location span { display:block; margin-top:5px; color:#597068; font-size:.76rem; font-weight:600; line-height:1.5; }
.directory-profile-details { display:grid; gap:15px; margin:0; }
.directory-profile-details div { padding-bottom:15px; border-bottom:1px solid #e7efe6; }
.directory-profile-details div:last-child { padding-bottom:0; border-bottom:0; }
.directory-profile-details dt { color:#7a8b84; font-size:.67rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.directory-profile-details dd { margin:6px 0 0; color:var(--green); font-size:.86rem; font-weight:750; line-height:1.45; }
.directory-profile-visio { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border:1px solid var(--green-light-line); border-radius:999px; background:var(--green-light-soft); color:#245d28; font-size:.72rem; font-weight:800; }
.directory-profile-visio::before { display:block; width:14px; height:14px; flex:0 0 14px; content:""; background:currentColor; -webkit-mask:center / contain no-repeat url("../../include/img/fa-video.svg"); mask:center / contain no-repeat url("../../include/img/fa-video.svg"); }
.directory-profile-website { display:inline-flex; align-items:center; gap:9px; width:fit-content; margin-top:24px; padding:11px 14px; border-radius:9px; background:var(--green); color:#fff; font-size:.78rem; font-weight:800; line-height:1.2; text-decoration:none; box-shadow:0 7px 16px rgba(0,66,48,.16); transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.directory-profile-website::before { width:14px; height:14px; flex:0 0 14px; content:""; background:currentColor; -webkit-mask:center / contain no-repeat url("../../include/img/fa-globe.svg"); mask:center / contain no-repeat url("../../include/img/fa-globe.svg"); }
.directory-profile-website:hover { background:#216c36; color:#fff; box-shadow:0 9px 18px rgba(0,66,48,.2); transform:translateY(-1px); }
.directory-profile-website:focus-visible { outline:3px solid rgba(113,171,58,.5); outline-offset:3px; }
.directory-profile-back { display:inline-flex; margin-top:30px; color:var(--green); font-size:.78rem; font-weight:800; text-underline-offset:4px; }
.directory-profile-back:hover { color:#216c36; }
.directory-profile-brand { display:flex; width:min(100%,190px); justify-content:center; margin:33px auto 0; padding:7px 10px; background:transparent; text-decoration:none; }
.directory-profile-brand img { display:block; width:auto; max-width:100%; max-height:92px; object-fit:contain; }
@media (max-width:900px) { .directory-profile-contributions__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .directory-profile-page { padding:0; } .directory-profile-card { border:0; border-radius:0; } .directory-profile-hero,.directory-profile-content { padding-right:25px; padding-left:25px; } .directory-profile-grid { grid-template-columns:1fr; } }
@media (max-width:460px) { .directory-profile-identity { align-items:flex-start; flex-direction:column; } .directory-profile-avatar { width:92px; height:92px; } }
@media (max-width:600px) { .directory-profile-breadcrumb { min-height:44px; font-size:.9rem; }.directory-profile-kicker { font-size:.8rem; }.directory-profile-profession { font-size:1.05rem; }.directory-profile-description { font-size:.98rem; }.directory-profile-empty { font-size:.92rem; }.directory-profile-location strong { font-size:.92rem; }.directory-profile-location span { font-size:.86rem; }.directory-profile-details dt { font-size:.76rem; }.directory-profile-details dd { font-size:.94rem; }.directory-profile-visio { min-height:38px; font-size:.84rem; }.directory-profile-website { min-height:46px; font-size:.9rem; }.directory-profile-back { min-height:44px; display:inline-flex; align-items:center; font-size:.9rem; }.directory-profile-contributions__grid { grid-template-columns:1fr; }.directory-profile-contribution-card__body { padding:20px; }.directory-profile-contribution-card__meta span { min-height:26px; font-size:.7rem; }.directory-profile-contribution-card__date { font-size:.78rem; }.directory-profile-contribution-card h3 { font-size:1.12rem; }.directory-profile-contribution-card__link { min-height:44px; font-size:.88rem; } }
