/* ============================================================
   SHARED STYLES — ijustmovedtoparkcity.com
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700;900&family=Lato:wght@300;400;700&display=swap');

:root {
  --snow:    #F5F2EE;
  --pine:    #2D4A3E;
  --gold:    #C8922A;
  --sky:     #5B8FA8;
  --charcoal:#1E1E1E;
  --muted:   #7A7670;
  --border:  #DDD8D0;
  --card:    #FFFFFF;
  --error:   #C0392B;
  --success: #2D7A4A;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Lato',sans-serif; background:var(--snow); color:var(--charcoal); }

/* NAV */
.topnav { background:var(--charcoal); padding:14px 32px; display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:200; }
.topnav-logo { font-family:'Playfair Display',serif; font-size:15px; color:#fff; text-decoration:none; }
.topnav-logo span { color:var(--gold); }
.topnav-link { font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.5); text-decoration:none; transition:color 0.2s; background:none; border:none; cursor:pointer; }
.topnav-link:hover { color:#fff; }

/* FORM ELEMENTS */
.form-group { display:flex; flex-direction:column; gap:7px; margin-bottom:18px; }
.form-group.full { grid-column:1/-1; }
label { font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--pine); }
input, select, textarea {
  font-family:'Lato',sans-serif; font-size:15px; color:var(--charcoal);
  background:#FAFAF8; border:1px solid var(--border); border-radius:4px;
  padding:12px 14px; outline:none; transition:border-color 0.2s, box-shadow 0.2s;
  appearance:none; -webkit-appearance:none; width:100%;
}
select {
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A7670' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:38px;
}
textarea { resize:vertical; min-height:100px; }
input:focus, select:focus, textarea:focus { border-color:var(--pine); box-shadow:0 0 0 3px rgba(45,74,62,0.10); }
input.error, select.error, textarea.error { border-color:var(--error) !important; }
input::placeholder, textarea::placeholder { color:#C0BBB4; }

/* BUTTONS */
.btn { display:inline-block; font-family:'Lato',sans-serif; font-size:13px; font-weight:700; letter-spacing:2px; text-transform:uppercase; border:none; border-radius:4px; padding:14px 28px; cursor:pointer; transition:background 0.2s,transform 0.15s; text-decoration:none; text-align:center; }
.btn-primary { background:var(--pine); color:#fff; }
.btn-primary:hover { background:#1e3329; transform:translateY(-1px); }
.btn-gold { background:var(--gold); color:#fff; }
.btn-gold:hover { background:#b07d22; transform:translateY(-1px); }
.btn-outline { background:transparent; color:var(--pine); border:2px solid var(--pine); }
.btn-outline:hover { background:var(--pine); color:#fff; }
.btn-danger { background:#FFF0F0; color:var(--error); }
.btn-danger:hover { background:var(--error); color:#fff; }
.btn-full { width:100%; }

/* ALERTS */
.alert { border-radius:6px; padding:14px 18px; font-size:14px; margin-bottom:16px; display:none; }
.alert.show { display:flex; align-items:flex-start; gap:10px; }
.alert-error   { background:#FFF3F3; border:1px solid #e0b0b0; color:var(--error); }
.alert-success { background:#F0FBF4; border:1px solid #a8d9b8; color:var(--success); }
.alert-info    { background:#EBF3F8; border:1px solid #b0cfe0; color:#2a5f78; }

/* CARDS */
.card { background:var(--card); border-radius:10px; border:1px solid var(--border); box-shadow:0 2px 20px rgba(0,0,0,0.06); }

/* SECTION HEADERS */
.section-label { font-size:11px; font-weight:700; letter-spacing:4px; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(26px,4vw,42px); font-weight:700; color:var(--pine); margin-bottom:10px; }
.section-sub   { color:var(--muted); font-size:15px; font-weight:300; margin-bottom:40px; }

/* TAGS */
.tag { font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:4px 10px; border-radius:3px; }
.tag-free  { color:var(--success); background:#E6F4EC; }
.tag-paid  { color:#8B5E52; background:#F4EDE9; }
.tag-group { color:#fff; }
.tag-new   { color:#fff; background:var(--gold); }

/* MODAL */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.55); z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity 0.25s ease; }
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal { background:#fff; border-radius:12px; max-width:560px; width:100%; overflow:hidden; box-shadow:0 24px 80px rgba(0,0,0,0.25); transform:translateY(20px) scale(0.97); transition:transform 0.25s ease; max-height:90vh; overflow-y:auto; }
.modal-overlay.open .modal { transform:translateY(0) scale(1); }

/* SPINNER */
.spinner { width:40px; height:40px; border:3px solid var(--border); border-top-color:var(--pine); border-radius:50%; animation:spin 0.8s linear infinite; margin:40px auto; }
@keyframes spin { to { transform:rotate(360deg); } }

/* FOOTER */
footer { background:var(--charcoal); color:rgba(255,255,255,0.45); text-align:center; padding:28px 24px; font-size:13px; }
footer span { color:var(--gold); }
footer a { color:rgba(255,255,255,0.45); text-decoration:none; transition:color 0.2s; }
footer a:hover { color:var(--gold); }

/* ANIMATIONS */
@keyframes fadeUp   { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn   { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideIn  { from{opacity:0;transform:translateX(20px)} to{opacity:1;transform:translateX(0)} }

/* HOST FLOAT BTN */
.host-float-btn {
  position:fixed; bottom:28px; right:28px; z-index:500;
  background:var(--charcoal); color:rgba(255,255,255,0.85);
  font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; text-decoration:none;
  padding:12px 20px; border-radius:30px; box-shadow:0 4px 20px rgba(0,0,0,0.25);
  transition:background 0.2s,transform 0.2s,box-shadow 0.2s;
  display:flex; align-items:center; gap:8px;
}
.host-float-btn:hover { background:var(--pine); transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,0.3); }
.host-float-btn .btn-icon { font-size:14px; }

/* RESPONSIVE */
@media(max-width:640px) {
  .topnav { padding:12px 16px; }
  .hide-mobile { display:none; }
}
