/* Scoped to the Dan Nguyet landing page; shared course pages keep their theme. */
.dn-page { --dn-green: #173d35; --dn-ink: #233d34; --dn-muted: #607067; --dn-cream: #faf8f0; --dn-sand: #f0ecdf; --dn-gold: #edc77f; background: var(--dn-cream); color: var(--dn-ink); font-family: "Be Vietnam Pro", sans-serif; line-height: 1.85; }
.dn-page *, .dn-trial-modal * { box-sizing: border-box; }
.dn-page h1, .dn-page h2, .dn-page h3, .dn-page p, .dn-page figure { margin: 0; }
.dn-page h1, .dn-page h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; color: inherit; letter-spacing: -.045em; }
.dn-page h2 { font-size: clamp(2.25rem, 4vw, 3.6rem); line-height: 1.17; }
.dn-page h3 { font-size: 1.05rem; color: inherit; line-height: 1.5; font-weight: 600; }
.dn-page a { color: inherit !important; }
.dn-page button { font-family: inherit; }
.dn-page a:focus-visible, .dn-page button:focus-visible, .dn-page summary:focus-visible { outline: 3px solid #b98235; outline-offset: 5px; }
.dn-page section[id] { scroll-margin-top: 100px; }
.dn-page .dn-eyebrow, .dn-trial-modal .dn-eyebrow { font-size: .68rem; font-weight: 600; letter-spacing: .18em; line-height: 1.6; text-transform: uppercase; margin-bottom: 20px; }
.dn-hero { background: var(--dn-green); color: var(--dn-cream); position: relative; overflow: hidden; }
.dn-hero__grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 5%; align-items: center; padding-top: 68px; padding-bottom: 52px; }
.dn-hero__copy { max-width: 600px; }
.dn-hero h1 { font-size: clamp(3rem, 5.3vw, 4.8rem); line-height: 1.05; margin-bottom: 26px; }
.dn-hero h1 em { color: var(--dn-gold); font-weight: 400; }
.dn-hero .dn-eyebrow { color: var(--dn-gold); }
.dn-hero__copy > p:not(.dn-eyebrow) { max-width: 490px; color: #d1ded6; font-size: .9rem; }
.dn-hero__copy > .dn-hero__intro { font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem !important; margin-bottom: 12px; color: var(--dn-cream) !important; }
.dn-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin-top: 32px; }
.dn-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 13px 23px; border: 1px solid currentColor; background: transparent; color: inherit; font-weight: 600; font-size: .78rem; border-radius: 4px; text-decoration: none; cursor: pointer; transition: background .2s, color .2s; }
.dn-button:hover { background: var(--dn-green); color: var(--dn-cream); }
.dn-button--gold { background: var(--dn-gold); color: #193b32; border-color: var(--dn-gold); }
.dn-button--gold:hover { background: #f6d99f; color: #193b32; }
.dn-text-link { display: inline-block; background: none; border: 0; border-bottom: 1px solid currentColor; padding: 4px 0; color: inherit; font-size: .8rem; font-weight: 500; text-decoration: none; cursor: pointer; }
.dn-text-link:hover { opacity: .8; }
.dn-hero__notes { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 34px; font-size: .68rem; color: #bbcfc2; }
.dn-hero__notes span::before { content: "·"; margin-right: 8px; color: var(--dn-gold); }
.dn-hero__team { min-width: 0; padding: 22px 0; }
.dn-hero__team > .dn-eyebrow { text-align: center; }
.dn-hero__portraits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; padding: 8px 0 28px; }
.dn-hero__member { min-width: 0; }
.dn-hero__member--thanh { padding-top: 24px; }
.dn-hero__photo { aspect-ratio: 3 / 4; overflow: hidden; border: 1px solid #edc77f55; border-radius: 100px 100px 4px 4px; background: #10332b; }
.dn-hero__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dn-hero__member--tuan img { object-position: 55% 50%; }
.dn-hero__member--thanh img { object-position: 50% 44%; }
.dn-hero__member--long img { object-position: 40% 50%; }
.dn-hero__member figcaption { padding-top: 14px; text-align: center; font-size: .8rem; line-height: 1.65; }
.dn-hero__member figcaption span { display: block; color: #bbcfc2; font-size: .66rem; margin-bottom: 3px; }
.dn-hero__team > .dn-text-link { display: table; margin: 0 auto; }
.dn-hero__footer { border-top: 1px solid #d8dfbd30; display: flex; justify-content: space-between; gap: 20px; padding-top: 20px; padding-bottom: 20px; font-size: .6rem; letter-spacing: .12em; color: #c3d3c8; }
.dn-hero__footer a { text-decoration: none; letter-spacing: 0; }
.dn-section-nav { border-bottom: 1px solid #dcded0; }
.dn-section-nav > div { display: flex; justify-content: center; gap: 44px; overflow-x: auto; }
.dn-section-nav a { white-space: nowrap; font-size: .72rem; text-decoration: none; padding: 19px 0; }
.dn-section-nav a:hover { color: #946725 !important; }
.dn-section { padding: 90px 0; }
.dn-section--sand { background: var(--dn-sand); }
.dn-section--green { background: var(--dn-green); color: var(--dn-cream); }
.dn-section-heading { max-width: 750px; margin-bottom: 42px; }
.dn-section-heading > p:last-child { color: var(--dn-muted); font-size: .88rem; margin-top: 22px; max-width: 620px; }
.dn-section-heading--split { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: end; }
.dn-section-heading--split > p { max-width: 480px; }
.dn-values { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #cdd2c1; }
.dn-values article { padding: 27px 24px 0 0; }
.dn-values article + article { border-left: 1px solid #dcded0; padding-left: 24px; }
.dn-number { display: block; font-family: Georgia, serif; font-size: 1.4rem; color: #946725; margin-bottom: 16px; }
.dn-values h3 { margin-bottom: 12px; }
.dn-values p { color: var(--dn-muted); font-size: .78rem; }
.dn-courses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.dn-course { padding: 30px; border: 1px solid #d4d4c6; border-radius: 5px; display: flex; flex-direction: column; background: var(--dn-cream); }
.dn-course__top { display: flex; justify-content: space-between; font-size: .66rem; margin-bottom: 30px; }
.dn-course h3 { font-family: Georgia, serif; font-size: 2rem; font-weight: 400; }
.dn-course__duration { margin-top: 12px !important; font-size: .85rem; }
.dn-course__duration strong { font-size: 2.2rem; font-weight: 400; font-family: Georgia, serif; }
.dn-course__duration span { opacity: .75; font-size: .75rem; }
.dn-course ul { border-top: 1px solid #78928145; margin: 22px 0 28px; padding: 22px 0 0; list-style: none; flex: 1; }
.dn-course li { position: relative; padding-left: 20px; font-size: .78rem; margin-bottom: 13px; }
.dn-course li::before { content: "✓"; position: absolute; left: 0; }
.dn-course--featured { background: var(--dn-green); color: var(--dn-cream); border-color: var(--dn-green); }
.dn-course--featured .dn-course__top { color: var(--dn-gold); }
.dn-course--featured .dn-button { background: var(--dn-gold); color: var(--dn-green); border-color: var(--dn-gold); }
.dn-fine-print { font-size: .7rem; color: var(--dn-muted); margin-top: 20px !important; }
.dn-private { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 30px; border-top: 1px solid #c9cfc0; padding-top: 35px; margin-top: 40px; align-items: start; }
.dn-private .dn-eyebrow { margin-bottom: 9px; }
.dn-private h3 { font-family: Georgia, serif; font-size: 1.75rem; font-weight: 400; }
.dn-private p { font-size: .78rem; color: var(--dn-muted); margin-top: 10px; }
.dn-private strong { font-size: .87rem; }
.dn-private > button { justify-self: start; }
.dn-teachers { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.dn-teacher__photo { position: relative; overflow: hidden; background: var(--dn-sand); border-radius: 5px; }
.dn-teacher__photo img { width: 100%; height: 520px; object-fit: cover; object-position: center 44%; display: block; }
.dn-teacher__photo--tuan img { object-position: 55% 45%; transform: scale(1.12); }
.dn-teacher--long { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 40px; margin-top: 48px; padding: 36px; background: var(--dn-sand); border-radius: 5px; }
.dn-teacher--long .dn-teacher__photo img { height: auto; object-fit: contain; }
.dn-teacher__credential { display: inline-block; padding: 7px 12px; margin: 4px 8px 0 0; border: 1px solid #c8b99e; border-radius: 3px; font-size: .7rem; }
@media (max-width: 767px) { .dn-teacher--long { grid-template-columns: 1fr; gap: 12px; padding: 24px; } }
.dn-teacher__photo span { position: absolute; bottom: 20px; left: 20px; padding: 7px 16px; background: var(--dn-cream); border-radius: 2px; font-size: .7rem; }
.dn-teacher__bio { padding-top: 24px; }
.dn-teacher h3 { font-family: Georgia, serif; font-size: 2rem; font-weight: 400; margin-bottom: 9px; }
.dn-teacher p { color: var(--dn-muted); font-size: .81rem; margin-bottom: 16px; }
.dn-teacher .dn-teacher__school { color: #8b652b; font-size: .72rem; min-height: 44px; }
.dn-page details { border-bottom: 1px solid #cbd2c2; }
.dn-page summary { cursor: pointer; font-weight: 500; font-size: .85rem; padding: 18px 0; }
.dn-page details > p { font-size: .8rem; padding-bottom: 20px; color: var(--dn-muted); }
.dn-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.dn-gallery img { width: 100%; height: auto; aspect-ratio: 327 / 204; object-fit: cover; display: block; border-radius: 4px; }
.dn-moments { margin-top: 32px; }
.dn-moments .carousel-inner { border-radius: 4px; }
.dn-moments .carousel-item img { display: block; width: 100%; height: auto; }
.dn-moments__controls { display: flex; align-items: center; justify-content: space-between; font-size: .75rem; margin-top: 16px; gap: 15px; }
.dn-moments__controls > div { display: flex; gap: 8px; }
.dn-moments__controls button { width: 44px; height: 44px; border: 1px solid #aebcad; background: transparent; color: var(--dn-green); border-radius: 50%; }
.dn-moments__controls button:hover { background: #dce2d4; }
.dn-music { display: grid; grid-template-columns: .8fr 1.2fr; gap: 9%; align-items: start; }
.dn-music .dn-eyebrow { color: var(--dn-gold); }
.dn-music h2 { margin-bottom: 26px; }
.dn-music p { color: #d1ded6; font-size: .84rem; }
.dn-music .dn-text-link { color: var(--dn-gold) !important; margin-top: 25px; }
.dn-video { aspect-ratio: 16 / 9; background: #102b25; border-radius: 4px; overflow: hidden; }
.dn-video iframe { display: block; border: 0; width: 100%; height: 100%; }
.dn-video-caption { font-size: .72rem !important; margin-top: 12px !important; }
.dn-playlist { margin-top: 22px; }
.dn-playlist a { display: flex; justify-content: space-between; padding: 15px 0; border-top: 1px solid #d1ded630; text-decoration: none; font-size: .85rem; }
.dn-playlist a:hover { color: var(--dn-gold) !important; }
.dn-playlist small { margin-right: 24px; color: var(--dn-gold); }
.dn-reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.dn-reviews figure { border-top: 1px solid #cbd2c2; padding-top: 20px; display: flex; flex-direction: column; }
.dn-quote-mark { font-family: Georgia, serif; font-size: 3.5rem; color: #a77f3c; line-height: 1; }
.dn-reviews blockquote { font-family: Georgia, serif; font-size: 1.12rem; line-height: 1.8; flex: 1; margin: 0 0 24px; }
.dn-reviews figcaption { display: flex; align-items: center; gap: 12px; font-size: .76rem; }
.dn-reviews figcaption span { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; background: #e8e5d7; }
.dn-locations { display: grid; grid-template-columns: 1fr 1fr; gap: 0 50px; }
.dn-locations article { display: flex; gap: 24px; padding: 28px 0; border-top: 1px solid #c9cfc0; }
.dn-locations h3 { font-family: Georgia, serif; font-size: 1.6rem; font-weight: 400; }
.dn-locations p { color: var(--dn-muted); font-size: .8rem; margin: 8px 0 14px; }
.dn-faq { display: grid; grid-template-columns: 1fr 1.3fr; gap: 10%; }
.dn-faq .dn-text-link { margin-top: 24px; }
.dn-faq summary { font-size: .91rem; padding: 23px 0; }
.dn-faq details:first-child { border-top: 1px solid #cbd2c2; }
.dn-cta { text-align: center; background: var(--dn-green); color: var(--dn-cream); padding: 80px 0 36px; }
.dn-cta .dn-eyebrow { color: var(--dn-gold); }
.dn-cta h2 { font-size: clamp(2.6rem, 5vw, 4.5rem); }
.dn-cta p { margin-top: 22px; font-size: .88rem; color: #d1ded6; }
.dn-cta .dn-actions { justify-content: center; }
.dn-cta .dn-cta__signature { font-size: .61rem; letter-spacing: .22em; border-top: 1px solid #d1ded630; margin-top: 55px; padding-top: 30px; }
.dn-trial-modal .modal-content { background: #faf8f0; color: #233d34; }
.dn-trial-modal .modal-header { padding: 24px; }
.dn-trial-modal iframe { border: 0; display: block; }
.page-pages-dan_nguyet .site-header .btn-primary { background: #173d35; border-color: #173d35; }
.page-pages-dan_nguyet .promo-popup__dialog { background: #faf8f0; }

@media (max-width: 991px) {
  .dn-hero__grid { gap: 5%; padding-top: 48px; }
  .dn-hero h1 { font-size: 3.2rem; }
  .dn-section { padding: 65px 0; }
  .dn-section-nav > div { gap: 28px; }
  .dn-values { grid-template-columns: 1fr 1fr; gap: 25px 0; }
  .dn-values article:nth-child(3) { border-left: 0; padding-left: 0; }
  .dn-course { padding: 22px 18px; }
  .dn-course h3 { font-size: 1.7rem; }
  .dn-course .dn-button { font-size: .68rem; padding: 12px 8px; }
  .dn-private { gap: 20px; }
  .dn-teacher__photo img { height: 430px; }
  .dn-teachers { gap: 25px; }
  .dn-music { gap: 6%; }
}
@media (max-width: 767px) {
  .dn-page .container { padding-left: 24px; padding-right: 24px; }
  .dn-hero__grid { grid-template-columns: 1fr; gap: 42px; padding-top: 40px; padding-bottom: 30px; }
  .dn-hero h1 { font-size: clamp(2.5rem, 10.5vw, 4rem); }
  .dn-hero__copy > p:not(.dn-eyebrow) { font-size: .84rem; }
  .dn-hero__team { padding: 0; width: 100%; max-width: 540px; justify-self: center; }
  .dn-hero__portraits { gap: 10px; padding-bottom: 22px; }
  .dn-hero__member figcaption { font-size: .72rem; }
  .dn-hero__member--thanh { padding-top: 18px; }
  .dn-hero__footer { font-size: .54rem; }
  .dn-hero__footer a { display: none; }
  .dn-section-nav > div { justify-content: flex-start; gap: 25px; }
  .dn-section { padding: 52px 0; }
  .dn-section-heading { margin-bottom: 30px; }
  .dn-section-heading--split, .dn-courses, .dn-private, .dn-teachers, .dn-music, .dn-reviews, .dn-locations, .dn-faq { grid-template-columns: 1fr; }
  .dn-section-heading--split { gap: 0; }
  .dn-values { gap: 25px 0; }
  .dn-values article { padding-right: 16px; }
  .dn-values article + article { padding-left: 16px; }
  .dn-values article:nth-child(3) { padding-left: 0; }
  .dn-values h3 { font-size: .9rem; }
  .dn-values p { font-size: .73rem; }
  .dn-course { padding: 28px; }
  .dn-course__top { margin-bottom: 18px; }
  .dn-course h3 { font-size: 2rem; }
  .dn-course .dn-button { font-size: .8rem; }
  .dn-private { gap: 25px; }
  .dn-teachers { gap: 38px; }
  .dn-teacher__photo img { height: 460px; }
  .dn-gallery { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dn-moments__controls { font-size: .67rem; }
  .dn-music { gap: 32px; }
  .dn-reviews { gap: 28px; }
  .dn-faq { gap: 30px; }
  .dn-cta { padding-top: 60px; }
  .dn-trial-modal .modal-header { padding: 18px; }
  .dn-trial-modal .modal-title { font-size: 1.2rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  .dn-page *, .dn-page *::before, .dn-page *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

.dn-instrument-note { max-width: 800px; color: var(--dn-muted); margin-bottom: 36px; line-height: 1.8; }
