/*
Theme Name: Anika Vinay Kulkarni
Theme URI: https://anikavinaykulkarni.com
Author: Custom Build
Description: Performer-portfolio WordPress theme for Bharatanatyam artist Anika Vinay Kulkarni. Maroon/gold/ivory palette, Didot-style display serif, Kannada & Devanagari support, temple-bell divider motif, full-bleed video hero.
Version: 2.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: anika-vinay-kulkarni
*/

/* ==========================================================================
   TOKENS
   ========================================================================== */
:root{
  --maroon:      #6B1F1A;
  --maroon-2:    #551713;
  --maroon-deep: #3E1310;
  --gold:        #B8912A;
  --gold-light:  #D9B65B;
  --ivory:       #FBF9F5;
  --ivory-2:     #F1ECE1;
  --ink:         #241F1C;
  --ink-soft:    #574F49;
  --white:       #FFFFFF;

  --font-display: 'Playfair Display', 'Georgia', serif;
  --font-body: 'Raleway', 'Segoe UI', sans-serif;
  --font-kannada: 'Noto Sans Kannada', sans-serif;
  --font-devanagari: 'Noto Sans Devanagari', sans-serif;

  --container: 1200px;
  --gap: clamp(1.25rem, 2.6vw, 2.25rem);

  --radius-sm: 4px;
  --radius-md: 10px;
  --radius-lg: 18px;
  --radius-pill: 999px;

  --shadow-sm: 0 2px 10px rgba(36,31,28,.06);
  --shadow-md: 0 12px 32px -12px rgba(36,31,28,.20);
  --shadow-lg: 0 28px 60px -20px rgba(36,31,28,.28);
  --shadow-gold: 0 10px 26px -10px rgba(184,145,42,.45);

  --ease: cubic-bezier(.22,.61,.36,1);
  --dur-fast: .2s;
  --dur-med: .4s;
  --dur-slow: .7s;

  /* ---- Customizer-overridable tier ----------------------------------
     These default to the values above (so the design is unchanged until
     a Customizer setting is actually saved) but give Appearance > Customize
     a single, consistent set of hooks for logo/typography/color/layout
     controls, output by inc/customizer-css.php, without editing theme files. */
  --site-bg-color: var(--ivory);
  --heading-color: var(--maroon);
  --body-text-color: var(--ink-soft);
  --link-color: var(--maroon);
  --link-hover-color: var(--gold);
  --button-bg-color: var(--maroon);
  --button-bg-hover-color: var(--maroon-2);
  --button-text-color: #ffffff;
  --header-bg-color: rgba(251,249,245,.94);
  --header-text-color: var(--ink);
  --header-link-color: var(--ink);
  --header-link-hover-color: var(--gold);
  --footer-bg-start: var(--maroon);
  --footer-bg-end: var(--maroon-deep);
  --footer-text-color: #f0e6d8;
  --footer-heading-color: #f5d98b;
  --footer-link-color: #f5d98b;
  --container-max: var(--container);
  --section-spacing: clamp(3.2rem, 7vw, 6rem);
  --global-radius: var(--radius-md);
  --logo-width: 180px;

  --h1-font-family: var(--font-display);
  --h1-font-size: clamp(2.1rem,4.4vw,3.2rem);
  --h1-font-weight: 600;
  --h1-line-height: 1.16;
  --h1-letter-spacing: -.01em;
  --h2-font-family: var(--font-display);
  --h2-font-size: clamp(1.6rem,3.2vw,2.3rem);
  --h2-font-weight: 600;
  --h2-line-height: 1.16;
  --h2-letter-spacing: -.01em;
  --h3-font-family: var(--font-display);
  --h3-font-size: clamp(1.2rem,2vw,1.45rem);
  --h3-font-weight: 600;
  --h3-line-height: 1.16;
  --h3-letter-spacing: -.01em;
  --h4-font-family: var(--font-display);
  --h4-font-size: 1.05rem;
  --h4-font-weight: 600;
  --h4-line-height: 1.16;
  --h4-letter-spacing: -.01em;
  --h5-font-family: var(--font-display);
  --h5-font-size: .95rem;
  --h5-font-weight: 600;
  --h5-line-height: 1.2;
  --h5-letter-spacing: 0em;
  --h6-font-family: var(--font-display);
  --h6-font-size: .8rem;
  --h6-font-weight: 600;
  --h6-line-height: 1.2;
  --h6-letter-spacing: .02em;
  --body-font-family: var(--font-body);
  --body-font-size: 16px;
  --body-font-weight: 400;
  --body-line-height: 1.75;
  --body-letter-spacing: 0em;
}

