*{box-sizing:border-box}

:root{
  color-scheme:dark;
  --bg:#080808;
  --bg-soft:#101010;
  --bg-elev:#111111;
  --card:rgba(255,255,255,.055);
  --surface:rgba(255,255,255,.075);
  --text:#f7f4ee;
  --muted:#bcb7ae;
  --line:rgba(255,255,255,.14);
  --line-strong:rgba(255,255,255,.24);
  --accent:#c48b42;
  --accent2:#efc37d;
  --max:1180px;
  --shadow:0 30px 75px rgba(0,0,0,.35);
  --page-bg:radial-gradient(circle at top,rgba(196,139,66,.08),transparent 34rem),linear-gradient(180deg,#070707 0%,#0c0c0c 48%,#070707 100%);
}

@media(prefers-color-scheme:light){
  :root{
    color-scheme:light;
    --bg:#ead9c3;
    --bg-soft:#f4e9da;
    --bg-elev:#fffaf2;
    --card:rgba(255,250,242,.83);
    --surface:rgba(255,248,236,.95);
    --text:#2b1b13;
    --muted:#6f5a4c;
    --line:rgba(79,45,29,.16);
    --line-strong:rgba(79,45,29,.28);
    --accent:#a14f2b;
    --accent2:#71391f;
    --shadow:0 26px 60px rgba(83,50,29,.12);
    --page-bg:radial-gradient(circle at 50% -5rem,rgba(154,75,40,.16),transparent 32rem),linear-gradient(180deg,#f7ecdd 0%,#ead9c3 48%,#e5d0b6 100%);
  }
}

html{scroll-behavior:smooth;max-width:100%;overflow-x:clip}
body{margin:0;max-width:100%;overflow-x:clip;background:var(--page-bg);color:var(--text);font-family:"Inter",system-ui,sans-serif;line-height:1.65}
body.modal-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
img,iframe{max-width:100%}

.stage-glow{position:fixed;width:28rem;height:28rem;border-radius:50%;filter:blur(130px);opacity:.08;pointer-events:none;z-index:-1;background:var(--accent)}
.glow-one{top:6rem;left:-12rem}.glow-two{top:55vh;right:-14rem}

.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:.74rem;font-weight:700;color:var(--accent2)}
h1,h2,h3{font-family:"Bebas Neue",Impact,sans-serif;letter-spacing:.035em;line-height:.96;margin:0}
h1{font-size:clamp(4rem,8vw,7.4rem);margin:.7rem 0 1rem}h2{font-size:clamp(3rem,6vw,5.2rem);margin:.55rem 0 1.15rem}h3{font-size:2.1rem;margin:.4rem 0 .6rem}

.hero{padding:4rem 1.2rem 5rem;border-bottom:1px solid var(--line)}
.hero-inner{width:min(100%,var(--max));margin:0 auto;text-align:center;min-width:0}
.brand-logo{width:min(82vw,390px);display:block;margin:0 auto 2rem;border-radius:18px}
.logo-blend{background:transparent}
@media(prefers-color-scheme:light){.logo-blend{mix-blend-mode:multiply}}
@media(prefers-color-scheme:dark){.logo-blend{filter:invert(1);mix-blend-mode:screen}}

.hero-photo-shell,.feature-image{border:1px solid var(--line);border-radius:28px;overflow:hidden;background:var(--bg-elev);box-shadow:var(--shadow)}
.hero-photo{width:100%;height:auto;display:block}.hero-photo-shell{width:min(100%,760px);margin:0 auto 2.4rem}.hero-content{max-width:760px;margin:0 auto;min-width:0}
.hero-copy,.section-heading p,.lead-copy,.booking-content>p,.cta-card p,.modal-copy{color:var(--muted);max-width:720px}.hero-copy{font-size:1.06rem;margin:0 auto 1.7rem}
.hero-actions,.share-actions,.section-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:.85rem}

