/* ACE2017 customer-detail refinement, generation 25. Load after generation 24.
   Scope: existing brand, language selector, true featured products and age year.
   Product eligibility, approved prices and medical service state are not styled
   into new claims. No images, fonts or provider resources are fetched here. */

/* A memorable red-on-black wordmark; the calm tagline sits outside its plaque. */
.ace-detail-v25 .ace-brand-lockup {
  min-width: 171px;
  gap: 7px;
  padding: 1px 0 3px;
  align-items: flex-start;
}
.ace-detail-v25 .ace-brand-wordmark {
  padding: 11px 15px 12px;
  gap: 8px;
  border: 1px solid #3c252b;
  border-radius: 12px;
  background: #171719;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .065) inset, 0 4px 12px rgba(23, 23, 25, .08);
}
.ace-detail-v25 .ace-brand-name {
  color: #ff3b48;
  font-size: 38px;
  letter-spacing: .025em;
  font-weight: 700;
  line-height: 1;
}
.ace-detail-v25 .ace-brand-year {
  color: #ff3b48;
  font-size: 17px;
  letter-spacing: .09em;
  font-weight: 750;
  line-height: 1;
}
.ace-detail-v25 .ace-brand-tagline {
  padding-left: 3px;
  color: #686158;
  letter-spacing: .085em;
  font-size: 12px;
}
.ace-detail-v25 .catalog-gate-brand .ace-brand-lockup {
  min-width: 0;
  align-items: center;
}
.ace-detail-v25 .catalog-gate-brand .ace-brand-wordmark { padding: 10px 14px 11px; }

/* Changing the real form select submits through the accompanying script. */
.ace-detail-v25 #app .ace-language-picker {
  gap: 8px;
  align-items: center;
  padding: 0;
}
.ace-detail-v25 #app .ace-language-picker select {
  flex: 0 0 auto;
  width: auto;
  min-width: 102px;
  max-width: 116px;
  height: 44px;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #d8d0c4;
  border-radius: 12px;
  background: #fffefa;
  color: #51493e;
  font-size: 14px;
  line-height: 1.4;
  cursor: pointer;
}
.ace-detail-v25 #app .ace-language-picker select:focus-visible {
  outline: 3px solid var(--ace-focus);
  outline-offset: 3px;
}

/* The featured cards use their actual short public projection, not long price
   footnotes. Existing eligibility links, real images and missing-image labels
   remain truthful. Native horizontal scroll remains available below 900px. */
.ace-detail-v25 #app #home .home-featured-grid.home-carousel-track {
  gap: 16px;
  align-items: stretch;
  padding: 2px 2px 9px;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card.home-carousel-slide {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  padding: 12px;
  border: 1px solid #e7e0d6;
  border-radius: 18px;
  background: #fffefa;
  box-shadow: 0 5px 18px rgba(57, 42, 27, .035);
  text-decoration: none;
  color: #302d27;
}
.ace-detail-v25 #app #home .home-featured-grid.home-carousel-track .home-good-visual {
  height: clamp(154px, 30vw, 236px);
  flex: 0 0 auto;
  margin: 0;
  padding: 14px;
  border-radius: 13px;
  background: #f3f0e9;
  overflow: hidden;
}
.ace-detail-v25 #app #home .home-featured-grid.home-carousel-track .home-good-visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 8px;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card .s-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  flex: 1 1 auto;
  min-width: 0;
  margin: 13px 1px 2px;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card .home-featured-type {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  max-width: 100%;
  padding: 2px 8px;
  border: 1px solid #e1d7c9;
  border-radius: 7px;
  background: #f7f2e9;
  color: #756044;
  font-size: 12px;
  line-height: 1.5;
  font-weight: 550;
  overflow-wrap: anywhere;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-title, .home-featured-title) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 3.1em;
  margin: 0;
  color: #302d27;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .005em;
  overflow-wrap: anywhere;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-sub, .home-featured-spec) {
  display: block;
  min-height: 1.5em;
  margin: 0;
  color: #736b60;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-price, .home-featured-price) {
  display: block;
  width: 100%;
  margin: auto 0 0;
  padding-top: 3px;
  color: #aa1a2b;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.55;
  font-variant-numeric: tabular-nums;
  white-space: normal;
  overflow-wrap: anywhere;
}
.ace-detail-v25 #app #home .home-featured-grid .home-featured-card .home-featured-price--pending {
  color: #706250;
  font-size: 15px;
  font-weight: 550;
}
.ace-detail-v25 #app #home .home-featured-grid ~ .home-carousel-dots { display: none; }
.ace-detail-v25 #app #home .hero.v42.v43 .hero-v42-slogan { gap: 9px 17px; }
.ace-detail-v25 #app #home .hero.v42.v43 .hero-v42-slogan > * {
  padding: 0;
  font-size: 14px;
  line-height: 1.75;
  font-weight: 550;
  letter-spacing: .025em;
}
.ace-detail-v25 #app #home .ace-principles h2 { line-height: 1.5; }

/* The birth year is the primary interaction. Server-side age validity and the
   exact twentieth-birthday boundary are handled by the real form, not CSS. */
