/* Static styles for Nguyen Hieu Profile */
/* === ROOT VARIABLES === */
:root {
  --gold:       #C8A95A;
  --gold-lt:    #E2CB8A;
  --gold-dk:    #8A6B2A;
  --gold-pale:  rgba(200,169,90,0.10);
  --black:      #080808;
  --ink:        #0F0E0C;
  --dark:       #141210;
  --dark2:      #1C1A16;
  --dark3:      #242018;
  --cream:      #F2ECD8;
  --muted:      rgba(242,236,216,0.45);
  --border:     rgba(200,169,90,0.18);
  --container:  1360px;
  --gap:        80px;
  --gap-sm:     40px;
  --radius:     0px;
}

/* === RESET & BASE === */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; }
body {
  background:var(--ink); color:var(--cream);
  font-family:'Raleway',sans-serif; font-weight:300;
  overflow-x:hidden; line-height:1.7;
}
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
button { cursor:pointer; font-family:inherit; }
ul, ol { list-style:none; }

/* === NOISE TEXTURE === */
body::after {
  content:''; position:fixed; inset:0; pointer-events:none; z-index:9000;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity:.45;
}

/* === CONTAINER === */
.container {
  width:100%; max-width:var(--container);
  margin-left:auto; margin-right:auto;
  padding-left:clamp(20px,4vw,60px);
  padding-right:clamp(20px,4vw,60px);
}
.container--narrow { max-width:860px; }
.container--wide   { max-width:1440px; }

/* === TYPOGRAPHY === */
.lbl {
  display:block; font-family:'Raleway',sans-serif; font-size:9px;
  font-weight:500; letter-spacing:6px; text-transform:uppercase;
  color:var(--gold); margin-bottom:20px;
}
.h2 {
  font-family:'Playfair Display',serif; font-weight:400;
  font-size:clamp(34px,4.5vw,58px); line-height:1.08; color:var(--cream);
}
.h2 em { font-style:italic; color:var(--gold); }
.h3 {
  font-family:'Playfair Display',serif; font-weight:400;
  font-size:clamp(20px,2.5vw,28px); color:var(--cream);
}
.body-serif {
  font-family:'Cormorant Garamond',serif; font-size:18px;
  font-weight:300; line-height:1.85; color:var(--muted);
}

/* === BUTTONS === */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  font-family:'Raleway',sans-serif; font-size:10px;
  font-weight:500; letter-spacing:5px; text-transform:uppercase;
  border:none; cursor:pointer; transition:.3s;
  white-space:nowrap;
}
.btn--primary {
  padding:17px 52px;
  background:linear-gradient(110deg,var(--gold-dk) 0%,var(--gold) 50%,var(--gold-lt) 100%);
  background-size:200%; background-position:0% 50%;
  color:var(--black);
}
.btn--primary:hover {
  background-position:100% 50%;
  transform:translateY(-3px);
  box-shadow:0 16px 48px rgba(200,169,90,.3);
}
.btn--ghost {
  padding:16px 52px;
  background:transparent; border:1px solid rgba(200,169,90,.4); color:var(--gold);
}
.btn--ghost:hover { border-color:var(--gold); background:rgba(200,169,90,.07); }
.btn--gold-sm {
  padding:13px 32px;
  background:linear-gradient(110deg,var(--gold-dk),var(--gold));
  color:var(--black); font-size:9px; letter-spacing:4px;
}
.btn--gold-sm:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,169,90,.28); }

/* === ORNAMENTAL DIVIDER === */
.orn-divider {
  display:flex; align-items:center; justify-content:center; gap:16px;
  padding:48px 0;
}
.orn-line { flex:1; height:1px; background:linear-gradient(to right,transparent,var(--gold-dk),transparent); }

/* === SECTION PADDING === */
.section { padding:clamp(70px,10vw,130px) 0; }
.section--dark  { background:var(--dark); }
.section--dark2 { background:var(--dark2); }
.section--ink   { background:var(--ink); }

/* ======================================================
   HEADER / NAV
====================================================== */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:800;
  padding:0; transition:background .4s, border-color .4s, padding .3s;
  border-bottom:1px solid transparent;
}
.site-header.scrolled {
  background:rgba(8,8,8,.97);
  border-bottom-color:var(--border);
}
.header-inner {
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.logo-wrap { display:flex; align-items:center; gap:12px; }
.logo-mark {
  width:36px; height:36px; border:1px solid var(--gold);
  display:flex; align-items:center; justify-content:center;
  transform:rotate(45deg); flex-shrink:0;
}
.logo-mark span {
  transform:rotate(-45deg); font-family:'Cinzel Decorative',serif;
  font-size:12px; color:var(--gold);
}
.logo-name { font-family:'Cinzel Decorative',serif; font-size:11px; letter-spacing:3px; color:var(--gold); line-height:1.4; }
.logo-name small { display:block; font-family:'Raleway',sans-serif; font-size:8px; letter-spacing:5px; color:var(--muted); font-weight:300; margin-top:2px; }

.nav-menu { display:flex; gap:22px; align-items:center; }
.nav-menu a {
  font-family:'Raleway',sans-serif; font-size:10px; font-weight:400;
  letter-spacing:4px; text-transform:uppercase; color:var(--cream);
  opacity:.55; transition:opacity .3s, color .3s; position:relative;
}
.nav-menu a::after {
  content:''; position:absolute; bottom:-4px; left:0; right:0;
  height:1px; background:var(--gold); transform:scaleX(0); transition:transform .3s;
}
.nav-menu a:hover, .nav-menu a.active { opacity:1; color:var(--gold); }
.nav-menu a:hover::after, .nav-menu a.active::after { transform:scaleX(1); }
.nav-cta { margin-left:16px; }

/* Hamburger */
.hamburger {
  display:none; flex-direction:column; gap:5px; background:none;
  border:none; padding:4px; cursor:pointer;
}
.hamburger span {
  display:block; width:24px; height:1.5px;
  background:var(--gold); transition:transform .3s, opacity .3s;
}
.hamburger.active span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity:0; }
.hamburger.active span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile nav drawer */
.mobile-nav {
  position:fixed; top:72px; left:0; right:0; bottom:0;
  background:rgba(8,8,8,.98); z-index:700;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:36px; transform:translateX(100%); transition:transform .4s cubic-bezier(.22,1,.36,1);
}
.mobile-nav.open { transform:translateX(0); }
.mobile-nav a {
  font-family:'Playfair Display',serif; font-size:clamp(22px,5vw,32px);
  font-style:italic; color:var(--cream); opacity:.7; transition:opacity .3s, color .3s;
}
.mobile-nav a:hover { opacity:1; color:var(--gold); }

