/*
Theme Name: DomNaer
Theme URI: https://domnaer.com
Author: DomNaer
Description: Fast, bilingual (Khmer/English) travel theme for DomNaer.com. Built for SEO and affiliate content.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: domnaer
*/

:root {
  --dn-primary: #0e7c66;
  --dn-primary-dark: #0a5c4c;
  --dn-accent: #f2a93b;
  --dn-ink: #1d2733;
  --dn-muted: #5a6878;
  --dn-bg: #ffffff;
  --dn-bg-soft: #f4f7f6;
  --dn-border: #e3e9e7;
  --dn-radius: 12px;
  --dn-font: "Kantumruy Pro", "Noto Sans Khmer", -apple-system, "Segoe UI", Roboto, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--dn-font); font-size: 17px; line-height: 1.75; color: var(--dn-ink); background: var(--dn-bg); }
img { max-width: 100%; height: auto; }
a { color: var(--dn-primary); }
a:hover { color: var(--dn-primary-dark); }
h1, h2, h3, h4 { line-height: 1.35; color: var(--dn-ink); }
h1 { font-size: 2rem; }
h2 { font-size: 1.5rem; margin-top: 2.2rem; }
h3 { font-size: 1.2rem; }
.dn-container { max-width: 1080px; margin: 0 auto; padding: 0 20px; }
.dn-content { max-width: 760px; }
.dn-header { background: var(--dn-bg); border-bottom: 1px solid var(--dn-border); position: sticky; top: 0; z-index: 50; }
.dn-header-inner { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; max-width: 1080px; margin: 0 auto; }
.dn-logo { font-size: 1.45rem; font-weight: 700; text-decoration: none; color: var(--dn-ink); letter-spacing: -0.5px; }
.dn-logo span { color: var(--dn-primary); }
.dn-logo small { display: block; font-size: 0.7rem; font-weight: 400; color: var(--dn-muted); letter-spacing: 0; }
.dn-nav ul { list-style: none; display: flex; gap: 22px; margin: 0; padding: 0; }
.dn-nav a { text-decoration: none; font-weight: 600; font-size: 0.95rem; color: var(--dn-ink); }
.dn-nav a:hover { color: var(--dn-primary); }
.dn-lang-switch { display: flex; gap: 8px; align-items: center; font-size: 0.9rem; }
.dn-lang-switch a { text-decoration: none; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--dn-border); color: var(--dn-muted); }
.dn-lang-switch a.active, .dn-lang-switch a:hover { background: var(--dn-primary); color: #fff; border-color: var(--dn-primary); }
.dn-menu-toggle { display: none; background: none; border: 0; font-size: 1.6rem; cursor: pointer; }
.dn-hero { background: linear-gradient(135deg, var(--dn-primary) 0%, var(--dn-primary-dark) 100%); color: #fff; padding: 64px 20px; text-align: center; }
.dn-hero h1 { color: #fff; font-size: 2.4rem; margin: 0 0 12px; }
.dn-hero p { font-size: 1.15rem; opacity: 0.92; max-width: 640px; margin: 0 auto; }
.dn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; padding: 40px 0; }
.dn-card { border: 1px solid var(--dn-border); border-radius: var(--dn-radius); overflow: hidden; background: #fff; transition: box-shadow 0.2s, transform 0.2s; }
.dn-card:hover { box-shadow: 0 8px 24px rgba(14, 124, 102, 0.12); transform: translateY(-2px); }
.dn-card a.dn-card-link { display: block; padding: 20px; text-decoration: none; color: inherit; }
.dn-card .dn-card-cat { display: inline-block; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; color: var(--dn-primary); letter-spacing: 0.06em; margin-bottom: 8px; }
.dn-card h2, .dn-card h3 { margin: 0 0 8px; font-size: 1.15rem; }
.dn-card p { margin: 0; color: var(--dn-muted); font-size: 0.95rem; }
.dn-card .dn-card-meta { margin-top: 14px; font-size: 0.82rem; color: var(--dn-muted); }
.dn-single { padding: 40px 0 64px; }
.dn-single .dn-post-meta { color: var(--dn-muted); font-size: 0.9rem; margin-bottom: 24px; }
.dn-single .dn-post-cat { color: var(--dn-primary); font-weight: 700; text-decoration: none; }
.dn-entry table { border-collapse: collapse; width: 100%; margin: 20px 0; font-size: 0.95rem; }
.dn-entry th, .dn-entry td { border: 1px solid var(--dn-border); padding: 10px 12px; text-align: left; }
.dn-entry th { background: var(--dn-bg-soft); }
.dn-entry blockquote { margin: 20px 0; padding: 14px 20px; background: var(--dn-bg-soft); border-left: 4px solid var(--dn-accent); border-radius: 0 8px 8px 0; }
.dn-book { display: inline-block; background: var(--dn-accent); color: #1d2733 !important; font-weight: 700; padding: 13px 26px; border-radius: 999px; text-decoration: none; margin: 8px 0 16px; box-shadow: 0 3px 10px rgba(242, 169, 59, 0.4); transition: transform 0.15s, box-shadow 0.15s; }
.dn-book:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(242, 169, 59, 0.5); }
.dn-book::after { content: " →"; }
.dn-disclosure { font-size: 0.82rem; color: var(--dn-muted); background: var(--dn-bg-soft); padding: 10px 14px; border-radius: 8px; margin: 24px 0; }
.dn-entry details { border: 1px solid var(--dn-border); border-radius: 8px; padding: 12px 16px; margin: 10px 0; background: #fff; }
.dn-entry summary { font-weight: 700; cursor: pointer; }
.dn-footer { background: var(--dn-ink); color: #c6cfd9; margin-top: 56px; padding: 40px 20px; font-size: 0.92rem; }
.dn-footer-inner { max-width: 1080px; margin: 0 auto; display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; }
.dn-footer a { color: #fff; text-decoration: none; }
.dn-footer a:hover { text-decoration: underline; }
.dn-footer ul { list-style: none; margin: 0; padding: 0; }
.dn-footer li { margin-bottom: 6px; }
.dn-footer .dn-footer-brand { font-size: 1.2rem; font-weight: 700; color: #fff; }
.dn-footer .dn-copy { margin-top: 24px; width: 100%; border-top: 1px solid #36414e; padding-top: 16px; font-size: 0.82rem; color: #8b97a5; }
.dn-archive-head { padding: 36px 0 0; }
.dn-archive-head h1 { margin: 0; }
.dn-archive-head p { color: var(--dn-muted); }
.dn-pagination { display: flex; gap: 8px; padding: 12px 0 48px; }
.dn-pagination .page-numbers { padding: 8px 14px; border: 1px solid var(--dn-border); border-radius: 8px; text-decoration: none; color: var(--dn-ink); }
.dn-pagination .page-numbers.current { background: var(--dn-primary); color: #fff; border-color: var(--dn-primary); }
@media (max-width: 768px) {
  .dn-nav { display: none; width: 100%; }
  .dn-nav.open { display: block; }
  .dn-nav ul { flex-direction: column; gap: 0; padding: 10px 0; }
  .dn-nav li { border-top: 1px solid var(--dn-border); }
  .dn-nav a { display: block; padding: 12px 4px; }
  .dn-menu-toggle { display: block; }
  .dn-header-inner { flex-wrap: wrap; }
  .dn-hero h1 { font-size: 1.7rem; }
  body { font-size: 16px; }
}

/* Route search widget */
.dn-search-home { margin-top: -28px; position: relative; z-index: 5; }
.dn-search { background: #fff; border: 1px solid var(--dn-border); border-radius: var(--dn-radius); box-shadow: 0 10px 30px rgba(14,124,102,0.15); padding: 18px 20px; max-width: 640px; margin: 0 auto; }
.dn-search-label { font-weight: 700; margin-bottom: 10px; }
.dn-search-row { display: flex; gap: 12px; flex-wrap: wrap; }
.dn-search-row select { flex: 1 1 320px; font-family: var(--dn-font); font-size: 1rem; padding: 12px 14px; border: 1px solid var(--dn-border); border-radius: 10px; background: var(--dn-bg-soft); }
.dn-search-row .dn-book { border: 0; cursor: pointer; font-family: var(--dn-font); font-size: 1rem; margin: 0; }
.dn-search-widget { max-width: 640px; margin: 0 auto; }