.btn{min-height:50px;padding:.85rem 1.4rem;border-radius:999px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;transition:.18s ease}
.btn:hover{transform:translateY(-2px)}.btn-primary{color:#0a0a0a;background:linear-gradient(135deg,var(--accent2),var(--accent))}.btn-secondary{background:var(--surface);border-color:var(--line-strong)}.btn-ghost{background:transparent;border-color:var(--line);color:var(--muted)}
.link-button{appearance:none;border:0;background:none;padding:0;color:inherit;cursor:pointer;font:inherit}.link-button:hover{color:var(--accent2)}

.quick-links{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem 1.2rem;margin-top:1.6rem;color:var(--muted);font-size:.9rem}.quick-links a:hover,.footer-credit a:hover{color:var(--accent2)}
.section{width:min(calc(100% - 2rem),var(--max));margin:0 auto;padding:6rem 0;min-width:0}.section-heading{text-align:center;max-width:760px;margin:0 auto 2.8rem}.section-heading p{margin:.7rem auto 0}
.feature-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:center}.feature-grid>*{min-width:0}.feature-image img{display:block;width:100%;height:auto}.single-art{aspect-ratio:1/1;object-fit:cover}.feature-copy p{color:var(--muted)}.about-copy .about-lead{font-family:"Libre Baskerville",serif;font-size:1.05rem;color:var(--text)}

.stream-list,.social-grid,.tip-grid{display:grid;grid-template-columns:1fr;gap:1rem}.stream-list{margin-top:1.4rem}
.platform-card,.social-card,.tip-card,.merch-option{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:1.05rem 1.15rem;transition:.18s ease;min-width:0}.platform-card:hover,.social-card:hover,.tip-card:hover,.merch-option:hover{transform:translateY(-3px);border-color:rgba(161,79,43,.55);background:var(--surface)}
.platform-card span,.social-card span,.tip-card span,.merch-option span{display:block;color:var(--accent2);font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;font-weight:700}.tip-card small{display:block;margin-top:.35rem;color:var(--muted)}
.video-shell{aspect-ratio:16/9;margin-top:2.4rem;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:#000}.video-shell iframe{width:100%;height:100%;border:0}

.shows-section{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.shows-list{display:grid;gap:1.25rem}.shows-empty{text-align:center;border:1px solid var(--line);border-radius:24px;padding:2.5rem 1.4rem;background:var(--card)}.shows-empty p{color:var(--muted);max-width:620px;margin:.6rem auto 0}
.show-card{display:grid;gap:1rem;padding:1.15rem;border:1px solid var(--line);border-radius:24px;background:var(--card);box-shadow:var(--shadow);min-width:0}.show-art,.show-art-fallback{width:100%;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--bg-elev)}.show-art{aspect-ratio:auto}.show-art img{display:block;width:100%;height:auto;object-fit:contain}.show-art-fallback{aspect-ratio:16/10;display:grid;place-items:center;text-align:center;padding:1.2rem;background:radial-gradient(circle at 50% 20%,rgba(161,79,43,.16),transparent 65%),linear-gradient(145deg,var(--bg-elev),var(--bg))}.show-art-fallback img{width:min(62%,190px);height:auto;border-radius:14px}.show-art-fallback span{display:block;margin-top:.8rem;color:var(--accent2);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.show-main,.show-info{min-width:0}.show-top{display:grid;grid-template-columns:74px minmax(0,1fr);gap:1rem;align-items:start}.show-date{border-right:1px solid var(--line);text-align:center;padding-right:.85rem}.show-date .month{display:block;color:var(--accent2);font-size:.75rem;font-weight:700;letter-spacing:.15em}.show-date .day{display:block;font-family:"Bebas Neue",Impact,sans-serif;font-size:3rem;line-height:1}.show-info h3{font-size:1.8rem;line-height:1;overflow-wrap:anywhere}.show-meta,.show-address{color:var(--muted);font-size:.92rem;overflow-wrap:anywhere}.show-address{margin-top:.15rem}
.show-action-wrap{margin-top:.25rem}.show-actions{display:grid;gap:.7rem;justify-content:center}.show-actions a,.show-actions button,.calendar-options a,.calendar-options button{min-width:0;min-height:48px;width:100%;display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:.72rem .9rem;border:1px solid var(--line);border-radius:999px;font-size:.84rem;line-height:1.2;font-weight:700;color:inherit;background:transparent;cursor:pointer}.show-actions a:hover,.show-actions button:hover,.calendar-options a:hover,.calendar-options button:hover{border-color:rgba(161,79,43,.58);color:var(--accent2);background:rgba(161,79,43,.06)}
.calendar-options{display:grid;gap:.7rem;margin-top:.7rem;padding:.8rem;border:1px solid rgba(161,79,43,.25);border-radius:18px;background:rgba(161,79,43,.06)}.calendar-options[hidden]{display:none}.calendar-options a,.calendar-options button{border-color:rgba(161,79,43,.32);background:rgba(161,79,43,.06)}

.merch-card,.cta-card,.share-card{border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,var(--card),rgba(255,255,255,.015));box-shadow:var(--shadow);padding:clamp(1.4rem,4vw,2.6rem)}.merch-intro{max-width:760px;margin:0 auto 2rem;text-align:center}.merch-intro p,.merch-note{color:var(--muted)}.merch-grid{display:grid;grid-template-columns:1fr;gap:1rem}.merch-option{padding:1rem}.merch-preview{width:100%;aspect-ratio:1/1;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg-soft);margin-bottom:.9rem}.merch-preview img{width:100%;height:100%;object-fit:cover;transform:scale(1.18)}.merch-preview--black-shirt img{object-position:17% 22%}.merch-preview--black-hat img{object-position:69% 18%}.merch-preview--black-koozie img{object-position:49% 72%}.merch-preview--tan-shirt img{object-position:18% 43%}.merch-preview--tan-hat img{object-position:60% 20%}.merch-preview--tan-koozie img{object-position:87% 30%}.merch-option strong{display:block;font-size:1.15rem;line-height:1.25;margin:.15rem 0}.merch-note{text-align:center;margin:1.2rem 0}.section-cta{margin-top:1rem}
.cta-card{display:grid;grid-template-columns:minmax(0,1fr);gap:1.4rem;align-items:center}.cta-card p{margin-bottom:0}

