
:root{--ink:#1e2924;--muted:#607068;--paper:#f5f2ea;--paper2:#ebe8de;--white:#fff;--green:#1f4a3a;--green2:#dce8df;--rust:#9a563f;--line:#d8d4c9;--shadow:0 16px 50px rgba(25,38,31,.08);--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{opacity:.78}.container{width:min(1180px,calc(100% - 40px));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(245,242,234,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(30,41,36,.12)}.nav{display:flex;align-items:center;min-height:80px;gap:28px}.brand{display:flex;align-items:center;gap:13px;margin-right:auto}.mark{width:38px;height:38px;border:1.5px solid var(--ink);border-radius:50%;display:grid;place-items:center;font:700 12px var(--serif);letter-spacing:.03em}.brandtext strong{display:block;font-size:13px;letter-spacing:.11em}.brandtext span{display:block;color:var(--muted);font-size:10px;letter-spacing:.04em}.navlinks{display:flex;align-items:center;gap:20px;font-size:13px}.navlinks a.active{border-bottom:1px solid var(--ink)}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--ink);padding:11px 16px;border-radius:999px;font-size:13px;font-weight:650}.btn.primary,.nav-cta{background:var(--ink);color:var(--paper)}.btn.ghost{background:transparent}.menu-btn{display:none;background:none;border:0;font-size:24px}.hero{padding:92px 0 66px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:700;color:var(--rust);margin:0 0 18px}.hero h1,.page-hero h1{font:400 clamp(48px,7.2vw,96px)/.98 var(--serif);letter-spacing:-.045em;margin:0;max-width:980px}.hero h1 em{font-style:italic;color:var(--green)}.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:60px;align-items:end;margin-top:36px}.lead{font:400 22px/1.45 var(--serif);max-width:760px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.side-note{border-top:1px solid var(--ink);padding-top:16px;color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.stat{padding:30px 0}.stat+.stat{border-left:1px solid var(--line);padding-left:30px}.stat strong{font:400 38px var(--serif);display:block}.stat span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.section{padding:88px 0}.section.tight{padding:58px 0}.section.alt{background:var(--paper2)}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:34px}.section-head h2,.content h2{font:400 clamp(34px,4.5vw,56px)/1.06 var(--serif);letter-spacing:-.035em;margin:0}.section-head p{max-width:510px;color:var(--muted);margin:0}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,1fr)}.grid.three{grid-template-columns:repeat(3,1fr)}.card{background:rgba(255,255,255,.54);border:1px solid var(--line);border-radius:18px;padding:26px}.card.dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.card h3{font:400 26px/1.15 var(--serif);margin:8px 0 12px}.card p{color:var(--muted);margin:0}.card.dark p{color:#cbd3ce}.card .meta{font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:var(--rust);font-weight:700}.card.dark .meta{color:#ddb8a8}.arrow{display:inline-block;margin-top:18px;font-weight:700;font-size:13px}.event-list{border-top:1px solid var(--line)}.event-row{display:grid;grid-template-columns:150px 1fr 190px;gap:25px;padding:22px 0;border-bottom:1px solid var(--line);align-items:center}.event-date{font:400 19px var(--serif)}.event-title{font-weight:650}.event-meta{font-size:13px;color:var(--muted)}.page-hero{padding:78px 0 58px;border-bottom:1px solid var(--line)}.page-hero p{font:400 21px/1.55 var(--serif);max-width:790px;color:#39463f}.content{max-width:800px}.content h2{margin:58px 0 18px}.content h3{font:400 27px var(--serif);margin:36px 0 10px}.content p,.content li{color:#3f4d46}.content ul{padding-left:20px}.split{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:70px}.aside{position:sticky;top:110px;align-self:start}.aside-box{border-top:1px solid var(--ink);padding-top:18px;margin-bottom:32px}.aside-box h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 12px}.aside-box p,.aside-box li{font-size:14px;color:var(--muted)}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.person{border-top:1px solid var(--line);padding:18px 0}.person h3{font:400 21px var(--serif);margin:0 0 5px}.person .role{font-size:12px;color:var(--rust);text-transform:uppercase;letter-spacing:.08em}.person p{font-size:13px;color:var(--muted);margin:5px 0}.filters{display:grid;grid-template-columns:1fr 220px 160px;gap:10px;margin:26px 0 20px}.input,.select{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.7);border-radius:12px;padding:14px 14px;color:var(--ink);font:inherit}.result-count{font-size:13px;color:var(--muted);margin:8px 0 18px}.directory{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.therapist-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:rgba(255,255,255,.48)}.therapist-card h3{font:400 23px var(--serif);margin:0 0 5px}.therapist-card .place{font-size:12px;color:var(--rust);font-weight:700;text-transform:uppercase;letter-spacing:.07em}.therapist-card p{font-size:13px;color:var(--muted);margin:9px 0}.therapist-card details{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.therapist-card summary{cursor:pointer;font-size:13px;font-weight:650}.contact-line{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:12px}.tag{display:inline-block;padding:5px 9px;border:1px solid var(--line);border-radius:999px;font-size:11px;color:var(--muted)}.year-block{border-top:1px solid var(--line);padding-top:22px;margin-top:38px}.year-block h2{margin:0 0 10px;font-size:40px}.academy-row{display:grid;grid-template-columns:105px 190px 1fr;gap:20px;padding:13px 0;border-bottom:1px solid var(--line);font-size:14px}.academy-row strong{font-weight:650}.feature{padding:36px;border-radius:22px;background:var(--green);color:#f3f0e8}.feature h2{font:400 44px/1.05 var(--serif);margin:0 0 14px}.feature p{color:#d8e3dd;max-width:680px}.notice{border-left:3px solid var(--rust);padding:4px 0 4px 18px;color:var(--muted);font-size:14px}.footer{background:var(--ink);color:var(--paper);padding:60px 0 28px;margin-top:80px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.footer h3{font:400 28px var(--serif);margin-top:0}.footer p,.footer a{color:#bcc8c1;font-size:13px}.footer-links{display:grid;gap:6px}.copyright{border-top:1px solid #46534d;margin-top:44px;padding-top:18px;display:flex;justify-content:space-between;color:#9facA5;font-size:11px}.event-detail{display:grid;grid-template-columns:1fr 320px;gap:60px}.event-detail h1{font:400 clamp(42px,6vw,72px)/1.02 var(--serif);letter-spacing:-.04em}.factlist{display:grid;gap:10px;margin:24px 0}.fact{padding:13px 0;border-bottom:1px solid var(--line)}.back{font-size:13px;font-weight:650}.empty{padding:40px;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted)}
@media(max-width:980px){.navlinks{display:none;position:absolute;left:0;right:0;top:80px;background:var(--paper);padding:22px 20px;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start}.navlinks.open{display:flex}.menu-btn{display:block}.nav-cta{display:none}.hero-grid,.split,.event-detail{grid-template-columns:1fr}.aside{position:static}.grid.three,.people-grid{grid-template-columns:repeat(2,1fr)}.event-row{grid-template-columns:120px 1fr}.event-row>div:last-child{grid-column:2}.filters{grid-template-columns:1fr 1fr}.filters .select:last-child{grid-column:1/-1}}
@media(max-width:680px){.container{width:min(100% - 26px,1180px)}.hero{padding:58px 0 42px}.hero h1,.page-hero h1{font-size:48px}.hero-grid{gap:24px}.stats{grid-template-columns:1fr}.stat+.stat{border-left:0;border-top:1px solid var(--line);padding-left:0}.grid.two,.grid.three,.people-grid,.directory{grid-template-columns:1fr}.section{padding:60px 0}.section-head{display:block}.section-head p{margin-top:14px}.event-row{grid-template-columns:1fr;gap:6px}.event-row>div:last-child{grid-column:auto}.academy-row{grid-template-columns:1fr;gap:3px}.filters{grid-template-columns:1fr}.filters .select:last-child{grid-column:auto}.footer-grid{grid-template-columns:1fr}.copyright{display:block}.brandtext span{display:none}}

/* Portraits migrated from the existing ISTDP Danmark directory */
.profile-photo{position:relative;overflow:hidden;background:var(--paper2);border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);font:600 18px var(--serif);flex:0 0 auto}
.profile-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 24%}
.profile-photo--therapist{width:108px;height:128px;border-radius:12px}
.profile-photo--trainer{width:100%;aspect-ratio:4/5;border-radius:14px;margin-bottom:15px}
.therapist-card{display:grid;grid-template-columns:108px minmax(0,1fr);gap:18px;align-items:start}
.therapist-card .profile-body{min-width:0}
.person--with-photo{border-top:0;padding:0;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.42);overflow:hidden}
.person--with-photo>div:last-child{padding:0 18px 20px}
.person--with-photo .profile-photo{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0 0 16px}
@media(max-width:680px){.therapist-card{grid-template-columns:82px minmax(0,1fr);gap:14px}.profile-photo--therapist{width:82px;height:104px}}

