/* ==========================================================================
   Irvine Company Office — RSVP Confirmation
   Scoped under .ico-rsvp so it never collides with Twenty Twenty-Five styles.
   Mobile-first. Design tokens live in :root custom properties below.

   FONTS: Gotham and Bodoni 72 are licensed and cannot be embedded here, so this
   uses the brand-approved fallbacks (Montserrat for Gotham, Bodoni Moda for
   Bodoni 72). If your site has the licensed webfonts loaded, swap the families
   in --ico-font-sans / --ico-font-serif and the rest of the stylesheet follows.
   ========================================================================== */

.ico-rsvp {
  /* Brand palette */
  --ico-blue:   #5B6E7F;  /* Pantone 540 — primary brand blue */
  --ico-ink:    #58595B;  /* Pantone 431 — dark gray body text */
  --ico-line:   #DCDDDE;  /* Pantone 427 — light gray keylines */
  --ico-accent: #00758D;  /* Pantone 3145 — teal accent (buttons) */
  --ico-red:    #DA291C;  /* Pantone 485 — red accent (slash only) */
  --ico-muted:  #8a8b8d;  /* derived gray for labels */
  --ico-white:  #ffffff;

  /* Type */
  --ico-font-sans:  'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ico-font-serif: 'Bodoni Moda', Georgia, 'Times New Roman', serif;

  /* Spacing & shape (16px base rhythm) */
  --ico-space: 1rem;
  --ico-radius: 2px;
  --ico-pad: clamp(1.75rem, 6vw, 3.75rem);

  box-sizing: border-box;
  display: flex;
  justify-content: center;
  font-family: var(--ico-font-sans);
  color: var(--ico-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.ico-rsvp *,
.ico-rsvp *::before,
.ico-rsvp *::after { 
  box-sizing: border-box; 
}

.ico-rsvp__eyebrow,
.ico-rsvp__section-label {
    font-size: 0.75rem;
}


/* --- Card ---------------------------------------------------------------- */
.ico-rsvp__card {
  position: relative;
  width: 100%;
  max-width: 640px;
  background: var(--ico-white);
  padding: 0;
}

/* --- Header lockup ------------------------------------------------------- */
.ico-rsvp__header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding-bottom: .75rem;
}

.ico-rsvp__wordmark {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ico-ink);
}

.ico-rsvp__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ico-ink);
}

.ico-rsvp__slash {
  color: var(--ico-red);
  font-weight: 700;
}

/* --- Headline & intro ---------------------------------------------------- */
.ico-rsvp__headline {
  margin: 0;
  font-family: var(--ico-font-serif);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.01em;
  color: #111;
}

.ico-rsvp__greeting {
  margin: 1.5rem 0 0;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.6;
}

.ico-rsvp__lead {
  margin: 0.75rem 0 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.65;
}

/* --- Event panel --------------------------------------------------------- */
.ico-rsvp__event {
  margin-top: 1.75rem;
  border-radius: var(--ico-radius);
}

.ico-rsvp__event-title {
  margin: 0;
  font-family: var(--ico-font-serif);
  font-weight: 700;
  font-size: 1.375rem;
  line-height: 1.15;
  color: var(--ico-ink);
}

.ico-rsvp__meta { margin-top: 1.125rem; }

.ico-rsvp__meta-label {
  margin: 0;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--ico-muted);
}

.ico-rsvp__meta-value {
  margin: 0.2rem 0 0;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ico-ink);
}

.ico-rsvp__meta-value--strong { font-weight: 600; }

.ico-rsvp__event .ico-rsvp__section-label {
  margin-bottom: 1.25rem;
}

/* --- Add to calendar ----------------------------------------------------- */
.ico-rsvp__calendar { margin-top: 1.875rem; }

.ico-rsvp__section-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ico-ink);
}

.ico-rsvp__calendar-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

/*
   {event:calendar_html} emits its own markup (wrappers, an optional label, and
   the per-platform links). We brand whatever links it outputs, and neutralise
   any label/heading the plugin injects so it doesn't duplicate ours.
*/
.ico-rsvp__calendar-buttons > h1,
.ico-rsvp__calendar-buttons > h2,
.ico-rsvp__calendar-buttons > h3,
.ico-rsvp__calendar-buttons > h4,
.ico-rsvp__calendar-buttons > p:first-child,
.ico-rsvp__calendar-buttons > strong:first-child { display: none; }

.ico-rsvp__calendar-buttons a,
.ico-rsvp__calendar-buttons button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  flex: 1 1 175px;
  min-height: 46px;
  margin: 0;
  padding: 0.6875rem 0.9375rem;
  border: 0;
  border-radius: var(--ico-radius);
  background-color: #f5f5f5;
  color: var(--ico-ink);
  font-family: var(--ico-font-sans);
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.ico-rsvp__calendar-buttons a:hover,
.ico-rsvp__calendar-buttons button:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 14px rgba(88, 89, 91, 0.28);
}

.ico-rsvp__calendar-buttons a:focus-visible,
.ico-rsvp__calendar-buttons button:focus-visible {
  outline: 2px solid var(--ico-red);
  outline-offset: 2px;
}

/* --- Closing ------------------------------------------------------------- */
.ico-rsvp__closing {
  margin: 0 0 0;
  padding-top: 0;
  font-family: var(--ico-font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 1.4375rem;
  line-height: 1.3;
  color: #111;
}

.ico-rsvp__signoff {
  margin: 0.875rem 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--ico-muted);
}

/* --- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .ico-rsvp__calendar-buttons a,
  .ico-rsvp__calendar-buttons button { transition: none; }
}