/* ==========================================================================
   RESET & BASE
   ========================================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; }
body{
  margin:0; background:var(--site-bg-color); color:var(--body-text-color); overflow-x:hidden; max-width:100vw;
  font-family:var(--body-font-family); font-size:var(--body-font-size); font-weight:var(--body-font-weight);
  line-height:var(--body-line-height); letter-spacing:var(--body-letter-spacing);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--link-color); text-decoration:none; transition:color var(--dur-fast) var(--ease); }
a:hover{ color:var(--link-hover-color); }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

h1,h2,h3,h4,h5,h6{ font-family:var(--font-display); font-style:italic; color:var(--heading-color); line-height:1.16; margin:0 0 .4em; font-weight:600; letter-spacing:-.01em; }
h1{ font-family:var(--h1-font-family); font-size:var(--h1-font-size); font-weight:var(--h1-font-weight); line-height:var(--h1-line-height); letter-spacing:var(--h1-letter-spacing); }
h2{ font-family:var(--h2-font-family); font-size:var(--h2-font-size); font-weight:var(--h2-font-weight); line-height:var(--h2-line-height); letter-spacing:var(--h2-letter-spacing); }
h3{ font-family:var(--h3-font-family); font-size:var(--h3-font-size); font-weight:var(--h3-font-weight); line-height:var(--h3-line-height); letter-spacing:var(--h3-letter-spacing); }
h4{ font-family:var(--h4-font-family); font-size:var(--h4-font-size); font-weight:var(--h4-font-weight); line-height:var(--h4-line-height); letter-spacing:var(--h4-letter-spacing); }
h5{ font-family:var(--h5-font-family); font-size:var(--h5-font-size); font-weight:var(--h5-font-weight); line-height:var(--h5-line-height); letter-spacing:var(--h5-letter-spacing); }
h6{ font-family:var(--h6-font-family); font-size:var(--h6-font-size); font-weight:var(--h6-font-weight); line-height:var(--h6-line-height); letter-spacing:var(--h6-letter-spacing); text-transform:uppercase; }
p{ margin:0 0 1.15em; color:var(--body-text-color); }

.kn, .dn{ font-style:normal; }
.kn{ font-family:var(--font-kannada); color:var(--gold); font-size:1.05rem; letter-spacing:.01em; }
.dn{ font-family:var(--font-devanagari); }

.container{ max-width:var(--container-max); margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem); }
.section{ padding:var(--section-spacing) 0; }
.section--alt{ background:var(--ivory-2); }
.section--maroon{ background:linear-gradient(160deg,var(--maroon),var(--maroon-deep)); color:#f0e6d8; }
.section--maroon h2, .section--maroon h3{ color:var(--gold-light); }
.section--maroon p{ color:#e9dbc8; }

.kicker{
  font-family:var(--font-body); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); font-weight:700; margin-bottom:.85em; display:inline-flex; align-items:center; gap:.6em;
}
.kicker::before{ content:""; width:24px; height:1px; background:var(--gold); display:inline-block; }
.section-head{ max-width:680px; margin:0 0 2.8rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head.center .kicker{ justify-content:center; }

/* ==========================================================================
   SIGNATURE: TEMPLE-BELL DIVIDER
   ========================================================================== */