/* ======================================================
   HERO
====================================================== */
.hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.hero-bg {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 55% at 50% 55%,rgba(200,169,90,.07) 0%,transparent 65%),
             radial-gradient(ellipse 50% 30% at 15% 85%,rgba(200,169,90,.04) 0%,transparent 55%),
             var(--ink);
}
.hero-accents { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.hero-accents::before, .hero-accents::after {
  content:''; position:absolute; width:1px; height:100%;
  background:linear-gradient(to bottom,transparent 0%,rgba(200,169,90,.18) 30%,rgba(200,169,90,.28) 50%,rgba(200,169,90,.18) 70%,transparent 100%);
}
.hero-accents::before { left:10%; }
.hero-accents::after  { right:10%; }

.hero-content { position:relative; z-index:2; text-align:center; padding:100px 20px 60px; width:100%; }

.hero-eyebrow {
  font-family:'Raleway',sans-serif; font-size:10px; font-weight:400;
  letter-spacing:7px; text-transform:uppercase; color:var(--gold);
  margin-bottom:36px; display:flex; align-items:center; justify-content:center; gap:16px;
  opacity:0; animation:fadeUp .9s .2s both;
}
.hero-eyebrow::before, .hero-eyebrow::after {
  content:''; width:40px; height:1px;
  background:linear-gradient(to right,transparent,var(--gold));
}
.hero-eyebrow::after { background:linear-gradient(to left,transparent,var(--gold)); }

.hero-emblem { margin:0 auto 28px; opacity:0; animation:fadeUp .9s .35s both; }

.hero-title {
  font-family:'Playfair Display',serif; font-weight:400;
  font-size:clamp(52px,8.5vw,108px); line-height:.94; letter-spacing:-2px;
  color:var(--cream); opacity:0; animation:fadeUp .9s .5s both;
}
.hero-title .italic { font-style:italic; color:var(--gold); }

.hero-sub {
  font-family:'Cinzel Decorative',serif; font-size:clamp(10px,1.4vw,14px);
  letter-spacing:10px; color:var(--gold-lt); text-transform:uppercase;
  margin:18px 0 14px; opacity:0; animation:fadeUp .9s .65s both;
}
.hero-tag {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:clamp(16px,1.8vw,22px); font-weight:300; color:var(--muted);
  letter-spacing:2px; margin-bottom:54px; opacity:0; animation:fadeUp .9s .78s both;
}
.hero-btns {
  display:flex; gap:18px; justify-content:center; flex-wrap:wrap;
  opacity:0; animation:fadeUp .9s .92s both;
}
.hero-scroll {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:10px;
  opacity:0; animation:fadeUp .9s 1.1s both;
}
.hero-scroll-txt { font-size:8px; letter-spacing:5px; color:var(--muted); text-transform:uppercase; }
.scroll-bar { width:1px; height:52px; background:linear-gradient(to bottom,var(--gold),transparent); animation:scrollPulse 2.2s ease-in-out infinite; }

/* ======================================================
   ABOUT
====================================================== */
.about-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(40px,7vw,100px); align-items:center;
}
.about-img-wrap { position:relative; }
.about-img {
  aspect-ratio:3/4; background:linear-gradient(135deg,var(--dark2),var(--dark3));
  position:relative; overflow:hidden;
}
.about-img::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(200,169,90,.06) 0%,transparent 60%);
}
.img-corner { position:absolute; width:56px; height:56px; }
.img-corner.tl { top:16px; left:16px; border-top:1px solid var(--gold); border-left:1px solid var(--gold); }
.img-corner.br { bottom:16px; right:16px; border-bottom:1px solid var(--gold); border-right:1px solid var(--gold); }
.img-caption {
  position:absolute; bottom:0; left:0; right:0; padding:28px 24px;
  background:linear-gradient(to top,rgba(0,0,0,.9),transparent);
}
.img-caption p {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  color:var(--gold-lt); font-size:18px; letter-spacing:1px;
}
.about-img-shadow {
  position:absolute; top:20px; left:20px; right:-20px; bottom:-20px;
  border:1px solid rgba(200,169,90,.2); z-index:-1;
}
.about-body p { margin-top:24px; }
.about-stats {
  display:grid; grid-template-columns:1fr 1fr; gap:1px;
  background:var(--border); margin-top:48px; border:1px solid var(--border);
}
.stat { background:var(--dark); padding:26px 22px; }
.stat-n {
  font-family:'Playfair Display',serif; font-size:44px; font-weight:400;
  color:var(--gold); line-height:1;
}
.stat-n sup { font-size:24px; color:var(--gold-dk); }
.stat-l { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--muted); margin-top:7px; }