.live-photo img{display:block;width:100%;height:auto;max-height:none!important;object-fit:cover!important}.live-photo{padding:0!important}.share-card{text-align:center}.share-mark{display:block!important;width:84px;height:84px;object-fit:contain;margin:0 auto 1rem!important;border-radius:0!important;background:transparent!important}.share-actions{margin-top:1.3rem}

.booking-form,.fan-form,.contact-form{display:grid;gap:1rem}.field-row{display:grid;grid-template-columns:1fr;gap:1rem}label{display:grid;gap:.45rem;font-size:.84rem;font-weight:700;color:var(--text)}input,select,textarea{width:100%;padding:.9rem 1rem;border:1px solid var(--line);border-radius:13px;background:var(--bg-elev);color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:rgba(161,79,43,.72);box-shadow:0 0 0 3px rgba(161,79,43,.1)}textarea{resize:vertical}.check-row{grid-template-columns:auto 1fr;align-items:start;font-weight:500;color:var(--muted)}.check-row input{width:18px;height:18px;margin-top:.15rem}.form-submit{width:100%;border:0}.form-status{min-height:1.2rem;margin:0;color:var(--accent2);font-size:.9rem}.form-status.success{color:#56825a}.form-status.error{color:#a9453e}.optional{color:var(--muted);font-size:.72rem;font-weight:500;margin-left:.25rem}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

.form-modal{width:min(720px,calc(100% - 1.5rem));max-height:min(90dvh,900px);padding:0;border:0;border-radius:26px;background:transparent;color:var(--text);overflow:visible}.form-modal::backdrop{background:rgba(0,0,0,.66);backdrop-filter:blur(8px)}.modal-shell{position:relative;max-height:min(90dvh,900px);overflow:auto;padding:clamp(1.35rem,4vw,2.5rem);border:1px solid var(--line);border-radius:26px;background:var(--bg-elev);box-shadow:0 30px 90px rgba(0,0,0,.35)}.modal-shell h2{font-size:clamp(2.7rem,7vw,4.7rem)}.modal-copy{margin-top:-.35rem}.modal-close{position:sticky;float:right;top:0;z-index:3;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:1.7rem;line-height:1;cursor:pointer}.calendar-native-shell{text-align:center}.chrome-calendar-date{display:block;margin:1.4rem auto .9rem;padding:1.2rem;border:1px solid var(--line-strong);border-radius:18px;background:var(--card);font-family:"Bebas Neue",Impact,sans-serif;font-size:clamp(2.2rem,9vw,4rem);line-height:1.05;letter-spacing:.03em;-webkit-touch-callout:default;user-select:text}.chrome-calendar-details{color:var(--muted);margin:.6rem auto 0;max-width:540px}

footer{text-align:center;padding:2.5rem 1rem 7rem;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.footer-logo{display:block;width:150px;margin:0 auto .4rem;border-radius:0}.footer-credit{margin:.3rem 0 0}.footer-credit a{color:var(--text);font-weight:700}
.mobile-dock{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:50;width:min(calc(100% - 24px),520px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:7px;border:1px solid var(--line);border-radius:999px;background:rgba(13,13,13,.88);backdrop-filter:blur(18px);box-shadow:0 14px 45px rgba(0,0,0,.35)}.mobile-dock a,.mobile-dock button{appearance:none;border:0;background:transparent;color:inherit;text-align:center;padding:.72rem .35rem;border-radius:999px;font-size:.78rem;font-weight:700;cursor:pointer}.mobile-dock a:hover,.mobile-dock button:hover{background:var(--surface);color:var(--accent2)}
@media(prefers-color-scheme:light){.mobile-dock{background:rgba(255,250,242,.92)}}

@media(min-width:720px){.stream-list{grid-template-columns:1fr 1fr}.social-grid,.tip-grid{grid-template-columns:repeat(2,1fr)}.field-row{grid-template-columns:1fr 1fr}.merch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cta-card{grid-template-columns:minmax(0,1fr) auto}.cta-card .btn{min-width:220px}}

@media(min-width:900px){
  .hero{padding:5rem 1.5rem 6rem}.hero-inner{display:grid;grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);grid-template-areas:"logo photo" "content photo";column-gap:4.5rem;align-items:center;text-align:left}.brand-logo{grid-area:logo;width:min(100%,360px);margin:0 0 1.7rem;justify-self:start}.hero-photo-shell{grid-area:photo;width:100%;margin:0;border-radius:30px}.hero-content{grid-area:content;margin:0;max-width:580px}.hero-copy{margin:0 0 1.7rem}.hero-actions,.quick-links{justify-content:flex-start}
  .feature-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,6vw,5.5rem)}.image-left .feature-image{order:1}.image-left .feature-copy{order:2}.image-right .feature-copy{order:1}.image-right .feature-image{order:2}.feature-image{align-self:center;border-radius:30px}.feature-image img{width:100%;height:auto;max-height:760px;object-fit:contain;object-position:center}.single-art-shell img{max-height:none}.booking-photo img{max-height:820px}.live-photo img{max-height:none!important;width:100%!important;height:auto!important;object-fit:cover!important}.music-section .video-shell{width:min(88%,980px);margin:3.2rem auto 0}
  .show-card.has-image{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"art art main" "actions actions actions";align-items:start;gap:1.3rem 1.5rem}.show-card.has-image .show-art,.show-card.has-image .show-art-fallback{grid-area:art}.show-main{grid-area:main}.show-action-wrap{grid-area:actions;margin-top:.15rem}.show-top{grid-template-columns:86px minmax(0,1fr);gap:1.15rem}.show-actions{grid-template-columns:repeat(var(--action-count,4),minmax(0,1fr))}.calendar-options{grid-template-columns:repeat(2,minmax(0,1fr));max-width:480px;margin:.8rem auto 0}.merch-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:899px){.hero{padding:3rem 1rem 4rem}.brand-logo{width:min(80vw,330px);margin-bottom:1.6rem}.hero-photo-shell{border-radius:22px;margin-bottom:2rem}}
