: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);--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 22px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 650;--weight-bold: 750}*{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;font-size:var(--text-md);font-weight:var(--weight-regular);line-height:1.72}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;letter-spacing:0}.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:var(--weight-bold);font-size:20px;color:var(--green)}nav{display:flex;gap:22px;color:var(--muted);font-size:15px;font-weight:var(--weight-medium)}.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(32px,4vw,48px);font-weight:var(--weight-bold);line-height:1.18;max-width:none}.hero p{font-size:clamp(18px,2.2vw,26px);font-weight:var(--weight-regular);color:var(--muted);margin:22px 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-size:var(--text-md);font-weight:var(--weight-semibold);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);aspect-ratio:4 / 3;min-height:0;max-height:520px;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;padding:22px;overflow:hidden;position:relative;background-size:cover;background-position:center 45%}.hero-art.has-photo{min-height:0}.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:var(--text-sm);font-weight:var(--weight-bold);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(26px,3.5vw,40px);font-weight:var(--weight-bold);line-height:1.24;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:var(--text-lg);font-weight:var(--weight-regular)}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:min(100%,760px);margin:10px auto 0}.story-photo-grid{width:min(100%,820px);margin:6px auto 0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.photo-frame{position:relative;overflow:hidden;border-radius:8px;border:1px solid rgba(229,220,201,.95);background:linear-gradient(135deg,#f6ead1,#eff6df);background-size:cover;background-position:center 45%;box-shadow:0 8px 24px #2b3e250f}.photo-frame.has-photo:before,.photo-frame.has-photo:after,.recipe-image.has-photo .recipe-shape{display:none}.photo-frame:before,.photo-frame:after{content:"";position:absolute;border-radius:999px}.photo-frame:before{width:42%;aspect-ratio:1;left:10%;top:14%;background:#fff9}.photo-frame:after{width:28%;aspect-ratio:1;right:12%;bottom:14%;background:#2f743738}.teacher-photo,.workshop-photo{aspect-ratio:4 / 3}.teacher-photo{background:radial-gradient(circle at 28% 24%,rgba(255,210,124,.58),transparent 24%),linear-gradient(135deg,#f6ead1,#eef5de)}.workshop-photo{background:radial-gradient(circle at 74% 22%,rgba(127,178,65,.48),transparent 25%),linear-gradient(135deg,#f8f2e5,#eaf1d8)}.ingredient-photo-strip{width:min(100%,900px);margin:26px auto 0;display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:14px}.ingredient-photo{aspect-ratio:4 / 3}.ingredient-a{background:radial-gradient(circle at 22% 62%,rgba(207,76,45,.42),transparent 18%),radial-gradient(circle at 78% 28%,rgba(127,178,65,.42),transparent 22%),linear-gradient(135deg,#fff6df,#e9f2d6)}.ingredient-b{background:radial-gradient(circle at 46% 35%,rgba(240,197,111,.62),transparent 28%),linear-gradient(135deg,#f4e2bc,#fff7e6)}.ingredient-c{background:radial-gradient(circle at 70% 42%,rgba(217,139,69,.42),transparent 24%),linear-gradient(135deg,#edf5dd,#fff4d3)}.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;font-weight:var(--weight-bold);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 span{font-weight:var(--weight-medium);line-height:1.55}.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;font-weight:var(--weight-semibold);line-height:1.35}.recipe-card p{color:var(--muted);font-size:15px;line-height:1.65}.recipe-image{aspect-ratio:4 / 3;background:#e9ead9;background-size:cover;background-position:center 45%;position:relative;overflow:hidden}.recipe-shape{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{width:min(100%,620px);list-style:none;padding:0;margin:0 auto;display:grid;gap:12px}.check-list li{display:flex;justify-content:center;gap:10px;align-items:center;text-align:center;font-weight:var(--weight-medium)}.benefits div{display:flex;gap:10px;align-items:center;font-weight:var(--weight-medium)}.process-photo-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:4px}.process-photo{aspect-ratio:4 / 3}.process-a{background:linear-gradient(180deg,#fffdf61a,#fffdf647),radial-gradient(circle at 22% 25%,rgba(255,255,255,.78),transparent 18%),radial-gradient(circle at 68% 58%,rgba(47,116,55,.28),transparent 26%),linear-gradient(135deg,#f3dfb8,#e9f1d9)}.process-b{background:radial-gradient(circle at 72% 24%,rgba(207,76,45,.3),transparent 18%),radial-gradient(circle at 30% 64%,rgba(240,197,111,.58),transparent 28%),linear-gradient(135deg,#fff3dc,#dfecc8)}.benefits{grid-template-columns:repeat(2,1fr)}.benefits div{padding:16px 0;border-bottom:1px solid var(--line)}.takehome-photo{width:min(100%,820px);margin:24px auto 0}.takehome-a{aspect-ratio:4 / 3;background:radial-gradient(circle at 21% 42%,rgba(47,116,55,.24),transparent 22%),radial-gradient(circle at 78% 44%,rgba(217,139,69,.32),transparent 24%),linear-gradient(135deg,#fff8e8,#e8f0d6)}.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:var(--weight-bold)}.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);font-size:var(--text-sm);font-weight:var(--weight-medium)}.detail-card strong{font-size:var(--text-xl);font-weight:var(--weight-semibold);line-height:1.45}.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-size:var(--text-sm);font-weight:var(--weight-semibold)}.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,2.7vw,26px);font-weight:var(--weight-bold);line-height:1.25}.date-row span{color:var(--deep);font-size:var(--text-md);font-weight:var(--weight-semibold)}.date-row small,.date-empty{color:var(--muted);font-size:var(--text-sm)}.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-size:var(--text-lg);font-weight:var(--weight-semibold)}.faq p{color:var(--muted);margin-bottom:0;font-size:var(--text-md)}.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}.seat-box p{color:var(--muted);font-size:var(--text-md)}.seat-box strong{color:var(--green);font-weight:var(--weight-semibold)}.bank-box{margin:24px auto;max-width:760px}.bank-box h3{margin:0 0 12px;text-align:center;font-size:var(--text-xl);font-weight:var(--weight-semibold)}.payment-qr{display:grid;place-items:center;margin:4px 0 18px}.payment-qr img,.admin-qr-preview{width:min(260px,100%);aspect-ratio:1;object-fit:contain;padding:10px;border:1px solid #dbe8c8;border-radius:8px;background:#fff}.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-size:var(--text-sm);font-weight:var(--weight-medium)}.bank-list dd{margin:0;font-size:var(--text-lg);font-weight:var(--weight-semibold);overflow-wrap:anywhere}.form{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.field{display:grid;gap:6px;font-size:var(--text-sm);font-weight:var(--weight-semibold);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);font-size:var(--text-md);font-weight:var(--weight-regular)}.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}.closed-box{font-size:var(--text-lg);font-weight:var(--weight-semibold);text-align:center}.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:var(--weight-semibold)}.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;font-weight:var(--weight-medium)}.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;font-size:28px;font-weight:var(--weight-bold);line-height:1.25}.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;font-size:30px;font-weight:var(--weight-bold);line-height:1.25}.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:var(--text-sm);font-weight:var(--weight-medium)}.stat strong{font-size:26px;font-weight:var(--weight-bold);color:var(--green);line-height:1.15}.admin-panel{padding:20px;margin-bottom:18px}.admin-panel h2{margin-top:0;font-size:22px;font-weight:var(--weight-semibold);line-height:1.3}.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:var(--text-xs);font-weight:var(--weight-semibold);color:var(--muted);white-space:nowrap}td{font-size:var(--text-sm);line-height:1.5}.status{display:inline-flex;border-radius:999px;padding:4px 9px;font-weight:var(--weight-semibold);font-size:var(--text-xs)}.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}.sale-copy-panel,.sale-images-panel,.recipe-manager-panel{grid-column:1 / -1}.sale-copy-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.sale-copy-panel h2,.sale-copy-panel button{grid-column:1 / -1}.sale-image-editor{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.sale-image-field img,.image-empty{width:100%;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:8px;background:#f7f2e7}.sale-image-field img{display:block;object-fit:cover}.image-empty{display:grid;place-items:center;color:var(--muted);font-weight:var(--weight-medium)}.recipe-editor-list{display:grid;gap:14px;margin-bottom:14px}.recipe-editor-row{display:grid;grid-template-columns:1.1fr 1.1fr 180px auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fffdfa}.recipe-image-upload img,.recipe-image-upload .image-empty{width:100%;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:8px;object-fit:cover;background:#f7f2e7}.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:var(--weight-medium)}.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{max-height:none}.icon-grid,.proof-grid,.story-photo-grid,.ingredient-photo-strip,.recipe-grid,.process-photo-row,.benefits,.detail-grid,.stat-grid,.form,.filters,.session-editor,.sale-copy-panel,.sale-image-editor,.recipe-editor-row{grid-template-columns:1fr}.teacher-photo,.workshop-photo,.ingredient-photo,.process-photo,.takehome-a,.recipe-image{aspect-ratio:4 / 3}.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(32px,10vw,44px)}}@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}}