/* ======================================================
   SERVICES
====================================================== */
.section--ink#services {
  background:
    radial-gradient(circle at 50% 18%, rgba(255,255,255,.045), transparent 34rem),
    radial-gradient(circle at 50% 62%, rgba(255,255,255,.026), transparent 40rem),
    var(--ink);
  padding-top:clamp(54px,7vw,74px);
  padding-bottom:clamp(54px,7vw,74px);
}
.services-intro {
  text-align:center;
  margin-bottom:clamp(42px,5vw,58px);
}
#services .lbl {
  margin-bottom:20px;
  font-size:8px;
  letter-spacing:7px;
  line-height:1;
}
#services .h2 {
  font-size:clamp(44px,5vw,68px);
  font-weight:500;
  line-height:.88;
}
#services .h2 em {
  display:inline-block;
  font-size:.86em;
  font-weight:400;
}
.services-grid {
  width:min(1116px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  background:rgba(13,12,9,.72);
  border:1px solid rgba(200,169,90,.34);
}
.svc {
  min-height:272px;
  background:
    radial-gradient(circle at 72% 14%, rgba(255,255,255,.028), transparent 12rem),
    #0d0c09;
  padding:46px 36px 34px;
  position:relative;
  overflow:hidden;
  transition:background .4s, box-shadow .4s;
  border-right:1px solid rgba(200,169,90,.26);
  border-bottom:1px solid rgba(200,169,90,.26);
}
.svc:nth-child(3n) { border-right:0; }
.svc:nth-last-child(-n + 3) { border-bottom:0; }
.svc::after { display:none; }
.svc:hover {
  background:#11100d;
  box-shadow:inset 0 0 42px rgba(200,169,90,.045);
}
.svc-num {
  position:absolute;
  top:25px;
  right:27px;
  font-family:'Playfair Display',serif;
  font-size:42px;
  font-weight:700;
  color:rgba(200,169,90,.08);
  line-height:1;
  user-select:none;
}
.svc-ico {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  margin-bottom:36px;
  border:1px solid rgba(200,169,90,.32);
  color:var(--gold);
  font-size:20px;
  line-height:1;
}
.svc-ico svg,
.svc-icon svg {
  width:29px;
  height:29px;
}
.svc-icon { margin-bottom:36px; display:block; color:var(--gold); }
.svc-name {
  font-family:'Playfair Display',serif;
  font-size:clamp(18px,1.45vw,21px);
  font-weight:700;
  font-style:italic;
  color:#fff8e7;
  margin-bottom:18px;
  line-height:1.2;
  text-shadow:0 0 12px rgba(200,169,90,.22);
}
.svc-desc {
  max-width:285px;
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(15px,1.15vw,16px);
  font-weight:400;
  line-height:1.5;
  color:rgba(242,236,216,.48);
}

/* ======================================================
   PROCESS
====================================================== */
.process-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:0; margin-top:72px; position:relative;
}
.process-grid::before {
  content:''; position:absolute; top:33px; left:12.5%; right:12.5%; height:1px;
  background:linear-gradient(to right,transparent,var(--gold-dk),var(--gold),var(--gold-dk),transparent);
}
.proc { padding:0 clamp(12px,2vw,24px); text-align:center; }
.proc-diamond {
  width:66px; height:66px; border:1px solid var(--gold); background:var(--dark);
  margin:0 auto 26px; display:flex; align-items:center; justify-content:center;
  transform:rotate(45deg); position:relative; z-index:1;
  transition:background .3s, box-shadow .3s;
}
.proc:hover .proc-diamond { background:var(--gold-pale); box-shadow:0 0 32px rgba(200,169,90,.15); }
.proc-diamond span {
  transform:rotate(-45deg); font-family:'Playfair Display',serif;
  font-size:17px; color:var(--gold);
}
.proc-name {
  font-family:'Playfair Display',serif; font-size:16px; font-weight:400;
  font-style:italic; color:var(--gold-lt); margin-bottom:12px;
}
.proc-desc { font-family:'Cormorant Garamond',serif; font-size:15px; line-height:1.8; color:var(--muted); }

/* ======================================================
   GALLERY
====================================================== */
.gallery-head { margin-bottom:52px; }
.gallery-grid {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  grid-template-rows:auto auto; gap:3px;
}
.gal-item { position:relative; overflow:hidden; background:var(--dark2); }
.gal-item:first-child { grid-row:1/3; }
.gal-inner {
  width:100%; height:280px; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; isolation:isolate;
  background:#090806;
}
.gal-inner::before {
  content:'';
  position:absolute; inset:-24px;
  background-image:var(--gal-bg);
  background-size:cover; background-position:center;
  filter:blur(18px) saturate(1.15);
  opacity:.62;
  transform:scale(1.08);
  z-index:0;
}
.gal-inner::after {
  content:'';
  position:absolute; inset:0;
  background:rgba(6,5,3,.22);
  z-index:1;
}
.gal-inner img {
  width:100%; height:100%; display:block; position:relative; z-index:2;
  object-fit:contain; object-position:center;
}
.gal-item:first-child .gal-inner { height:564px; }
.gal-ov {
  position:absolute; inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.85) 0%,transparent 50%);
  opacity:0; transition:opacity .4s;
  display:flex; align-items:flex-end; padding:24px;
}
.gal-item:hover .gal-ov { opacity:1; }
.gal-cap { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:17px; color:var(--gold-lt); letter-spacing:1px; }

