@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Nunito:wght@500;600;700;800;900&display=swap');
:root{--ink:#294342;--cream:#fffaf1;--paper:#fffcf6;--pink:#f7d4c9;--coral:#eb8e79;--teal:#a4d5ca;--mint:#d8e9cb;--yellow:#f7d77d;--line:#e7e2d5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px}button,input,select{font:inherit}button,a{transition:.2s ease}a{color:inherit;text-decoration:none}button{cursor:pointer}.shell{max-width:1220px;margin:auto;padding-left:34px;padding-right:34px}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,250,241,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:11px;font:900 24px/.8 'Nunito',sans-serif;letter-spacing:-1.5px;white-space:nowrap}.brand-mark{width:43px;height:43px;background:#f7b863;color:var(--ink);border:2px solid var(--ink);border-radius:15px;display:grid;place-items:center;font-size:28px;transform:rotate(-12deg)}.brand-sub{display:block;font:800 10px/1.5 'DM Sans',sans-serif;letter-spacing:5px;margin-top:6px}.nav nav{display:flex;gap:30px;font-size:13px;font-weight:700}.nav nav a:hover,.text-link:hover{color:#d27764}.nav-right{display:flex;align-items:center;gap:18px}.lang{background:none;border:0;font-size:13px;font-weight:700}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--ink);color:white;border:2px solid var(--ink);padding:17px 22px;border-radius:12px;font-weight:700;font-size:14px;box-shadow:4px 4px 0 #e9bba3}.btn:hover{transform:translateY(-2px);box-shadow:5px 7px 0 #e9bba3}.btn-small{padding:12px 16px;gap:17px;box-shadow:none}.hero{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:24px;min-height:590px;padding-top:42px;padding-bottom:54px}.eyebrow,.mini-kicker{letter-spacing:2.4px;font-size:11px;font-weight:900}.eyebrow{display:flex;align-items:center;gap:9px}.star{color:#df916a;font-size:25px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Nunito',sans-serif;letter-spacing:-2px}h1{font-size:clamp(55px,6.2vw,92px);font-weight:900;line-height:1.07;margin:27px 0 23px}h1 em,h2 em{font-style:normal;color:#de8a75}h1 em{position:relative}.hero-copy>p{max-width:455px;font-size:16px;line-height:1.85;color:#59706a}.hero-actions{display:flex;gap:28px;align-items:center;flex-wrap:wrap;margin:30px 0 50px}.text-link{font-weight:800;font-size:13px;border-bottom:1px solid var(--ink);padding-bottom:5px}.hero-note{display:flex;align-items:center;gap:16px;font-size:12px;font-weight:700;color:#71847d}.circle-avatars{background:#b8dfd5;border-radius:40px;padding:12px;color:var(--ink);letter-spacing:4px}.hero-art{position:relative;min-width:0}.hero-art svg{width:100%;display:block;filter:drop-shadow(8px 13px 0 rgba(242,199,177,.3))}.art-label{position:absolute;right:5%;bottom:4%;background:var(--yellow);border:2px solid var(--ink);border-radius:40px;padding:12px 17px;font-weight:800;transform:rotate(-9deg);font-size:12px}.ticker{overflow:hidden;background:var(--yellow);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);white-space:nowrap;font-weight:900;letter-spacing:3px;font-size:13px;padding:16px 0;text-align:center}.intro{padding-top:105px;padding-bottom:110px}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start;margin-top:23px}h2{font-size:clamp(36px,4.5vw,57px);line-height:1.16;font-weight:900;margin-bottom:18px}.intro p{font-size:16px;line-height:1.95;color:#587068;max-width:520px}.pill-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:25px}.pill-row span{border-radius:50px;background:#f1eadb;padding:12px 16px;font-size:12px;font-weight:800}.courses-section{background:#f3f5e9;padding:95px 0 115px}.section-head{display:flex;align-items:center;justify-content:space-between}.section-sub{color:#61766c;max-width:610px;line-height:1.7}.flower-icon{font-size:105px;color:#e6a886;line-height:1}.filters{display:flex;gap:12px;margin:40px 0 26px;flex-wrap:wrap}.search-wrap{flex:2;min-width:220px;display:flex;align-items:center;gap:8px;background:white;border:1.5px solid #d7ded4;border-radius:11px;padding:0 15px}.search-wrap span{font-size:24px}.filters input{min-width:0;width:100%;padding:17px 4px;border:0;outline:0;background:none;font-size:14px;color:var(--ink)}.filters select{flex:1;min-width:150px;background:white;border:1.5px solid #d7ded4;color:var(--ink);border-radius:11px;padding:16px;cursor:pointer}.reset{border:0;background:none;color:#65776f;font-size:12px;font-weight:800;padding:14px}.result-line{display:flex;justify-content:space-between;color:#7c8d83;font-weight:800;letter-spacing:1.1px;font-size:11px;margin-bottom:18px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.course-card{background:var(--paper);border:1px solid #e5e4d8;border-radius:19px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 0 rgba(41,67,66,.04)}.course-card:hover{transform:translateY(-3px);box-shadow:0 12px 20px rgba(41,67,66,.08)}.course-visual{height:224px;display:grid;place-items:center;position:relative;overflow:hidden}.course-visual svg{width:80%;height:85%;filter:drop-shadow(3px 5px 0 rgba(0,0,0,.04))}.course-tag{position:absolute;top:16px;left:16px;background:#fffdfa;border-radius:30px;padding:9px 12px;font-weight:900;font-size:11px;letter-spacing:.3px}.card-content{padding:23px;flex:1;display:flex;flex-direction:column}.card-meta{display:flex;gap:13px;color:#788980;font-size:12px;font-weight:700;flex-wrap:wrap}.card-content h3{font:900 23px/1.3 'Nunito',sans-serif;margin:15px 0 10px;letter-spacing:-.7px}.card-content p{font-size:13px;color:#6a7c72;line-height:1.75;flex:1}.card-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:18px;margin-top:13px;border-top:1px solid var(--line)}.card-bottom span{font-weight:900;font-size:13px}.round-arrow{border:2px solid var(--ink);border-radius:50%;width:38px;height:38px;background:transparent;font-size:20px}.round-arrow:hover{background:var(--yellow)}.no-results{text-align:center;padding:60px}.how{padding-top:105px;padding-bottom:110px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:45px}.steps>div{border-top:2px solid var(--ink);padding-top:28px}.step-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:23px;font-size:37px;margin-bottom:28px;border:1px solid var(--ink)}.pink{background:var(--pink)}.yellow{background:var(--yellow)}.mint{background:var(--teal)}.steps h3{font:900 21px 'Nunito',sans-serif}.steps p{color:#718179;line-height:1.7}.contact{background:#f4cfc4;padding:85px 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}.contact-inner{display:flex;align-items:center;justify-content:space-between}.contact p{max-width:560px;line-height:1.8}.contact-doodle{font-size:135px;line-height:1;transform:rotate(-19deg);color:var(--ink);position:relative}.contact-doodle span{position:absolute;top:0;right:-35px;font-size:55px;color:#ef9b53}.footer{padding-top:48px;padding-bottom:48px;display:flex;justify-content:space-between;align-items:center;gap:22px}.footer p,.footer>span{color:#839087;font-size:11px;max-width:360px;line-height:1.6}dialog{border:0;border-radius:20px;background:var(--paper);padding:0;width:min(660px,calc(100% - 24px));max-height:88vh;color:var(--ink);box-shadow:0 25px 100px rgba(0,0,0,.18)}dialog::backdrop{background:rgba(28,49,45,.58)}.close{position:absolute;z-index:2;right:15px;top:12px;width:37px;height:37px;border:0;background:#fff9ed;border-radius:50%;font-size:25px}.dialog-visual{height:210px;display:grid;place-items:center}.dialog-visual svg{width:220px;height:195px}.dialog-copy{padding:30px 38px 40px}.dialog-copy h2{font-size:38px}.dialog-copy p{line-height:1.75;color:#61766c}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.detail-list div{background:#f5f2e8;border-radius:9px;padding:12px;font-size:13px}.detail-list strong{display:block;font-size:11px;letter-spacing:1px;color:#75847a;margin-bottom:5px}.demo-warning{border-left:4px solid #db8b75;background:#f9e9dd;padding:14px 17px;font-size:13px;line-height:1.5;margin-bottom:21px}.dialog-copy .btn{width:100%}@media(max-width:950px){.nav nav{display:none}.hero{min-height:0}.hero-art{align-self:center}.intro-grid{gap:40px}.course-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.shell{padding-left:20px;padding-right:20px}.nav{min-height:72px}.brand{font-size:19px}.brand-mark{width:36px;height:36px;font-size:22px}.nav-right{gap:9px}.nav-right .btn{display:none}.hero{display:flex;flex-direction:column;padding-top:44px;padding-bottom:46px;gap:0}.hero-art{width:100%;max-width:480px}.hero-copy>p{font-size:15px}.hero-actions{margin-bottom:25px}.hero h1{font-size:56px}.intro{padding-top:75px;padding-bottom:75px}.intro-grid{display:block}.courses-section{padding:75px 0}.flower-icon{display:none}.course-grid{grid-template-columns:1fr}.course-visual{height:240px}.filters{margin-top:25px}.filters select{min-width:calc(50% - 8px)}.steps{grid-template-columns:1fr;gap:30px}.how{padding-top:75px;padding-bottom:75px}.contact-doodle{display:none}.footer{flex-direction:column;align-items:start}.dialog-copy{padding:24px}.dialog-copy h2{font-size:29px}}

.course-group{padding-top:23px;margin-top:25px}.course-group+.course-group{border-top:2px dashed #cbd7ca;margin-top:65px;padding-top:50px}.group-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:0 0 26px}.group-heading h3{font:900 clamp(30px,3.6vw,43px)/1.2 'Nunito',sans-serif;letter-spacing:-1.5px;margin:9px 0}.group-heading h3 em{font-style:normal;color:#d98571}.group-heading p{max-width:700px;line-height:1.75;color:#63776e;margin:0}.group-doodle{font-size:70px;color:#dfab78;line-height:1}.prereq{margin-top:6px;background:#fff0d6;border:1px solid #f0d4a4;color:#79522d;padding:10px 12px;border-radius:10px;font-weight:800;font-size:12px;line-height:1.5}.course-state{display:inline-block;background:#e0f0e5;padding:8px 13px;border-radius:20px;font-weight:800;font-size:12px;margin-bottom:16px}.course-group[hidden]{display:none}@media(max-width:650px){.group-doodle{display:none}}

/* Thinkpot Studio: only the homepage illustration has been changed. Original V2 palette retained. */
.hero-art{overflow:hidden;}
.hero-photo{display:block;width:100%;height:100%;min-height:350px;max-height:510px;object-fit:cover;border-radius:18px;}
@media(max-width:650px){.hero-photo{min-height:250px;max-height:400px;}}

/* Thinkpot Version 2: original green/yellow colours retained. Added service section and editable photos. */
.printing-feature{position:relative;display:flex;align-items:center;gap:27px;overflow:hidden;background:#e5f1d7;border:2px solid #294342;border-radius:24px;padding:20px 36px;margin:16px 0 44px;background-image:radial-gradient(circle at 90% 15%,#f7d77d 0 28px,transparent 29px),radial-gradient(circle at 5% 95%,#a4d5ca 0 46px,transparent 47px),repeating-linear-gradient(145deg,rgba(255,255,255,.26) 0 12px,transparent 12px 33px);box-shadow:5px 6px 0 rgba(41,67,66,.12)}
.printing-feature-art{width:156px;flex:0 0 156px;transform:rotate(-7deg);z-index:1}
.printing-feature-art svg{width:100%}
.printing-feature-copy{position:relative;z-index:1;max-width:790px}
.printing-feature h3{font:900 clamp(23px,3vw,34px)/1.15 'Nunito',sans-serif;letter-spacing:-.7px;margin:8px 0}
.printing-feature p{line-height:1.7;margin:0;color:#405b54}
.printing-feature-decoration{position:absolute;right:15px;bottom:-57px;font-size:150px;color:#c4dfad;line-height:1}
.editor-link{font-size:12px;font-weight:800;border:1px solid #d7ded4;border-radius:10px;padding:10px 12px;background:white}
.course-visual .visual-icon{display:grid;place-items:center;width:100%;height:100%;font-size:76px;font-family:'Nunito',sans-serif;font-weight:900;color:#294342}
.course-photo{width:100%;height:100%;object-fit:cover;display:block}
.course-visual:has(.course-photo) .visual-icon{position:absolute;inset:0}
.course-visual:has(.course-photo) .course-tag{z-index:1}
@media(max-width:700px){.printing-feature{padding:18px;gap:12px;align-items:flex-start}.printing-feature-art{width:80px;flex-basis:80px}.editor-link{font-size:11px;padding:8px}.printing-feature h3{font-size:22px}}


/* Highlight the 3D printing benefit like the prerequisite note */
.service-note{margin-top:10px;background:#e3f1e2;border:1px solid #b9d9bc;color:#345a42;padding:10px 12px;border-radius:10px;font-weight:800;font-size:12px;line-height:1.5;display:inline-flex;align-items:center;gap:8px}
.service-note::before{content:"✦";color:#5b8e63;font-size:12px}
.service-box{margin:18px 0 0;background:#edf6ea;border:1px solid #c7debe;color:#355244;padding:14px 16px;border-radius:12px}
.service-box strong{display:block;font-size:12px;letter-spacing:1px;color:#4c7b57;margin-bottom:7px;text-transform:uppercase}
.service-box p{margin:0;color:#4a625a}
/* Dedicated course detail links: preserve original green/yellow Thinkpot palette */
.round-arrow{display:grid;place-items:center;text-decoration:none;font-weight:700}

/* Connected catalogue timeslots: original V2 palette retained */
.availability-mini{border:1px solid #c8dec6;background:#edf6e8;border-radius:10px;padding:11px 12px;margin-top:10px;font-size:12px;color:#294342;line-height:1.5}
.availability-mini.muted{background:#fff9e9;border-color:#f1e6be;color:#728075}
.availability-mini strong{display:block;margin-bottom:6px}
.mini-slot{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #d4e6d1;flex-wrap:wrap}
.mini-slot span:last-child{font-weight:800;color:#396b43}
.slot-details-link{display:inline-block;margin-top:8px;text-decoration:underline;font-weight:800}

/* Supplied ThinkPot identity; preserve artwork proportions. */
.brand-logo{display:block;width:180px;max-width:100%;height:auto}.brand{flex-shrink:0}.footer .brand-logo{width:160px}.hero-art.mascot-art{display:flex;align-items:center;justify-content:center;padding:30px 35px 60px}.hero-mascot{display:block;width:85%;max-width:360px;height:auto;object-fit:contain}.mascot-art .art-label{bottom:12px}@media(max-width:650px){.brand-logo{width:150px}.hero-art.mascot-art{margin-top:25px;padding:25px 35px 55px}.hero-mascot{max-width:260px}}

.contact-page{padding-top:65px;padding-bottom:65px}.contact-page-heading{max-width:820px}.contact-page h1{font-size:clamp(38px,5vw,64px);line-height:1.12;margin:22px 0}.contact-page-heading>p{max-width:620px;font-size:18px;line-height:1.7;color:#587068}.contact-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:40px}.contact-card{padding:32px;border:1px solid #cdd8c6;border-radius:24px;background:#f1f5e9;min-width:0}.contact-card h2{font-size:30px;margin-top:18px}.contact-card p{line-height:1.8;color:#587068}.contact-card .btn{margin-top:25px}.contact-email{display:block;font-size:clamp(15px,1.8vw,21px);font-weight:800;overflow-wrap:anywhere}.contact-icon{display:inline-grid;place-items:center;width:50px;height:50px;border-radius:16px;background:#f7d77d;font-size:28px}.location-card{background:#fff3d9}.contact-district{display:inline-block;margin-top:16px;font-size:13px;font-weight:700}.contact-next{display:flex;align-items:center;gap:28px;margin-top:55px;padding:28px 0}.contact-next img{width:100px;height:auto}.contact-next h2{font-size:28px}.contact-next p{line-height:1.7}.contact-details{max-width:450px;overflow-wrap:anywhere}.contact-details>a:first-child{font-weight:800}.contact-inner{gap:30px;flex-wrap:wrap}.contact-inner .contact-doodle{display:none}@media(max-width:650px){.contact-page{padding-top:35px;padding-bottom:35px}.contact-page-grid{grid-template-columns:1fr;gap:18px;margin-top:28px}.contact-card{padding:24px}.contact-next{gap:18px}.contact-next img{width:70px}.contact-next h2{font-size:23px}}

/* V16 — always-available WhatsApp island on the homepage. */
.wa-floating-island{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:900;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:11px 19px 11px 14px;border-radius:999px;background:#294342;color:#fff!important;border:2px solid #fffaf1;box-shadow:0 5px 0 rgba(247,215,125,.9),0 10px 30px rgba(29,56,46,.22);font:800 14px/1.1 'DM Sans',sans-serif;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease;background-clip:padding-box}
.wa-floating-island:hover{transform:translateY(-3px);box-shadow:0 7px 0 rgba(247,215,125,.9),0 13px 30px rgba(29,56,46,.25)}
.wa-floating-island:focus-visible{outline:3px solid #eb8e79;outline-offset:3px}
.wa-float-icon{height:31px;width:31px;display:block;flex:none}
@media(max-width:650px){.wa-floating-island{right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));min-height:54px;padding:11px 14px}.wa-float-icon{height:29px;width:29px}.wa-floating-island span{font-size:12px}}
@media(prefers-reduced-motion:reduce){.wa-floating-island{transition:none}}

/* ThinkPot social links — footer and contact page */
.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.social-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:9px 13px;border:1px solid #cbd9c9;border-radius:999px;background:#f1f5e9;color:var(--ink);font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}
.social-link svg{display:block;width:20px;height:20px;flex:none}
.social-link:hover,.social-link:focus-visible{background:var(--yellow);border-color:var(--ink);transform:translateY(-2px)}
.social-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.site-footer{flex-wrap:wrap}
.site-footer .footer-bottom{flex:1 1 100%}
.contact-social{display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;margin-top:28px;padding:28px 32px;border:1px solid #cdd8c6;border-radius:24px;background:#fff3d9}
.contact-social-kicker{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;color:#587068}
.contact-social h2{margin:10px 0 8px;font-size:clamp(20px,2.4vw,28px)}
.contact-social h2 span{font-size:.72em}
.contact-social p{margin:0;color:#587068;line-height:1.6}
.contact-social .social-link{background:#fffaf1}
@media(max-width:650px){.social-link{min-height:44px}.contact-social{padding:22px 20px}.contact-social .social-links{width:100%}.contact-social .social-link{flex:1}.footer.social-footer{gap:18px}}
