@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700;800&display=swap');
:root{--navy:#243478;--deep:#17255f;--blue:#2e76c5;--gold:#e7b54b;--ink:#17213b;--muted:#63708a;--line:#dce6f2;--shadow:0 18px 50px rgba(29,52,112,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--ink);background:linear-gradient(145deg,#eef7ff 0%,#fff 48%,#fff8e8 100%);font-family:"Sarabun","Segoe UI",Tahoma,Arial,sans-serif;line-height:1.6}.page{width:min(1180px,calc(100% - 32px));margin:auto;padding:28px 0 56px}.topbar{display:flex;justify-content:flex-end;margin-bottom:16px}.language-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#e8edf5;border:1px solid #d8e0eb;border-radius:999px;box-shadow:0 6px 18px rgba(23,37,95,.08)}.language-switch::before{content:"";position:absolute;top:4px;bottom:4px;left:var(--toggle-left,4px);width:calc(50% - 5px);border-radius:999px;background:var(--navy);box-shadow:0 4px 10px rgba(36,52,120,.25);transition:.25s}.language-switch a{position:relative;z-index:1;display:flex;align-items:center;gap:7px;padding:8px 13px;color:#667085;text-decoration:none;font-size:14px;font-weight:700;border-radius:999px}.language-switch a[aria-current=page]{color:#fff}.flag{font-size:17px}.hero{position:relative;overflow:hidden;padding:42px 44px;color:#fff;background:linear-gradient(125deg,var(--deep),var(--navy) 58%,#317bbf);border-radius:26px;box-shadow:var(--shadow)}.hero::after{content:"";position:absolute;width:280px;height:280px;right:-75px;top:-115px;border-radius:50%;background:rgba(255,255,255,.1);box-shadow:-75px 145px 0 rgba(231,181,75,.14)}.eyebrow{position:relative;z-index:1;display:inline-flex;padding:7px 12px;margin-bottom:15px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);font-size:13px;font-weight:700}.hero h1{position:relative;z-index:1;margin:0;max-width:820px;font-size:clamp(28px,4vw,45px);line-height:1.22}.hero p{position:relative;z-index:1;margin:12px 0 0;max-width:720px;color:#dfe9ff;font-size:16px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:24px}.exam-card{overflow:hidden;background:rgba(255,255,255,.95);border:1px solid rgba(220,230,242,.9);border-radius:22px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:center;gap:14px;padding:22px 24px;border-bottom:1px solid var(--line)}.card-icon{display:grid;place-items:center;flex:0 0 46px;height:46px;border-radius:14px;background:#eaf5ff;color:var(--navy);font-size:22px;font-weight:800}.toefl .card-icon{background:#fff4d7;color:#9b6a00}.card-head h2{margin:0;font-size:21px}.card-head p{margin:1px 0 0;color:var(--muted);font-size:13px}.link-list{list-style:none;margin:0;padding:12px}.doc-link{display:flex;align-items:flex-start;gap:12px;padding:13px 12px;border-radius:13px;color:inherit;text-decoration:none;transition:.2s}.doc-link:hover{background:#f2f7fd;color:var(--blue);transform:translateX(3px)}.doc-link::before{content:"↗";display:grid;place-items:center;flex:0 0 28px;height:28px;margin-top:1px;border-radius:9px;background:#eef3fa;color:var(--navy);font-size:14px;font-weight:800}.doc-link.video::before{content:"▶";font-size:11px}.doc-link strong{display:block;font-size:14px;line-height:1.52}.subsection{margin:6px 12px 12px;padding:16px;border-radius:15px;background:#f8fafc}.subsection h3{margin:0 0 7px;color:var(--navy);font-size:14px}.subsection .doc-link{padding:9px 8px}.footer-note{text-align:center;margin:26px 0 0;color:var(--muted);font-size:13px}@media(max-width:780px){.page{width:min(100% - 20px,1180px);padding-top:16px}.hero{padding:30px 24px;border-radius:20px}.grid{grid-template-columns:1fr;gap:16px}.card-head{padding:19px}.doc-link{padding:12px 9px}.language-switch a{padding:7px 11px}.hero p{font-size:14px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Consistent circular language flags across browsers and operating systems. */
.language-switch .flag{display:block;width:20px;height:20px;object-fit:cover;border:1px solid rgba(255,255,255,.72);border-radius:50%;box-shadow:0 1px 3px rgba(15,23,42,.18)}
/* Keep the language control inside the hero to save vertical space. */
.hero .topbar{position:absolute;z-index:3;top:24px;right:28px;margin:0}.hero .language-switch{background:rgba(255,255,255,.88);border-color:rgba(255,255,255,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.hero .eyebrow{margin-right:185px}.hero h1{max-width:800px}
@media(max-width:780px){.hero .topbar{position:relative;top:auto;right:auto;justify-content:flex-end;margin:0 0 20px}.hero .eyebrow{margin-right:0}.hero{padding-top:22px}}

/* CSS-only flowing line background: no external image asset required. */
body{position:relative;isolation:isolate;background:linear-gradient(180deg,#edf7ff 0%,#f7fbff 30%,#fff 66%,#fffaf0 100%)}
body::before,body::after{content:"";position:absolute;z-index:-1;left:0;right:0;top:0;pointer-events:none;overflow:hidden}
body::before{height:760px;opacity:.48;background:
repeating-radial-gradient(ellipse 78% 32% at 4% 3%,transparent 0 9px,rgba(55,154,218,.18) 10px 11px,transparent 12px 18px),
repeating-radial-gradient(ellipse 72% 29% at 97% 7%,transparent 0 11px,rgba(56,91,178,.14) 12px 13px,transparent 14px 21px);
-webkit-mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.72) 34%,transparent 92%);mask-image:linear-gradient(to bottom,#000 0%,rgba(0,0,0,.72) 34%,transparent 92%);transform:translateY(-210px) rotate(-2deg);transform-origin:center top}
body::after{height:680px;opacity:.36;background:
repeating-radial-gradient(ellipse 62% 23% at 34% 0%,transparent 0 13px,rgba(78,196,196,.16) 14px 15px,transparent 16px 24px),
repeating-radial-gradient(ellipse 68% 25% at 74% 2%,transparent 0 15px,rgba(231,181,75,.14) 16px 17px,transparent 18px 27px);
-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 88%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 88%);transform:translateY(-125px) rotate(3deg);transform-origin:center top}
.page{position:relative;z-index:1}
@media(max-width:780px){body::before{height:590px;opacity:.36;transform:translateY(-150px) rotate(-3deg)}body::after{height:520px;opacity:.28;transform:translateY(-105px) rotate(4deg)}}

/* Site typography */
body{font-family:'Noto Sans Thai',sans-serif}

/* Optimized photographic hero with a strong text-safe navy overlay. */
.hero{background-image:linear-gradient(90deg,rgba(20,35,94,.96) 0%,rgba(31,54,126,.90) 46%,rgba(35,76,139,.57) 72%,rgba(24,48,105,.34) 100%),url('images/hero-english.webp');background-size:cover;background-position:center 54%;background-repeat:no-repeat}
.hero::after{opacity:.42}
@media(max-width:780px){.hero{background-image:linear-gradient(90deg,rgba(20,35,94,.94),rgba(31,64,133,.76)),url('images/hero-english.webp');background-position:58% center}.hero::after{opacity:.28}}

/* Prevent transformed decorative waves from creating horizontal overflow. */
html,body{width:100%;max-width:100%;overflow-x:hidden}

/* Compact modern footer. */
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding:20px 24px;color:#56627a;background:rgba(255,255,255,.82);border:1px solid rgba(215,225,239,.92);border-radius:18px;box-shadow:0 10px 35px rgba(29,52,112,.08);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.footer-copy{font-size:13px}.footer-owner{display:flex;align-items:center;gap:9px;font-size:13px}.footer-owner strong{color:var(--navy);font-size:14px}.footer-owner span{padding-left:9px;border-left:1px solid #cfd8e6;color:#69758b}
@media(max-width:600px){.site-footer{flex-direction:column;align-items:center;gap:8px;padding:18px;text-align:center}.footer-owner{flex-wrap:wrap;justify-content:center}.footer-owner span{padding-left:0;border-left:0}.footer-copy{order:2}}

/* Full-bleed footer attached to the bottom edge instead of a floating card. */
.page{min-height:100vh;padding-bottom:0}
.site-footer{width:100vw;margin:30px 0 0 calc(50% - 50vw);padding:22px max(24px,calc((100vw - 1180px)/2 + 24px));color:#dce6fa;background:linear-gradient(110deg,#17255f,#243478 62%,#285f9a);border:0;border-top:3px solid rgba(231,181,75,.9);border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.footer-copy{color:#c8d5ed}.footer-owner strong{color:#fff}.footer-owner span{color:#c8d5ed;border-left-color:rgba(255,255,255,.28)}

/* Decorative SVG strokes placed behind the cards. */
.grid{position:relative;isolation:isolate}.grid::before,.grid::after{content:"";position:absolute;z-index:-1;pointer-events:none;background-repeat:no-repeat;background-size:contain;opacity:.78}.grid::before{left:-155px;bottom:-78px;width:300px;height:164px;background-image:url('images/curved-shape.svg');transform:rotate(-7deg)}.grid::after{right:-58px;top:115px;width:96px;height:108px;background-image:url('images/pointer-up.svg');transform:rotate(7deg)}.exam-card{position:relative;z-index:1}
@media(max-width:780px){.grid::before{left:-72px;bottom:-52px;width:180px;height:98px;opacity:.46}.grid::after{right:-20px;top:44%;width:62px;height:70px;opacity:.42}.site-footer{padding-left:20px;padding-right:20px}}

/* Restore the original numbered hierarchy while keeping the modern layout. */
.exam-card{counter-reset:document-item}.link-list>.doc-link{counter-increment:document-item}.link-list>.doc-link::before{content:counter(document-item);font-size:13px;font-weight:800}.subsection h3{display:flex;align-items:center;gap:10px;counter-increment:document-item}.subsection h3::before{content:counter(document-item);display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:9px;color:var(--navy);background:#eaf0f8;font-size:13px;font-weight:800}.subsection .doc-link::before{content:"•";font-size:18px;line-height:1}

/* Compact grouped document accordion. */
.accordion-card .card-head{position:relative}.accordion-all{margin-left:auto;padding:8px 11px;color:var(--navy);background:#f3f6fb;border:1px solid #d9e2ef;border-radius:9px;font-family:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}.accordion-all:hover{color:#fff;background:var(--navy);border-color:var(--navy)}.accordion-list{padding:12px}.accordion-group{overflow:hidden;margin-bottom:9px;border:1px solid #e3eaf3;border-radius:13px;background:#fff}.accordion-group:last-child{margin-bottom:0}.accordion-trigger{position:relative;display:flex;align-items:center;width:100%;gap:10px;padding:14px 42px 14px 16px;color:#19264a;background:#f8fafc;border:0;font-family:inherit;text-align:left;cursor:pointer}.accordion-trigger:hover{background:#f0f5fb}.accordion-trigger::after{content:"⌄";position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(-90deg);color:var(--navy);font-size:19px;font-weight:800;transition:transform .22s ease}.accordion-trigger[aria-expanded=true]::after{transform:translateY(-50%) rotate(0)}.accordion-trigger span{font-size:14px;font-weight:800}.accordion-trigger small{margin-left:auto;color:#77839a;font-size:11px;font-weight:600}.accordion-panel{padding:4px 7px 8px;border-top:1px solid #e7edf5}.accordion-panel[hidden]{display:none}.accordion-panel .doc-link::before{content:attr(data-number);font-size:13px;font-weight:800}.accordion-panel .doc-link{padding-top:10px;padding-bottom:10px}@media(max-width:560px){.accordion-card .card-head{align-items:flex-start;flex-wrap:wrap}.accordion-all{margin-left:60px}.accordion-trigger{padding-left:13px}.accordion-trigger span{font-size:13px}}

/* True CSS chevron: points right when closed and down when expanded. */
.accordion-trigger::after{content:"";right:18px;width:8px;height:8px;color:transparent;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);font-size:0;transform:translateY(-65%) rotate(-45deg)}.accordion-trigger[aria-expanded=true]::after{transform:translateY(-65%) rotate(45deg)}

/* Image viewer with zoom, save, fullscreen and close controls. */
.image-modal[hidden]{display:none}.image-modal{position:fixed;z-index:1000000;inset:0;display:grid;place-items:center;padding:28px;background:rgba(5,14,38,.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.image-dialog{display:flex;flex-direction:column;width:min(1420px,100%);height:min(880px,calc(100vh - 56px));overflow:hidden;background:#111827;border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 30px 100px rgba(0,0,0,.48)}.image-dialog:fullscreen{width:100%;height:100%;border:0;border-radius:0}.image-modal-head{display:flex;align-items:center;gap:9px;min-height:64px;padding:10px 14px 10px 20px;background:#fff}.image-modal-title{min-width:0;margin:0 auto 0 0;color:#17213b;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-tool{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;color:#243478;background:#f3f6fb;border:1px solid #dbe3ef;border-radius:8px;font-family:inherit;font-size:18px;font-weight:800;cursor:pointer}.image-tool:hover{color:#fff;background:#243478;border-color:#243478}.image-save{display:inline-flex;align-items:center;gap:7px;width:auto;padding:0 13px;color:#4b36a8;text-decoration:none;font-size:13px}.image-close{color:#17213b;background:transparent;border-color:transparent;font:700 25px/1 Arial,sans-serif}.image-stage{position:relative;flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:24px;background:repeating-conic-gradient(#202735 0 25%,#252d3c 0 50%) 50%/20px 20px}.image-stage img{display:block;max-width:none;height:auto;box-shadow:0 12px 42px rgba(0,0,0,.38);transition:width .18s ease}.image-zoom-value{min-width:54px;color:#42506a;text-align:center;font-size:12px;font-weight:700}@media(max-width:720px){.image-modal{padding:0}.image-dialog{width:100%;height:100%;max-height:none;border-radius:0}.image-modal-head{min-height:58px;padding:8px;gap:5px}.image-modal-title{display:none}.image-tool{width:34px;height:34px;flex-basis:34px}.image-save{width:34px;padding:0;font-size:0}.image-save::before{content:"↓";font-size:18px}.image-zoom-value{min-width:40px}.image-stage{padding:12px}}

/* Keep the hero title on one line where the viewport has enough room. */
@media(min-width:781px){.hero h1{max-width:none;white-space:nowrap;font-size:clamp(28px,3.2vw,40px);letter-spacing:-.025em}}
@media(max-width:780px){.hero h1{max-width:100%;white-space:normal;letter-spacing:0}}

/* New-content indicator. */
.new-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;color:#fff;background:linear-gradient(135deg,#f43f72,#dc264e);border-radius:999px;box-shadow:0 3px 10px rgba(220,38,78,.22);font-size:9px;font-weight:800;line-height:1.4;letter-spacing:.06em;vertical-align:2px}

/* Accessible in-page PDF viewer. */
body.pdf-modal-open{overflow:hidden}.pdf-modal[hidden]{display:none}.pdf-modal{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;padding:32px 44px;background:rgba(8,19,49,.82);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.pdf-dialog{display:flex;flex-direction:column;width:min(1500px,100%);height:min(840px,calc(100vh - 64px));overflow:hidden;background:#fff;border-radius:12px;box-shadow:0 28px 90px rgba(2,10,31,.42)}.pdf-modal-head{display:flex;align-items:center;gap:18px;min-height:66px;padding:12px 18px 12px 22px;background:#fff;border-bottom:1px solid #e5e9f0}.pdf-modal-title{min-width:0;margin:0 auto 0 0;color:#18223a;font-size:17px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-download{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:10px 16px;color:#4b36a8;background:#fff;border:1px solid #6548cf;border-radius:7px;text-decoration:none;font-size:14px;font-weight:700}.pdf-download::before{content:"↓";font-size:18px;line-height:1}.pdf-download:hover{color:#fff;background:#5940bf}.pdf-close{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;padding:0;color:#18223a;background:transparent;border:0;border-radius:50%;font:700 25px/1 Arial,sans-serif;cursor:pointer}.pdf-close:hover{background:#eef2f7}.pdf-frame{display:block;flex:1;width:100%;min-height:0;border:0;background:#303030}.pdf-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#fff;font-size:14px}.pdf-dialog{position:relative}.pdf-frame{position:relative;z-index:1}@media(max-width:700px){.pdf-modal{padding:0}.pdf-dialog{width:100%;height:100%;max-height:none;border-radius:0}.pdf-modal-head{min-height:60px;padding:10px 10px 10px 15px;gap:8px}.pdf-modal-title{font-size:14px}.pdf-download{padding:8px 10px;font-size:12px}.pdf-close{width:36px;height:36px;flex-basis:36px}}
