/**
 * TDS RSVP public application component.
 * The approved visual design is inherited from tdsops.css. This file owns only
 * RSVP layout, state and responsive behavior so it cannot drift through patches.
 */
.tdsops.tdsops-rsvp,
.tdsops.tdsops-rsvp *{box-sizing:border-box}
.tdsops.tdsops-rsvp{width:min(100%,var(--tds-shell-max,1400px));max-width:100%;min-width:0;overflow:clip}
.tdsops.tdsops-rsvp :where(.tds-brand,.tds-launch,.tds-launch-intro,.tds-card,.tds-rsvp-card,.tdsops-rsvp-form,.tdsops-rsvp-panel,.tdsops-grid,.tdsops-rental-grid,.tdsops-attendee,fieldset,nav,section){min-width:0;max-width:100%}

/* Canonical three-step navigation state. */
.tdsops.tdsops-rsvp .tdsops-rsvp-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;overflow:visible}
.tdsops.tdsops-rsvp .tdsops-rsvp-tabs [data-rsvp-tab]{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:50px;padding:10px 14px;border:1px solid #09131d;border-radius:10px;background:#09131d;color:#fff;-webkit-text-fill-color:#fff;font-weight:800;text-align:center;white-space:normal;line-height:1.2;box-shadow:none;text-shadow:none}
.tdsops.tdsops-rsvp .tdsops-rsvp-tabs [data-rsvp-tab][aria-selected="true"]{background:var(--tds-blue,#177da1);border-color:var(--tds-blue,#177da1);color:#fff;-webkit-text-fill-color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}

/* Conditional form regions are controlled by semantic hidden state. */
.tdsops.tdsops-rsvp [hidden]{display:none!important}
.tdsops.tdsops-rsvp .tdsops-attendee:not(.is-diver) .tdsops-diver-only{display:none}
.tdsops.tdsops-rsvp .tdsops-cylinder-warning{margin:0;padding:11px 13px;border-left:4px solid #d88913;border-radius:8px;background:#fff4d9;color:#644a16;font-weight:700;line-height:1.4}
.tdsops.tdsops-rsvp select{display:block;width:100%;min-width:0;min-height:48px;padding-right:42px;line-height:1.3;text-overflow:ellipsis}

@media (max-width:760px){
  .tdsops.tdsops-rsvp{width:100%;margin-inline:0;border-inline:0;border-radius:0}
  .tdsops.tdsops-rsvp .tds-brand{grid-template-columns:88px minmax(0,1fr);gap:16px;min-height:160px;padding:22px 16px}
  .tdsops.tdsops-rsvp .tds-brand-mark{width:88px;height:88px;padding:8px}
  .tdsops.tdsops-rsvp .tds-brand-copy h1{font-size:clamp(32px,10vw,44px)!important;line-height:1!important}
  .tdsops.tdsops-rsvp .tds-brand-copy p{font-size:14px}
  .tdsops.tdsops-rsvp .tds-launch,.tdsops.tdsops-rsvp .tds-rsvp-launch{display:grid;grid-template-columns:minmax(0,1fr);gap:28px;width:100%;padding:30px 16px 36px}
  .tdsops.tdsops-rsvp .tds-launch-intro{width:100%;padding:0}
  .tdsops.tdsops-rsvp .tds-launch-intro h2{width:100%;margin:20px 0 16px;font-size:clamp(34px,10vw,44px)!important;line-height:1.02!important;letter-spacing:-.035em!important;overflow-wrap:normal;word-break:normal}
  .tdsops.tdsops-rsvp .tds-launch-intro>p{font-size:17px;line-height:1.55}
  .tdsops.tdsops-rsvp .tds-launch-points>div{grid-template-columns:minmax(0,1fr);gap:5px}
  .tdsops.tdsops-rsvp .tds-rsvp-card{width:100%;padding:20px 14px!important;overflow:visible}
  .tdsops.tdsops-rsvp .tdsops-rsvp-tabs{grid-template-columns:minmax(0,1fr);gap:7px;padding:7px}
  .tdsops.tdsops-rsvp .tdsops-grid,.tdsops.tdsops-rsvp .tdsops-rental-grid{grid-template-columns:minmax(0,1fr)}
  .tdsops.tdsops-rsvp .tdsops-span-2{grid-column:1}
  .tdsops.tdsops-rsvp .tdsops-rsvp-panel{padding:22px 16px}
  .tdsops.tdsops-rsvp :where(input,select,textarea,button){width:100%;max-width:100%;min-width:0;font-size:16px}
}

@media (max-width:390px){
  .tdsops.tdsops-rsvp .tds-brand{grid-template-columns:72px minmax(0,1fr);gap:12px;padding:18px 13px}
  .tdsops.tdsops-rsvp .tds-brand-mark{width:72px;height:72px}
  .tdsops.tdsops-rsvp .tds-brand-copy h1{font-size:30px!important}
  .tdsops.tdsops-rsvp .tds-launch{padding-inline:13px}
  .tdsops.tdsops-rsvp .tds-launch-intro h2{font-size:34px!important}
}


/* Attendee header action: explicit danger-button treatment prevents theme
   button styles from producing white text on a white background. */
.tdsops.tdsops-rsvp .tdsops-attendee .tdsops-remove{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:96px;
  min-height:44px;
  padding:10px 16px;
  border:1px solid var(--tds-red,#ef233c)!important;
  border-radius:10px;
  background:var(--tds-red,#ef233c)!important;
  background-image:none!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-weight:800;
  line-height:1;
  opacity:1!important;
  box-shadow:0 6px 16px rgba(239,35,60,.18);
}
.tdsops.tdsops-rsvp .tdsops-attendee .tdsops-remove:hover,
.tdsops.tdsops-rsvp .tdsops-attendee .tdsops-remove:focus-visible{
  background:#c9182d!important;
  border-color:#c9182d!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* 0.21.3 responsive form-width architecture
   The RSVP form is the primary task on desktop, so it receives the majority of
   the available shell width. Nested rental controls use intrinsic minimum widths
   instead of being compressed into unreadable columns. */
@media (min-width:1181px){
  .tdsops.tdsops-rsvp.tds-app-shell{
    width:100%;
    max-width:1680px;
  }
  .tdsops.tdsops-rsvp .tds-rsvp-launch{
    grid-template-columns:minmax(260px,.58fr) minmax(0,1.42fr);
    gap:clamp(28px,3vw,52px);
    padding:clamp(40px,3.5vw,60px) clamp(24px,3vw,52px) 60px;
  }
  .tdsops.tdsops-rsvp .tds-rsvp-card{
    width:100%;
    padding:clamp(30px,3vw,44px)!important;
  }
  .tdsops.tdsops-rsvp .tdsops-rsvp-panel{
    padding:clamp(30px,3vw,42px);
  }
  .tdsops.tdsops-rsvp .tdsops-attendee{
    padding:clamp(22px,2.4vw,34px);
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section{
    padding:20px;
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section .tdsops-grid{
    grid-template-columns:repeat(auto-fit,minmax(165px,1fr));
    gap:16px;
  }
}

/* Desktop containment: no child may establish a width wider than the form column. */
.tdsops.tdsops-rsvp .tds-rsvp-launch>* ,
.tdsops.tdsops-rsvp .tds-rsvp-card,
.tdsops.tdsops-rsvp .tdsops-rsvp-form,
.tdsops.tdsops-rsvp .tdsops-rsvp-panel,
.tdsops.tdsops-rsvp .tdsops-rsvp-tabs,
.tdsops.tdsops-rsvp .tdsops-panel-actions{
  width:100%;
  min-width:0;
  max-width:100%;
}
.tdsops.tdsops-rsvp .tdsops-panel-actions{
  flex-wrap:wrap;
}
.tdsops.tdsops-rsvp .tdsops-panel-actions>*{
  max-width:100%;
}

/* Tablet and small laptop: preserve the full public experience, but place the
   form below the introduction so it can use the complete content width. */
@media (min-width:761px) and (max-width:1180px){
  .tdsops.tdsops-rsvp.tds-app-shell{
    width:100%;
    max-width:1080px;
  }
  .tdsops.tdsops-rsvp .tds-rsvp-launch{
    grid-template-columns:minmax(0,1fr);
    gap:36px;
    padding:42px clamp(24px,5vw,54px) 50px;
  }
  .tdsops.tdsops-rsvp .tds-launch-intro{
    max-width:860px;
  }
  .tdsops.tdsops-rsvp .tds-rsvp-card{
    width:100%;
    padding:30px!important;
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section .tdsops-grid{
    grid-template-columns:repeat(auto-fit,minmax(145px,1fr));
  }
}

/* Narrow tablets: use one rental card per row, while keeping related controls
   side-by-side whenever their labels can remain fully readable. */
@media (min-width:601px) and (max-width:860px){
  .tdsops.tdsops-rsvp .tdsops-rental-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section .tdsops-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Phones: one field per row is more usable than compressed controls. */
@media (max-width:600px){
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section .tdsops-grid,
  .tdsops.tdsops-rsvp .tdsops-attendee>.tdsops-grid{
    grid-template-columns:minmax(0,1fr);
  }
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section{
    padding:16px;
  }
}

/* Form controls should display their complete prompt whenever space permits. */
.tdsops.tdsops-rsvp .tdsops-rental-grid label,
.tdsops.tdsops-rsvp .tdsops-grid label{
  min-width:0;
}
.tdsops.tdsops-rsvp :where(input,select,textarea){
  width:100%;
  max-width:100%;
}
.tdsops.tdsops-rsvp select{
  padding-left:14px;
  padding-right:40px;
  font-size:15px;
}


/* 0.21.5 attendee-workspace width architecture
   Step 1 retains the locked split promotional composition. Once the visitor
   enters the operational Attendees & Gear step, the intro and form stack so the
   rental workspace can use the complete shell width. This is driven by explicit
   application state from rsvp-public.js rather than viewport guesses or negative
   margins. */
@media (min-width:1181px){
  .tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-launch{
    grid-template-columns:minmax(0,1fr);
    gap:32px;
  }
  .tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-launch-intro{
    width:100%;
    max-width:1180px;
  }
  .tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-card{
    width:100%;
    max-width:none;
  }
  .tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tdsops-attendee{
    width:100%;
    max-width:none;
  }
}

/* Rental cards respond to the width they actually receive, not the browser
   width. This prevents a narrow WordPress content column from clipping a
   nominally "desktop" two-column grid. */
.tdsops.tdsops-rsvp .tdsops-attendee{
  container-type:inline-size;
  container-name:rsvp-attendee;
}
@container rsvp-attendee (max-width:820px){
  .tdsops.tdsops-rsvp .tdsops-rental-grid{
    grid-template-columns:minmax(0,1fr);
  }
}
@container rsvp-attendee (max-width:520px){
  .tdsops.tdsops-rsvp .tdsops-rental-grid>section .tdsops-grid{
    grid-template-columns:minmax(0,1fr);
  }
}

/* 0.21.6 RSVP confirmation review */
.tdsops.tdsops-rsvp .tdsops-review-summary{display:grid;gap:18px;padding:0;border:0;background:transparent}
.tdsops.tdsops-rsvp .tdsops-review-block{padding:20px;border:1px solid #d7e2e8;border-radius:14px;background:#f8fbfc}
.tdsops.tdsops-rsvp .tdsops-review-block>h4{margin:0 0 14px;color:var(--tds-navy);font-size:22px}
.tdsops.tdsops-rsvp .tdsops-review-block dl,.tdsops.tdsops-rsvp .tdsops-review-attendee dl{display:grid;gap:0;margin:0}
.tdsops.tdsops-rsvp .tdsops-review-row{display:grid;grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);gap:14px;padding:9px 0;border-bottom:1px solid #e1e9ed}
.tdsops.tdsops-rsvp .tdsops-review-row:last-child{border-bottom:0}
.tdsops.tdsops-rsvp .tdsops-review-row dt{font-weight:800;color:#233c4b}
.tdsops.tdsops-rsvp .tdsops-review-row dd{margin:0;color:#526774;overflow-wrap:anywhere}
.tdsops.tdsops-rsvp .tdsops-review-attendee-list{display:grid;gap:14px}
.tdsops.tdsops-rsvp .tdsops-review-attendee{padding:18px;border:1px solid #d7e2e8;border-radius:12px;background:#fff}
.tdsops.tdsops-rsvp .tdsops-review-attendee header{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.tdsops.tdsops-rsvp .tdsops-review-attendee header span{color:var(--tds-blue);font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.tdsops.tdsops-rsvp .tdsops-review-attendee header h4{margin:0;color:var(--tds-navy);font-size:20px}
.tdsops.tdsops-rsvp .tdsops-review-rentals{margin-top:14px;padding-top:14px;border-top:1px solid #e1e9ed}
.tdsops.tdsops-rsvp .tdsops-review-rentals strong{color:#233c4b}
.tdsops.tdsops-rsvp .tdsops-review-rentals ul{margin:8px 0 0 20px;color:#526774}
.tdsops.tdsops-rsvp .tdsops-review-rentals p{margin:7px 0 0;color:#71818a}
@media(max-width:600px){.tdsops.tdsops-rsvp .tdsops-review-row{grid-template-columns:1fr;gap:3px}.tdsops.tdsops-rsvp .tdsops-review-attendee header{align-items:flex-start;flex-direction:column;gap:3px}}

/* 0.21.8 live RSVP availability state */
.tdsops.tdsops-rsvp .tds-rsvp-availability-message{
  margin:24px 0 0;
  padding:18px 20px;
  border:1px solid #d7a24b;
  border-left:5px solid #d88913;
  border-radius:12px;
  background:#fff7e7;
  color:#4e3914;
  font-weight:750;
  line-height:1.5;
}
.tdsops.tdsops-rsvp .tds-rsvp-availability-message[hidden]{display:none!important}

/* 0.21.9 event-first RSVP flow */
.tdsops.tdsops-rsvp .tds-rsvp-event-first{grid-template-columns:minmax(0,1fr)}
.tdsops.tdsops-rsvp .tds-rsvp-event-first > label,
.tdsops.tdsops-rsvp .tds-rsvp-event-first > .tds-rsvp-event-summary,
.tdsops.tdsops-rsvp .tds-rsvp-contact-fields{width:100%;max-width:100%}
.tdsops.tdsops-rsvp .tds-rsvp-contact-fields{margin-top:22px;padding-top:24px;border-top:1px solid var(--tds-line)}
.tdsops.tdsops-rsvp .tds-rsvp-contact-fields[hidden]{display:none!important}
.tdsops.tdsops-rsvp .tds-panel-subtitle{margin:0 0 20px}
.tdsops.tdsops-rsvp .tds-panel-subtitle span{display:block;margin-bottom:6px;color:var(--tds-blue);font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.tdsops.tdsops-rsvp .tds-panel-subtitle h3{margin:0;color:var(--tds-navy)}
.tdsops.tdsops-rsvp [data-rsvp-next="attendees"]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}

/* 0.22 RSVP two-level header system
   Step 1 retains the approved promotional introduction. Later steps replace it
   with a compact, contextual working header and use the full task width. */
.tdsops.tdsops-rsvp .tds-rsvp-working-header{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:100%;
  padding:20px 24px;
  border:1px solid #d7e2e8;
  border-radius:16px;
  background:#ffffff;
  box-shadow:0 10px 30px rgba(20,45,63,.06);
}
.tdsops.tdsops-rsvp .tds-rsvp-working-header[hidden]{display:none!important}
.tdsops.tdsops-rsvp .tds-rsvp-working-header h2{
  margin:4px 0 5px!important;
  color:var(--tds-navy)!important;
  font-size:clamp(27px,3vw,38px)!important;
  line-height:1.05!important;
  letter-spacing:-.03em!important;
}
.tdsops.tdsops-rsvp .tds-rsvp-working-header p{margin:0;color:#60727e}
.tdsops.tdsops-rsvp .tds-rsvp-working-context{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  min-width:220px;
  text-align:right;
}
.tdsops.tdsops-rsvp .tds-rsvp-working-context strong{color:#17384a;font-size:16px}
.tdsops.tdsops-rsvp .tds-rsvp-working-context span{color:#0b78c8;font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-launch,
.tdsops.tdsops-rsvp[data-rsvp-step="review"] .tds-rsvp-launch{
  grid-template-columns:minmax(0,1fr);
  gap:24px;
}
.tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-card,
.tdsops.tdsops-rsvp[data-rsvp-step="review"] .tds-rsvp-card{max-width:none;width:100%}
.tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-card>.tds-card-eyebrow,
.tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-card>h2,
.tdsops.tdsops-rsvp[data-rsvp-step="attendees"] .tds-rsvp-card>p,
.tdsops.tdsops-rsvp[data-rsvp-step="review"] .tds-rsvp-card>.tds-card-eyebrow,
.tdsops.tdsops-rsvp[data-rsvp-step="review"] .tds-rsvp-card>h2,
.tdsops.tdsops-rsvp[data-rsvp-step="review"] .tds-rsvp-card>p{display:none}
@media(max-width:700px){
  .tdsops.tdsops-rsvp .tds-rsvp-working-header{
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    padding:17px 16px;
  }
  .tdsops.tdsops-rsvp .tds-rsvp-working-context{
    align-items:flex-start;
    min-width:0;
    text-align:left;
  }
}

/* 0.23 RSVP personalization and guided-dive notice */
.tdsops.tdsops-rsvp .tds-personalized-heading{max-width:18ch}
.tdsops.tdsops-rsvp .tdsops-dm-notice[hidden],
.tdsops.tdsops-rsvp .tdsops-review-dm-notice[hidden]{display:none!important}

/* 0.30 Stable cylinder control layout */
.tdsops.tdsops-rsvp .tdsops-cylinder-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:end}
.tdsops.tdsops-rsvp .tdsops-cylinder-primary>label,.tdsops.tdsops-rsvp .tdsops-cylinder-conditional>label{min-width:0}
.tdsops.tdsops-rsvp .tdsops-cylinder-conditional{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:14px}
.tdsops.tdsops-rsvp .tdsops-cylinder-warning{width:100%;box-sizing:border-box}
@media(max-width:760px){.tdsops.tdsops-rsvp .tdsops-cylinder-primary{grid-template-columns:minmax(0,1fr)}}

/* 0.40.2 Rental Operations public request page
   The general gear request deliberately reuses the locked RSVP public shell.
   These selectors only describe its unique request-item cards. */
body:has(.tdsops-rental-public) :where(.entry-title,.page-title,.wp-block-post-title){display:none!important}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-launch-points>div{grid-template-columns:minmax(0,1fr);gap:6px}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-card{width:100%;min-width:0}
.tdsops.tdsops-rsvp.tdsops-rental-public .tdsops-rental-request-form{display:grid;gap:20px}
.tdsops.tdsops-rsvp.tdsops-rental-public .tdsops-rsvp-panel{display:block;border:1px solid var(--tds-line,#d7e2e9);border-radius:18px;background:#fff}
.tdsops.tdsops-rsvp.tdsops-rental-public .tdsops-rental-grid{align-items:stretch}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-item{display:flex;flex-direction:column;gap:16px;min-width:0;padding:20px;border:1px solid var(--tds-line,#d7e2e9);border-radius:16px;background:#f8fbfd}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-toggle{margin:0;padding:0;border:0;background:transparent;font-size:18px;font-weight:850;color:var(--tds-navy,#10275d)}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-toggle span{line-height:1.2}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-item .tdsops-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-item .tdsops-grid>label:only-child{grid-column:1/-1}
.tdsops.tdsops-rsvp.tdsops-rental-public .tds-alert{margin:18px 0}
@media (max-width:760px){
  .tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-item{padding:16px}
  .tdsops.tdsops-rsvp.tdsops-rental-public .tds-rental-request-item .tdsops-grid{grid-template-columns:minmax(0,1fr)}
}

/* 0.40.3 canonical gear schema */
.tdsops-rental-public .tds-request-line{background:rgba(255,255,255,.96)}
.tdsops-rental-public .tds-cylinder-notice{font-size:.92rem}