@media(max-width:760px){.show-actions,.calendar-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.section{padding:4.5rem 0}.hero-actions .btn{width:100%}.show-top{grid-template-columns:64px minmax(0,1fr)}.show-date .day{font-size:2.4rem}.show-actions a,.show-actions button,.calendar-options a,.calendar-options button{font-size:.78rem;padding:.68rem .55rem}.mobile-dock a,.mobile-dock button{font-size:.74rem;padding:.68rem .2rem}}
/* Pre-cropped merch previews: keep each product cleanly framed. */
.merch-preview img{transform:none;object-fit:cover;object-position:center}

/* ============================================================
   EVENT / CALENDAR / MOBILE FORM REFINEMENTS
   ============================================================ */

/* Calendar chooser is now a modal opened by the single event-card CTA. */
.calendar-choice-shell{text-align:left}
.calendar-event-summary{margin:.15rem 0 1.25rem;color:var(--muted)}
.calendar-provider-grid{display:grid;grid-template-columns:1fr;gap:.8rem}
.calendar-provider-card{
  width:100%;
  min-width:0;
  min-height:82px;
  padding:1rem 1.1rem;
  border:1px solid var(--line-strong);
  border-radius:18px;
  background:var(--card);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:.18rem;
  transition:.18s ease;
}
.calendar-provider-card:hover{transform:translateY(-2px);border-color:rgba(161,79,43,.58);background:var(--surface)}
.calendar-provider-card strong{font-size:1.02rem}
.calendar-provider-card span{color:var(--muted);font-size:.82rem;font-weight:500}
.calendar-provider-card--press{cursor:default;min-height:0}
.calendar-provider-card--press:hover{transform:none}
.calendar-press-date{
  display:block;
  width:100%;
  margin-top:.8rem;
  padding:1.15rem .85rem;
  border:1px solid var(--line-strong);
  border-radius:15px;
  background:var(--bg-soft);
  color:var(--text);
  text-align:center;
  font-family:"Bebas Neue",Impact,sans-serif;
  font-size:clamp(1.9rem,8vw,3.5rem);
  line-height:1.08;
  letter-spacing:.02em;
  -webkit-touch-callout:default;
  -webkit-user-select:text;
  user-select:text;
  touch-action:manipulation;
}
.calendar-modal-help{margin:.9rem 0 0;color:var(--muted);font-size:.82rem;text-align:center}