.bell-divider{
  display:flex; align-items:center; justify-content:center;
  margin:3.2rem 0; color:var(--gold); user-select:none; opacity:.85;
}
.bell-divider svg{ width:220px; height:28px; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--header-bg-color); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(107,31,26,.14);
  transition:box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.site-header__inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:var(--header-padding-y, 1.1rem) clamp(1.25rem,4vw,2.5rem); max-width:1440px; margin:0 auto;
}
.site-title{ font-family:var(--font-display); font-style:italic; font-weight:700; font-size:1.3rem; color:var(--header-text-color); letter-spacing:-.01em; }
.site-title a{ color:inherit; }
.custom-logo-link{ display:inline-flex; align-items:center; }
.custom-logo{ width:var(--logo-width); max-width:280px; height:auto; display:block; }
.primary-nav{ display:flex; align-items:center; gap:2.2rem; }
.primary-nav ul{ display:flex; gap:2rem; align-items:center; }
.primary-nav a{
  font-size:.78rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--header-link-color);
  position:relative; padding:.35rem 0;
}
.primary-nav a::after{ content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gold); transition:width var(--dur-fast) var(--ease); }
.primary-nav a:hover{ color:var(--header-link-hover-color); }
.primary-nav a:hover::after, .primary-nav .current-menu-item a::after{ width:100%; }
.header-cta{
  background:var(--button-bg-color); color:var(--button-text-color) !important; padding:.75rem 1.5rem; border-radius:var(--radius-pill);
  font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  box-shadow:0 8px 20px -8px rgba(107,31,26,.55); transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.header-cta:hover{ background:var(--button-bg-hover-color); color:var(--button-text-color) !important; transform:translateY(-2px); box-shadow:0 12px 26px -8px rgba(107,31,26,.6); }
.header-cta::after{ display:none !important; }

.header-topbar{
  background:var(--header-topbar-bg, var(--ink)); color:var(--header-topbar-text, rgba(255,255,255,.85));
  font-size:.78rem; padding:.5rem 0;
}
.header-topbar .container{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.header-topbar a{ color:inherit; }
.header-topbar a:hover{ color:var(--gold-light); }
.header-topbar__contact{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.header-topbar__social{ display:flex; gap:.9rem; }
@media (max-width:700px){ .header-topbar .container{ justify-content:center; text-align:center; } }

.menu-toggle{ display:none; background:none; border:1px solid rgba(36,31,28,.25); border-radius:6px; width:42px; height:38px; align-items:center; justify-content:center; transition:border-color var(--dur-fast); }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after{ content:""; display:block; width:18px; height:2px; background:var(--ink); position:relative; transition:transform var(--dur-fast) var(--ease); }
.menu-toggle span::before{ position:absolute; top:-6px; }
.menu-toggle span::after{ position:absolute; top:6px; }

@media (max-width:900px){
  .menu-toggle{ display:flex; }
  .primary-nav{ position:fixed; inset:0 0 0 22%; background:var(--ivory); flex-direction:column; align-items:flex-start;
    transform:translateX(100%); transition:transform var(--dur-med) var(--ease); padding:6.5rem 2.2rem 2rem; box-shadow:-20px 0 50px rgba(0,0,0,.18); }
  .primary-nav.is-open{ transform:translateX(0); }
  .primary-nav ul{ flex-direction:column; align-items:flex-start; gap:1.5rem; }
  .header-cta{ margin-top:1.2rem; }
}

/* ==========================================================================
   HERO — full-bleed background video
   ========================================================================== */
.hero--video{
  position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; padding:0; margin:0; width:100%;
}
.hero__bg{ position:absolute; inset:0; overflow:hidden; z-index:0; background:var(--maroon-deep); }
.hero__poster{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
}
.hero__video-embed{
  position:absolute; top:50%; left:50%; width:100vw; height:56.25vw; /* 16:9 */
  min-height:100.5%; min-width:177.78vh; /* 16:9 cover */
  transform:translate(-50%,-50%); pointer-events:none; z-index:1;
  opacity:0; transition:opacity var(--dur-slow) var(--ease);
}
/* Visible as soon as the iframe has had a moment to start rendering — this
   class is added quickly by a small JS enhancement purely for a smooth
   crossfade. It is NOT required for the video to work: if JS never runs,
   the fallback rule directly below still makes the video visible. */
.hero--video.is-video-ready .hero__video-embed{ opacity:1; }
.hero__video-embed{ animation:heroVideoFallbackReveal 0s linear 1.2s forwards; }
@keyframes heroVideoFallbackReveal{ to{ opacity:1; } }
.hero__video-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; background:var(--maroon-deep); }
.hero__overlay{
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(180deg, rgba(30,14,11,.42) 0%, rgba(30,14,11,.5) 45%, rgba(20,9,7,.78) 100%);
}
/* Respect the visitor's reduced-motion preference with pure CSS — no JS
   required — so the poster image is used instead of the moving video. */
/* Reachability-probe fallback (see main.js): if YouTube is unreachable
   client-side, JS sets [hidden] on the wrapper instead of leaving a blank
   iframe box — the poster image is what remains visible. */
.hero__video-embed[hidden]{ display:none !important; }

@media (prefers-reduced-motion: reduce){
  .hero__video-embed{ display:none; }
}

.hero__content{
  position:relative; z-index:3; text-align:center; color:#fff;
  padding:clamp(6rem,14vw,9rem) clamp(1.25rem,5vw,2.5rem) clamp(4rem,9vw,6rem);
  max-width:780px; margin:0 auto;
}
.kicker--light{ color:var(--gold-light); }
.kicker--light::before{ background:var(--gold-light); }
.kn--light{ color:var(--gold-light); font-size:1.2rem; margin-bottom:.5rem; }
.hero__title{ color:#fff; margin:.15em 0 .35em; font-size:clamp(2.4rem,5.6vw,4rem); text-shadow:0 4px 24px rgba(0,0,0,.35); }
.role--light{ font-style:italic; color:#f0dcb8; margin-bottom:.9em; font-size:1.05rem; }
.lede--light{ color:#f2ece0; max-width:52ch; margin:0 auto 1.6rem; font-size:1.05rem; }
.hero__ctas{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-top:.5rem; }

.hero__scroll-cue{
  position:absolute; left:50%; bottom:clamp(1.2rem,3vw,2.2rem); transform:translateX(-50%); z-index:3;
  width:26px; height:42px; border:2px solid rgba(255,255,255,.6); border-radius:14px;
}
.hero__scroll-cue span{
  position:absolute; top:7px; left:50%; width:4px; height:8px; margin-left:-2px; border-radius:2px;
  background:#fff; animation:scrollCue 1.8s ease-in-out infinite;
}
@keyframes scrollCue{ 0%{ opacity:1; transform:translateY(0); } 70%{ opacity:0; transform:translateY(14px); } 100%{ opacity:0; } }
@media (prefers-reduced-motion: reduce){ .hero__scroll-cue span{ animation:none; } }

@media (max-width:860px){
  .hero--video{ min-height:78vh; }
  .hero__content{ padding-top:clamp(5rem,20vw,7rem); }
}
@media (max-width:600px){
  .hero--video{ min-height:88vh; }
  .hero__scroll-cue{ display:none; }
}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; gap:.5em; padding:.9rem 1.9rem; border-radius:var(--button-radius, var(--radius-pill));
  font-weight:700; font-size:.8rem; letter-spacing:.06em; text-transform:uppercase; border:1.5px solid transparent;
  transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.btn--maroon{ background:var(--button-bg-color); color:var(--button-text-color); box-shadow:0 10px 24px -10px rgba(107,31,26,.55); }
.btn--maroon:hover{ background:var(--button-bg-hover-color); color:var(--button-text-color); transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(107,31,26,.6); }
.btn--ghost{ border-color:var(--maroon); color:var(--maroon); }
.btn--ghost:hover{ background:var(--maroon); color:#fff; transform:translateY(-2px); }
.btn--gold{ background:var(--gold); color:#2b2216; box-shadow:var(--shadow-gold); }
.btn--gold:hover{ background:var(--gold-light); color:#2b2216; transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(184,145,42,.55); }
.btn--outline-light{ border-color:rgba(255,255,255,.75); color:#fff; }
.btn--outline-light:hover{ background:rgba(255,255,255,.14); border-color:#fff; color:#fff; transform:translateY(-2px); }

/* Stat strip */
.stat-strip{ display:flex; background:var(--white); box-shadow:var(--shadow-sm); position:relative; z-index:3; margin-top:-1px; }
.stat{ flex:1; text-align:center; padding:1.9rem 1rem; border-right:1px solid #ece5d8; }
.stat:last-child{ border-right:none; }
.stat b{ display:block; font-family:var(--font-display); font-style:italic; font-size:1.7rem; color:var(--maroon); margin-bottom:.15em; }
.stat span{ font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:600; }
@media (max-width:700px){ .stat-strip{ flex-wrap:wrap; } .stat{ flex:1 1 50%; border-right:1px solid #ece5d8; } .stat:nth-child(2n){ border-right:none; } .stat:nth-child(-n+2){ border-bottom:1px solid #ece5d8; } }

/* ==========================================================================
   CARDS / GRIDS
   ========================================================================== */
.grid{ display:grid; gap:var(--gap); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:920px){ .grid--3,.grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .grid--2,.grid--3,.grid--4{ grid-template-columns:1fr; } }

.card{
  background:var(--white); border:1px solid #ece5d8; padding:1.8rem; border-radius:var(--global-radius, var(--radius-md));
  box-shadow:var(--shadow-sm); transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:rgba(184,145,42,.35); }
.card h3, .card h4{ color:var(--maroon); margin-bottom:.35rem; }
.card p{ font-size:.93rem; margin-bottom:0; }
.card .tag{ display:inline-block; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; background:var(--gold); color:#fff; padding:.28rem .65rem; border-radius:var(--radius-pill); margin-bottom:.7rem; font-weight:700; }
.card .tag.maroon{ background:var(--maroon); }

/* Featured highlight card */
.highlight{
  background:linear-gradient(135deg,#faf6ec,#f0e2bc); border:1px solid rgba(184,145,42,.4);
  padding:2.4rem; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); position:relative; overflow:hidden;
}
.highlight::before{
  content:""; position:absolute; top:-40%; right:-10%; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(184,145,42,.18), transparent 70%);
}
.highlight .tag{ background:var(--gold); color:#fff; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; padding:.32rem .75rem; border-radius:var(--radius-pill); font-weight:700; }
.highlight h2{ position:relative; }
.highlight p{ position:relative; max-width:64ch; }

/* Lists with bell bullet */
.bell-list{ columns:2; column-gap:2.8rem; }
.bell-list li{ break-inside:avoid; padding:.5rem 0 .5rem 1.5rem; position:relative; font-size:.95rem; color:var(--ink-soft); border-bottom:1px dashed #e6ddca; }
.bell-list li::before{ content:"\1F514"; position:absolute; left:0; font-size:.72em; opacity:.55; }
.bell-list--wide{ columns:3; }
@media (max-width:900px){ .bell-list--wide{ columns:2; } }
@media (max-width:700px){ .bell-list{ columns:1; } }

/* Tabs (Performances page) */
.tabs__nav{ display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:2rem; border-bottom:1px solid #e6ddca; }
.tabs__btn{ background:none; border:none; padding:.9rem 1.2rem; font-size:.78rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); border-bottom:2px solid transparent; margin-bottom:-1px; transition:color var(--dur-fast); border-radius:4px 4px 0 0; }
.tabs__btn:hover{ color:var(--maroon); background:rgba(184,145,42,.06); }
.tabs__btn.is-active{ color:var(--maroon); border-bottom-color:var(--gold); }
.tabs__panel{ display:none; animation:fadeIn var(--dur-med) var(--ease); }
.tabs__panel.is-active{ display:block; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }

/* Gallery filter chips */
.chips{ display:flex; gap:.6rem; flex-wrap:wrap; margin-bottom:2.2rem; }
.chip{ background:var(--white); border:1px solid #e6ddca; padding:.55rem 1.2rem; border-radius:var(--radius-pill); font-size:.76rem; font-weight:600; letter-spacing:.03em; color:var(--ink-soft); transition:all var(--dur-fast) var(--ease); }
.chip:hover{ border-color:var(--gold); color:var(--maroon); }
.chip.is-active{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
.gallery-item{ position:relative; overflow:hidden; border-radius:var(--radius-md); aspect-ratio:1/1; background:var(--maroon); box-shadow:var(--shadow-sm); transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
.gallery-item:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.gallery-item img, .gallery-item iframe{ width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow) var(--ease); }
.gallery-item:hover img{ transform:scale(1.06); }
.gallery-item[hidden]{ display:none; }

/* Ticker */
.ticker{ display:flex; gap:1.2rem; overflow-x:auto; padding:.4rem .1rem 1rem; scrollbar-width:thin; }
.ticker a{
  flex:0 0 auto; background:var(--white); border:1px solid #ece5d8; padding:.8rem 1.4rem; border-radius:var(--radius-pill);
  font-size:.83rem; font-weight:600; color:var(--maroon); white-space:nowrap; box-shadow:var(--shadow-sm);
  transition:all var(--dur-fast) var(--ease);
}
.ticker a:hover{ background:var(--maroon); color:#fff; border-color:var(--maroon); transform:translateY(-2px); box-shadow:var(--shadow-md); }

/* Invitation band */
.invite-band{
  background:linear-gradient(160deg,var(--maroon),var(--maroon-deep)); color:#f0e6d8;
  padding:clamp(3.2rem,6vw,4.5rem) 0; text-align:center; position:relative; overflow:hidden;
}
.invite-band::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 15% 20%, rgba(217,182,91,.16), transparent 45%),
             radial-gradient(circle at 85% 80%, rgba(217,182,91,.12), transparent 45%);
}
.invite-band .container{ position:relative; }
.invite-band h2{ color:var(--gold-light); max-width:720px; margin:0 auto .6rem; }
.invite-band p{ color:#f0e6d8; max-width:640px; margin:0 auto 1.6rem; }

/* Contact / form */
.contact-form input, .contact-form select, .contact-form textarea{
  width:100%; padding:.9rem 1.1rem; margin-bottom:1.1rem; border:1px solid #e0d6c2; border-radius:var(--radius-sm);
  background:var(--white); font-family:var(--font-body); font-size:.93rem; transition:border-color var(--dur-fast), box-shadow var(--dur-fast);
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
  border-color:var(--gold); box-shadow:0 0 0 3px rgba(184,145,42,.15); outline:none;
}
.contact-form textarea{ min-height:140px; resize:vertical; }
.contact-form label{ font-size:.78rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:.4rem; }
.family-note{ font-size:.85rem; color:#7a6a3a; background:#faf6ea; border-left:3px solid var(--gold); padding:.9rem 1.1rem; margin-bottom:1.6rem; border-radius:0 var(--radius-sm) var(--radius-sm) 0; }

/* Footer */
.site-footer{ background:linear-gradient(160deg,var(--footer-bg-start),var(--footer-bg-end)); color:var(--footer-text-color); padding:3.6rem 0 1.5rem; }
.site-footer a{ color:var(--footer-link-color); }
.site-footer a:hover{ color:#fff; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.4rem; margin-bottom:2.6rem; }
.footer-grid:has(> :nth-child(4)){ grid-template-columns:1.1fr 1fr 1fr 1fr; }
@media (max-width:700px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:var(--footer-heading-color); font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; font-style:normal; margin-bottom:.9rem; }
.footer-grid p, .footer-grid li{ font-size:.86rem; color:var(--footer-text-color); opacity:.88; }
.footer-bottom{ border-top:1px solid rgba(240,230,216,.18); padding-top:1.4rem; text-align:center; font-size:.85rem; color:var(--footer-text-color); opacity:.88; }
.footer-bottom .dn{ display:block; margin-top:.35rem; opacity:.85; }
.footer-logo{ margin-bottom:1rem; }
.footer-logo img{ width:var(--logo-width); max-width:160px; height:auto; }
.footer-description{ font-size:.9rem; opacity:.85; max-width:36ch; }

/* Page header (interior pages) */
.page-header{ padding:clamp(3rem,6vw,4.2rem) 0 2rem; background:var(--ivory-2); border-bottom:1px solid #ece5d8; position:relative; overflow:hidden; }
.page-header::before{
  content:""; position:absolute; top:-60%; right:-8%; width:300px; height:300px; border-radius:50%;
  background:radial-gradient(circle, rgba(184,145,42,.10), transparent 70%);
}
.page-header .container{ position:relative; }

.entry-content{ max-width:760px; }
.text-center{ text-align:center; }
.skip-link{ position:absolute; left:-999px; background:var(--maroon); color:#fff; padding:.7rem 1.2rem; z-index:200; border-radius:0 0 6px 0; }
.skip-link:focus{ left:0; top:0; }
