:root{--paper:#f0eee9;--ink:#25282a;--wine:#653024;--sand:#dbc8b6;--line:#d2c8bb;--muted:#62574e;--serif:Georgia,"Times New Roman",serif;--sans:"Leelawadee UI",Tahoma,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.6}img{display:block;width:100%;height:auto}a{color:inherit}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #a9614b;outline-offset:4px}.skip{position:fixed;z-index:9;top:-100px;background:white;padding:12px}.skip:focus{top:10px}
.header{position:sticky;top:0;z-index:4;background:var(--paper);display:flex;justify-content:space-between;align-items:center;gap:24px;padding:14px 5%;border-bottom:1px solid var(--line)}.brand{width:105px;flex:none}.header nav,.header-actions,.languages,.actions{display:flex;align-items:center;gap:24px}.header nav a{text-decoration:none;font-size:14px}.header nav a:hover,.text-link:hover{text-decoration-thickness:2px}.languages{gap:5px;font-size:12px}.languages button{background:none;border:none;color:var(--muted);padding:4px}.languages button[aria-pressed=true]{color:var(--wine);font-weight:bold;text-decoration:underline}.button{display:inline-block;background:var(--wine);color:white;text-decoration:none;padding:12px 20px;font-size:14px;border:1px solid transparent}.button:hover{background:#4d231a}.button.small{padding:8px 13px}.button.light{background:var(--paper);color:var(--wine)}.button.light:hover{background:var(--sand)}.text-link{text-underline-offset:5px;font-size:14px}.hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:clamp(510px,47vw,735px);background:#302017;color:white}.hero-photo,.hero:after{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.hero-photo{object-fit:cover;object-position:center}.hero:after{content:"";background:linear-gradient(90deg,#21150ee8,#21150e8c 44%,#21150e12 84%)}.hero-copy{padding:48px 7%;max-width:1050px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.19em}.hero h1,.section h2,.about h2,dialog h2{font-family:var(--serif);font-weight:400;line-height:1.16;margin:.25em 0;color:var(--wine)}.hero h1{color:white;font-size:clamp(30px,4.45vw,69px);white-space:pre-line}.hero h1[lang=en]{font-size:clamp(27px,3.6vw,55px);letter-spacing:.015em}.hero p{max-width:420px;margin:18px 0 25px}.location-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 7%;background:var(--wine);color:white;font-size:12px;letter-spacing:.08em}
.section{max-width:1440px;margin:auto;padding:75px 7%}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-head p{max-width:350px;margin:0;color:var(--muted)}.section h2,.about h2{font-size:clamp(32px,4vw,60px);margin-bottom:0}.section .eyebrow,.about .eyebrow,dialog .eyebrow{color:var(--wine)}.service-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.service-card{display:flex;flex-direction:column;align-items:center;justify-content:space-between;isolation:isolate;position:relative;min-height:clamp(300px,37vw,510px);padding:25px 14px;background:#6c493c;color:white;text-decoration:none;text-align:center}.service-card img,.service-card:before{position:absolute;inset:0;height:100%;width:100%;z-index:-1}.service-card img{object-fit:cover}.service-card:before{content:"";z-index:0;background:linear-gradient(#20130c66,#20130c55,#20130ca6)}.service-card>*:not(img){position:relative}.service-card strong{font:400 clamp(24px,3vw,43px)/1.15 var(--serif)}.service-card:hover .text-link{text-decoration-thickness:2px}.service-links,.filters{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.pill{background:transparent;border:1px solid var(--line);padding:6px 13px;color:var(--ink);text-decoration:none;font-size:13px}.pill:hover,.pill[aria-pressed=true]{background:var(--wine);color:white;border-color:var(--wine)}
.featured{background:#e8dfd4}.featured-list{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid #b8a593}.featured-item{display:flex;flex-direction:column;align-items:start;gap:15px;text-align:left;background:transparent;border:0;border-bottom:1px solid #b8a593;padding:16px;color:var(--wine)}.featured-item+.featured-item{border-left:1px solid #b8a593}.featured-item strong{font:400 clamp(21px,2.15vw,34px)/1.15 var(--serif)}.featured-item:hover,.program:hover{background:#dbc8b653}.directory-tools label{display:block;font-size:13px;margin-bottom:5px}.directory-tools input{display:block;width:min(100%,560px);border:1px solid #a98f7b;background:#f9f6f1;padding:11px 14px;color:var(--ink);border-radius:0}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.program{background:transparent;color:inherit;border:1px solid var(--line);text-align:left;padding:15px;display:flex;flex-direction:column;align-items:start;gap:6px}.program strong{font:400 24px/1.2 var(--serif);color:var(--wine)}.program span,#count{color:var(--muted);font-size:13px}.featured-item .text-link,.program .text-link{margin-top:auto;color:var(--wine)}
.about{display:grid;grid-template-columns:1fr 1fr;background:#e8dfd4}.about figure{margin:0;position:relative;min-height:390px}.about figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about-copy{align-self:center;padding:45px 12%}.contact{background:var(--wine);color:white}.contact h2,.contact .eyebrow,.contact .section-head p{color:white}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.contact-grid a{display:flex;flex-direction:column;gap:4px;border:1px solid #d8bfb0;padding:15px;text-decoration:none}.contact-grid a:hover{background:#ffffff18}.contact-grid strong{font:400 24px var(--serif)}footer{background:#2b211d;color:white;padding:20px 7%;display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:12px}footer img{width:82px}
dialog{border:1px solid var(--line);padding:0;width:min(90vw,625px);max-height:90dvh;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#20130cb8}.dialog-inner{position:relative;padding:35px}.close{position:absolute;top:8px;right:12px;border:0;background:transparent;font-size:27px;color:var(--wine)}dialog h2{font-size:42px}dialog h3{margin-bottom:0}dialog .actions{flex-wrap:wrap;gap:15px}
@media(max-width:850px){.service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.header{gap:12px}.header nav,.header-actions{gap:12px}.featured-list{grid-template-columns:repeat(3,1fr)}.results{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){html{scroll-padding-top:115px}.header{padding:10px 5%;flex-wrap:wrap}.brand{width:86px}.header nav{order:3;width:100%;justify-content:space-between;padding-top:3px}.header nav a{font-size:13px}.hero{min-height:510px;align-items:end}.hero-photo{object-position:56% center}.hero:after{background:linear-gradient(0deg,#21150ef0,#21150e63 65%,transparent)}.hero-copy{padding:38px 6% 55px}.hero-copy p{font-size:14px}.actions{gap:13px}.section{padding:46px 6%}.section-head{display:block}.section-head p,.section-head .text-link{display:block;margin-top:12px}.service-cards{grid-template-columns:1fr}.service-card{min-height:275px}.featured-list,.results{grid-template-columns:repeat(2,minmax(0,1fr))}.program{padding:12px;overflow-wrap:anywhere}.program strong{font-size:20px}.about{grid-template-columns:1fr}.about figure{min-height:290px}.about-copy{padding:35px 6%}.contact-grid{grid-template-columns:1fr}.location-bar{font-size:10px}.dialog-inner{padding:26px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.detail-sections{margin:22px 0;border-block:1px solid var(--line);padding:2px 0 12px}.detail-sections p{margin:6px 0 12px}.detail-sections h3{color:var(--wine)}
.arrow-up-right::after {
  content: "";
  display: inline-block;
  width: .75em;
  height: .75em;
  margin-inline-start: .3em;
  vertical-align: .02em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13 13 3M5 3h8v8' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 13 13 3M5 3h8v8' fill='none' stroke='black' stroke-width='1.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.social-links { margin-top: 18px; flex-wrap: wrap; }

.hero-slogan-accent {
  font-family: "Times New Roman", Times, serif;
  font-style: italic;
  font-weight: 400;
}
