/* ==========================================================
   FREE PAGE OVERRIDES
   Base styles come from /style.css (linked first in HTML).
   This file adds only free-page-specific elements:
   promo bar, CTA, ad slots, page layout, footer, How-To.
   ========================================================== */

/* --- Promo banner at top --- */
.free-promo-bar {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  background: linear-gradient(135deg, #1a2a44 0%, #2c3e6b 100%);
  color: #fff;
  padding: 0.625rem 1rem;
  font-family: var(--font-stack);
  font-size: 0.9375rem;
  text-align: center;
  flex-wrap: wrap;
}

.free-promo-bar span {
  opacity: 0.92;
}

.free-promo-bar a {
  display: inline-block;
  background: #d4a843;
  color: #1a2a44;
  text-decoration: none;
  font-weight: 600;
  padding: 0.3125rem 1rem;
  border-radius: 0.25rem;
  transition: background 0.2s;
  white-space: nowrap;
}

.free-promo-bar a:hover {
  background: #e4be5a;
}

/* --- CTA section below calculator --- */
.free-cta-section {
  max-width: var(--panel-max-width);
  margin: 1.5rem auto;
  padding: 1.5rem;
  background: var(--accent-bg);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
  text-align: center;
  font-family: var(--font-stack);
}

.free-cta-section h2 {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  color: #1a2a44;
}

.free-cta-section p {
  margin: 0 0 1rem;
  color: #555;
  font-size: 0.9375rem;
  line-height: 1.5;
}

.free-cta-section .cta-features {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  margin-bottom: 1.25rem;
  font-size: 0.875rem;
  color: #444;
}

.free-cta-section .cta-features span::before {
  content: "\2713\00a0";
  color: #28a745;
  font-weight: 700;
}

.free-cta-section .cta-button {
  display: inline-block;
  background: #d4a843;
  color: #1a2a44;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  padding: 0.625rem 2rem;
  border-radius: 0.375rem;
  transition: background 0.2s, transform 0.1s;
}

.free-cta-section .cta-button:hover {
  background: #e4be5a;
  transform: translateY(-1px);
}

/* --- Ad slot placeholders --- */
.ad-slot {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 1rem auto;
  background: transparent;
  overflow: hidden;
}

.ad-slot-banner {
  max-width: 728px;
  min-height: 90px;
  width: 100%;
}

.ad-slot-sidebar {
  width: 300px;
  min-height: 250px;
}

/* Hide banner ad on very small screens */
@media (max-width: 480px) {
  .ad-slot-banner {
    min-height: 50px;
  }
}

/* --- Free page footer --- */
.free-footer {
  text-align: center;
  padding: 1rem;
  font-size: 0.8125rem;
  color: #888;
  font-family: var(--font-stack);
}

.free-footer a {
  color: #007bff;
  text-decoration: none;
}

.free-footer a:hover {
  text-decoration: underline;
}

/* --- How-To Collapsible Section --- */
/* iOS touch fix — cursor:pointer alone is not always enough on older
   iOS Safari to make tap fire a click event on non-anchor elements.
   Adding touch-action: manipulation removes the 300ms tap delay and
   ensures taps register reliably on buttons and interactive elements. */
#infoBtn,
.free-howto-toggle
{
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
}

.free-howto-section
{
  margin: 1.5rem 0;
}

.free-howto-toggle
{
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  background: #e3f2fd;
  border: 1px solid #90caf9;
  border-radius: 0.375rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
  font-family: var(--font-stack);
  font-size: 1.0625rem;
  font-weight: 600;
  color: #1565c0;
  transition: background 0.2s;
}

.free-howto-toggle:hover
{
  background: #bbdefb;
}

.free-howto-toggle-icon
{
  font-size: 0.75rem;
  transition: transform 0.2s;
}

.free-howto-content
{
  display: none;
  background: #fafcff;
  border: 1px solid #e0e0e0;
  border-top: none;
  border-radius: 0 0 0.375rem 0.375rem;
  padding: 1rem 1.25rem 1.25rem;
  font-family: var(--font-stack);
  font-size: 0.9375rem;
  color: #333;
  line-height: 1.6;
}

.free-howto-content.open
{
  display: block;
}

.free-howto-content h3
{
  font-size: 1.0625rem;
  color: #1a3a5c;
  margin: 1rem 0 0.375rem;
}

.free-howto-content h3:first-child
{
  margin-top: 0;
}

.free-howto-content h4
{
  font-size: 0.9375rem;
  color: #1a3a5c;
  margin: 0.75rem 0 0.25rem;
}

.free-howto-content p
{
  margin: 0 0 0.5rem;
}

.free-howto-content ul
{
  margin: 0 0 0.625rem;
  padding-left: 1.25rem;
}

.free-howto-content li
{
  margin-bottom: 0.25rem;
}

.free-howto-tip
{
  background: #e3f2fd;
  border: 1px solid #90caf9;
  border-radius: 0.25rem;
  padding: 0.5rem 0.75rem;
  color: #1565c0;
  font-size: 0.875rem;
}

.free-howto-pdf
{
  margin-top: 1rem;
  text-align: center;
}

.free-howto-pdf a
{
  color: #1976d2;
  font-weight: 600;
  text-decoration: none;
}

.free-howto-pdf a:hover
{
  text-decoration: underline;
}

/* --- Free-page-specific small screen tweaks --- */
@media (max-width: 480px)
{
  .free-promo-bar
  {
    font-size: 0.8125rem;
    padding: 0.5rem 0.75rem;
    gap: 0.5rem;
  }

  .free-promo-bar a
  {
    padding: 0.25rem 0.75rem;
    font-size: 0.8125rem;
  }

  .free-cta-section
  {
    padding: 1rem;
  }

  .free-cta-section h2
  {
    font-size: 1.125rem;
  }

  .cta-features
  {
    gap: 0.375rem;
  }

  .cta-features span
  {
    font-size: 0.8125rem;
    padding: 0.25rem 0.625rem;
  }

  .free-howto-toggle
  {
    font-size: 0.9375rem;
    padding: 0.625rem 0.75rem;
  }

  .free-howto-content
  {
    font-size: 0.875rem;
    padding: 0.75rem 1rem;
  }

  .free-howto-content h3
  {
    font-size: 0.9375rem;
  }

  .free-howto-content h4
  {
    font-size: 0.875rem;
  }
}

/* ===== Bagel notification (coming-soon redirect) ===== */
.bagel-notification
{
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #e3f2fd;
  border: 0.1875rem solid #90caf9;
  color: #1565c0;
  padding: 3rem 3.5rem;
  border-radius: 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.6;
  z-index: 10000;
  opacity: 0;
  transition: opacity 0.4s;
  box-shadow: 0 0.5rem 2rem rgba(0, 0, 0, 0.25);
  text-align: center;
  max-width: 32rem;
}

.bagel-notification.show
{
  opacity: 1;
}

/* Always show Flatpickr year spinner arrows */
.flatpickr-calendar .numInputWrapper .arrowUp,
.flatpickr-calendar .numInputWrapper .arrowDown
{
  opacity: 1 !important;
  pointer-events: auto !important;
  visibility: visible !important;
}

/* Hide the native select dropdown arrows on the month spinner */
select.flatpickr-monthDropdown-months
{
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  background-image: none !important;
  padding-right: 1rem !important;
}

/* Make the < > prev/next month arrows solid filled triangles */
.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg
{
  display: none !important;
}

.flatpickr-months .flatpickr-prev-month::after
{
  content: "\25C0";
  font-size: 0.625rem;
  color: rgba(0, 0, 0, 0.7);
}

.flatpickr-months .flatpickr-next-month::after
{
  content: "\25B6";
  font-size: 0.625rem;
  color: rgba(0, 0, 0, 0.7);
}

.flatpickr-months .flatpickr-prev-month:hover::after,
.flatpickr-months .flatpickr-next-month:hover::after
{
  color: rgba(0, 0, 0, 0.9);
}

/* Month spinner wrapper — mirrors the year's numInputWrapper */
.flatpickr-calendar .monthInputWrapper
{
  position: relative;
  display: inline-block;
  height: auto;
}

.flatpickr-calendar .monthInputWrapper span.arrowUp,
.flatpickr-calendar .monthInputWrapper span.arrowDown
{
  position: absolute;
  right: 0;
  width: 0.875rem;
  padding: 0 0.25rem 0 0.125rem;
  height: 50%;
  line-height: 50%;
  opacity: 1;
  cursor: pointer;
  border: 1px solid rgba(57, 57, 57, 0.15);
  box-sizing: border-box;
}

.flatpickr-calendar .monthInputWrapper span.arrowUp
{
  top: 0;
  border-bottom: 0;
}

.flatpickr-calendar .monthInputWrapper span.arrowDown
{
  top: 50%;
}

/* Triangle arrows via ::after — same as year spinner */
.flatpickr-calendar .monthInputWrapper span.arrowUp::after
{
  display: block;
  content: "";
  position: absolute;
  border-left: 0.25rem solid transparent;
  border-right: 0.25rem solid transparent;
  border-bottom: 0.25rem solid rgba(0, 0, 0, 0.9);
  top: 26%;
}

.flatpickr-calendar .monthInputWrapper span.arrowDown::after
{
  display: block;
  content: "";
  position: absolute;
  border-left: 0.25rem solid transparent;
  border-right: 0.25rem solid transparent;
  border-top: 0.25rem solid rgba(0, 0, 0, 0.9);
  top: 40%;
}

/* Hover effects — same as year spinner */
.flatpickr-calendar .monthInputWrapper span:hover
{
  background: rgba(0, 0, 0, 0.1);
}

.flatpickr-calendar .monthInputWrapper span:active
{
  background: rgba(0, 0, 0, 0.2);
}

/* Flatpickr "Today" button — bottom of calendar */
.fp-today-btn {
  display: block;
  width: 100%;
  padding: 0.375rem 0;
  border: none;
  border-top: 1px solid #e6e6e6;
  background: #f8f9fa;
  color: var(--ok-button-background-color, #1d5fd1);
  font-size: 0.8125rem;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
  border-radius: 0 0 0.25rem 0.25rem;
}

.fp-today-btn:hover {
  background: #e3f2fd;
}

/* End of File */