/* ======================================================
   TESTIMONIALS
====================================================== */
.testimonials { background:linear-gradient(160deg,var(--dark) 0%,#160E02 50%,var(--dark) 100%); }
.testi-intro { text-align:center; margin-bottom:60px; }
.testi-slider { position:relative; overflow:hidden; }
.testi-track {
  display:flex; transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.testi-slide {
  min-width:100%; padding:0 clamp(20px,6vw,100px);
  text-align:center;
}
.testi-stars { display:flex; justify-content:center; gap:7px; margin-bottom:36px; }
.testi-stars svg { width:16px; height:16px; }
.testi-q {
  font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:300;
  font-size:clamp(20px,2.5vw,32px); line-height:1.65; color:var(--cream);
  max-width:780px; margin:0 auto 36px; position:relative;
}
.testi-q::before {
  content:'\201C'; position:absolute; top:-30px; left:50%; transform:translateX(-50%);
  font-size:80px; color:rgba(200,169,90,.12); font-family:'Playfair Display',serif;
  line-height:1;
}
.testi-author { font-family:'Raleway',sans-serif; font-size:10px; font-weight:400; letter-spacing:5px; text-transform:uppercase; color:var(--gold); }
.testi-role { font-family:'Cormorant Garamond',serif; font-size:14px; color:var(--muted); margin-top:6px; font-style:italic; }

.testi-controls {
  display:flex; justify-content:center; align-items:center; gap:24px; margin-top:48px;
}
.testi-btn {
  width:44px; height:44px; border:1px solid var(--border); background:transparent;
  color:var(--gold); display:flex; align-items:center; justify-content:center;
  transition:all .3s; cursor:pointer;
}
.testi-btn:hover { border-color:var(--gold); background:var(--gold-pale); }
.testi-dots { display:flex; gap:10px; }
.testi-dot {
  width:6px; height:6px; background:var(--border); border:none;
  cursor:pointer; transition:background .3s, transform .3s;
}
.testi-dot.active { background:var(--gold); transform:scale(1.3); }

/* ======================================================
   FAQ
====================================================== */
.faq-intro { text-align:center; margin-bottom:60px; }
.faq-list { max-width:860px; margin:0 auto; display:flex; flex-direction:column; gap:1px; }
.faq-item { border:1px solid var(--border); background:var(--dark); overflow:hidden; }
.faq-item + .faq-item { border-top:none; }
.faq-q {
  width:100%; background:none; border:none; padding:clamp(18px,2vw,24px) clamp(20px,3vw,36px);
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  cursor:pointer; text-align:left; transition:background .3s;
}
.faq-q:hover { background:var(--dark2); }
.faq-q-text {
  font-family:'Playfair Display',serif; font-size:clamp(15px,1.3vw,18px);
  font-weight:400; color:var(--cream); line-height:1.4;
}
.faq-icon {
  width:28px; height:28px; border:1px solid var(--border); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:16px; transition:transform .4s, border-color .3s;
}
.faq-item.open .faq-icon { transform:rotate(45deg); border-color:var(--gold); }
.faq-a {
  max-height:0; overflow:hidden;
  transition:max-height .5s cubic-bezier(.22,1,.36,1), padding .4s;
  padding:0 clamp(20px,3vw,36px);
}
.faq-item.open .faq-a { max-height:400px; padding:0 clamp(20px,3vw,36px) 24px; }
.faq-a p {
  font-family:'Cormorant Garamond',serif; font-size:clamp(15px,1.2vw,17px);
  font-weight:300; line-height:1.85; color:var(--muted);
  padding-top:8px; border-top:1px solid var(--border);
}

/* ======================================================
   CONTACT
====================================================== */
.contact-grid {
  display:grid; grid-template-columns:1fr 1.2fr;
  gap:clamp(40px,7vw,100px); align-items:start;
}
.c-item { display:flex; gap:18px; margin-bottom:32px; align-items:flex-start; }
.c-icon {
  width:46px; height:46px; flex-shrink:0; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
}
.c-lbl { font-size:9px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:6px; }
.c-val { font-family:'Cormorant Garamond',serif; font-size:17px; font-weight:300; color:var(--cream); line-height:1.5; }

.cform { display:flex; flex-direction:column; gap:16px; }
.fg { display:flex; flex-direction:column; gap:7px; }
.fg label { font-size:9px; letter-spacing:4px; text-transform:uppercase; color:var(--gold); }
.fg input, .fg textarea, .fg select {
  background:rgba(255,255,255,.03); border:1px solid var(--border);
  padding:13px 17px; color:var(--cream);
  font-family:'Raleway',sans-serif; font-size:13px; font-weight:300;
  outline:none; transition:border-color .3s; resize:none;
  -webkit-appearance:none; appearance:none;
}
.fg input::placeholder, .fg textarea::placeholder { color:rgba(242,236,216,.22); }
.fg input:focus, .fg textarea:focus, .fg select:focus { border-color:var(--gold); }
.fg select option { background:var(--dark2); color:var(--cream); }
.fg textarea { height:108px; }
.frow { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-success {
  display:none; padding:16px 20px; border:1px solid rgba(200,169,90,.4);
  background:rgba(200,169,90,.06); color:var(--gold-lt);
  font-family:'Cormorant Garamond',serif; font-size:16px; font-style:italic;
  text-align:center;
}
.form-success.error {
  border-color:rgba(255,110,110,.45);
  background:rgba(255,110,110,.08);
  color:#ffd0d0;
}
.cform button[disabled] {
  opacity:.68;
  cursor:wait;
}

/* ======================================================
   FOOTER
====================================================== */
.site-footer { background:var(--black); border-top:1px solid var(--border); }
.footer-main {
  padding:clamp(40px,6vw,72px) 0 clamp(30px,4vw,48px);
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:clamp(24px,4vw,60px);
}
.footer-brand h3 { font-family:'Cinzel Decorative',serif; font-size:14px; color:var(--gold); letter-spacing:2px; }
.footer-brand p { font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:300; line-height:1.75; color:var(--muted); margin-top:14px; }
.footer-col h4 { font-family:'Raleway',sans-serif; font-size:9px; font-weight:500; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a { font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:300; color:var(--muted); transition:color .3s; }
.footer-col ul li a:hover { color:var(--gold-lt); }
.footer-bottom {
  border-top:1px solid var(--border); padding:clamp(18px,3vw,28px) 0;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;
}
.footer-copy { font-size:10px; color:var(--muted); letter-spacing:2px; }
.footer-admin-link {
  color:var(--gold);
  margin-left:12px;
}
.footer-admin-link:hover { color:var(--gold-lt); }
.footer-social { display:flex; gap:10px; }
.footer-social a {
  width:36px; height:36px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); transition:background .3s, border-color .3s;
}
.footer-social a:hover { background:var(--gold-pale); border-color:var(--gold); }
.back-to-top {
  width:36px; height:36px; border:1px solid var(--border); background:none;
  display:flex; align-items:center; justify-content:center; color:var(--gold);
  transition:all .3s; cursor:pointer;
}
.back-to-top:hover { border-color:var(--gold); background:var(--gold-pale); }

/* ======================================================
   FLOATING BUTTONS
====================================================== */
.float-wrap {
  position:fixed; bottom:100px; right:24px; z-index:600;
  display:flex; flex-direction:column; gap:10px; align-items:flex-end;
}
.float-btn {
  display:flex; align-items:center; gap:9px;
  font-family:'Raleway',sans-serif; font-size:9px; font-weight:500;
  letter-spacing:3px; text-transform:uppercase; padding:12px 20px;
  border:none; cursor:pointer; transition:transform .2s, box-shadow .2s;
  white-space:nowrap;
}
.float-btn:hover { transform:translateY(-2px); }
.float-call { background:linear-gradient(135deg,var(--gold-dk),var(--gold)); color:var(--black); box-shadow:0 6px 28px rgba(200,169,90,.35); }
.float-zalo { background:linear-gradient(135deg,#005CE6,#00A8FF); color:#fff; box-shadow:0 6px 28px rgba(0,104,255,.32); }

/* ======================================================
   CHATBOT
====================================================== */
.chatbot-toggle {
  position:fixed; bottom:24px; right:24px; z-index:700;
  width:56px; height:56px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold-dk),var(--gold));
  border:none; cursor:pointer; box-shadow:0 6px 28px rgba(200,169,90,.4);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s, box-shadow .3s;
}
.chatbot-toggle:hover { transform:scale(1.08); box-shadow:0 10px 36px rgba(200,169,90,.5); }
.chatbot-toggle svg { width:24px; height:24px; }
.chatbot-badge {
  position:absolute; top:-4px; right:-4px;
  width:18px; height:18px; border-radius:50%;
  background:#E63946; border:2px solid var(--ink);
  font-size:9px; font-weight:700; color:#fff; font-family:'Raleway',sans-serif;
  display:flex; align-items:center; justify-content:center;
  animation:pulse 2s infinite;
}
@keyframes pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.15)} }

.chatbot-window {
  position:fixed; bottom:92px; right:24px; z-index:699;
  width:min(380px, calc(100vw - 32px));
  background:var(--dark2); border:1px solid var(--border);
  box-shadow:0 24px 80px rgba(0,0,0,.7);
  transform:scale(.9) translateY(20px); transform-origin:bottom right;
  opacity:0; pointer-events:none;
  transition:transform .35s cubic-bezier(.22,1,.36,1), opacity .35s;
  display:flex; flex-direction:column; max-height:520px;
}
.chatbot-window.open { transform:scale(1) translateY(0); opacity:1; pointer-events:all; }

.chatbot-head {
  padding:16px 20px; background:linear-gradient(135deg,var(--gold-dk),var(--gold));
  display:flex; align-items:center; justify-content:space-between; flex-shrink:0;
}
.chatbot-head-info { display:flex; align-items:center; gap:12px; }
.chatbot-avatar {
  width:36px; height:36px; border-radius:50%;
  background:rgba(0,0,0,.2); border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center;
  font-family:'Cinzel Decorative',serif; font-size:11px; color:var(--black); font-weight:700;
}
.chatbot-head-name { font-family:'Raleway',sans-serif; font-size:12px; font-weight:600; letter-spacing:2px; color:var(--black); }
.chatbot-head-status { font-size:10px; color:rgba(0,0,0,.6); letter-spacing:1px; }
.chatbot-close { background:none; border:none; color:var(--black); cursor:pointer; opacity:.6; font-size:20px; padding:2px 4px; transition:opacity .2s; }
.chatbot-close:hover { opacity:1; }

.chatbot-messages {
  flex:1; overflow-y:auto; padding:20px 16px;
  display:flex; flex-direction:column; gap:12px;
  scrollbar-width:thin; scrollbar-color:var(--gold-dk) transparent;
}
.chatbot-messages::-webkit-scrollbar { width:4px; }
.chatbot-messages::-webkit-scrollbar-thumb { background:var(--gold-dk); border-radius:2px; }

.msg { display:flex; gap:10px; align-items:flex-end; animation:msgIn .3s ease both; }
.msg--bot { justify-content:flex-start; }
.msg--user { justify-content:flex-end; flex-direction:row-reverse; }
@keyframes msgIn { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }

.msg-avatar {
  width:28px; height:28px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,var(--gold-dk),var(--gold));
  display:flex; align-items:center; justify-content:center;
  font-family:'Cinzel Decorative',serif; font-size:8px; color:var(--black); font-weight:700;
}
.msg-bubble {
  max-width:78%; padding:11px 15px; line-height:1.55;
  font-family:'Cormorant Garamond',serif; font-size:15px; font-weight:300; color:var(--cream);
}
.msg--bot .msg-bubble {
  background:var(--dark3); border:1px solid var(--border);
  border-bottom-left-radius:2px;
}
.msg--user .msg-bubble {
  background:linear-gradient(135deg,var(--gold-dk),var(--gold));
  color:var(--black); font-weight:400;
  border-bottom-right-radius:2px;
}

