/* ============================================================
   UGACOQ shared theme — variables, nav, footer, base components.
   Loaded on every page. Page-specific layout stays inline per page.
   ============================================================ */

:root{
  --maroon:#7a0f2e;--maroon-deep:#4e0a1e;--maroon-light:#a61340;
  --gold:#c8993a;--gold-light:#e8bf6a;--gold-pale:#fdf7ec;
  --cream:#faf6f0;--off-white:#f2ede6;--charcoal:#1a1a1a;
  --mid-gray:#6b6b6b;--light-gray:#ece8e2;--border:#ddd3c5;
  --success:#1a7a4e;--success-bg:#edfaf4;--error:#b91c3c;
  --white:#ffffff;
  --font-display:'Playfair Display',serif;
  --font-heading:'Syne',sans-serif;
  --font-body:'DM Sans',sans-serif;
  --header-height:62px;
  --radius:14px;
  --shadow-sm:0 2px 10px rgba(0,0,0,0.06);
  --shadow-md:0 8px 32px rgba(0,0,0,0.1);
  --shadow-lg:0 24px 80px rgba(0,0,0,0.25);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:15px;}
body{font-family:var(--font-body);background:var(--cream);color:var(--charcoal);min-height:100vh;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
.container{max-width:1200px;margin:0 auto;padding:0 2rem;}
@media(max-width:700px){.container{padding:0 1rem;}}

h1,h2,h3,h4{font-family:var(--font-heading);}

/* ── BUTTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.7rem 1.4rem;border:none;border-radius:9px;font-family:var(--font-heading);font-weight:700;font-size:0.88rem;cursor:pointer;text-decoration:none;transition:all 0.2s;}
.btn-primary{background:linear-gradient(135deg,var(--maroon-deep),var(--maroon-light));color:#fff;}
.btn-primary:hover{box-shadow:0 6px 18px rgba(122,15,46,0.35);transform:translateY(-1px);}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-light));color:var(--maroon-deep);}
.btn-gold:hover{box-shadow:0 6px 18px rgba(200,153,58,0.4);transform:translateY(-1px);}
.btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,0.5);}
.btn-outline:hover{background:rgba(255,255,255,0.1);border-color:#fff;}
.btn-outline-dark{background:transparent;color:var(--maroon-deep);border:1.5px solid var(--border);}
.btn-outline-dark:hover{background:var(--off-white);border-color:var(--maroon);}
.btn-wa{background:#25d366;color:#fff;}
.btn-wa:hover{background:#1da851;}
.btn:disabled{opacity:0.55;cursor:not-allowed;transform:none!important;box-shadow:none!important;}

/* ── NAV ── */
.topnav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid var(--border);padding:0 2rem;height:var(--header-height);display:flex;align-items:center;gap:1.5rem;}
.topnav-logo{font-family:var(--font-heading);font-weight:800;font-size:1.1rem;color:var(--maroon-deep);text-decoration:none;display:flex;align-items:center;gap:0.5rem;}
.topnav-logo img{height:38px;width:auto;border-radius:4px;object-fit:contain;}
.topnav-logo span{font-size:0.65rem;font-weight:400;color:var(--mid-gray);display:block;letter-spacing:0.04em;font-family:var(--font-body);}
.topnav-links{display:flex;align-items:center;gap:0.25rem;margin-left:auto;}
.topnav-links a{padding:0.45rem 0.85rem;border-radius:7px;font-size:0.82rem;font-weight:500;color:var(--mid-gray);text-decoration:none;transition:all 0.2s;font-family:var(--font-body);white-space:nowrap;}
.topnav-links a:hover{background:var(--off-white);color:var(--charcoal);}
.topnav-links a.active{background:var(--maroon);color:#fff;}
.topnav-links .btn-add{background:linear-gradient(135deg,var(--maroon-deep),var(--maroon-light));color:#fff;border-radius:8px;padding:0.45rem 1rem;font-family:var(--font-heading);font-weight:600;}
.topnav-links .btn-add:hover{box-shadow:0 4px 12px rgba(122,15,46,0.3);transform:translateY(-1px);}
.nav-toggle{display:none;margin-left:auto;background:none;border:none;font-size:1.3rem;color:var(--maroon-deep);cursor:pointer;padding:0.5rem;}

@media(max-width:860px){
  .topnav{padding:0 1rem;}
  .nav-toggle{display:block;}
  .topnav-links{margin-left:0;position:fixed;top:var(--header-height);left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:0.5rem;border-bottom:1px solid var(--border);box-shadow:var(--shadow-md);max-height:0;overflow:hidden;transition:max-height 0.25s ease;}
  .topnav-links.open{max-height:80vh;overflow-y:auto;}
  .topnav-links a{padding:0.85rem 1rem;border-radius:8px;}
  .topnav-links .btn-add{margin-top:0.4rem;text-align:center;justify-content:center;display:flex;}
}

/* ── GENERIC HERO ── */
.hero{background:linear-gradient(135deg,var(--maroon-deep) 0%,var(--maroon) 55%,#9e1535 100%);padding:4.5rem 2rem 3.5rem;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;width:600px;height:600px;border-radius:50%;background:rgba(200,153,58,0.07);top:-200px;right:-150px;}
.hero-inner{max-width:1200px;margin:0 auto;position:relative;z-index:1;}
.hero-tag{display:inline-flex;align-items:center;gap:0.5rem;background:rgba(200,153,58,0.2);border:1px solid rgba(200,153,58,0.35);padding:0.35rem 0.9rem;border-radius:20px;font-size:0.72rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold-light);margin-bottom:1.25rem;}
.hero h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);color:#fff;line-height:1.15;margin-bottom:0.75rem;}
.hero h1 em{color:var(--gold-light);font-style:italic;}
.hero p{color:rgba(255,255,255,0.65);font-size:0.95rem;max-width:520px;line-height:1.7;margin-bottom:2rem;}
.hero-stats{display:flex;gap:2rem;flex-wrap:wrap;}
.hero-stat strong{display:block;font-family:var(--font-heading);font-weight:700;font-size:1.5rem;color:#fff;}
.hero-stat span{font-size:0.78rem;color:rgba(255,255,255,0.5);}

/* ── SECTIONS ── */
.section{padding:4rem 2rem;}
@media(max-width:700px){.section{padding:2.5rem 1rem;}}
.section-head{text-align:center;max-width:640px;margin:0 auto 2.5rem;}
.section-tag{display:inline-block;font-size:0.72rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--maroon);margin-bottom:0.6rem;}
.section-head h2{font-family:var(--font-display);font-size:clamp(1.6rem,3.5vw,2.4rem);color:var(--maroon-deep);margin-bottom:0.75rem;}
.section-head p{color:var(--mid-gray);font-size:0.95rem;line-height:1.7;}

/* ── CARDS (generic) ── */
.card{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:all 0.25s;}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);}

