/* Hesed Cambodia — production stylesheet
   Generated from the brand system. Inline styles carry layout;
   this file carries resets, link colours and pseudo-state rules. */
html { scroll-behavior: smooth; }
  body { margin: 0; background: #FBF9F3; color: #21201B; font-family: 'Jost', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
  * { box-sizing: border-box; }
  a { color: #486A32; text-decoration: none; }
  a:hover { color: #A9762A; }
  ::selection { background: #CA9536; color: #21201B; }

/* interactive states — landing page */
.l1:hover{background:#2E4A24 !important;color:#FBF9F3 !important}
.l2:hover{background:#A9762A !important;color:#21201B !important}
.l3:hover{background:rgba(251,249,243,.1) !important;border-color:#FBF9F3 !important;color:#FBF9F3 !important}
.l4:hover{background:#F3EFE4 !important}
.l5:hover{background:#F3EFE4 !important}
.l6:hover{background:#F3EFE4 !important}
.l7:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.l8:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.l9:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.l10:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.l11:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.l12:hover{background:#2E4A24 !important}

/* interactive states — design system */
.d1:hover{background:#2E4A24 !important;border-color:#2E4A24 !important}
.d2:hover{background:#486A32 !important;color:#FBF9F3 !important}
.d3:hover{background:#A9762A !important}
.d4:hover{border-color:#21201B !important}
.d5:hover{background:#2E4A24 !important}
.d6:hover{background:#2E4A24 !important}
.d7:hover{background:#F3EFE4 !important}
.d8:hover{background:#F3EFE4 !important}
.d9:hover{background:#F3EFE4 !important}
.d10:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.d11:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.d12:focus{border-color:#486A32 !important;box-shadow:0 0 0 2px rgba(72,106,50,.22) !important}
.d13:hover{background:#2E4A24 !important}

@media (max-width: 1040px) and (min-width: 901px) {
  [data-nav] { gap: 18px !important; }
  [data-nav] > a:not([class]) { font-size: 14px !important; }
}
@media (max-width: 900px) {
  [data-nav] > a:not([class]) { display: none !important; }
}
@media (max-width: 900px) {
  [style*="grid-template-columns:repeat(5,1fr)"],
  [style*="grid-template-columns:repeat(4,1fr)"] { grid-template-columns: repeat(2, 1fr) !important; }
  [style*="grid-template-columns:repeat(3,1fr)"] { grid-template-columns: repeat(1, 1fr) !important; }
  [style*="grid-template-columns:1.08fr .92fr"],
  [style*="grid-template-columns:1.15fr .85fr"],
  [style*="grid-template-columns:1.3fr 1fr 1fr 1fr"],
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns:1.4fr 1fr"],
  [style*="grid-template-columns:.95fr 1.05fr"],
  [style*="grid-template-columns:2fr 1fr"],
  [style*="grid-template-columns:1.15fr .85fr"] { grid-template-columns: 1fr !important; }
  h1 { font-size: 38px !important; }
}
@media (max-width: 560px) {
}


/* ---------- hero product art ---------- */
@keyframes heroRise { from { opacity: 0; transform: translateY(26px) scale(.972); } to { opacity: 1; transform: none; } }
@keyframes heroGlow { from { opacity: 0; transform: translate(-50%,-50%) scale(.82); } to { opacity: 1; transform: translate(-50%,-50%) scale(1); } }
@keyframes heroCast { from { opacity: 0; transform: translate(-50%,0) scaleX(.55); } to { opacity: 1; transform: translate(-50%,0) scaleX(1); } }
@keyframes heroFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }
@keyframes heroSheen { 0% { background-position: -90% 0; opacity: 0; } 14% { opacity: 1; } 100% { background-position: 190% 0; opacity: 0; } }
[data-hero-product] { animation: heroRise .68s cubic-bezier(.22,1,.36,1) both; }
[data-hero-halo] { animation: heroGlow 1.1s cubic-bezier(.22,1,.36,1) both; }
[data-hero-ground] { animation: heroCast .9s .12s cubic-bezier(.22,1,.36,1) both; }
[data-hero-pool] { animation: heroCast 1s .18s cubic-bezier(.22,1,.36,1) both; }
[data-hero-reflect] { animation: heroReflect .9s .22s cubic-bezier(.22,1,.36,1) both; }
@keyframes heroReflect { from { opacity: 0; } to { opacity: .5; } }
[data-hero-float] { animation: heroFloat 7.5s 1.1s ease-in-out infinite; }
[data-hero-sheen] { background-position: -90% 0; animation: heroSheen 1.5s .55s cubic-bezier(.4,0,.6,1) both; }
@media (prefers-reduced-motion: reduce) {
  [data-hero-product], [data-hero-halo], [data-hero-ground], [data-hero-pool], [data-hero-reflect], [data-hero-float], [data-hero-sheen] { animation: none !important; }
  [data-hero-reflect] { opacity: .5; }
  [data-hero-sheen] { opacity: 0; }
}
@media (max-width: 900px) {
  [data-hero-stage] { max-width: 420px; }
}


/* ---------- film room ---------- */
@media (max-width: 900px) {
  [data-film-room] { grid-template-columns: 1fr !important; }
}

/* ---------- mobile layer ---------- */
@media (max-width: 900px) {
  [style*="grid-template-columns:1.3fr 1fr 1fr 1fr"] { grid-template-columns: repeat(2,1fr) !important; }
  [style*="min-height:660px"] { min-height: 0 !important; }
  [style*="gap:56px"] { gap: 30px !important; }
  [style*="gap:48px"] { gap: 28px !important; }
  [style*="gap:44px"] { gap: 26px !important; }
  [style*="margin-bottom:104px"] { margin-bottom: 68px !important; }
  [style*="padding:0 40px"] { padding-left: 28px !important; padding-right: 28px !important; }
  [style*="padding:104px 40px"] { padding: 72px 28px !important; }
  [style*="padding:104px 40px 0"] { padding: 72px 28px 0 !important; }
  [style*="padding:0 40px 104px"] { padding-bottom: 72px !important; }
  [style*="padding:16px 40px"] { padding: 14px 24px !important; }
  [style*="padding:26px 40px"] { padding: 22px 24px !important; }
  [style*="padding:80px 40px 44px"] { padding: 60px 28px 36px !important; }
  [style*="padding:44px 40px 48px"] { padding: 34px 26px 38px !important; }
  [style*="padding:48px 44px"] { padding: 34px 26px !important; }
  [style*="padding:56px 48px 60px"] { padding: 38px 26px 42px !important; }
  [style*="padding:40px 36px 0"] { padding: 30px 24px 0 !important; }
  [style*="padding:96px 0"] { padding: 64px 0 !important; }
  [style*="font-size:42px"] { font-size: 34px !important; }
  [style*="padding:80px 40px 44px"] a { display: inline-flex; align-items: center; min-height: 40px; }
  a[href="#inquiry"][style*="font-size:14.5px"] { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 640px) {
  input, select, textarea { font-size: 16px !important; }
  [style*="padding:96px 0"] { padding: 48px 0 !important; }
  [style*="grid-template-columns:repeat(2,1fr)"] { grid-template-columns: 1fr !important; }
  [style*="height:420px"], [style*="min-height:420px"] { height: 250px !important; min-height: 0 !important; }
  [style*="height:212px"], [style*="min-height:212px"] { height: 200px !important; min-height: 0 !important; }
  [style*="margin-bottom:104px"] { margin-bottom: 54px !important; }
  [style*="padding:0 40px"] { padding-left: 20px !important; padding-right: 20px !important; }
  [style*="padding:104px 40px"] { padding: 58px 20px !important; }
  [style*="padding:104px 40px 0"] { padding: 58px 20px 0 !important; }
  [style*="padding:0 40px 104px"] { padding-bottom: 58px !important; }
  [style*="padding:16px 40px"] { padding: 12px 18px !important; }
  [style*="padding:26px 40px"] { padding: 20px 18px !important; }
  [style*="padding:80px 40px 44px"] { padding: 48px 20px 32px !important; }
  [style*="padding:44px 40px 48px"] { padding: 28px 20px 32px !important; }
  [style*="padding:48px 44px"] { padding: 28px 20px !important; }
  [style*="padding:56px 48px 60px"] { padding: 32px 20px 36px !important; }
  [style*="padding:12px 22px"] { padding: 12px 18px !important; }
  [style*="font-size:42px"] { font-size: 29px !important; }
  h1 { font-size: 34px !important; }
  [style*="font-size:clamp(30px,3.6vw,46px)"] { font-size: 27px !important; }
  [style*="font-size:clamp(26px,2.8vw,38px)"] { font-size: 24px !important; }
  [style*="font-size:19px"] { font-size: 17px !important; }
}
@media (max-width: 400px) {
  h1 { font-size: 30px !important; }
  [style*="padding:0 40px"] { padding-left: 16px !important; padding-right: 16px !important; }
  [style*="padding:104px 40px"] { padding: 52px 16px !important; }
  [style*="padding:104px 40px 0"] { padding: 52px 16px 0 !important; }
}
img, iframe { max-width: 100%; }

/* width/height attrs are for aspect-ratio (CLS) only — never let them size the box.
   Inline styles win over this, so an image with an explicit CSS width or height keeps it. */
img[width][height] { width: auto; height: auto; }


@media print { a[href]:after { content: ""; } }
