@font-face { font-family:'DM Sans'; src:url('fonts/dm-sans-400.woff') format('woff'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'DM Sans'; src:url('fonts/dm-sans-600.woff') format('woff'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Fraunces'; src:url('fonts/fraunces-600.woff') format('woff'); font-weight:600; font-style:normal; font-display:swap; }
@font-face { font-family:'Noto Sans Thai'; src:url('fonts/noto-sans-thai-400.woff') format('woff'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Noto Sans Thai'; src:url('fonts/noto-sans-thai-600.woff') format('woff'); font-weight:600; font-style:normal; font-display:swap; }
:root {
  --ink:#18221b; --gold:#f1af42; --paper:#f4f0e6; --muted:#62685d; --olive:#e4e7d8;
  --display:'Fraunces',Georgia,serif; --body:'DM Sans',Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.65 var(--body); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent; }
a:focus-visible { outline:3px solid #c6790a; outline-offset:5px; }
svg { display:block; flex-shrink:0; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin:0; }
h2 { font-family:var(--display); font-size:clamp(40px,4.5vw,58px); line-height:1.12; letter-spacing:-.035em; font-weight:600; }
h2 em { font-style:normal; color:#7d845f; }
h3 { line-height:1.2; }
.container { width:min(1200px,calc(100% - 112px)); margin-inline:auto; }
.section-space { padding-block:76px; }
.eyebrow { font-size:10px; letter-spacing:2px; font-weight:600; line-height:1.55; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:25px; min-height:49px; padding:12px 23px; font-size:14px; line-height:1.5; font-weight:600; white-space:nowrap; transition:background .2s,transform .2s; }
.button svg,.small-link svg { width:21px; height:21px; }
.button-gold { background:var(--gold); color:var(--ink); }
.button:hover { background:#ffd17b; transform:translateY(-2px); }
.small-link,.social-link { display:inline-flex; align-items:center; gap:14px; font-weight:600; line-height:1.5; }
.small-link { font-size:12px; }
.small-link:hover,.social-link:hover { text-decoration:underline; text-underline-offset:5px; }
.skip-link { position:fixed; left:20px; top:12px; padding:10px 15px; z-index:99; background:var(--gold); transform:translateY(-200%); }
.skip-link:focus { transform:none; }

/* Header and hero */
.site-header { background:var(--ink); color:var(--paper); position:relative; z-index:5; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; height:86px; }
.brand { display:flex; align-items:center; gap:13px; white-space:nowrap; }
.brand-mark { color:var(--gold); width:30px; height:36px; }
.brand>span { font-family:var(--display); font-weight:600; font-size:30px; line-height:1.05; letter-spacing:-.8px; }
.brand small { display:block; font-family:var(--body); font-size:8px; line-height:1.4; letter-spacing:2.8px; margin-top:7px; font-weight:400; }
.desktop-nav { display:flex; gap:30px; font-size:13px; font-weight:600; }
.desktop-nav a:hover { color:var(--gold); }
.header-actions { display:flex; gap:27px; align-items:center; }
.language-switch { display:flex; align-items:center; gap:4px; }
.language-switch a { font-size:11px; padding:8px 7px; color:#afb7aa; }
.language-switch a[lang=th] { font-family:'Noto Sans Thai',Tahoma,sans-serif; }
.language-switch a[aria-current] { color:var(--gold); box-shadow:inset 0 -1px var(--gold); }
.header-book { min-height:40px; padding:9px 17px; font-size:12px; gap:20px; }
.header-book svg { width:18px; height:18px; }
.hero { position:relative; isolation:isolate; min-height:620px; color:var(--paper); background:var(--ink); overflow:hidden; }
.hero-photo { position:absolute; inset:0; z-index:-3; width:100%; height:100%; object-fit:cover; object-position:center 45%; }
.hero-shade { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,#0d170ff5 0%,#0d170fd6 23%,#0d170f40 57%,#0d170f0a 85%),linear-gradient(0deg,#09150cd9,transparent 35%); }
.hero-content { padding-top:65px; padding-bottom:68px; }
.hero-location { color:#e3d9b8; display:flex; align-items:center; gap:10px; margin-bottom:34px; font-size:10px; }
.small-star { font-size:20px; line-height:1; color:var(--gold); }
.hero-display { display:block; font-family:var(--display); font-size:clamp(76px,7.7vw,108px); line-height:1.04; letter-spacing:-.055em; font-weight:600; }
.hero-display em { display:block; margin-top:0; color:var(--gold); font-style:normal; }
.hero-display br { display:none; }
.hero-description { max-width:330px; font-size:16px; line-height:1.65; margin-top:28px; color:#ece8db; }
.hero-actions { margin-top:30px; }
.hero:after { position:absolute; content:''; height:12px; bottom:-1px; left:0; right:0; background:var(--paper); clip-path:polygon(0 65%,4% 40%,8% 72%,12% 42%,17% 79%,22% 43%,28% 68%,33% 35%,38% 76%,43% 43%,48% 80%,53% 39%,59% 68%,64% 31%,69% 63%,74% 38%,80% 77%,85% 44%,91% 66%,96% 36%,100% 60%,100% 100%,0 100%); }

/* Evergreen park introduction */
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; margin-bottom:32px; }
.intro-heading { align-items:center; }
.intro-heading h2 { font-size:clamp(39px,4vw,54px); }
.park-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.park img { width:100%; height:auto; aspect-ratio:2.35; object-fit:cover; }
.park:nth-child(2) img { object-position:center 32%; }
.park-copy { padding-top:19px; }
.park h3 { font-family:var(--display); font-weight:600; font-size:29px; letter-spacing:-.6px; }
.park p { font-size:15px; color:var(--muted); margin-top:11px; line-height:1.75; max-width:520px; }

/* Ticket card */
.tickets-section { background:var(--olive); padding-block:58px; }
.tickets-section h2 { font-size:clamp(39px,4vw,55px); }
.ticket { display:grid; grid-template-columns:minmax(0,1fr) 285px; position:relative; filter:drop-shadow(0 14px 14px #27351b10); }
.ticket-main { background:var(--gold); position:relative; overflow:hidden; padding:26px 35px 24px; border-radius:7px 0 0 7px; isolation:isolate; }
.ticket-body { padding:16px 0 35px; position:relative; z-index:1; }
.ticket-body h3 { font-family:var(--display); font-size:clamp(37px,4.3vw,62px); letter-spacing:-1.8px; font-weight:600; line-height:1.05; }
.ticket-place { font-size:10px; letter-spacing:3.5px; font-weight:600; margin-top:8px; }
.ticket-bottom { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #17251b45; padding-top:17px; font-size:9px; letter-spacing:1.6px; font-weight:600; position:relative; z-index:1; }
.ticket-bottom b { font-size:14px; padding:0 12px; line-height:1; }
.ticket-mark .brand-mark { width:17px; height:20px; color:var(--ink); }
.ticket-stripes { position:absolute; inset:-12px 0 -12px auto; width:23%; color:var(--ink); opacity:.12; z-index:-1; transform:rotate(-7deg); }
.stripes { width:100%; height:100%; }
.ticket-stub { background:var(--ink); border-left:2px dashed #949a72; position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--paper); padding:25px; border-radius:0 7px 7px 0; }
.ticket-stub:before,.ticket-stub:after { content:''; position:absolute; left:-13px; width:24px; height:24px; border-radius:50%; background:var(--olive); }
.ticket-stub:before { top:-12px; }
.ticket-stub:after { bottom:-12px; }
.stub-star { font-size:60px; line-height:1; margin:0 0 22px; color:var(--gold); }
.ticket-stub .button { width:100%; max-width:205px; justify-content:space-between; }
.ticket-via { font-size:10px; color:#c0c6b5; margin-top:13px; }

/* A plain image grid, without overlays or viewer controls */
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.gallery-photo { width:100%; height:auto; aspect-ratio:1.45; object-fit:cover; }

/* Contact details and requested footer line */
.site-footer { background:var(--ink); color:var(--paper); padding-top:37px; }
.footer-info { display:grid; grid-template-columns:1.3fr 1fr .85fr; gap:42px; padding-bottom:31px; }
.footer-info h3 { font-size:9px; letter-spacing:1.6px; color:#adb6a5; margin-bottom:12px; }
.footer-info address { font-size:12px; font-style:normal; line-height:1.9; color:#dddcd0; }
.footer-info .small-link { font-size:11px; color:var(--gold); margin-top:9px; gap:10px; }
.footer-info .small-link svg { width:16px; height:16px; }
.phone { font-size:19px; letter-spacing:.3px; white-space:nowrap; }
.phone:hover { text-decoration:underline; }
.footer-social { display:flex; gap:12px; flex-wrap:wrap; margin-left:-9px; }
.social-link { display:inline-flex; width:42px; height:42px; justify-content:center; align-items:center; color:var(--paper); border-radius:50%; transition:background .2s,color .2s; }
.social-link:hover { color:var(--gold); background:#ffffff0b; }
.social-link svg { display:block; width:22px; height:22px; fill:currentColor; }
.footer-bottom { border-top:1px solid #ffffff25; padding-block:20px; text-align:center; font-size:11px; color:#adb6a5; }
.mobile-book { display:none; }

/* Thai typography */
html[lang=th] { --body:'Noto Sans Thai','DM Sans',Tahoma,sans-serif; --display:'Noto Sans Thai',Tahoma,sans-serif; }
html[lang=th] .brand>span { font-family:'Fraunces',Georgia,serif; }
html[lang=th] h2 { font-weight:600; font-size:clamp(30px,3.3vw,43px); line-height:1.35; letter-spacing:-1px; }
html[lang=th] .eyebrow { letter-spacing:.6px; font-size:11px; }
html[lang=th] .hero-display { font-weight:600; font-size:clamp(62px,6.2vw,88px); line-height:1.23; letter-spacing:-1.4px; }
html[lang=th] .hero-display em { margin-top:0; }
html[lang=th] .hero-description { font-size:15px; max-width:330px; margin-top:24px; line-height:1.8; }
html[lang=th] .hero-content { padding-top:72px; }
html[lang=th] .hero-location { margin-bottom:22px; }
html[lang=th] .park h3 { font-size:23px; }
html[lang=th] .ticket-body h3 { font-size:clamp(37px,4vw,53px); font-weight:600; line-height:1.3; }
html[lang=th] .ticket-place { letter-spacing:.5px; }
html[lang=th] .footer-info h3 { letter-spacing:.4px; font-size:10px; }

@media(min-width:1600px) {
  .hero { min-height:680px; }
  .hero-content { padding-top:66px; }
  .hero-photo { object-position:center 44%; }
}
@media(max-width:1100px) {
  .container { width:calc(100% - 80px); }
  .header-inner { gap:18px; }
  .desktop-nav { gap:18px; }
  .header-actions { gap:18px; }
  .hero { min-height:580px; }
  .hero-content { padding-top:58px; }
  .hero-display { font-size:83px; }
  .ticket { grid-template-columns:minmax(0,1fr) 245px; }
  .ticket-main { padding-inline:28px; }
  .ticket-body h3 { font-size:46px; }
  .footer-info { gap:25px; }
  .footer-social { gap:12px; }
  html[lang=th] .hero-display { font-size:73px; }
  html[lang=th] .hero-content { padding-top:62px; }
}
@media(max-width:860px) {
  .container { width:calc(100% - 56px); }
  .desktop-nav { display:none; }
  .header-inner { height:76px; }
  .hero-photo { object-position:60% center; }
  .hero-shade { background:linear-gradient(90deg,#0d170ff0,#0d170f99 43%,#0d170f16),linear-gradient(0deg,#09150cbb,transparent 45%); }
  .section-space { padding-block:58px; }
  .park-grid { gap:23px; }
  .park img { aspect-ratio:1.8; }
  .park p { font-size:13px; }
  .ticket { grid-template-columns:minmax(0,1fr) 215px; }
  .ticket-main { padding-inline:23px; }
  .ticket-body h3 { font-size:37px; }
  .ticket-stub { padding:22px; }
  .ticket-bottom { letter-spacing:.6px; font-size:8px; }
  .ticket-bottom b { padding-inline:6px; }
  .ticket-place { letter-spacing:2px; }
  .footer-info { grid-template-columns:1.2fr 1fr; gap:27px; }
  .footer-info>div:last-child { grid-column:1/-1; }
  html[lang=th] h2 { font-size:31px; }
  html[lang=th] .ticket-body h3 { font-size:39px; }
}
@media(max-width:600px) {
  html { scroll-padding-top:15px; }
  .container { width:calc(100% - 40px); }
  .header-inner { height:70px; gap:12px; }
  .brand { gap:9px; }
  .brand-mark { width:24px; height:30px; }
  .brand>span { font-size:25px; }
  .brand small { font-size:7px; letter-spacing:2px; margin-top:5px; }
  .header-book { display:none; }
  .header-actions { gap:0; }
  .language-switch { gap:1px; }
  .language-switch a { padding:8px 6px; }
  .hero { min-height:530px; }
  .hero-photo { object-position:65% center; }
  .hero-shade { background:linear-gradient(90deg,#0d170fe6,#0d170f6b 70%,#0d170f33),linear-gradient(0deg,#0d170ff2 2%,#0d170f4d 48%,#0d170f16); }
  .hero-content { padding-top:57px; padding-bottom:65px; }
  .hero-location { font-size:8px; letter-spacing:1.6px; margin-bottom:36px; }
  .hero-display { font-size:clamp(46px,13.8vw,70px); line-height:1.12; }
  .hero-description { max-width:270px; font-size:15px; margin-top:25px; }
  .hero-actions { margin-top:28px; }
  .hero .button { padding:12px 19px; gap:23px; min-height:47px; }
  .section-space { padding-block:45px; }
  .section-heading { display:block; margin-bottom:25px; }
  .intro-heading h2 { font-size:43px; }
  .park-grid { grid-template-columns:1fr; gap:29px; }
  .park img { aspect-ratio:1.9; }
  .park-copy { padding-top:15px; }
  .park h3 { font-size:28px; }
  .park p { margin-top:9px; }
  .tickets-section { padding-block:44px; }
  .tickets-section h2 { font-size:44px; }
  .ticket { display:block; filter:drop-shadow(0 8px 12px #27351b0b); }
  .ticket-main { padding:22px 23px 18px; border-radius:6px 6px 0 0; }
  .ticket-body { padding:10px 0 29px; }
  .ticket-body h3 { font-size:46px; }
  .ticket-place { font-size:9px; letter-spacing:2.3px; margin-top:7px; }
  .ticket-bottom { font-size:8px; letter-spacing:.9px; padding-top:15px; }
  .ticket-bottom b { padding-inline:8px; }
  .ticket-stub { border-left:0; border-top:2px dashed #949a72; border-radius:0 0 6px 6px; padding:25px 23px 21px; display:grid; grid-template-columns:1fr auto; column-gap:12px; align-items:center; }
  .ticket-stub:before,.ticket-stub:after { top:-13px; bottom:auto; }
  .ticket-stub:before { left:-12px; }
  .ticket-stub:after { right:-12px; left:auto; }
  .stub-star { font-size:46px; margin:0; grid-row:1/3; grid-column:1; }
  .ticket-stub .button { grid-column:2; grid-row:1; gap:18px; font-size:13px; width:auto; padding:12px 17px; min-height:47px; }
  .ticket-via { grid-column:2; text-align:center; margin-top:7px; font-size:9px; }
  .gallery-section h2 { font-size:45px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .gallery-photo { aspect-ratio:.94; }
  .site-footer { padding-top:32px; padding-bottom:70px; }
  .footer-info { grid-template-columns:1fr; gap:25px; padding-bottom:27px; }
  .footer-info h3 { font-size:8px; letter-spacing:1.2px; }
  .footer-info>div:last-child { grid-column:auto; }
  .footer-social { gap:15px; }
  .footer-bottom { font-size:10px; padding-block:19px; }
  .mobile-book { position:fixed; bottom:0; left:0; right:0; z-index:8; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); background:#18221bf5; color:var(--paper); border-top:1px solid #ffffff25; box-shadow:0 -4px 20px #11111115; }
  .mobile-book>span { font-size:11px; font-weight:600; line-height:1.5; }
  .mobile-book .button { font-size:12px; min-height:42px; padding:10px 16px; gap:20px; }
  .mobile-book .button svg { width:18px; height:18px; }
  html[lang=th] .hero-content { padding-top:60px; }
  html[lang=th] .hero-display { font-size:clamp(39px,12vw,56px); line-height:1.4; letter-spacing:-.7px; }
  html[lang=th] .hero-description { font-size:14px; max-width:270px; margin-top:25px; }
  html[lang=th] .hero-location { margin-bottom:34px; font-size:10px; letter-spacing:.3px; }
  html[lang=th] h2 { font-size:33px; letter-spacing:-.7px; line-height:1.4; }
  html[lang=th] .ticket-body h3 { font-size:44px; }
}
@media(max-width:360px) {
  .container { width:calc(100% - 32px); }
  .brand>span { font-size:23px; }
  .brand small { font-size:6px; }
  .hero-display { font-size:46px; }
  .hero .button { gap:18px; padding-inline:16px; }
  .ticket-main { padding-inline:19px; }
  .ticket-body h3 { font-size:40px; }
  .ticket-bottom { letter-spacing:.35px; }
  .ticket-stub { padding-inline:19px; }
  .ticket-stub .button { gap:13px; padding-inline:14px; }
  .intro-heading h2 { font-size:38px; }
  .gallery-section h2,.tickets-section h2 { font-size:40px; }
  .mobile-book { padding-inline:16px; }
  .mobile-book>span { font-size:10px; }
  .mobile-book .button { padding-inline:13px; gap:14px; }
  html[lang=th] .hero-display { font-size:39px; }
  html[lang=th] h2 { font-size:29px; }
  html[lang=th] .ticket-body h3 { font-size:38px; }
  html[lang=th] .mobile-book>span { font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}