.ace-detail-v25 #app .catalog-product-age-dialog .catalog-gate-birth-year {
  max-width: 340px;
  margin-top: 24px;
}
.ace-detail-v25 #app .catalog-product-age-dialog .catalog-gate-birth-year label {
  display: block;
  margin-bottom: 9px;
  color: #66553e;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 600;
}
.ace-detail-v25 #app .catalog-product-age-dialog #gateBirthYear {
  display: block;
  width: 100%;
  min-width: 0;
  height: 70px;
  min-height: 70px;
  padding: 12px 18px;
  border: 1px solid #c9b89f;
  border-radius: 14px;
  background: #fffefa;
  color: #594730;
  font-size: 29px;
  font-weight: 550;
  line-height: 1.35;
  font-variant-numeric: tabular-nums;
  letter-spacing: .025em;
  box-shadow: 0 3px 12px rgba(88, 66, 38, .025);
}
.ace-detail-v25 #app .catalog-product-age-dialog #gateBirthYear option { font-size: 18px; }
.ace-detail-v25 #app .catalog-product-age-dialog #gateBirthYear:focus-visible {
  outline: 3px solid #99784b;
  outline-offset: 4px;
}
.ace-detail-v25 #app .catalog-product-age-dialog .catalog-gate-birth-year p {
  margin-top: 10px;
  color: #847360;
  font-size: 13px;
  line-height: 1.7;
}
.ace-detail-v25 #app .catalog-product-age-dialog #gateTwentiethBirthdayConfirmed {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
}

@media (min-width: 900px) {
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 22px 18px;
    padding: 0;
    transform: none !important;
    overflow: visible;
    scroll-snap-type: none;
  }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track[data-item-count]:not([data-item-count="1"]):not([data-item-count="2"]):not([data-item-count="3"]) {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track[data-item-count="1"] { grid-template-columns: minmax(0, 1fr); }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track[data-item-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track[data-item-count="3"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card.home-carousel-slide {
    display: flex;
    flex: none;
    width: auto;
    min-width: 0;
    padding: 13px;
    align-items: stretch;
  }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track .home-good-visual {
    height: clamp(228px, 20vw, 286px);
    padding: 20px;
  }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track .s-info { margin: 14px 2px 3px; }
  .ace-detail-v25 #app #home .home-carousel .carousel-note-mobile { display: none; }
  .ace-detail-v25 #app #home .home-carousel .carousel-note-desktop { display: inline; }
}
@media (min-width: 1200px) {
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track { gap: 26px 22px; }
}
@media (max-width: 767px) {
  .ace-detail-v25 .headrow { gap: 12px; }
  .ace-detail-v25 .ace-brand-lockup { min-width: 134px; gap: 6px; }
  .ace-detail-v25 .ace-brand-wordmark { padding: 9px 11px 10px; gap: 6px; border-radius: 11px; }
  .ace-detail-v25 .ace-brand-name { font-size: 31px; letter-spacing: .025em; }
  .ace-detail-v25 .ace-brand-year { font-size: 14px; letter-spacing: .07em; }
  .ace-detail-v25 .ace-brand-tagline { padding-left: 2px; font-size: 11px; letter-spacing: .05em; }
  .ace-detail-v25 #app .ace-language-picker { gap: 0; }
  .ace-detail-v25 #app .ace-language-picker select { min-width: 90px; max-width: 102px; font-size: 13px; }
  .ace-detail-v25 #app #home .home-featured-grid.home-carousel-track { gap: 12px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card.home-carousel-slide { flex: 0 0 calc((100% - 12px) / 2); padding: 10px; border-radius: 16px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card .s-info { gap: 6px; margin-top: 11px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-title, .home-featured-title) { font-size: 15px; line-height: 1.6; min-height: 3.2em; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card .home-featured-type { padding-inline: 6px; font-size: 11px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-sub, .home-featured-spec) { font-size: 12px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card :is(.s-price, .home-featured-price) { font-size: 17px; }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card .home-featured-price--pending { font-size: 14px; }
  .ace-detail-v25 #app .catalog-product-age-dialog .catalog-gate-birth-year { margin-top: 20px; }
  .ace-detail-v25 #app .catalog-product-age-dialog #gateBirthYear { height: 68px; min-height: 68px; font-size: 27px; }
}
@media (hover: hover) {
  .ace-detail-v25 .ace-brand-lockup:hover .ace-brand-wordmark { border-color: #5a2c34; box-shadow: 0 1px 0 rgba(255, 255, 255, .09) inset, 0 5px 16px rgba(23, 23, 25, .11); }
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card:hover { border-color: #cbbba4; box-shadow: 0 8px 23px rgba(73, 54, 27, .065); }
}
@media (prefers-reduced-motion: reduce) {
  .ace-detail-v25 .ace-brand-wordmark,
  .ace-detail-v25 #app #home .home-featured-grid .home-featured-card { transition: none; }
}
@media print {
  .ace-detail-v25 .ace-brand-wordmark { background: #fff; border-color: #777; box-shadow: none; }
  .ace-detail-v25 .ace-brand-name,
  .ace-detail-v25 .ace-brand-year { color: #111; }
}

/* Keep the exact twentieth-birthday declaration hidden until the real form
   selects its boundary case; older checkbox display rules must not unhide it. */
.ace-detail-v25 #app .catalog-product-age-dialog [data-birthday-boundary][hidden] {
  display: none !important;
}