/* ── FORMS ── */
.form-group{margin-bottom:1.25rem;}
.form-group label{display:block;font-size:0.78rem;font-weight:600;color:var(--charcoal);margin-bottom:0.4rem;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:0.7rem 0.9rem;border:1.5px solid var(--border);border-radius:9px;font-family:var(--font-body);font-size:0.9rem;background:#fff;color:var(--charcoal);outline:none;transition:border-color 0.2s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--maroon);}
.form-group textarea{resize:vertical;min-height:100px;}
.form-hint{font-size:0.75rem;color:var(--mid-gray);margin-top:0.35rem;}
.form-error{font-size:0.78rem;color:var(--error);margin-top:0.35rem;display:none;}
.form-error.show{display:block;}

/* ── STATE / LOADING ── */
.state-box{text-align:center;padding:4rem 2rem;color:var(--mid-gray);}
.state-box i{font-size:3rem;opacity:0.2;margin-bottom:1rem;display:block;}
.state-box p{font-size:0.95rem;}
.spinner{width:44px;height:44px;border:3px solid var(--border);border-top-color:var(--maroon);border-radius:50%;animation:spin 0.8s linear infinite;margin:0 auto 1rem;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── TOAST ── */
.toast{position:fixed;bottom:2rem;right:2rem;background:var(--charcoal);color:#fff;padding:0.85rem 1.25rem;border-radius:10px;font-size:0.88rem;display:flex;align-items:center;gap:0.6rem;box-shadow:0 8px 24px rgba(0,0,0,0.2);z-index:600;transform:translateY(100px);opacity:0;transition:all 0.3s;max-width:320px;}
.toast.show{transform:translateY(0);opacity:1;}
.toast.success{background:var(--success);}
.toast.error{background:var(--error);}
@media(max-width:500px){.toast{left:1rem;right:1rem;bottom:1rem;max-width:none;}}

/* ── MODAL (generic) ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.55);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:500;padding:1.5rem;}
.modal-overlay.show{display:flex;}
.modal{background:#fff;border-radius:20px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:modalIn 0.25s ease;}
@keyframes modalIn{from{opacity:0;transform:scale(0.96) translateY(10px);}to{opacity:1;transform:none;}}
.modal-close{position:absolute;top:0.75rem;right:0.75rem;width:34px;height:34px;background:rgba(0,0,0,0.4);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:0.85rem;display:flex;align-items:center;justify-content:center;transition:background 0.2s;}
.modal-close:hover{background:rgba(0,0,0,0.7);}

/* ── FOOTER ── */
footer{background:var(--maroon-deep);color:rgba(255,255,255,0.7);padding:3rem 2rem 1.5rem;margin-top:4rem;}
.footer-inner{max-width:1200px;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:2rem;margin-bottom:2.5rem;}
.footer-brand{font-family:var(--font-heading);font-weight:800;font-size:1.1rem;color:#fff;margin-bottom:0.75rem;}
.footer-tagline{font-size:0.82rem;line-height:1.7;margin-bottom:1rem;}
.footer-social{display:flex;gap:0.75rem;}
.footer-social a{width:32px;height:32px;background:rgba(255,255,255,0.08);border-radius:8px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,0.5);font-size:0.8rem;text-decoration:none;transition:all 0.2s;}
.footer-social a:hover{background:rgba(200,153,58,0.2);color:var(--gold-light);}
.footer-col h4{font-family:var(--font-heading);font-weight:700;font-size:0.82rem;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin-bottom:0.9rem;}
.footer-col ul{list-style:none;}
.footer-col ul li{margin-bottom:0.5rem;}
.footer-col ul li a{color:rgba(255,255,255,0.65);text-decoration:none;font-size:0.82rem;transition:color 0.2s;}
.footer-col ul li a:hover{color:#fff;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.08);padding-top:1.5rem;text-align:center;font-size:0.75rem;color:rgba(255,255,255,0.35);}
@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr;}.footer-grid>:first-child{grid-column:1/-1;}}
@media(max-width:500px){.footer-grid{grid-template-columns:1fr;}}

/* ── MISC UTILITY ── */
.text-center{text-align:center;}
.badge{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.72rem;font-weight:700;padding:0.25rem 0.65rem;border-radius:20px;letter-spacing:0.04em;}
