:root{--bg: #fbfaf5;--cream: #f5eddc;--green: #2f7437;--deep: #213525;--muted: #657260;--warm: #d98324;--line: #e5dcc9;--white: #ffffff;--shadow: 0 18px 45px rgba(43, 62, 37, .12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--deep);font-family:Noto Sans Thai,Tahoma,system-ui,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,summary,.brand,.button{font-family:Noto Sans Thai,Tahoma,system-ui,sans-serif}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px clamp(18px,5vw,64px);background:#fbfaf5eb;border-bottom:1px solid rgba(229,220,201,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{font-weight:800;font-size:20px;color:var(--green)}nav{display:flex;gap:22px;color:var(--muted);font-size:15px}.hero{min-height:0;display:flex;flex-direction:column;gap:clamp(18px,3vw,26px);align-items:center;text-align:center;padding:clamp(28px,4vw,42px) clamp(18px,5vw,64px) clamp(26px,4vw,42px)}.hero-copy{width:min(100%,880px)}.hero h1{margin:0;font-size:clamp(34px,4vw,48px);line-height:1.18;letter-spacing:0;max-width:none}.hero p{font-size:clamp(18px,2.4vw,28px);color:var(--muted);margin:24px 0 0}.hero-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap;justify-content:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:10px 18px;cursor:pointer;font-weight:700;background:var(--white)}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.ghost{background:transparent;color:var(--green)}.button.danger{background:#b3261e;color:#fff;border-color:#b3261e}.button:disabled{opacity:.6;cursor:wait}.hero-art{width:min(100%,680px);min-height:clamp(220px,24vw,270px);border-radius:8px;background:radial-gradient(circle at 30% 25%,#fff7d4,transparent 26%),linear-gradient(135deg,#f6ead1,#eff6df);box-shadow:var(--shadow);display:grid;place-items:center;overflow:hidden}.plate{width:min(72%,250px);aspect-ratio:1;border-radius:50%;background:#fffefa;position:relative;box-shadow:inset 0 0 0 20px #f8f0df,0 24px 52px #2135251f}.leaf,.tomato,.bottle{position:absolute;display:grid;place-items:center}.leaf{width:92px;height:50px;background:#7fb241;border-radius:100% 8px;transform:rotate(-25deg)}.l1{left:46px;top:52px}.l2{right:38px;top:78px;background:#2f7437;transform:rotate(38deg)}.l3{left:92px;bottom:46px;background:#a7c957;transform:rotate(14deg)}.tomato{width:48px;height:48px;background:#cf4c2d;border-radius:50%;right:74px;bottom:56px}.bottle{width:56px;height:130px;border-radius:18px 18px 12px 12px;color:#213525;font-size:14px;font-weight:800;box-shadow:0 12px 24px #21352529}.b1{left:66px;top:94px;background:#f0c56f;transform:rotate(-7deg)}.b2{left:132px;top:72px;background:#fff4dd}.b3{right:66px;top:98px;background:#d98b45;transform:rotate(8deg);color:#fff}.section{padding:clamp(58px,8vw,92px) clamp(18px,5vw,64px);max-width:980px;margin:0 auto}.section+.section{border-top:1px solid rgba(229,220,201,.72)}.section h2{margin:0 auto 18px;max-width:760px;font-size:clamp(28px,4vw,44px);line-height:1.2;text-align:center}.section>p,.intro p,.split p{max-width:760px;margin-left:auto;margin-right:auto;text-align:center}.intro,.split{display:flex;flex-direction:column;gap:28px;align-items:stretch}.intro p,.split p,.register-head p{color:var(--muted);font-size:18px}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(100%,760px);margin:10px auto 0}.proof-grid div,.soft-card,.detail-card,.stat,.admin-panel,.bank-box,.thank-you,.closed-box{background:var(--white);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #2b3e250f}.proof-grid div{padding:22px}.proof-grid strong{display:block;font-size:34px;color:var(--green);line-height:1}.proof-grid span,.muted{color:var(--muted)}.icon-grid,.recipe-grid,.benefits,.detail-grid,.stat-grid{display:grid;gap:14px}.icon-grid{grid-template-columns:repeat(3,1fr)}.soft-card{padding:20px;display:flex;gap:12px;align-items:center}.soft-card svg,.benefits svg,.check-list svg,.detail-card svg{color:var(--green);flex:0 0 auto}.recipe-grid{grid-template-columns:repeat(3,1fr)}.recipe-card{background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}.recipe-card h3,.recipe-card p{margin:0;padding:0 18px 18px}.recipe-card h3{padding-top:18px;font-size:20px;line-height:1.35}.recipe-card p{color:var(--muted)}.recipe-image{height:150px;background:#e9ead9;position:relative;overflow:hidden}.recipe-image span{position:absolute;top:28px;right:44px;bottom:28px;left:44px;border-radius:28px;background:#ffffffc7;box-shadow:inset 0 -18px #0000000a}.tone-0{background:linear-gradient(135deg,#ead6a1,#6f8f3b)}.tone-1{background:linear-gradient(135deg,#fff4db,#a9b875)}.tone-2{background:linear-gradient(135deg,#ffc46b,#eaf3d0)}.tone-3{background:linear-gradient(135deg,#88a95d,#f4e8ca)}.tone-4{background:linear-gradient(135deg,#b7c46b,#fff4c8)}.tone-5{background:linear-gradient(135deg,#e16d35,#2f7437)}.warm{max-width:none;background:var(--cream);padding-left:clamp(18px,5vw,64px);padding-right:clamp(18px,5vw,64px)}.warm>*{width:min(100%,900px);margin-left:auto;margin-right:auto}.check-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.check-list li,.benefits div{display:flex;gap:10px;align-items:center}.benefits{grid-template-columns:repeat(2,1fr)}.benefits div{padding:16px 0;border-bottom:1px solid var(--line)}.timeline{max-width:860px}.timeline-item{display:grid;grid-template-columns:42px 1fr;gap:14px;align-items:start;padding:12px 0}.timeline-item span{width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800}.timeline-item p{margin:6px 0 0;border-bottom:1px solid var(--line);padding-bottom:18px}.detail-grid{grid-template-columns:repeat(2,1fr);margin:28px auto 24px;max-width:820px}.detail-card{padding:20px;display:grid;gap:6px}.detail-card span{color:var(--muted)}.detail-card strong{font-size:20px}.detail-value{white-space:pre-line;overflow-wrap:anywhere}.detail-value a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.teaching-dates{width:min(100%,820px);margin:0 auto 24px}.section-kicker{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--green);font-weight:800}.section-kicker svg{flex:0 0 auto}.date-list{display:grid;gap:10px}.date-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--line)}.date-row:last-child{border-bottom:1px solid var(--line)}.date-row div{display:grid;gap:2px}.date-row strong{font-size:clamp(20px,3vw,28px);line-height:1.25}.date-row span{color:var(--deep);font-weight:800}.date-row small,.date-empty{color:var(--muted)}.date-row>div:last-child{text-align:right}.date-empty{padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.map-panel{width:min(100%,820px);margin:0 auto 24px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--white);box-shadow:0 8px 24px #2b3e250f}.map-panel iframe{display:block;width:100%;height:clamp(260px,36vw,420px);border:0}.map-fallback{min-height:180px;display:grid;place-items:center;gap:12px;padding:24px;text-align:center}.map-fallback svg{color:var(--green)}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{cursor:pointer;display:flex;justify-content:space-between;font-weight:800}.faq p{color:var(--muted);margin-bottom:0}.register{max-width:900px}.register-head{display:flex;flex-direction:column;gap:18px;align-items:stretch;text-align:center}.register-head>div:first-child{max-width:760px;margin:0 auto}.seat-box,.bank-box{background:#f7f9ef;border:1px solid #dbe8c8;border-radius:8px;padding:18px}.seat-box p,.bank-box p{margin:0 0 6px}.bank-box{margin:24px auto;max-width:760px}.bank-box h3{margin:0 0 12px;text-align:center}.bank-list{display:grid;gap:10px;margin:0}.bank-list div{display:grid;grid-template-columns:120px 1fr;gap:14px;align-items:baseline;padding:10px 0;border-top:1px solid #dbe8c8}.bank-list dt{color:var(--muted);font-weight:700}.bank-list dd{margin:0;font-weight:800;overflow-wrap:anywhere}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:6px;font-weight:700;color:var(--deep)}.field input,.field textarea,.field select,.filters input,.filters select,.table-wrap input,.table-wrap select,.login-box input,.session-editor input{width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 12px;background:#fff;color:var(--deep)}.field textarea{min-height:110px;resize:vertical}.field small{color:var(--muted);font-weight:400}.span-2{grid-column:1 / -1}.consent{display:flex;gap:10px;align-items:center}.slip-preview{max-width:260px;border-radius:8px;border:1px solid var(--line)}.error{color:#b3261e;display:flex;align-items:center;gap:8px}.thank-you,.closed-box{padding:28px}.thank-you dl{display:grid;grid-template-columns:160px 1fr;gap:8px 16px}.thank-you dt{color:var(--muted)}.thank-you dd{margin:0;font-weight:800}.contact-actions{display:flex;flex-wrap:wrap;gap:12px}.contact-actions a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:10px 14px;background:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-box{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:8px;padding:28px;box-shadow:var(--shadow)}.login-box h1{margin:0}.admin-shell{padding:28px;max-width:1440px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.admin-header h1{margin:0}.admin-header div{display:flex;gap:8px;flex-wrap:wrap}.stat-grid{grid-template-columns:repeat(6,1fr);margin-bottom:18px}.stat{padding:18px}.stat span{color:var(--muted);display:block;font-size:14px}.stat strong{font-size:28px;color:var(--green)}.admin-panel{padding:20px;margin-bottom:18px}.admin-panel h2{margin-top:0;font-size:24px}.filters{display:grid;grid-template-columns:1fr 180px 180px;gap:10px;margin-bottom:14px}.filters label{position:relative;display:flex;align-items:center}.filters label svg{position:absolute;left:10px;color:var(--muted)}.filters label input{padding-left:34px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:1100px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:13px;color:var(--muted);white-space:nowrap}td{font-size:14px}.status{display:inline-flex;border-radius:999px;padding:4px 9px;font-weight:800;font-size:12px}.status.pending_review{background:#fff2cf;color:#8a5a00}.status.confirmed{background:#e2f3d8;color:#23632b}.status.cancelled,.status.expired{background:#f7dddd;color:#9d2c24}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.session-editor{display:grid;grid-template-columns:1.2fr 1fr 1fr 90px 100px;gap:8px;margin-bottom:10px;align-items:end}.session-editor label{display:grid;gap:5px;color:var(--muted);font-size:13px;font-weight:700}.session-editor .session-open{display:flex;align-items:center;gap:8px;min-height:45px;color:var(--deep)}.session-editor .session-open input{width:auto}.new-session{padding-top:10px;border-top:1px dashed var(--line)}@media(max-width:900px){nav{display:none}.hero,.intro,.split,.register-head,.admin-grid{grid-template-columns:1fr}.hero{min-height:auto;padding-top:36px}.hero-art{min-height:320px}.icon-grid,.proof-grid,.recipe-grid,.benefits,.detail-grid,.stat-grid,.form,.filters,.session-editor{grid-template-columns:1fr}.date-row{grid-template-columns:1fr;gap:6px}.date-row>div:last-child{text-align:left}.bank-list div{grid-template-columns:1fr;gap:2px}.stat-grid{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:auto}.site-header{position:static}.admin-shell{padding:16px}.admin-header{align-items:flex-start;flex-direction:column}.hero h1{font-size:clamp(34px,11vw,48px)}}@media print{.site-header,.admin-header .button,.filters,.admin-grid,.stat-grid{display:none!important}body{background:#fff}.admin-shell{padding:0}.admin-panel{box-shadow:none;border:0}}
