/* ========== DONNY&CAT Global Styles ========== */
/* Reference: Pintu Design — minimal, generous whitespace, grid layouts */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --brand:#004477;--blue:#004477;--brand-hover:#003366;--blue-dark:#003366;--blue-hover:#1A5C96;
  --cream:#F7E5D7;--cream-light:#FFF8F0;--white:#FFFFFF;
  --text:#1A1A1A;--text-secondary:#4A4A4A;--text-mid:#4A4A4A;--text-light:#6B7280;--text-lighter:#9CA3AF;
  --rose:#D4A69A;
  --success:#16A34A;--danger:#DC2626;
  --radius:4px;
  --font-display:'Playfair Display','Noto Serif SC',Georgia,serif;
  --font-body:'Inter','PingFang SC','Hiragino Sans GB',sans-serif;
  --transition:all .25s cubic-bezier(.16,1,.3,1);
  --shadow-card:0 1px 4px rgba(0,0,0,0.04);
  --shadow-hover:0 4px 16px rgba(0,0,0,0.06);
  --max-width:1400px;
}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--white);color:var(--text);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer}
img{max-width:100%;display:block}

/* ========== Announcement Bar ========== */
.announcement{
  background:var(--blue);color:var(--white);text-align:center;
  padding:8px 24px;font-size:11px;letter-spacing:2px;text-transform:uppercase;
}
.announcement a{color:var(--white);text-decoration:underline;text-underline-offset:2px}

/* ========== Navigation ========== */
.nav{
  position:sticky;top:0;z-index:1000;
  padding:0 48px;height:72px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,0.97);backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(0,0,0,0.05);
  transition:var(--transition);
}
.nav.scrolled{box-shadow:0 1px 8px rgba(0,0,0,0.04)}
.nav-logo{
  font-family:var(--font-display);font-size:24px;font-weight:600;
  color:var(--text);letter-spacing:1.5px;white-space:nowrap;flex-shrink:0;
}
.nav-logo span{color:var(--rose);font-weight:400;font-style:italic}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none}
.nav-links a{
  font-size:10px;font-weight:500;color:var(--text-mid);letter-spacing:2.5px;
  text-transform:uppercase;position:relative;padding:4px 0;transition:var(--transition);
  white-space:nowrap;
}
.nav-links a::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--blue);transition:width .3s ease;
}
.nav-links a:hover{color:var(--blue)}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:var(--blue)}
.nav-links a.active::after{width:100%}

