/* 736 Bergen — front-end + editor styles for theme components.
   Brand tokens come from theme.json presets (--wp--preset--*). */

/* ---------- Header ---------- */
.bergen-header { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(8px); }
.bergen-header-inner { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; }
.bergen-header-inner > :first-child { justify-self: start; }
.bergen-header-inner > :last-child { justify-self: end; }
.is-layout-constrained > .alignwide { max-width: var(--wp--style--global--wide-size, 1240px); }
.bergen-header .wp-block-navigation a { color: var(--wp--preset--color--stone-700); text-decoration: none; }
.bergen-header .wp-block-navigation a:hover { color: var(--wp--preset--color--navy-600); text-decoration: none; }
.bergen-logo img { height: auto; }

/* ---------- Footer ---------- */
.bergen-footer a { color: var(--wp--preset--color--cream); }
.bergen-footer a:hover { color: var(--wp--preset--color--cream); text-decoration: underline; }
.bergen-footer-rule { opacity: 1; margin-top: 3rem; }

/* ---------- Eyebrow paragraph style ---------- */
.bergen-eyebrow {
  font-size: 0.75rem; font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--wp--preset--color--navy-600);
}

/* ---------- Framed photo (paper mat) ---------- */
.bergen-frame {
  background: var(--wp--preset--color--paper);
  border: 1px solid var(--wp--preset--color--sand);
  border-radius: 10px; padding: 16px;
}
.bergen-frame img { border-radius: 6px; display: block; width: 100%; }

/* ---------- House note ---------- */
.bergen-housenote {
  background: var(--wp--preset--color--paper);
  border: 1px solid var(--wp--preset--color--sand);
  border-radius: 10px; padding: 28px 32px; position: relative;
}
.bergen-housenote h3 { font-family: var(--wp--preset--font-family--serif); font-weight: 400; margin: 0 0 8px; }
.bergen-housenote .bergen-housenote-byline {
  font-family: var(--wp--preset--font-family--serif); font-style: italic;
  color: var(--wp--preset--color--stone-500); margin: 10px 0 0;
}

/* ---------- Carousel (progressive enhancement of core/gallery) ---------- */
.bergen-carousel { position: relative; }
.bergen-carousel.is-enhanced { border-radius: 10px; overflow: hidden; }
.bergen-carousel.is-enhanced .blocks-gallery-caption { display: none; }
.bergen-carousel.is-enhanced .wp-block-gallery { position: absolute; inset: 0; margin: 0; display: block; }
.bergen-carousel.is-enhanced figure.wp-block-image { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 900ms ease; }
.bergen-carousel.is-enhanced figure.is-active { opacity: 1; }
.bergen-carousel.is-enhanced img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.bergen-carousel-dots {
  position: absolute; left: 22px; bottom: 18px; z-index: 5;
  display: flex; gap: 9px; align-items: center;
}
.bergen-carousel-dots button {
  width: 9px; height: 9px; border-radius: 50%; border: none; cursor: pointer; padding: 0;
  background: rgba(246, 242, 233, 0.45); transition: background 200ms ease;
}
.bergen-carousel-dots button.is-active { background: var(--wp--preset--color--cream); }
.bergen-carousel-scrim {
  position: absolute; left: 0; right: 0; bottom: 0; height: 110px; z-index: 4; pointer-events: none;
  background: linear-gradient(to bottom, rgba(18,18,18,0), rgba(18,18,18,0.3));
}