/* Keep every form control constrained to its modal column on mobile,
   including iOS/Chrome date inputs with intrinsic sizing. */
.form-modal form,
.form-modal .field-row,
.form-modal label{min-width:0;max-width:100%}
.form-modal label{width:100%}
.form-modal input:not([type="checkbox"]),
.form-modal select,
.form-modal textarea{
  display:block;
  box-sizing:border-box;
  inline-size:100%;
  width:100%;
  min-inline-size:0;
  min-width:0;
  max-inline-size:100%;
  max-width:100%;
}
.form-modal input[type="date"]{
  inline-size:100%;
  width:100%;
  min-inline-size:0;
  min-width:0;
  max-inline-size:100%;
  max-width:100%;
  min-height:54px;
}
.form-modal input[type="date"]::-webkit-date-and-time-value{text-align:left}

/* Event date block: compact on mobile, calendar-card treatment on desktop. */
.show-main{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:1rem;
  align-items:start;
  min-width:0;
}
.show-date-card{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:16px;
  background:linear-gradient(180deg,var(--surface),var(--card));
  text-align:center;
  min-width:0;
}
.show-date-cap{
  display:block;
  padding:.35rem .25rem;
  background:linear-gradient(135deg,var(--accent2),var(--accent));
  color:#fff8ef;
  font-size:.58rem;
  line-height:1;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:800;
}
.show-date{
  display:block;
  padding:.55rem .25rem .6rem;
  border:0;
  text-align:center;
}
.show-date .month{display:block;color:var(--accent2);font-size:.68rem;font-weight:800;letter-spacing:.13em}
.show-date .day{display:block;font-family:"Bebas Neue",Impact,sans-serif;font-size:2.35rem;line-height:.9;color:var(--text)}
.show-date .weekday{display:none}
.show-info{align-self:center;min-width:0}

@media(min-width:720px){
  .calendar-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-provider-card--press{grid-column:1 / -1}
}