/* ===== Sub Navigation Bar (PC) ===== */
.sub-nav-bar{
  position:sticky;top:72px;z-index:999;
  background:var(--white);
  border-bottom:1px solid rgba(0,0,0,0.05);
  height:0;overflow:hidden;
  transition:height 250ms ease-out;
}
.sub-nav-bar.visible{
  height:72px;
}
.sub-nav-inner{
  display:flex;align-items:center;justify-content:center;
  height:72px;gap:36px;padding:0 48px;
}
.sub-nav-item{
  font-size:11px;font-weight:500;color:#6B7280;
  letter-spacing:2.5px;position:relative;padding:4px 0;
  transition:var(--transition);white-space:nowrap;
}
.sub-nav-item::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;
  background:var(--blue);transition:width .3s ease;
}
.sub-nav-item:hover{color:var(--blue)}
.sub-nav-item:hover::after{width:100%}
.sub-nav-item.active{color:#004477;font-weight:600}
.sub-nav-item.active::after{width:100%}
/* Brand items in sub nav */
.sub-nav-item.brand-item{
  font-size:10px;font-weight:500;letter-spacing:4px;
  text-transform:uppercase;
}

.nav-actions{display:flex;align-items:center;gap:14px;flex-shrink:0}
.nav-icon{
  width:36px;height:36px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:var(--transition);color:var(--text-mid);background:none;border:none;
}
.nav-icon:hover{background:var(--cream);color:var(--blue)}
.nav-icon svg{width:18px;height:18px;stroke-width:1.5}
.btn-login-nav{
  padding:7px 18px;border:1.5px solid var(--text);border-radius:var(--radius);
  background:transparent;color:var(--text);font-size:10px;font-weight:600;letter-spacing:2px;
  text-transform:uppercase;transition:var(--transition);
}
.btn-login-nav:hover{background:var(--text);color:var(--white)}
.user-info{display:none;align-items:center;gap:10px;font-size:12px}
.user-info.show{display:flex}
.user-info .name{color:var(--blue);font-weight:600;font-size:12px}
.user-info .role-tag{font-size:9px;padding:2px 8px;border-radius:2px;background:var(--cream);color:var(--blue);letter-spacing:1px;text-transform:uppercase}
.btn-logout{padding:4px 12px;border:1px solid #E5E7EB;border-radius:var(--radius);color:var(--text-light);background:transparent;font-size:10px;letter-spacing:1px;transition:var(--transition)}
.btn-logout:hover{border-color:var(--blue);color:var(--blue)}

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

/* ===== Mobile Drawer ===== */
.mobile-drawer{
  position:fixed;top:0;left:0;bottom:0;width:300px;
  background:rgba(255,255,255,0.98);backdrop-filter:blur(16px);
  z-index:1001;overflow:hidden;
  transform:translateX(-100%);transition:transform 300ms ease-out;
}
.mobile-drawer.open{transform:translateX(0)}

.drawer-close{
  position:absolute;top:20px;right:20px;width:32px;height:32px;
  background:none;border:none;font-size:20px;cursor:pointer;color:var(--text);z-index:10;
}

.drawer-level1{
  padding:72px 24px 24px;
  transition:transform 300ms ease-out;
  position:absolute;inset:0;overflow-y:auto;
}
.drawer-level1.slide-out{
  transform:translateX(-100%);
}

.drawer-item{
  display:flex;align-items:center;justify-content:space-between;
  font-size:14px;font-weight:500;color:var(--text);
  padding:16px 0;height:56px;
  border-bottom:1px solid #F3F4F6;letter-spacing:2px;
  text-decoration:none;transition:var(--transition);
}
.drawer-item.active{
  color:#004477;border-left:3px solid #004477;padding-left:12px;
}
.drawer-item .drawer-arrow{
  font-size:18px;color:var(--text-light);transition:transform .2s;
}

/* Sub pages container */
.drawer-subs{
  position:absolute;inset:0;overflow:hidden;
}

.drawer-sub-page{
  position:absolute;inset:0;
  background:rgba(255,255,255,0.98);
  transform:translateX(100%);
  transition:transform 300ms ease-out;
  overflow-y:auto;
}
.drawer-sub-page.active{
  transform:translateX(0);
}

.drawer-sub-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;height:64px;
  border-bottom:1px solid #F3F4F6;
  position:sticky;top:0;background:rgba(255,255,255,0.98);z-index:5;
}
.drawer-back{
  background:none;border:none;font-size:24px;cursor:pointer;
  color:var(--text);width:32px;height:32px;display:flex;align-items:center;justify-content:center;
}
.drawer-sub-title{
  font-size:13px;font-weight:600;color:var(--text);letter-spacing:2px;
}
.drawer-sub-close{
  background:none;border:none;font-size:20px;cursor:pointer;
  color:var(--text);width:32px;height:32px;
}

.drawer-sub-list{
  padding:16px 24px 24px;
}

.drawer-sub-item{
  display:block;
  font-size:13px;font-weight:500;color:var(--text);
  padding:14px 0;height:52px;line-height:24px;
  border-bottom:1px solid #F3F4F6;letter-spacing:2px;
  text-decoration:none;transition:var(--transition);
}
.drawer-sub-item.brand-item{
  font-size:11px;font-weight:500;letter-spacing:4px;
  text-transform:uppercase;
}
.drawer-sub-item:hover{color:#004477}

.mobile-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;
}
.mobile-overlay.show{display:block}

/* ========== Section Common ========== */
.section{max-width:var(--max-width);margin:0 auto;padding:120px 48px}
.section-header{text-align:center;margin-bottom:48px}
.section-label{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--text-lighter);margin-bottom:10px}
.section-title{font-family:var(--font-display);font-size:34px;font-weight:400;color:var(--text);margin-bottom:8px;letter-spacing:1px}
.section-desc{font-size:13px;color:var(--text-light);letter-spacing:1px;text-transform:uppercase}