.chatbot-suggestions {
  padding:8px 16px 4px; display:flex; flex-wrap:wrap; gap:6px; flex-shrink:0;
}
.sug-btn {
  padding:7px 13px; background:transparent; border:1px solid var(--border);
  color:var(--gold); font-family:'Raleway',sans-serif; font-size:9px;
  font-weight:400; letter-spacing:2px; cursor:pointer; transition:all .25s;
  white-space:nowrap;
}
.sug-btn:hover { border-color:var(--gold); background:var(--gold-pale); }

.chatbot-input-area {
  padding:12px 16px; border-top:1px solid var(--border);
  display:flex; gap:10px; flex-shrink:0;
}
.chatbot-input {
  flex:1; background:rgba(255,255,255,.04); border:1px solid var(--border);
  padding:10px 14px; color:var(--cream);
  font-family:'Raleway',sans-serif; font-size:13px; font-weight:300;
  outline:none; transition:border-color .3s;
}
.chatbot-input::placeholder { color:rgba(242,236,216,.25); }
.chatbot-input:focus { border-color:var(--gold); }
.chatbot-send {
  width:40px; height:40px; background:linear-gradient(135deg,var(--gold-dk),var(--gold));
  border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:opacity .2s;
}
.chatbot-send:hover { opacity:.85; }