@media(min-width:900px){
  .show-main{
    display:flex;
    flex-direction:column;
    gap:1rem;
    align-self:stretch;
  }

  .show-date-card{
    width:100%;
    border-radius:20px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  }

  .show-date-card::before,
  .show-date-card::after{
    content:"";
    position:absolute;
    top:.62rem;
    width:8px;
    height:18px;
    border-radius:999px;
    background:var(--text);
    opacity:.55;
    z-index:2;
  }
  .show-date-card::before{left:22%}
  .show-date-card::after{right:22%}

  .show-date-cap{
    padding:.72rem .6rem .6rem;
    font-size:.68rem;
    letter-spacing:.16em;
  }

  .show-date{
    padding:.9rem .75rem 1rem;
    display:grid;
    grid-template-columns:auto auto;
    grid-template-areas:
      "month day"
      "weekday day";
    justify-content:center;
    align-items:center;
    column-gap:.55rem;
  }

  .show-date .month{
    grid-area:month;
    align-self:end;
    font-size:.9rem;
    line-height:1;
    text-align:right;
  }

  .show-date .day{
    grid-area:day;
    font-size:4.6rem;
    line-height:.78;
  }

  .show-date .weekday{
    grid-area:weekday;
    display:block;
    align-self:start;
    color:var(--muted);
    font-size:.68rem;
    line-height:1;
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:800;
    text-align:right;
    margin-top:.2rem;
  }

  .show-info{
    width:100%;
    align-self:stretch;
    padding:.2rem .15rem 0;
  }

  .show-info h3{font-size:2rem;margin-bottom:.7rem}
  .show-meta,.show-address{font-size:.95rem;line-height:1.55}

  /* No inline provider picker under the event card anymore. */
  .show-action-wrap .calendar-options{display:none!important}
}

@media(max-width:719px){
  .form-modal{width:min(100% - 1rem,720px)}
  .modal-shell{padding:1.2rem 1rem 1.35rem}
  .form-modal .field-row{grid-template-columns:minmax(0,1fr)!important}
}

@media(max-width:520px){
  .show-main{grid-template-columns:64px minmax(0,1fr)}
  .show-date .day{font-size:2.2rem}
  .show-date-cap{font-size:.52rem}
}


/* ============================================================
   FINAL FORM / CALENDAR / EVENT DATE FIXES
   ============================================================ */

/* Normalize every modal form control, including native date inputs. */
.form-modal .field-row{
  width:100%;
  min-width:0;
}
.form-modal .field-row > label,
.form-modal > label,
.form-modal form > label{
  min-width:0;
  width:100%;
  max-width:100%;
}
.form-modal input:not([type="checkbox"]),
.form-modal select,
.form-modal textarea{
  display:block;
  box-sizing:border-box;
  inline-size:100%!important;
  width:100%!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:100%!important;
  max-width:100%!important;
}
.form-modal input[type="date"]{
  inline-size:100%!important;
  width:100%!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:100%!important;
  max-width:100%!important;
  height:auto;
  min-height:54px;
  overflow:hidden;
}

/* Calendar chooser intentionally has only Google + Apple. */
.calendar-provider-grid{
  grid-template-columns:1fr;
}
@media(min-width:720px){
  .calendar-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Desktop event calendar tile: same vertical layout as mobile, just taller. */
@media(min-width:900px){
  .show-main{
    display:flex;
    flex-direction:column;
    gap:1rem;
    align-self:stretch;
  }

  .show-date-card{
    width:100%;
    min-height:220px;
    display:flex;
    flex-direction:column;
    border-radius:20px;
  }

  .show-date-cap{
    padding:.82rem .6rem;
    font-size:.72rem;
    letter-spacing:.16em;
  }

  .show-date{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:1rem .75rem 1.15rem;
  }

  .show-date .month{
    font-size:1rem;
    line-height:1;
    text-align:center;
    margin-bottom:.35rem;
  }

  .show-date .day{
    font-size:5.4rem;
    line-height:.82;
  }

  .show-date .weekday{
    display:block;
    margin-top:.55rem;
    color:var(--muted);
    font-size:.72rem;
    line-height:1;
    letter-spacing:.12em;
    text-transform:uppercase;
    font-weight:800;
    text-align:center;
  }
}

/* ============================================================
   SHOW CALENDAR SUBSCRIPTION
   ============================================================ */
.show-calendar-follow{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.55rem;
  margin-top:1.25rem;
}
.show-calendar-follow .btn{min-width:220px}
.show-calendar-follow span{
  color:var(--muted);
  font-size:.82rem;
  line-height:1.45;
  max-width:520px;
}
.calendar-provider-card.is-disabled,
.calendar-provider-card[aria-disabled="true"]{
  opacity:.5;
  cursor:not-allowed;
  transform:none!important;
}

@media(min-width:720px){
  .show-calendar-follow{margin-top:1.4rem}
}

/* ============================================================
   FINAL MOBILE DATE INPUT + DESKTOP SHOW DATE TILE FIXES
   ============================================================ */

/* iOS Chrome can give input[type=date] an intrinsic width that ignores the
   grid track. The shell owns the visible border and clips the native control,
   so it can never extend beyond the same width as the other fields. */
.date-field-label{
  min-width:0!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden;
}
.date-input-shell{
  display:block;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--bg-elev);
  box-sizing:border-box;
}
.date-input-shell:focus-within{
  border-color:rgba(161,79,43,.72);
  box-shadow:0 0 0 3px rgba(161,79,43,.1);
}
.form-modal .date-input-shell input[type="date"]{
  display:block!important;
  width:100%!important;
  inline-size:100%!important;
  min-width:0!important;
  min-inline-size:0!important;
  max-width:100%!important;
  max-inline-size:100%!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:.9rem 1rem!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
  -webkit-appearance:none;
  appearance:none;
}
.form-modal .date-input-shell input[type="date"]:focus{
  border:0!important;
  box-shadow:none!important;
}

