html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* ==========================================================================
   Typography & Font System (GrandWeds Luxury Travel Aesthetic)
   ========================================================================== */

:root {
    --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    /* Primary Accent Color Palette */
    --color-crimson: #dc143c;
    --color-gold: #d4af37;
    --color-slate-dark: #0f172a;
    --color-slate-muted: #64748b;
}

/* Base Body Typography */
body {
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.6;
    color: #1e293b;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.grandweds-logo {
    background: url('/images/grandweds-logo.png') no-repeat center/cover #9714dc25;
    display: inline-block !important;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    flex-shrink: 0;
}
/* Heading Typography */
h1, h2, h3, h4, h5, h6,
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6,
.navbar-brand {
    font-family: var(--font-heading);
    font-weight: 700;
    color: var(--color-slate-dark);
    letter-spacing: -0.02em;
    line-height: 1.25;
}

/* Refined Heading Weights & Sizes */
h1, .display-3 {
    letter-spacing: -0.03em;
}

h2, .display-6 {
    letter-spacing: -0.02em;
}

h4, h5, h6 {
    font-weight: 600;
}
.tiny{
    font-size: 10px;
}
.text-muted{
    color : #28282a !important;
}
.dark-golden-rod{
    color: darkgoldenrod !important;
}
.text-gold{
    color: darkgoldenrod !important;
}
.text-purple {
    color: mediumpurple !important;
}
.border-gold{
    border-color: darkgoldenrod !important;
}
.bg-purple {
    background-color: mediumpurple !important;
    opacity: 0.6;
}
.bg-dark-purple {
    background-color: rebeccapurple !important;
}
.bg-gold {
    background-color: goldenrod !important;
    opacity: 0.4;
}
.rounded-15 {
    border-radius: 15px;
}
/* UI Controls, Inputs, Badges, and Navigation (Delicate Sans-Serif) */
.btn,
.nav-link,
.form-control,
.form-select,
.badge,
.text-uppercase,
.tracking-wider {
    font-family: var(--font-body);
    letter-spacing: 0.01em;
}

/* Letter Spacing Utility Classes */
.tracking-wider {
    letter-spacing: 0.08em !important;
}

.tracking-wide {
    letter-spacing: 0.04em !important;
}

/* Delicate Input Overrides */
.delicate-input {
    font-family: var(--font-body);
    font-weight: 400;
    font-size: 0.95rem;
    border: 1px solid rgba(15, 23, 42, 0.12);
    transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    background-color: #ffffff77
}

.delicate-input:focus {
    border-color: rgba(220, 20, 60, 0.5);
    box-shadow: 0 0 0 0.2rem rgba(220, 20, 60, 0.08);
}
/*=====Icons=====*/
.icon {
    display: inline-block;
    width: 22px;
    height: 22px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    vertical-align: -4px;
}

.icon-sm {
    width: 18px !important;
    height: 18px !important;
    vertical-align: -3px;
}

.icon-md {
    width: 24px !important;
    height: 24px !important;
    vertical-align: -4px;
}

.icon-lg {
    width: 32px !important;
    height: 32px !important;
    vertical-align: -6px;
}

.icon-xl {
    width: 40px !important;
    height: 40px !important;
    vertical-align: -8px;
}

@media(max-width: 768px) {
    .icon-lg {
        width: 22px !important;
        height: 22px !important;
    }

    .icon-xl {
        width: 22px !important;
        height: 22px !important;
    }
}

.icon-wedding-rings-1 {
    background-image: url('/icons/wedding-rings-1.svg');
}
.icon-wedding-rings-2 {
    background-image: url('/icons/wedding-rings-2.svg');
}
.icon-wedding-couple {
    background-image: url('/icons/wedding-couple.svg');
}
.icon-wedding-ceremony {
    background-image: url('/icons/rangoli.svg');
}