/* ======================================================
   ANIMATIONS
====================================================== */
@keyframes fadeUp {
  from { opacity:0; transform:translateY(32px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes scrollPulse {
  0%,100%{transform:scaleY(1);opacity:.4} 50%{transform:scaleY(1.12);opacity:1}
}
.reveal {
  opacity:0; transform:translateY(40px);
  transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
}
.reveal.visible { opacity:1; transform:none; }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }

/* ======================================================
   RESPONSIVE — TABLET (≤ 1024px)
====================================================== */
@media (max-width:1024px) {
  .footer-main { grid-template-columns:1fr 1fr; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .svc,
  .svc:nth-child(3n),
  .svc:nth-last-child(-n + 3) {
    border-right:1px solid rgba(200,169,90,.26);
    border-bottom:1px solid rgba(200,169,90,.26);
  }
  .svc:nth-child(2n) { border-right:0; }
  .svc:nth-last-child(-n + 2) { border-bottom:0; }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid::before { display:none; }
  .proc { margin-bottom:40px; }
}

/* ======================================================
   RESPONSIVE — MOBILE (≤ 768px)
====================================================== */
@media (max-width:768px) {
  :root { --gap:28px; }
  .nav-menu { display:none; }
  .hamburger { display:flex; }

  .about-grid   { grid-template-columns:1fr; }
  .about-img    { aspect-ratio:16/9; }
  .about-img-shadow { display:none; }

  .services-grid { grid-template-columns:1fr; }
  .svc,
  .svc:nth-child(2n),
  .svc:nth-child(3n),
  .svc:nth-last-child(-n + 2),
  .svc:nth-last-child(-n + 3) {
    min-height:254px;
    padding:34px 28px;
    border-right:0;
    border-bottom:1px solid rgba(200,169,90,.26);
  }
  .svc:last-child { border-bottom:0; }
  .svc-ico,
  .svc-icon { margin-bottom:28px; }

  .process-grid { grid-template-columns:1fr 1fr; gap:32px; }

  .gallery-grid { grid-template-columns:1fr; }
  .gal-item:first-child { grid-row:auto; }
  .gal-item .gal-inner  { height:220px!important; }

  .contact-grid { grid-template-columns:1fr; }
  .frow         { grid-template-columns:1fr; }

  .footer-main  { grid-template-columns:1fr; }

  .footer-bottom { flex-direction:column; text-align:center; gap:16px; }

  .hero-btns { flex-direction:column; align-items:center; }
  .hero-btns .btn { width:min(260px,80vw); justify-content:center; }

  .testi-slide { padding:0 clamp(12px,4vw,40px); }

  .float-wrap { bottom:88px; right:12px; }
  .float-btn  { padding:11px 14px; font-size:8px; }

  .chatbot-window { right:12px; bottom:84px; width:calc(100vw - 24px); }
  .chatbot-toggle { right:12px; bottom:20px; }
}

/* ======================================================
   RESPONSIVE — SMALL (≤ 480px)
====================================================== */
@media (max-width:480px) {
  .process-grid { grid-template-columns:1fr; }
  .about-stats  { grid-template-columns:1fr 1fr; }
  .hero-eyebrow { font-size:8px; letter-spacing:4px; }
  .hero-eyebrow::before, .hero-eyebrow::after { width:24px; }
}


/* ======================================================
   BLOG
====================================================== */
.blog-home-head,
.blog-archive-head {
  display:flex; align-items:end; justify-content:space-between; gap:24px;
  margin-bottom:44px; flex-wrap:wrap;
}
.blog-home-grid,
.blog-archive-grid,
.related-posts-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
}
.blog-card,
.blog-single-card,
.related-post {
  background:var(--dark); border:1px solid var(--border); overflow:hidden;
}
.blog-card-thumb,
.related-post-thumb {
  display:block; aspect-ratio:16/10; background:linear-gradient(135deg,var(--dark2),var(--dark3)); overflow:hidden;
}
.blog-card-thumb img,
.related-post-thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.blog-card:hover .blog-card-thumb img,
.related-post:hover .related-post-thumb img { transform:scale(1.04); }
.blog-card-thumb-placeholder {
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:'Cinzel Decorative',serif; color:var(--gold); letter-spacing:3px;
}
.blog-card-body,
.related-post-body { padding:22px; }
.blog-card-meta,
.blog-single-meta,
.related-post-meta {
  font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:12px;
}
.blog-card-title,
.related-post-title {
  font-family:'Playfair Display',serif; font-size:24px; line-height:1.3; margin-bottom:12px;
}
.blog-card-title a:hover,
.related-post-title a:hover,
.blog-single-nav a:hover { color:var(--gold); }
.blog-card-excerpt,
.related-post-excerpt,
.blog-empty,
.blog-single-excerpt,
.blog-archive-empty {
  font-family:'Cormorant Garamond',serif; font-size:18px; line-height:1.8; color:var(--muted);
}
.blog-card-more,
.related-post-more {
  display:inline-block; margin-top:16px; color:var(--gold); letter-spacing:2px; font-size:11px; text-transform:uppercase;
}
.blog-hero,
.blog-single-hero {
  padding-top:140px;
}
.blog-single-header { max-width:900px; }
.blog-single-title { margin-bottom:16px; }
.blog-single-cover {
  margin:32px 0 40px; border:1px solid var(--border); overflow:hidden; background:var(--dark2);
}
.blog-single-cover img { width:100%; max-height:620px; object-fit:cover; }
.blog-single-content {
  font-family:'Cormorant Garamond',serif; font-size:22px; line-height:1.9; color:var(--cream);
}
.blog-single-content p,
.blog-single-content ul,
.blog-single-content ol,
.blog-single-content h2,
.blog-single-content h3,
.blog-single-content blockquote { margin-bottom:20px; }
.blog-single-content h2,
.blog-single-content h3 { font-family:'Playfair Display',serif; line-height:1.3; }
.blog-single-content a { color:var(--gold); }
.blog-single-nav {
  margin-top:48px; padding-top:24px; border-top:1px solid var(--border);
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}
.blog-single-nav a {
  border:1px solid var(--border); padding:18px 20px; background:var(--dark);
}
.blog-single-nav span { display:block; font-size:10px; letter-spacing:3px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.related-posts { margin-top:64px; }
.related-posts-head { margin-bottom:28px; }
.gal-sub { display:block; margin-top:8px; color:var(--muted); font-size:14px; }
.pagination,
.posts-navigation .nav-links {
  display:flex; gap:10px; flex-wrap:wrap; margin-top:36px;
}
.pagination .page-numbers,
.posts-navigation a,
.posts-navigation span {
  min-width:42px; height:42px; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--border); background:var(--dark); color:var(--cream); padding:0 14px;
}
.pagination .current { background:var(--gold); color:var(--black); border-color:var(--gold); }
@media (max-width: 1024px) {
  .blog-home-grid,
  .blog-archive-grid,
  .related-posts-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 768px) {
  .blog-home-grid,
  .blog-archive-grid,
  .related-posts-grid,
  .blog-single-nav { grid-template-columns:1fr; }
  .blog-single-content { font-size:20px; }
}
/* ===== 404 PAGE ===== */
.nhl-404 {
    padding: 120px 0;
    background: #000;
    color: #fff;
    text-align: center;
}

.nhl-404-inner {
    max-width: 700px;
    margin: 0 auto;
}

.nhl-404-code {
    font-size: 120px;
    font-weight: 800;
    color: #cfa144;
    margin-bottom: 20px;
}

.nhl-404-title {
    font-size: 28px;
    margin-bottom: 15px;
}

.nhl-404-desc {
    font-size: 16px;
    color: #ccc;
    margin-bottom: 30px;
}

.nhl-404-actions {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

/* Button */
.nhl-btn-primary {
    background: linear-gradient(135deg, #cfa144, #a87b2d);
    color: #fff;
    padding: 12px 24px;
    border-radius: 6px;
    text-decoration: none;
    font-weight: 600;
}

.nhl-btn-primary:hover {
    opacity: 0.9;
}

.nhl-btn-secondary {
    border: 1px solid #cfa144;
    color: #cfa144;
    padding: 12px 24px;
    border-radius: 6px;
    text-decoration: none;
}

.nhl-btn-secondary:hover {
    background: #cfa144;
    color: #000;
}
/* ======================================================
   BLOG SINGLE
====================================================== */
.blog-single-hero {
  padding-top: 150px;
  padding-bottom: 110px;
}

.blog-single-card {
  max-width: 980px;
  margin: 0 auto;
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  border: 1px solid var(--border);
  padding: clamp(24px, 4vw, 48px);
  box-shadow: 0 30px 80px rgba(0,0,0,.32);
}

.blog-single-header {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 40px;
}

.blog-single-meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  opacity: .9;
  margin-bottom: 16px;
}

.blog-single-title {
  margin-bottom: 20px;
  line-height: 1.15;
}

.blog-single-excerpt {
  max-width: 700px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.9;
  color: rgba(242,236,216,.72);
  font-family: 'Cormorant Garamond', serif;
}

.blog-single-cover {
  position: relative;
  margin: 0 0 42px;
  overflow: hidden;
  border: 1px solid rgba(200,169,90,.18);
}

.blog-single-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(8,8,8,.10), rgba(8,8,8,0));
  pointer-events: none;
}

.blog-single-cover img {
  width: 100%;
  height: auto;
  display: block;
  max-height: 580px;
  object-fit: cover;
}

/* Nội dung bài viết */
.blog-single-content {
  max-width: 760px;
  margin: 0 auto;
  color: rgba(242,236,216,.88);
  font-size: 17px;
  line-height: 1.95;
}

.blog-single-content > *:first-child {
  margin-top: 0;
}

.blog-single-content > *:last-child {
  margin-bottom: 0;
}

.blog-single-content p,
.blog-single-content ul,
.blog-single-content ol,
.blog-single-content blockquote,
.blog-single-content figure,
.blog-single-content table,
.blog-single-content .wp-block-image,
.blog-single-content .wp-block-quote,
.blog-single-content .wp-block-embed {
  margin: 0 0 24px;
}

.blog-single-content h1,
.blog-single-content h2,
.blog-single-content h3,
.blog-single-content h4,
.blog-single-content h5,
.blog-single-content h6 {
  font-family: 'Playfair Display', serif;
  color: var(--cream);
  font-weight: 400;
  line-height: 1.3;
  margin: 42px 0 18px;
}

.blog-single-content h1 { font-size: clamp(34px, 4vw, 50px); }
.blog-single-content h2 { font-size: clamp(28px, 3vw, 38px); }
.blog-single-content h3 { font-size: clamp(22px, 2.4vw, 30px); }
.blog-single-content h4 { font-size: 22px; }
.blog-single-content h5 { font-size: 18px; }
.blog-single-content h6 { font-size: 16px; text-transform: uppercase; letter-spacing: 2px; color: var(--gold); }

.blog-single-content p {
  color: rgba(242,236,216,.82);
}

.blog-single-content a {
  color: var(--gold);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  transition: color .25s ease, opacity .25s ease;
}

.blog-single-content a:hover {
  color: var(--gold-lt);
}

.blog-single-content strong,
.blog-single-content b {
  color: var(--cream);
  font-weight: 600;
}

.blog-single-content em {
  color: var(--gold-lt);
}

.blog-single-content ul,
.blog-single-content ol {
  padding-left: 22px;
}

.blog-single-content ul li,
.blog-single-content ol li {
  margin-bottom: 10px;
}

.blog-single-content ul li::marker,
.blog-single-content ol li::marker {
  color: var(--gold);
}

.blog-single-content blockquote,
.blog-single-content .wp-block-quote {
  margin: 34px 0;
  padding: 22px 24px 22px 28px;
  border-left: 2px solid var(--gold);
  background: rgba(200,169,90,.06);
  color: rgba(242,236,216,.9);
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  line-height: 1.7;
}

.blog-single-content blockquote p:last-child,
.blog-single-content .wp-block-quote p:last-child {
  margin-bottom: 0;
}

.blog-single-content img {
  display: block;
  max-width: 100%;
  height: auto;
}

.blog-single-content p img {
  margin: 28px auto;
}

.blog-single-content figure,
.blog-single-content .wp-block-image {
  overflow: hidden;
  border: 1px solid rgba(200,169,90,.16);
  background: rgba(255,255,255,.02);
}

.blog-single-content figcaption,
.blog-single-content .wp-element-caption {
  padding: 12px 16px 14px;
  text-align: center;
  font-size: 13px;
  color: rgba(242,236,216,.58);
  border-top: 1px solid rgba(200,169,90,.10);
}

.blog-single-content table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid rgba(200,169,90,.14);
  font-size: 15px;
}

