:root{
  --ink:#241f1b;
  --muted:#6b6259;
  --cream:#fbf8f3;
  --card:#fff;
  --line:#e6ded1;
  --green:#2f5d50;
  --clay:#c0673f;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--cream); color:var(--ink);
  /* Fraunces/Inter carry Latin; CJK falls through to the Noto SC faces automatically */
  font-family:"Inter","Noto Sans SC",-apple-system,"Segoe UI",system-ui,sans-serif;
  font-size:17px; line-height:1.75; -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Fraunces","Noto Serif SC",Georgia,serif; line-height:1.35; margin:0 0 .5em}
a{color:var(--green)}
.wrap{max-width:720px; margin:0 auto; padding:0 24px}

/* language toggle */
.langbar{display:flex; justify-content:flex-end; padding:20px 0 0}
.langbar a{
  font-size:14px; text-decoration:none; color:var(--muted);
  border:1px solid var(--line); background:var(--card);
  padding:6px 16px; border-radius:999px;
}
.langbar a:hover{color:var(--green); border-color:var(--green)}

/* header */
header{padding:44px 0 56px; text-align:center}
.mark{font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--clay); margin-bottom:28px}
h1{font-size:38px; margin-bottom:18px}
.lede{font-size:19px; color:var(--muted); max-width:34em; margin:0 auto 32px}
.btn{
  display:inline-block; background:var(--green); color:#fff; text-decoration:none;
  padding:14px 30px; border-radius:999px; font-weight:500; font-size:16px;
}
.btn:hover{background:#26493f}
.facts{margin-top:28px; font-size:14px; color:var(--muted)}

/* sections */
section{padding:48px 0; border-top:1px solid var(--line)}
h2{font-size:25px}
ul{padding-left:0; list-style:none; margin:0}
ul li{padding:12px 0 12px 30px; position:relative; border-bottom:1px solid var(--line)}
ul li:last-child{border-bottom:0}
ul li::before{content:"\2726"; position:absolute; left:4px; color:var(--clay)}

ol{counter-reset:s; list-style:none; padding:0; margin:0}
ol li{padding:16px 0 16px 46px; position:relative; counter-increment:s}
ol li::before{
  content:counter(s); position:absolute; left:0; top:18px;
  width:28px; height:28px; border-radius:50%; background:var(--green); color:#fff;
  font-size:14px; display:grid; place-items:center; font-family:Georgia,serif;
}
ol li b{display:block}

.price{
  background:var(--card); border:1px solid var(--line); border-radius:14px;
  padding:22px 24px; margin-bottom:14px;
}
.price .amt{font-family:"Fraunces","Noto Serif SC",serif; font-size:27px; color:var(--green)}
.note{font-size:15px; color:var(--muted)}

/* form */
form{display:grid; gap:14px; margin-top:8px}
label{font-size:15px; font-weight:500}
input,textarea{
  width:100%; font:inherit; font-size:16px; color:var(--ink);
  padding:12px 14px; border:1px solid var(--line); border-radius:10px;
  background:var(--card); margin-top:6px;
}
input:focus,textarea:focus{outline:2px solid var(--green); outline-offset:1px; border-color:transparent}
textarea{min-height:110px; resize:vertical}
button{
  font:inherit; font-weight:500; font-size:16px; cursor:pointer;
  background:var(--green); color:#fff; border:0; padding:14px; border-radius:999px;
}
button:disabled{opacity:.55; cursor:default}
.msg{font-size:15px; padding:12px 14px; border-radius:10px; display:none}
.msg.ok{display:block; background:#e8f1ee; color:var(--green)}
.msg.err{display:block; background:#faece6; color:var(--clay)}
.hp{position:absolute; left:-9999px}

footer{padding:40px 0 64px; text-align:center; font-size:14px; color:var(--muted); border-top:1px solid var(--line)}

@media(max-width:600px){
  header{padding:32px 0 40px}
  h1{font-size:30px}
  .lede{font-size:17px}
}

/* Turnstile widget sits centered above the submit button */
.cf-turnstile{display:flex; justify-content:center; min-height:65px}