/* ========== Footer ========== */
.footer{background:var(--text);color:rgba(255,255,255,0.45);padding:56px 48px 28px}
.footer-inner{max-width:var(--max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start;gap:40px;flex-wrap:wrap}
.footer-brand .logo{font-family:var(--font-display);font-size:20px;color:var(--white);margin-bottom:8px;letter-spacing:1px}
.footer-brand .logo span{color:var(--rose);font-style:italic;font-weight:400}
.footer-brand p{font-size:11px;line-height:1.9;max-width:260px;letter-spacing:.5px}
.footer-links{display:flex;gap:56px;flex-wrap:wrap}
.footer-col h4{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:rgba(255,255,255,0.25);margin-bottom:16px}
.footer-col a{display:block;font-size:12px;color:rgba(255,255,255,0.45);margin-bottom:10px;transition:var(--transition);letter-spacing:.5px}
.footer-col a:hover{color:var(--white)}
.footer-bottom{max-width:var(--max-width);margin:36px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.footer-bottom span{font-size:10px;letter-spacing:1px}
.footer-icp{font-size:10px;letter-spacing:.5px;color:rgba(255,255,255,0.3)}

/* ========== Toast ========== */
.toast{display:none;position:fixed;top:80px;left:50%;transform:translateX(-50%);background:var(--white);border-radius:var(--radius);padding:12px 24px;box-shadow:var(--shadow-hover);font-size:13px;z-index:9999;max-width:90vw;text-align:center}
.toast.show{display:block}
.toast.success{border-left:3px solid var(--success)}
.toast.error{border-left:3px solid var(--danger)}

/* ========== Hero Banner (reusable) ========== */
.page-hero{
  position:relative;width:100%;height:50vh;min-height:320px;max-height:500px;
  overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center;
  background:linear-gradient(160deg,var(--cream) 0%,var(--cream-light) 100%);
}
.page-hero-content{position:relative;z-index:2;padding:0 24px}
.page-hero-title{font-family:var(--font-display);font-size:40px;font-weight:400;color:var(--text);margin-bottom:8px;letter-spacing:2px}
.page-hero-desc{font-size:12px;color:var(--text-light);letter-spacing:2px;text-transform:uppercase}

/* ========== Placeholder Section ========== */
.placeholder-section{
  max-width:var(--max-width);margin:0 auto;padding:100px 48px;
  text-align:center;min-height:40vh;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
}
.placeholder-icon{font-size:56px;margin-bottom:24px;opacity:.6}
.placeholder-title{font-family:var(--font-display);font-size:24px;font-weight:400;color:var(--text);margin-bottom:8px;letter-spacing:1px}
.placeholder-desc{font-size:13px;color:var(--text-light);letter-spacing:1px;margin-bottom:32px}
.placeholder-cta{
  display:inline-block;padding:12px 36px;border:1.5px solid var(--text);border-radius:var(--radius);
  font-size:10px;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--text);
  transition:var(--transition);background:transparent;
}
.placeholder-cta:hover{background:var(--text);color:var(--white)}

/* ========== Responsive ========== */
@media(max-width:1024px){
  .nav-links{gap:20px}
  .section{padding:64px 32px}
  .nav{padding:0 24px}
}
@media(max-width:768px){
  .nav{padding:0 16px}
  .nav-logo{position:absolute;left:50%;transform:translateX(-50%)}
  .nav-links{display:none}
  .hamburger{display:flex;position:absolute;left:16px;top:50%;transform:translateY(-50%);z-index:1001}
  .nav-actions{position:absolute;right:16px;top:50%;transform:translateY(-50%);gap:8px}
  .btn-login-nav{font-size:9px;padding:5px 12px;letter-spacing:1px}
  .sub-nav-bar{display:none}
  .mobile-drawer{width:300px}
  .page-hero{height:40vh;min-height:260px}
  .page-hero-title{font-size:28px}
  .section{padding:56px 20px}
  .section-title{font-size:26px}
  .footer-inner{flex-direction:column;gap:32px}
  .footer-links{gap:32px}
  .footer-bottom{flex-direction:column;text-align:center}
}
@media(max-width:480px){
  .mobile-drawer{width:280px}
  .section{padding:48px 16px}
  .section-title{font-size:22px}
  .page-hero-title{font-size:24px}
  .placeholder-section{padding:60px 20px}
}

/* ===== Language Switch ===== */
.lang-switch{display:flex;align-items:center;gap:0;margin-left:8px}
.lang-switch button{background:none;border:1px solid #E5E5E5;padding:3px 8px;font-size:10px;color:var(--text-mid);cursor:pointer;letter-spacing:0.5px;transition:var(--transition)}
.lang-switch button:first-child{border-radius:3px 0 0 3px}
.lang-switch button:last-child{border-radius:0 3px 3px 0;border-left:none}
.lang-switch button.active{background:var(--text);color:var(--white);border-color:var(--text)}
.lang-switch button:hover:not(.active){background:#F5F5F5}
@media(max-width:768px){.lang-switch button{font-size:9px;padding:2px 6px}}