/* ---------- Availability calendar ---------- */
.bergen-availability-legend { display: flex; gap: 18px; justify-content: flex-end; font-size: 0.8125rem; color: var(--wp--preset--color--stone-700); margin-bottom: 14px; }
.bergen-availability-legend span { display: inline-flex; align-items: center; gap: 8px; }
.bergen-dot { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }
.bergen-dot--open { background: var(--wp--preset--color--paper); border: 1px solid var(--wp--preset--color--sand); }
.bergen-dot--booked { background: var(--wp--preset--color--navy-100); }
.bergen-dot--past { border: 1px dashed var(--wp--preset--color--sand); }
.bergen-availability-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 1024px) { .bergen-availability-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .bergen-availability-grid { grid-template-columns: 1fr; } }
.bergen-cal-month { background: var(--wp--preset--color--paper); border: 1px solid var(--wp--preset--color--sand); border-radius: 10px; padding: 22px; }
.bergen-cal-month h4 { font-family: var(--wp--preset--font-family--serif); font-weight: 400; font-size: 1.3125rem; margin: 0 0 14px; }
.bergen-cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.bergen-cal-cell { height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 6px; font-size: 0.8125rem; }
.bergen-cal-cell--dow { color: var(--wp--preset--color--stone-500); font-weight: 600; }
.bergen-cal-cell--open { background: var(--wp--preset--color--white); border: 1px solid var(--wp--preset--color--sand); }
.bergen-cal-cell--booked { background: var(--wp--preset--color--navy-100); color: var(--wp--preset--color--stone-500); text-decoration: line-through; }
.bergen-cal-cell--past { color: #cccccc; }

/* ---------- Quote calculator ---------- */
.bergen-quote { background: var(--wp--preset--color--navy-700); border-radius: 10px; padding: 28px; color: var(--wp--preset--color--cream); }
.bergen-quote-label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--navy-300); margin: 0 0 14px; }
.bergen-quote-dates { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 8px; }
.bergen-quote-dates label { font-size: 0.75rem; color: var(--wp--preset--color--navy-300); display: flex; flex-direction: column; gap: 6px; }
.bergen-quote-dates input { width: 100%; box-sizing: border-box; min-width: 0; border: 1px solid var(--wp--preset--color--navy-600); border-radius: 6px; padding: 10px 10px; font-family: inherit; font-size: 0.875rem; background: var(--wp--preset--color--paper); color: var(--wp--preset--color--ink); }
.bergen-quote-dates label { min-width: 0; }
.bergen-quote-rows { margin: 0; }
.bergen-quote-rows > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid rgba(246, 242, 233, 0.18); }
.bergen-quote-rows dt { font-size: 0.875rem; color: var(--wp--preset--color--navy-300); }
.bergen-quote-rows dd { font-size: 0.875rem; font-weight: 600; margin: 0; }
.bergen-quote-total-row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-top: 1px solid rgba(246, 242, 233, 0.35); margin-top: 6px; padding-top: 16px; }
.bergen-quote-total-row > span:first-child { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--navy-300); }
.bergen-quote-total { font-family: var(--wp--preset--font-family--serif); font-size: 2.5rem; line-height: 1; }
.bergen-quote-note { font-size: 0.78rem; color: var(--wp--preset--color--navy-300); margin: 12px 0 0; }
.bergen-quote-foot { font-size: 0.78rem; color: var(--wp--preset--color--navy-100); border-top: 1px solid rgba(246, 242, 233, 0.18); margin: 14px 0 0; padding-top: 12px; }

/* ---------- Form skin (works with Forminator, CF7, WPForms, Ninja) ---------- */
.bergen-form input[type="text"],
.bergen-form input[type="email"],
.bergen-form input[type="tel"],
.bergen-form input[type="date"],
.bergen-form input[type="number"],
.bergen-form select,
.bergen-form textarea {
  background: var(--wp--preset--color--paper) !important;
  border: 1px solid var(--wp--preset--color--sand) !important;
  border-radius: 6px !important; padding: 12px 14px !important;
  font-family: var(--wp--preset--font-family--sans) !important; font-size: 15px !important;
  color: var(--wp--preset--color--ink) !important;
}
.bergen-form input:focus,
.bergen-form select:focus,
.bergen-form textarea:focus {
  outline: 2px solid var(--wp--preset--color--navy-600) !important; outline-offset: 1px;
  border-color: var(--wp--preset--color--navy-600) !important;
}
.bergen-form .wpforms-field-label,
.bergen-form .forminator-label,
.bergen-form label {
  font-size: 0.75rem !important; font-weight: 600 !important; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--wp--preset--color--stone-700) !important;
}
.bergen-form button[type="submit"],
.bergen-form .forminator-button-submit {
  margin-top: 14px !important;
  background: var(--wp--preset--color--navy-600) !important; color: var(--wp--preset--color--cream) !important;
  border: none !important; border-radius: 10px !important; padding: 14px 26px !important;
  font-family: var(--wp--preset--font-family--sans) !important; font-size: 0.8125rem !important;
  font-weight: 600 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
}
.bergen-form button[type="submit"]:hover,
.bergen-form .forminator-button-submit:hover { background: var(--wp--preset--color--navy-700) !important; }

