/* ==========================================================================
   Luna Dental — Solid State Color/Font Overrides
   Applied AFTER main.css to remap template defaults to brand palette.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Color Palette
   Navy:   #0B0C63   (replaces #2e3141 dark bg)
   Coral:  #E9897A   (replaces #4c5c96 accent)
   Cream:  #FDF1E7   (new — light section variant)
   -------------------------------------------------------------------------- */

/* --- Body Background --- */
body {
  background-color: #0B0C63;
  background-image: linear-gradient(to top, rgba(11, 12, 99, 0.85), rgba(11, 12, 99, 0.85)), url("../../images/bg.jpg");
}

/* --- Typography: Instrument Serif Headings --- */
h1, h2, h3, h4, h5, h6 {
  font-family: "Instrument Serif", Georgia, "Times New Roman", serif;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}

h2.major::after {
  background-color: rgba(255, 255, 255, 0.2);
}

/* Keep Source Sans Pro for body (Solid State default) */

/* --- Header --- */
#header {
  background-color: rgba(11, 12, 99, 0.95);
}

#header h1 {
  font-family: "Instrument Serif", Georgia, serif;
  text-transform: none;
  letter-spacing: 0;
  font-size: 1em;
}

#header nav a[href="#menu"] {
  border-color: rgba(255, 255, 255, 0.25);
}

#header nav a[href="#menu"]:hover {
  border-color: #E9897A;
}

/* --- Menu Overlay --- */
#menu .inner {
  background-color: #E9897A;
}

#menu .inner ul.links li a:hover {
  background-color: rgba(0, 0, 0, 0.15);
}

/* --- Banner --- */
#banner {
  background-image: linear-gradient(to top, rgba(11, 12, 99, 0.7), rgba(11, 12, 99, 0.5)), url("/images/reception.jpg");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
}

#banner h2 {
  font-family: "Instrument Serif", Georgia, serif;
  text-transform: none;
  letter-spacing: 0;
  font-size: 2.75em;
  font-weight: 400;
}

#banner p {
  font-family: "Source Sans Pro", Helvetica, sans-serif;
  text-transform: none;
  letter-spacing: 0.05em;
  font-weight: 300;
  font-size: 1.1em;
}

#banner .actions {
  margin-top: 1.5em;
}

/* --- Buttons: Coral --- */
.button.primary,
input[type="submit"],
input[type="reset"],
input[type="button"],
button {
  background-color: #E9897A;
  color: #fff;
}

.button.primary:hover,
input[type="submit"]:hover {
  background-color: #e57565;
}

.button.primary:active,
input[type="submit"]:active {
  background-color: #d9614f;
}

/* Ghost buttons: white border */
.button {
  font-family: "Source Sans Pro", Helvetica, sans-serif;
}

.button:hover {
  border-color: #E9897A;
  color: #E9897A;
}

/* "Learn more" special links */
a.special {
  font-family: "Source Sans Pro", Helvetica, sans-serif;
}

a.special:hover::before {
  background-color: rgba(233, 137, 122, 0.15);
}

/* --- Wrapper Sections: Navy Palette --- */

/* Default wrapper */
.wrapper {
  background-color: #0B0C63;
}

/* Style variants (progressively lighter navy) */
.wrapper.style2 {
  background-color: #111280;
}

.wrapper.style3 {
  background-color: #17189d;
}

.wrapper.style4 {
  background-color: #1d1eba;
}

/* Spotlight sections: coral/warm tones */
.wrapper.spotlight {
  background-color: #E9897A;
}

.wrapper.spotlight.style2 {
  background-color: #d9735f;
}

.wrapper.spotlight.style3 {
  background-color: #c96050;
}

/* Override SVG triangle colors in pseudo-elements.
   Solid State generates these as inline SVG data URIs in main.css.
   We need to override with our navy/coral colors. */

/* Wrapper default (navy) triangles */
.wrapper::before,
.wrapper::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%230B0C63;' /%3E%3C/svg%3E");
}

.wrapper.style2::before,
.wrapper.style2::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23111280;' /%3E%3C/svg%3E");
}

.wrapper.style3::before,
.wrapper.style3::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%2317189d;' /%3E%3C/svg%3E");
}

/* Spotlight (coral) triangles */
.wrapper.spotlight::before,
.wrapper.spotlight::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23E9897A;' /%3E%3C/svg%3E");
}

.wrapper.spotlight.style2::before,
.wrapper.spotlight.style2::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23d9735f;' /%3E%3C/svg%3E");
}

.wrapper.spotlight.style3::before,
.wrapper.spotlight.style3::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23c96050;' /%3E%3C/svg%3E");
}

