.sedv8-wrap{--sedv8-title-size:42px;--sedv8-subtitle-size:18px;--sedv8-name-size:24px;--sedv8-line1-size:18px;--sedv8-line2-size:16px;--sedv8-title-align:center;--sedv8-subtitle-align:center;--sedv8-name-align:center;--sedv8-line1-align:center;--sedv8-line2-align:center;--sedv8-image-height:320px;--sedv8-featured-image-height:360px;--sedv8-list-image-size:110px;--sedv8-primary:#2563eb;--sedv8-bg:#f8fafc;--sedv8-text:#0f172a;--sedv8-header-bg:#ffffff;--sedv8-header-divider-width:120px;--sedv8-header-divider-color:#d4af37;--sedv8-header-divider-display:block;--sedv8-section-padding:40px;--sedv8-header-gap:32px;--sedv8-grid-gap:24px;--sedv8-card-padding:22px;--sedv8-card-radius:24px;--sedv8-border-width:1px;--sedv8-shadow:0 18px 50px rgba(15,23,42,.08);--sedv8-item-image-height:320px;--sedv8-item-image-padding:18px;color:var(--sedv8-text);background:var(--sedv8-bg);padding:var(--sedv8-section-padding) 20px;border-radius:24px}
.sedv8-header{text-align:var(--sedv8-title-align);max-width:900px;margin:0 auto var(--sedv8-header-gap);background:var(--sedv8-header-bg);padding:20px 24px;border-radius:22px}.sedv8-header:after{content:"";display:var(--sedv8-header-divider-display);width:var(--sedv8-header-divider-width);height:4px;margin:18px auto 0;background:linear-gradient(90deg,var(--sedv8-primary),var(--sedv8-header-divider-color));border-radius:999px}
.sedv8-title{font-size:var(--sedv8-title-size);line-height:1.15;margin:0 0 10px;font-weight:800;color:var(--sedv8-text);text-align:var(--sedv8-title-align)}
.sedv8-subtitle{font-size:var(--sedv8-subtitle-size);opacity:.78;margin:0 auto;max-width:720px;text-align:var(--sedv8-subtitle-align)}
.sedv8-grid{display:grid;gap:var(--sedv8-grid-gap)}.sedv8-grid.sedv8-grid-2,.sedv8-grid.sedv8-grid-3,.sedv8-grid.sedv8-grid-4,.sedv8-custom-row{grid-template-columns:repeat(1,minmax(0,1fr))}
@media(min-width:700px){.sedv8-grid.sedv8-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sedv8-grid.sedv8-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.sedv8-grid.sedv8-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.sedv8-custom-row.sedv8-custom-row-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sedv8-custom-row.sedv8-custom-row-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sedv8-custom-row.sedv8-custom-row-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:1080px){.sedv8-grid.sedv8-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sedv8-grid.sedv8-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sedv8-custom-row.sedv8-custom-row-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sedv8-custom-row.sedv8-custom-row-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
.sedv8-list{display:flex;flex-direction:column;gap:18px}
.sedv8-card{background:#fff;border-radius:var(--sedv8-card-radius);overflow:hidden;display:flex;flex-direction:column;height:100%;border:var(--sedv8-border-width) solid rgba(15,23,42,.08);box-shadow:var(--sedv8-shadow)}
.sedv8-card-style-modern .sedv8-card{background:#fff}
.sedv8-card-style-formal .sedv8-card{background:#fff;border-color:rgba(15,23,42,.16)}
.sedv8-card-style-minimal .sedv8-card{background:#fff;box-shadow:none}
.sedv8-card-style-glass .sedv8-card{background:rgba(255,255,255,.72);backdrop-filter:blur(16px);border-color:rgba(255,255,255,.55)}
.sedv8-image-wrap{padding:var(--sedv8-item-image-padding) var(--sedv8-item-image-padding) 0}.sedv8-image{width:100%;height:var(--sedv8-item-image-height,var(--sedv8-image-height));object-fit:cover;object-position:center top;display:block;background:#e5e7eb}.sedv8-featured .sedv8-image{height:var(--sedv8-item-image-height,var(--sedv8-featured-image-height))}
.sedv8-image-placeholder{display:flex;align-items:center;justify-content:center;color:#64748b;font-weight:600}
.sedv8-content{padding:var(--sedv8-card-padding)}.sedv8-name{font-size:var(--sedv8-name-size);line-height:1.2;margin:0 0 8px;font-weight:800;color:var(--sedv8-text);text-align:var(--sedv8-name-align)}
.sedv8-line1{font-size:var(--sedv8-line1-size);color:var(--sedv8-primary);font-weight:700;margin-bottom:6px;text-align:var(--sedv8-line1-align)}.sedv8-line2{font-size:var(--sedv8-line2-size);opacity:.82;text-align:var(--sedv8-line2-align)}
.sedv8-card-list{flex-direction:row;align-items:center}.sedv8-card-list .sedv8-image-wrap{padding:var(--sedv8-item-image-padding)}.sedv8-card-list .sedv8-image{width:var(--sedv8-list-image-size);height:var(--sedv8-list-image-size)}
.sedv8-card-list .sedv8-content{padding-left:0;flex:1}
.sedv8-featured{margin-bottom:var(--sedv8-grid-gap)}@media(min-width:900px){.sedv8-featured{display:grid;grid-template-columns:minmax(280px,420px) 1fr;align-items:center}.sedv8-featured .sedv8-image-wrap{padding:24px}.sedv8-featured .sedv8-content{padding:24px 28px 24px 0}}
.sedv8-shape-rounded .sedv8-image{border-radius:20px}.sedv8-shape-square .sedv8-image{border-radius:0}.sedv8-shape-circle .sedv8-image{border-radius:999px;aspect-ratio:1/1;height:auto}.sedv8-shape-circle .sedv8-card:not(.sedv8-card-list) .sedv8-image-wrap{text-align:center}.sedv8-shape-circle .sedv8-card:not(.sedv8-card-list) .sedv8-image{width:min(100%,var(--sedv8-item-image-height,var(--sedv8-image-height)));max-width:min(100%,var(--sedv8-item-image-height,var(--sedv8-image-height)));margin:0 auto}.sedv8-custom-row-wrap{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sedv8-grid-gap);margin-bottom:var(--sedv8-grid-gap)}.sedv8-custom-row-wrap:last-child{margin-bottom:0}.sedv8-custom-row-item{flex:0 1 min(calc((100% - (var(--sedv8-grid-gap) * (var(--sedv8-row-cols) - 1))) / var(--sedv8-row-cols)),var(--sedv8-uniform-card-width));max-width:var(--sedv8-uniform-card-width);width:100%}.sedv8-custom-row-item .sedv8-card{height:100%}
.sedv8-empty{text-align:center;padding:40px 20px;background:#fff;border-radius:20px;border:1px dashed rgba(15,23,42,.14)}
@media(max-width:1079px){.sedv8-custom-row-item{flex-basis:min(calc((100% - var(--sedv8-grid-gap)) / 2),var(--sedv8-uniform-card-width))}}
@media(max-width:699px){.sedv8-custom-row-item{flex-basis:min(100%,var(--sedv8-uniform-card-width))}}
@media(max-width:699px){.sedv8-card-list{flex-direction:column;align-items:stretch}.sedv8-card-list .sedv8-content{padding-left:var(--sedv8-card-padding)}}
.sedv8-theme-thai-official{border:1px solid rgba(124,92,0,.15);box-shadow:0 16px 40px rgba(124,92,0,.08)}
.sedv8-theme-thai-official .sedv8-header{position:relative;padding-top:18px;background:linear-gradient(180deg,#fffdf5,#ffffff)}.sedv8-theme-thai-official .sedv8-header:before{content:"ตราองค์กร";display:inline-flex;align-items:center;justify-content:center;width:92px;height:92px;border-radius:999px;background:radial-gradient(circle at 30% 30%,#f7e7a1,#c89b3c);color:#5b4300;font-size:12px;font-weight:700;margin:0 auto 18px;box-shadow:0 10px 26px rgba(124,92,0,.18)}
.sedv8-theme-thai-official .sedv8-card{border-color:rgba(124,92,0,.12)}
.sedv8-theme-school-minimal .sedv8-card{box-shadow:0 8px 24px rgba(15,118,110,.08)}.sedv8-theme-school-minimal .sedv8-title{letter-spacing:.01em}.sedv8-theme-school-minimal .sedv8-line2{opacity:.7}
.sedv8-theme-blue-gold .sedv8-card{background:rgba(255,255,255,.08);border-color:rgba(212,160,23,.28);backdrop-filter:blur(10px)}
.sedv8-theme-blue-gold .sedv8-title,.sedv8-theme-blue-gold .sedv8-name,.sedv8-theme-blue-gold .sedv8-subtitle,.sedv8-theme-blue-gold .sedv8-line2{color:#f8fafc}
.sedv8-theme-blue-gold .sedv8-line1{color:#f4d06f}.sedv8-theme-blue-gold .sedv8-empty{background:rgba(255,255,255,.06);color:#f8fafc;border-color:rgba(212,160,23,.22)}
.sedv8-theme-print{padding:24px 0;border-radius:0;box-shadow:none}.sedv8-theme-print .sedv8-card{box-shadow:none!important;border:1px solid #d1d5db;border-radius:0;background:#fff}
.sedv8-theme-print .sedv8-image{filter:grayscale(100%)}.sedv8-theme-print .sedv8-header:before{display:none}
@media print{.sedv8-wrap{padding:0!important;background:#fff!important}.sedv8-card{break-inside:avoid;box-shadow:none!important}.sedv8-title{font-size:28px!important}.sedv8-subtitle{font-size:14px!important}}

.sedv8-theme-academic-blue .sedv8-header{background:linear-gradient(180deg,#eff6ff,#ffffff);border:1px solid rgba(29,78,216,.08)}
.sedv8-theme-academic-blue .sedv8-card{border-color:rgba(29,78,216,.12)}
.sedv8-theme-campus-green .sedv8-header{background:linear-gradient(180deg,#f0fdf4,#ffffff);border:1px solid rgba(21,128,61,.1)}
.sedv8-theme-campus-green .sedv8-card{border-color:rgba(21,128,61,.12)}

.sedv8-subsection-header{text-align:center;max-width:820px;margin:34px auto 24px;padding-top:6px}
.sedv8-subsection-title{margin:0;font-size:clamp(24px,3vw,34px);line-height:1.2;font-weight:800;color:var(--sedv8-text)}
.sedv8-subsection-subtitle{margin:10px auto 0;max-width:680px;font-size:16px;opacity:.78}
.sedv8-empty-section{margin-bottom:var(--sedv8-grid-gap)}
.sedv8-subsection-header + .sedv8-grid,.sedv8-subsection-header + .sedv8-list{margin-top:0}
.sedv8-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:0 auto 28px;max-width:980px}
.sedv8-filter-btn{appearance:none;border:1px solid rgba(15,23,42,.12);background:#fff;color:var(--sedv8-text);padding:10px 16px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.sedv8-filter-btn:hover{transform:translateY(-1px);border-color:var(--sedv8-primary)}
.sedv8-filter-btn.is-active{background:var(--sedv8-primary);color:#fff;border-color:var(--sedv8-primary);box-shadow:0 10px 24px color-mix(in srgb, var(--sedv8-primary) 22%, transparent)}
.sedv8-category-badge{display:inline-flex;align-self:flex-start;margin:14px 14px 0;padding:6px 10px;border-radius:999px;background:color-mix(in srgb, var(--sedv8-primary) 12%, #fff);color:var(--sedv8-primary);font-size:12px;font-weight:800;letter-spacing:.01em}
.sedv8-card-list .sedv8-category-badge{margin-bottom:-6px}
.sedv8-empty-filter{display:none;margin-top:12px}
.sedv8-section-block{margin-bottom:var(--sedv8-grid-gap)}
.sedv8-section-block:last-child{margin-bottom:0}

/* ===================== V15 modern additions ===================== */
.sedv8-card{transition:transform .28s cubic-bezier(.2,.8,.3,1),box-shadow .28s ease,border-color .28s ease}
.sedv8-image{transition:transform .45s cubic-bezier(.2,.8,.3,1)}
.sedv8-image-wrap{overflow:hidden;border-radius:inherit}

/* hover effects */
.sedv8-hover-lift .sedv8-card:hover,.sedv8-hover-both .sedv8-card:hover{transform:translateY(-6px);box-shadow:0 26px 60px rgba(15,23,42,.16);border-color:color-mix(in srgb,var(--sedv8-primary) 35%,rgba(15,23,42,.08))}
.sedv8-hover-zoom .sedv8-card:hover .sedv8-image,.sedv8-hover-both .sedv8-card:hover .sedv8-image{transform:scale(1.045)}
.sedv8-shape-circle.sedv8-hover-zoom .sedv8-card:hover .sedv8-image,.sedv8-shape-circle.sedv8-hover-both .sedv8-card:hover .sedv8-image{transform:scale(1.03)}

/* scroll-in animation */
.sedv8-js .sedv8-anim .sedv8-card{opacity:0;transform:translateY(22px)}
.sedv8-anim .sedv8-card.sedv8-in{opacity:1;transform:translateY(0);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.3,1),box-shadow .28s ease,border-color .28s ease}
.sedv8-anim.sedv8-hover-lift .sedv8-card.sedv8-in:hover,.sedv8-anim.sedv8-hover-both .sedv8-card.sedv8-in:hover{transform:translateY(-6px)}
@media(prefers-reduced-motion:reduce){.sedv8-js .sedv8-anim .sedv8-card{opacity:1;transform:none;transition:none}.sedv8-card,.sedv8-image{transition:none}}

/* clickable card */
.sedv8-clickable{cursor:pointer}
.sedv8-clickable:focus-visible{outline:3px solid var(--sedv8-primary);outline-offset:3px}
.sedv8-more-hint{display:inline-block;margin-top:10px;font-size:13px;font-weight:700;color:var(--sedv8-primary);opacity:.85}
.sedv8-clickable:hover .sedv8-more-hint{opacity:1;text-decoration:underline}

/* toolbar: search + print */
.sedv8-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;max-width:760px;margin:0 auto 22px}
.sedv8-search{position:relative;flex:1 1 320px;max-width:460px}
.sedv8-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;opacity:.55;pointer-events:none}
.sedv8-search-input{width:100%;padding:12px 42px 12px 40px;border-radius:999px;border:1px solid rgba(15,23,42,.14);background:#fff;font-size:15px;color:var(--sedv8-text);box-shadow:0 2px 12px rgba(15,23,42,.05);transition:border-color .2s ease,box-shadow .2s ease}
.sedv8-search-input:focus{outline:none;border-color:var(--sedv8-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--sedv8-primary) 18%,transparent)}
.sedv8-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:none;border-radius:999px;background:rgba(15,23,42,.08);color:var(--sedv8-text);font-size:16px;line-height:1;cursor:pointer}
.sedv8-search-clear:hover{background:rgba(15,23,42,.16)}
.sedv8-print-btn{appearance:none;border:1px solid rgba(15,23,42,.12);background:#fff;color:var(--sedv8-text);padding:11px 18px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 2px 10px rgba(15,23,42,.04);transition:all .2s ease}
.sedv8-print-btn:hover{border-color:var(--sedv8-primary);color:var(--sedv8-primary);transform:translateY(-1px)}
.sedv8-theme-blue-gold .sedv8-search-input,.sedv8-theme-blue-gold .sedv8-print-btn{background:rgba(255,255,255,.1);color:#f8fafc;border-color:rgba(212,160,23,.3)}
.sedv8-theme-blue-gold .sedv8-search-input::placeholder{color:rgba(248,250,252,.6)}

/* profile modal */
.sedv8-modal{position:fixed;inset:0;z-index:99990;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .18s ease}
.sedv8-modal.is-open{opacity:1}
.sedv8-modal[hidden]{display:none}
.sedv8-modal-overlay{position:absolute;inset:0;background:rgba(10,15,30,.55);backdrop-filter:blur(4px)}
.sedv8-modal-dialog{position:relative;width:min(760px,100%);max-height:min(86vh,760px);overflow:auto;background:#fff;color:#0f172a;border-radius:24px;box-shadow:0 40px 120px rgba(0,0,0,.35);padding:30px;transform:translateY(14px) scale(.98);transition:transform .2s cubic-bezier(.2,.8,.3,1)}
.sedv8-modal.is-open .sedv8-modal-dialog{transform:translateY(0) scale(1)}
.sedv8-modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border:none;border-radius:999px;background:rgba(15,23,42,.07);color:#0f172a;font-size:22px;line-height:1;cursor:pointer;transition:background .2s ease}
.sedv8-modal-close:hover{background:rgba(15,23,42,.15)}
.sedv8-modal-body{display:grid;grid-template-columns:220px 1fr;gap:26px;align-items:start}
.sedv8-modal-media{display:flex;flex-direction:column;gap:16px;align-items:center}
.sedv8-modal-image{width:200px;height:240px;object-fit:cover;object-position:center top;border-radius:18px;background:#e5e7eb;box-shadow:0 14px 40px rgba(15,23,42,.14)}
.sedv8-modal-qr{text-align:center}
.sedv8-modal-qr-box{width:130px;height:130px;margin:0 auto;padding:6px;background:#fff;border:1px solid rgba(15,23,42,.1);border-radius:14px}
.sedv8-modal-qr-box svg{width:100%;height:100%;display:block}
.sedv8-modal-qr-hint{margin:8px 0 0;font-size:12px;color:#64748b;max-width:150px}
.sedv8-modal-name{margin:0 0 6px;font-size:26px;font-weight:800;line-height:1.2}
.sedv8-modal-line1{color:var(--sedv8-primary,#2563eb);font-weight:700;font-size:17px;margin-bottom:4px}
.sedv8-modal-line2{opacity:.75;font-size:15px;margin-bottom:12px}
.sedv8-modal-bio{margin:0 0 16px;font-size:15px;line-height:1.75;white-space:pre-line;color:#334155}
.sedv8-modal-contact{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px;font-size:15px}
.sedv8-modal-contact span{font-weight:700;margin-right:6px}
.sedv8-modal-contact a{color:var(--sedv8-primary,#2563eb);text-decoration:none}
.sedv8-modal-contact a:hover{text-decoration:underline}
.sedv8-vcard-btn{appearance:none;border:none;background:var(--sedv8-primary,#2563eb);color:#fff;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 12px 30px color-mix(in srgb,var(--sedv8-primary,#2563eb) 35%,transparent);transition:transform .2s ease,filter .2s ease}
.sedv8-vcard-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
body.sedv8-modal-open{overflow:hidden}
@media(max-width:680px){.sedv8-modal-dialog{padding:22px}.sedv8-modal-body{grid-template-columns:1fr}.sedv8-modal-media{flex-direction:row;justify-content:center;flex-wrap:wrap}.sedv8-modal-image{width:150px;height:180px}}

/* print refinements */
@media print{.sedv8-toolbar,.sedv8-filters,.sedv8-modal,.sedv8-more-hint{display:none!important}.sedv8-anim .sedv8-card{opacity:1!important;transform:none!important}}