/* Official society mark */
.brand-logo{width:54px;height:54px;display:block;flex:0 0 auto}
.footer-brand{display:grid;grid-template-columns:92px 1fr;gap:20px;align-items:start}
.footer-brand>img{width:92px;height:92px;display:block}
.footer-brand h3{margin-bottom:7px}
.society-hero{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:70px;align-items:center}
.society-logo{width:230px;max-width:100%;justify-self:end}
@media(max-width:980px){.brand-logo{width:48px;height:48px}.society-hero{grid-template-columns:1fr 170px;gap:35px}.society-logo{width:170px}}
@media(max-width:680px){.brand-logo{width:43px;height:43px}.brand{gap:9px}.brandtext strong{font-size:11px}.society-hero{grid-template-columns:1fr}.society-logo{width:150px;justify-self:start;margin-top:20px}.footer-brand{grid-template-columns:72px 1fr}.footer-brand>img{width:72px;height:72px}}


/* v4 — official ISTDP Danmark logo supplied by the society */
.brand{min-width:150px}
.brand-logo{width:142px;height:auto;max-height:68px;object-fit:contain;display:block;flex:0 0 auto}
.footer-brand{grid-template-columns:165px 1fr;gap:24px;align-items:center}
.footer-brand>img{width:165px;height:auto;display:block;background:#fff;border-radius:8px;padding:8px}
.society-logo{width:300px;height:auto;max-width:100%;justify-self:end}
@media(max-width:1100px){.brand-logo{width:125px}.nav{gap:20px}.navlinks{gap:15px}}
@media(max-width:980px){.brand-logo{width:130px;max-height:64px}.society-hero{grid-template-columns:1fr 210px}.society-logo{width:210px}}
@media(max-width:680px){.brand-logo{width:112px}.brand{min-width:112px}.society-hero{grid-template-columns:1fr}.society-logo{width:180px;justify-self:start}.footer-brand{grid-template-columns:125px 1fr}.footer-brand>img{width:125px}}

/* v5 — supplied wide society wordmark, simple home, exact migrated content */
.brand{min-width:285px}
.brand-logo{width:300px;height:auto;max-height:58px;object-fit:contain;object-position:left center;display:block}
.home-simple .welcome{padding:78px 0 70px}
.welcome-wrap{max-width:1000px}
.welcome h1{font:400 clamp(48px,6.2vw,78px)/1 var(--serif);letter-spacing:-.045em;margin:0 0 34px}
.welcome-copy{max-width:900px}
.welcome-copy p{font:400 19px/1.72 var(--serif);color:#35423c;margin:0 0 22px}
.welcome-actions{margin-top:32px}
.home-simple+.footer{margin-top:0}
.import-notice{border:1px solid #d6c8bc;border-left:4px solid var(--rust);background:rgba(255,255,255,.55);border-radius:12px;padding:15px 17px;margin:0 0 24px;color:#49574f;font-size:14px}
.import-notice a{text-decoration:underline;text-underline-offset:2px}
.therapist-card p strong,.person--with-photo p strong{color:var(--ink);font-weight:650}
.profile-contact{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.profile-contact p{margin:7px 0}
.legacy-content{max-width:850px;color:#35423c}
.legacy-content h1,.legacy-content h2,.legacy-content h3,.legacy-content h4,.legacy-content h5,.legacy-content h6{font-family:var(--serif);font-weight:400;color:var(--ink);line-height:1.13;letter-spacing:-.02em}
.legacy-content h2{font-size:38px;margin:45px 0 16px}.legacy-content h3{font-size:30px;margin:38px 0 14px}.legacy-content h4{font-size:24px;margin:32px 0 12px}.legacy-content h5,.legacy-content h6{font-size:21px;margin:28px 0 10px}
.legacy-content p,.legacy-content li{font-size:16px;line-height:1.72}.legacy-content p{margin:0 0 18px}.legacy-content ul,.legacy-content ol{padding-left:24px;margin:0 0 22px}.legacy-content a{text-decoration:underline;text-underline-offset:2px}.legacy-content img{max-width:100%;height:auto}.legacy-content table{width:100%;border-collapse:collapse}.legacy-content td,.legacy-content th{padding:9px;border-bottom:1px solid var(--line);vertical-align:top}
.academy-exact{max-width:900px}.academy-exact:empty{min-height:120px}
.event-original{margin-top:34px}.event-detail .legacy-content h1{font-size:36px}.event-detail .legacy-content h2{font-size:32px}.event-detail .legacy-content h3{font-size:26px}.event-detail>div>h2{font:400 34px var(--serif);margin-top:42px}.event-eyebrow{margin-top:34px}.event-source-date{font:400 18px var(--serif);color:var(--muted);margin:-12px 0 28px}.space-top{margin-top:12px!important}.event-contact{margin-top:18px;border-color:#f5f2ea!important;color:#f5f2ea!important}.source-box{margin-top:28px}
@media(max-width:1180px){.brand{min-width:240px}.brand-logo{width:245px}.nav{gap:18px}.navlinks{gap:14px}.navlinks a{font-size:12px}}
@media(max-width:980px){.brand{min-width:0}.brand-logo{width:270px;max-height:56px}.navlinks{top:80px}}
@media(max-width:680px){.brand-logo{width:min(250px,70vw)}.home-simple .welcome{padding:52px 0 50px}.welcome-copy p{font-size:17px;line-height:1.65}.welcome h1{margin-bottom:26px}}
.event-meta-original{margin-top:46px;padding-top:26px;border-top:1px solid var(--line)}
.event-meta-original dl{display:grid;grid-template-columns:140px 1fr;gap:8px 18px}.event-meta-original dt{font-weight:700}.event-meta-original dd{margin:0}
@media(max-width:680px){.event-meta-original dl{grid-template-columns:1fr;gap:2px}.event-meta-original dd{margin-bottom:10px}}

/* Academy calendar-style layout */
.academy-intro{max-width:850px;margin-top:28px}
.academy-intro p{font:400 18px/1.65 var(--serif);color:#39463f;margin:0 0 14px}
.academy-event-list{border-top:1px solid var(--line)}
.academy-event{border-bottom:1px solid var(--line)}
.academy-event summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:150px 1fr 170px;gap:25px;align-items:center;padding:22px 0}
.academy-event summary::-webkit-details-marker{display:none}
.academy-more{font-size:13px;color:var(--muted);text-align:right}
.academy-event[open] .academy-more span{display:inline-block;transform:rotate(180deg)}
.academy-detail{display:grid;grid-template-columns:1fr 1fr;gap:46px;padding:8px 0 38px 175px;max-width:1100px}
.academy-detail h3{font:400 25px/1.2 var(--serif);margin:0 0 13px}
.academy-detail p{font-size:15px;color:#3f4d46;line-height:1.7;margin:0 0 14px}
.academy-year{margin-top:46px}
.academy-year:first-child{margin-top:0}
.academy-year>h2{font:400 38px var(--serif);margin:0 0 15px}
.academy-archive-row{grid-template-columns:150px 1fr}
.academy-archive-row .event-meta{margin-top:3px}
@media(max-width:980px){.academy-event summary{grid-template-columns:120px 1fr}.academy-more{grid-column:2;text-align:left}.academy-detail{padding-left:145px;grid-template-columns:1fr}}
@media(max-width:680px){.academy-event summary{grid-template-columns:1fr;gap:5px}.academy-more{grid-column:auto;text-align:left}.academy-detail{padding-left:0;grid-template-columns:1fr;gap:18px}.academy-archive-row{grid-template-columns:1fr}}


/* v5: compact trainer portraits */
#trainerGrid.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#trainerGrid .person--with-photo{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:start;padding:18px;overflow:visible}
#trainerGrid .profile-photo--trainer{width:112px;height:136px;aspect-ratio:auto;border-radius:12px;margin:0}
#trainerGrid .person--with-photo>div:last-child{padding:0}
#trainerGrid .person--with-photo .profile-photo{border:1px solid var(--line);border-radius:12px;margin:0}
@media(max-width:820px){#trainerGrid.people-grid{grid-template-columns:1fr}}
@media(max-width:520px){#trainerGrid .person--with-photo{grid-template-columns:82px minmax(0,1fr);gap:14px;padding:14px}#trainerGrid .profile-photo--trainer{width:82px;height:102px}}

/* v5: historical calendar archive */
.calendar-archive-year{border-top:1px solid var(--line)}
.calendar-archive-year:last-child{border-bottom:1px solid var(--line)}
.calendar-archive-year>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr auto 30px;gap:20px;align-items:center;padding:22px 0}
.calendar-archive-year>summary::-webkit-details-marker{display:none}
.archive-year-title{font:400 36px var(--serif);letter-spacing:-.025em}
.archive-year-count{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.archive-year-arrow{font-size:18px;text-align:right;transition:transform .2s ease}
.calendar-archive-year[open] .archive-year-arrow{transform:rotate(180deg)}
.archive-event-list{margin-bottom:26px}
.archive-event-list .event-row{padding:17px 0}
.archive-event-list .event-date{font-size:16px}
.archive-website{display:block;color:#f5f2ea;margin-top:14px}
@media(max-width:680px){.calendar-archive-year>summary{grid-template-columns:1fr auto}.archive-year-arrow{display:none}.archive-year-title{font-size:30px}.archive-year-count{text-align:right}}