/* --- Features Grid Cards --- */
.features article {
  background-color: #111280;
}

/* --- Footer --- */
#footer {
  background-color: #080952;
}

#footer .inner .contact li::before {
  border-color: rgba(255, 255, 255, 0.2);
}

#footer .inner .copyright {
  border-top-color: rgba(255, 255, 255, 0.15);
}

/* --- Form Focus States --- */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
select:focus,
textarea:focus {
  border-color: #E9897A;
}

/* --- Cream Section Variant (custom, not in Solid State) --- */
.wrapper.style-cream {
  background-color: #FDF1E7;
  color: #333;
}

.wrapper.style-cream h2,
.wrapper.style-cream h3 {
  color: #0B0C63;
}

.wrapper.style-cream h2.major::after {
  background-color: #E9897A;
}

.wrapper.style-cream a {
  color: #E9897A;
}

.wrapper.style-cream a:hover {
  color: #d9735f;
}

.wrapper.style-cream .button {
  color: #333;
  box-shadow: inset 0 0 0 2px #333;
}

.wrapper.style-cream .button:hover {
  color: #E9897A;
  box-shadow: inset 0 0 0 2px #E9897A;
}

.wrapper.style-cream .button.primary {
  background-color: #E9897A;
  color: #fff;
  box-shadow: none;
}

.wrapper.style-cream::before,
.wrapper.style-cream::after {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpolygon points='0,100 100,0 100,100' style='fill:%23FDF1E7;' /%3E%3C/svg%3E");
}

/* --- Testimonial Blockquotes --- */
.testimonial-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  margin-top: 2em;
}

.testimonial-card {
  flex: 1 1 calc(33.333% - 2em);
  min-width: 250px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 5px;
  padding: 2em;
  border-left: 4px solid #E9897A;
}

.testimonial-card blockquote {
  border: none;
  padding: 0;
  margin: 0 0 1em 0;
  font-style: italic;
  font-size: 1em;
  line-height: 1.8;
}

.testimonial-card cite {
  display: block;
  font-style: normal;
  font-weight: 600;
  color: #E9897A;
}

/* --- FAQ Accordion (CSEA page) --- */
details.faq-item {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 5px;
  margin-bottom: 0.75em;
  border: 1px solid rgba(255, 255, 255, 0.125);
}

details.faq-item summary {
  padding: 1em 1.5em;
  cursor: pointer;
  font-weight: 600;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.1em;
  list-style: none;
  position: relative;
  padding-right: 3em;
}

details.faq-item summary::-webkit-details-marker {
  display: none;
}

details.faq-item summary::after {
  content: "+";
  position: absolute;
  right: 1.5em;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5em;
  line-height: 1;
  color: #E9897A;
  transition: transform 0.2s ease;
}

details.faq-item[open] summary::after {
  content: "\2212";
}

details.faq-item .faq-answer {
  padding: 0 1.5em 1.5em;
  line-height: 1.8;
}

details.faq-item .faq-answer a {
  color: #E9897A;
}

/* --- Spotlight Image Adjustments --- */
/* Make spotlight images rectangular instead of circular for dental photos */
.wrapper.spotlight .image {
  border-radius: 5px;
}

.wrapper.spotlight .image img {
  border-radius: 5px;
}

/* --- Subpage Header --- */
#wrapper > header {
  background-image: linear-gradient(to top, rgba(11, 12, 99, 0.85), rgba(11, 12, 99, 0.6)), url("/images/reception.jpg");
  background-size: cover;
  background-position: center;
}

/* --- Insurance List Styling --- */
.insurance-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  margin-top: 1em;
}

.insurance-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.125);
  border-radius: 5px;
  padding: 1.5em;
  flex: 1 1 calc(50% - 1em);
  min-width: 250px;
}

.insurance-card h3 {
  margin-bottom: 0.5em;
  font-size: 1.1em;
}

/* --- Contact Page Map --- */
.map-embed {
  width: 100%;
  height: 400px;
  border: none;
  border-radius: 5px;
  margin-bottom: 2em;
}

/* --- Hours Table --- */
.hours-table {
  width: 100%;
}

.hours-table td {
  padding: 0.5em 1em 0.5em 0;
}

.hours-table td:first-child {
  font-weight: 600;
  width: 40%;
}

/* --- Responsive: Banner background-attachment --- */
@media screen and (max-width: 1280px) {
  #banner {
    background-attachment: scroll;
  }

  #wrapper > header {
    background-attachment: scroll;
  }
}

@media screen and (max-width: 736px) {
  #banner h2 {
    font-size: 1.75em;
  }

  .testimonial-card {
    flex: 1 1 100%;
  }

  .insurance-card {
    flex: 1 1 100%;
  }
}