.blog-single-content th,
.blog-single-content td {
  border: 1px solid rgba(200,169,90,.10);
  padding: 12px 14px;
  text-align: left;
}

.blog-single-content th {
  color: var(--cream);
  background: rgba(200,169,90,.08);
  font-weight: 600;
}

.blog-single-content code {
  font-family: monospace;
  font-size: .95em;
  color: var(--gold-lt);
  background: rgba(255,255,255,.05);
  padding: 2px 6px;
}

.blog-single-content pre {
  overflow: auto;
  padding: 18px 20px;
  background: #111;
  border: 1px solid rgba(200,169,90,.14);
  margin: 0 0 24px;
}

.blog-single-content hr {
  border: 0;
  height: 1px;
  margin: 36px 0;
  background: linear-gradient(to right, transparent, rgba(200,169,90,.45), transparent);
}

.chatbot-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.chatbot-reset,
.chatbot-close {
  width: 34px;
  height: 34px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(200,169,90,.24);
  background: rgba(255,255,255,.04);
  color: var(--gold);
  font-weight: 700;
}

.chatbot-reset:hover,
.chatbot-close:hover {
  border-color: rgba(200,169,90,.48);
  background: rgba(200,169,90,.10);
}

.typing-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  animation: typingDot .8s infinite 0s;
}

