/* Space for translated copy while retaining Utopia's existing colours and cards. */
.utopia-header-controls { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.utopia-languages { position:relative; color:#fff; font:700 13px/1.4 var(--font-base, sans-serif); text-transform:none; }
.utopia-languages summary { display:flex; align-items:center; gap:5px; min-height:44px; padding:8px 10px; border:1px solid #ffffff80; border-radius:8px; cursor:pointer; list-style:none; white-space:nowrap; }
.utopia-languages summary::-webkit-details-marker { display:none; }
.utopia-languages summary:focus-visible,.utopia-languages a:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.utopia-languages ul { position:absolute; right:0; top:calc(100% + 8px); min-width:150px; margin:0; padding:6px; list-style:none; border-radius:10px; background:#b91c65; box-shadow:0 8px 24px #0003; }
.utopia-languages a { display:block; padding:10px 12px; color:#fff; border-radius:6px; text-decoration:none; }
.utopia-languages a:hover,.utopia-languages a[aria-current] { background:#ffffff24; }
#site-header nav { gap:16px; }
#site-header .utopia-desktop-nav { margin-left:auto; }
#site-header .dropdown-menu { min-width:220px; width:max-content; max-width:min(350px,90vw); }
#site-header .dropdown-menu a { white-space:normal; line-height:1.45; }
#site-header .duo-menu-link { display:flex; gap:12px; }
#site-header .duo-menu-badge { flex-shrink:0; }
/* Use the mobile navigation before longer menu labels become crowded. */
@media(max-width:1199px) {
  #site-header .utopia-desktop-nav { display:none; }
  #site-header #menu-toggle { display:block; }
  #site-header #mobile-menu:not(.hidden) { display:block; }
  #site-header #mobile-menu { max-height:calc(100dvh - 80px); overflow-y:auto; }
}
@media(min-width:1200px) {
  #site-header .utopia-desktop-nav { display:flex; }
  #site-header #menu-toggle,#site-header #mobile-menu { display:none; }
  #site-header .utopia-desktop-nav>ul { gap:clamp(14px,2vw,28px); }
  #site-header .utopia-desktop-nav>ul>li { margin-left:0; }
}
body:not(.utopia-language-en) :is(h1,h2,h3,h4,.btn-primary,.faq-question) { overflow-wrap:break-word; hyphens:auto; }
body:is(.utopia-language-es,.utopia-language-it,.utopia-language-fr) :is(h1,h2,h3,h4,.btn-primary) { hyphens:none; }
body:not(.utopia-language-en) #home h1 { font-size:clamp(3rem,8vw,7rem); line-height:1.08; }
body.home:not(.utopia-language-en) #home h1 { font-size:clamp(3rem,6.5vw,6rem); hyphens:none; }
body.home #home h1 span { white-space:nowrap; }
body:not(.utopia-language-en) #home>div.relative { padding-top:120px; padding-bottom:48px; }
body:not(.utopia-language-en) #home { height:auto; min-height:100svh; }
body:not(.utopia-language-en) .btn-primary { white-space:normal; line-height:1.45; text-align:center; }
body:not(.utopia-language-en) #tickets .grid { align-items:stretch; }
body:not(.utopia-language-en) #tickets .p-6 { min-width:0; padding:20px; }
body:not(.utopia-language-en) #tickets h3 { min-height:2.9em; line-height:1.45; }
body:not(.utopia-language-en) .faq-question { gap:16px; }
body:not(.utopia-language-en) .faq-question svg { flex-shrink:0; }
body:not(.utopia-language-en) #ticket-modal-title { padding-inline:16px; line-height:1.4; }
body:not(.utopia-language-en) .ticket-modal-panel { max-height:calc(100dvh - 32px); overflow-y:auto; }
body:not(.utopia-language-en) #ticket-modal .btn-primary { min-height:44px; height:auto; }
body:not(.utopia-language-en) .ribbon { max-width:100%; font-size:11px; line-height:1.4; white-space:normal; }
body:not(.utopia-language-en) :is(.product-calendar-title,.ticket-type-label,.product_title) { line-height:1.3; }
body:not(.utopia-language-en) form.cart :is(select,input[type="text"]) { max-width:100% !important; min-width:0; }
/* The pool selector's original icons used a fixed offset from a one-line
   heading. Keep its arrow centered in the select when translated labels wrap. */
body:not(.utopia-language-en) .unique-pool-ticket::before,
body:not(.utopia-language-en) .unique-pool-ticket::after { display:none; }
body:not(.utopia-language-en) #unique_pool_ticket {
  padding-left:16px !important;
  padding-right:40px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 6 5-6' fill='none' stroke='%23ec4899' stroke-width='2'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 16px center !important;
}
body:not(.utopia-language-en) .woocommerce form.cart :is(button,.button) { white-space:normal; height:auto; }
body:not(.utopia-language-en) :is(.woocommerce-message,.woocommerce-info,.woocommerce-error) { overflow-wrap:anywhere; }
body:not(.utopia-language-en) #ui-datepicker-div { max-width:calc(100vw - 16px); }
body:not(.utopia-language-en) #ui-datepicker-div .ui-datepicker-title { margin-inline:2.2em; font-size:14px; }
body:not(.utopia-language-en) #ui-datepicker-div :is(.ui-datepicker-prev,.ui-datepicker-next) { overflow:hidden; }
.utopia-language-promo { border-radius:22px; overflow:hidden; background:linear-gradient(145deg,#ffdd75,#ffeeb5); color:#b91c65; padding:22px; box-sizing:border-box; }
.woocommerce div.product div.images .utopia-language-promo { background:linear-gradient(145deg,#ffdd75,#ffeeb5) !important; }
.utopia-promo-copy { min-height:360px; padding:24px 18px; border:3px dotted #df4384; border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; text-align:center; }
.utopia-promo-copy img { width:180px !important; height:auto !important; margin:0 auto 8px; filter:drop-shadow(0 1px 2px #9e285780); }
.utopia-promo-copy p { margin:0; }
.utopia-promo-heading { font-size:clamp(24px,2.4vw,36px); font-weight:800; line-height:1.25; }
.utopia-promo-detail { font-size:16px; line-height:1.5; }
body:not(.utopia-language-en) .deposit-modal__content { max-height:calc(100dvh - 32px); overflow-y:auto; }
body:not(.utopia-language-en) .deposit-modal__button { white-space:normal; }
.utopia-selected-ticket { display:none; }
.woocommerce img.utopia-language-thumbnail { background:#d82f7d !important; padding:8px !important; object-fit:contain !important; box-sizing:border-box; }
body:not(.utopia-language-en) .woocommerce-notices-wrapper:has(.cart-empty) { display:block !important; }
@media(max-width:639px) {
  #site-header nav { gap:8px; padding-inline:16px; }
  #site-header .logo { max-width:135px; object-fit:contain; }
  .utopia-header-controls { gap:4px; }
  .utopia-languages summary { padding:8px; }
  body:not(.utopia-language-en) #home h1 { font-size:clamp(2.5rem,11vw,4rem); }
  body:not(.utopia-language-en) #tickets h3 { min-height:0; }
  body:not(.utopia-language-en) :is(.product-calendar-title,.ticket-type-label) { font-size:1.2rem; }
  body:not(.utopia-language-en) #product_date2 { width:100% !important; font-size:18px !important; }
  body:not(.utopia-language-en) .woocommerce form.cart select { width:100% !important; font-size:14px; }
  .utopia-language-promo { padding:16px; }
  .utopia-promo-copy { min-height:280px; padding:16px 12px; gap:12px; }
  .utopia-promo-heading { font-size:22px; }
  .utopia-promo-detail { font-size:14px; }
  body:not(.utopia-language-en) .utopia-selected-ticket:not([hidden]) { display:block; margin:8px 0 14px; font-size:13px; line-height:1.5; color:#334155; overflow-wrap:anywhere; }
}