/* Desktop calendar tile: narrower/taller calendar shape with the month
   centered above the date, matching the user's marked-up layout. */
@media(min-width:900px){
  .show-date-card{
    width:min(72%,230px)!important;
    min-height:205px!important;
    margin-inline:auto!important;
    align-self:center!important;
    border-radius:18px!important;
  }

  .show-date-card::before,
  .show-date-card::after{
    display:none!important;
  }

  .show-date-cap{
    width:100%;
    padding:.72rem .45rem!important;
    font-size:.68rem!important;
    letter-spacing:.15em!important;
  }

  .show-date{
    flex:1!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    padding:.9rem .5rem 1rem!important;
  }

  .show-date .month{
    display:block!important;
    margin:0 0 .35rem!important;
    font-size:1.05rem!important;
    line-height:1!important;
    text-align:center!important;
    letter-spacing:.14em!important;
  }

  .show-date .day{
    display:block!important;
    font-size:5.25rem!important;
    line-height:.8!important;
    text-align:center!important;
  }

  .show-date .weekday{
    display:block!important;
    margin-top:.55rem!important;
    color:var(--muted)!important;
    font-size:.7rem!important;
    line-height:1!important;
    letter-spacing:.12em!important;
    text-align:center!important;
    text-transform:uppercase!important;
    font-weight:800!important;
  }
}

/* ============================================================
   CALENDAR PROVIDER BRANDING + DESKTOP FULL DATE LABELS
   ============================================================ */
.calendar-provider-card{
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:1rem!important;
  min-height:88px!important;
  padding:1rem 1.15rem!important;
}
.calendar-provider-icon{
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:block;
}
.calendar-provider-icon--apple{
  width:31px;
  height:38px;
  color:var(--text);
}
.calendar-provider-copy{
  min-width:0;
  display:flex!important;
  flex-direction:column;
  gap:.14rem;
  text-align:left;
}
.calendar-provider-copy strong{
  display:block;
  color:var(--text);
  font-size:1.04rem;
  line-height:1.15;
}
.calendar-provider-copy>span{
  display:block;
  color:var(--muted)!important;
  font-size:.8rem!important;
  line-height:1.3;
  font-weight:500!important;
}

.date-full{display:none}
.date-short{display:inline}

@media(min-width:900px){
  .show-date .month,
  .show-date .weekday{
    width:100%;
    display:block!important;
    text-align:center!important;
    align-self:center!important;
  }
  .show-date .month{
    margin:0 0 .38rem!important;
  }
  .show-date .weekday{
    margin:.6rem 0 0!important;
  }
  .show-date .day{
    width:100%;
    text-align:center!important;
    align-self:center!important;
  }
  .show-date .date-short{display:none}
  .show-date .date-full{display:inline}
}

@media(max-width:520px){
  .calendar-provider-card{
    gap:.85rem!important;
    min-height:82px!important;
    padding:.9rem 1rem!important;
  }
  .calendar-provider-icon{width:30px;height:30px}
  .calendar-provider-icon--apple{width:28px;height:34px}
  .calendar-provider-copy strong{font-size:1rem}
  .calendar-provider-copy>span{font-size:.76rem!important}
}