.typing-dot:nth-child(2) { animation-delay: .2s; }
.typing-dot:nth-child(3) { animation-delay: .4s; }

@keyframes typingDot {
  0%, 80%, 100% { opacity: .25; transform: scale(.8); }
  40% { opacity: 1; transform: scale(1); }
}

/* Prev / Next */
.blog-single-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 54px auto 0;
  max-width: 760px;
  padding-top: 32px;
  border-top: 1px solid rgba(200,169,90,.14);
}

.blog-single-nav > div:empty {
  display: none;
}

.blog-single-nav > div:last-child {
  text-align: right;
}

.blog-single-nav a {
  display: block;
  min-height: 100%;
  padding: 20px 22px;
  border: 1px solid rgba(200,169,90,.16);
  background: rgba(255,255,255,.015);
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.blog-single-nav a:hover {
  transform: translateY(-3px);
  border-color: rgba(200,169,90,.35);
  background: rgba(200,169,90,.06);
}

.blog-single-nav a span {
  display: block;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}

.blog-single-nav a {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  line-height: 1.45;
  color: var(--cream);
}

/* Related posts */
.related-posts {
  margin-top: 72px;
  padding-top: 40px;
  border-top: 1px solid rgba(200,169,90,.14);
}

.related-posts-head {
  text-align: center;
  margin-bottom: 28px;
}

.related-posts-head .h3 {
  margin-top: 8px;
}

.related-posts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.related-post {
  background: rgba(255,255,255,.015);
  border: 1px solid rgba(200,169,90,.14);
  overflow: hidden;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}

.related-post:hover {
  transform: translateY(-5px);
  border-color: rgba(200,169,90,.3);
  box-shadow: 0 18px 36px rgba(0,0,0,.22);
}

.related-post-thumb {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(200,169,90,.12), rgba(255,255,255,.02));
}

.related-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s ease;
}

.related-post:hover .related-post-thumb img {
  transform: scale(1.05);
}

.blog-card-thumb-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--gold);
  font-family: 'Playfair Display', serif;
  font-size: 32px;
  letter-spacing: 3px;
}

.related-post-body {
  padding: 20px 20px 22px;
}

.related-post-meta {
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 10px;
}

.related-post-title {
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.35;
  margin-bottom: 12px;
}

.related-post-title a:hover {
  color: var(--gold);
}

.related-post-excerpt {
  color: rgba(242,236,216,.68);
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 16px;
}

.related-post-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
}

/* Responsive */
@media (max-width: 991px) {
  .blog-single-hero {
    padding-top: 120px;
    padding-bottom: 80px;
  }

  .blog-single-card {
    padding: 24px 20px;
  }

  .blog-single-header,
  .blog-single-content,
  .blog-single-nav {
    max-width: 100%;
  }

  .blog-single-title {
    font-size: clamp(30px, 7vw, 46px);
  }

  .blog-single-excerpt {
    font-size: 17px;
  }

  .blog-single-cover {
    margin-bottom: 30px;
  }

  .blog-single-nav {
    grid-template-columns: 1fr;
  }

  .blog-single-nav > div:last-child {
    text-align: left;
  }

  .related-posts-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .blog-single-content {
    font-size: 16px;
    line-height: 1.85;
  }

  .blog-single-content h2 {
    margin-top: 32px;
  }

  .blog-single-content blockquote,
  .blog-single-content .wp-block-quote {
    padding: 18px 18px 18px 20px;
    font-size: 21px;
  }

  .related-post-title {
    font-size: 22px;
  }
}

/* Static conversion polish */
.about-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right center;
}

.blog-card-title a {
  color: inherit;
}

.form-success:not(:empty) {
  display: block;
}

.site-logo-img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.blog-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Original service cards are text-only. Images belong to gallery projects. */