/* ---------- Form layout (Design Style: None) ---------- */
.bergen-form .forminator-custom-form { display: block; }
.bergen-form .forminator-row { display: flex; gap: 18px; margin-bottom: 18px; }
.bergen-form .forminator-col, .bergen-form .forminator-field { flex: 1; min-width: 0; display: block; }
.bergen-form label, .bergen-form .forminator-label { display: block; margin-bottom: 7px; }
.bergen-form input[type="text"],
.bergen-form input[type="email"],
.bergen-form input[type="tel"],
.bergen-form input[type="date"],
.bergen-form select,
.bergen-form textarea { width: 100% !important; box-sizing: border-box; display: block; }
.bergen-form .forminator-date-input, .bergen-form .forminator-input-with-icon { width: 100% !important; display: block; }
.bergen-form .forminator-input-with-icon input { padding-left: 40px !important; }
.bergen-form textarea { min-height: 120px; }
@media (max-width: 640px) { .bergen-form .forminator-row { flex-direction: column; gap: 0; } }

/* ---------- Forminator-specific skin ---------- */
.bergen-form .forminator-ui.forminator-custom-form .forminator-input,
.bergen-form .forminator-ui.forminator-custom-form .forminator-textarea,
.bergen-form .forminator-ui.forminator-custom-form select.forminator-select,
.bergen-form .forminator-ui.forminator-custom-form .forminator-select-dropdown,
.bergen-form .forminator-ui.forminator-custom-form input[type="text"],
.bergen-form .forminator-ui.forminator-custom-form input[type="email"],
.bergen-form .forminator-ui.forminator-custom-form input[type="tel"] {
  background: var(--wp--preset--color--paper) !important;
  border: 1px solid var(--wp--preset--color--sand) !important;
  border-radius: 6px !important;
  padding: 12px 14px !important;
  font-family: var(--wp--preset--font-family--sans) !important;
  font-size: 15px !important;
  color: var(--wp--preset--color--ink) !important;
  box-shadow: none !important;
}
.bergen-form .forminator-ui.forminator-custom-form .forminator-input:focus,
.bergen-form .forminator-ui.forminator-custom-form .forminator-textarea:focus {
  outline: 2px solid var(--wp--preset--color--navy-600) !important;
  border-color: var(--wp--preset--color--navy-600) !important;
}
.bergen-form .forminator-ui.forminator-custom-form .forminator-field .forminator-label {
  font-size: 0.72rem !important; font-weight: 600 !important; letter-spacing: 0.1em !important;
  text-transform: uppercase !important; color: var(--wp--preset--color--stone-700) !important;
  margin-bottom: 7px !important;
}
.bergen-form .forminator-ui.forminator-custom-form .forminator-field { margin-bottom: 6px !important; }
.bergen-form .forminator-ui.forminator-custom-form .forminator-row { margin-bottom: 12px !important; }
.bergen-form .forminator-ui.forminator-custom-form .forminator-radio { display: inline-flex !important; align-items: center; gap: 8px; margin-right: 22px !important; font-size: 15px; color: var(--wp--preset--color--stone-700); }
.bergen-form .forminator-ui.forminator-custom-form .forminator-radio input { accent-color: var(--wp--preset--color--navy-600) !important; width: 16px; height: 16px; }
.bergen-form .forminator-ui.forminator-custom-form .forminator-button-submit,
.bergen-form .forminator-ui.forminator-custom-form button.forminator-button {
  background: var(--wp--preset--color--navy-600) !important; color: var(--wp--preset--color--cream) !important;
  border: none !important; border-radius: 10px !important; padding: 14px 26px !important; cursor: pointer;
  font-family: var(--wp--preset--font-family--sans) !important; font-size: 0.8125rem !important;
  font-weight: 600 !important; letter-spacing: 0.1em !important; text-transform: uppercase !important;
}
.bergen-form .forminator-ui.forminator-custom-form button.forminator-button:hover { background: var(--wp--preset--color--navy-700) !important; }
.bergen-form .forminator-ui .forminator-response-message.forminator-success { background: var(--wp--preset--color--paper); border: 1px solid var(--wp--preset--color--sand); border-radius: 10px; padding: 18px 20px; color: var(--wp--preset--color--ink); }

/* Hide Forminator's admin-only edit link (visitors never see it anyway) */
.bergen-form .forminator-edit-module,
.bergen-form a[href*="forminator-cform"],
.bergen-form a[href*="page=forminator"] { display: none !important; }

/* ---------- Misc ---------- */
.bergen-stat-rule { border-top: 1px solid var(--wp--preset--color--sand); }
@media (max-width: 781px) {
  .bergen-quote-dates { grid-template-columns: 1fr; }
}
