/**
 * Page template styles — About, Contact, Reservation and the shop header.
 *
 * Only classes introduced by page-templates/about.php, page-templates/contact.php,
 * page-templates/reservation.php and woocommerce/*.php live here. Shared classes
 * (.container, .section, .form-group, .team-grid, .product-card, .smr-hp …)
 * stay in style.css.
 */

/* ---------------------------------------------------------- About page ---- */

.about-page-content {
    max-width: 820px;
    margin: 0 auto;
    color: var(--text);
}

.about-page-content > *:last-child {
    margin-bottom: 0;
}

/*
 * about.php nests its team and testimonial cards directly under a section h2,
 * so their titles are h3 rather than the h4/h5 used elsewhere. These keep the
 * rendered size identical to .team-info h4 / .testimonial-author h5 in
 * style.css; they match nothing on the templates that still use those tags.
 */
.team-info h3 {
    font-size: 1.2rem;
    margin-bottom: 5px;
}

.testimonial-author h3 {
    margin: 0;
    font-size: 1rem;
}

.about-block-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 8px;
}

.about-block-text .pretitle {
    display: inline-block;
    font-size: .875rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--primary);
    font-weight: 600;
    margin-bottom: 10px;
}

.about-block-text h2 {
    margin-bottom: 20px;
}

.about-block-text p {
    color: var(--text-light);
    margin: 0;
}

.about-testimonial-rating {
    margin-bottom: 15px;
}

.about-testimonial-rating i {
    color: var(--border);
}

.about-testimonial-rating i.is-filled {
    color: #f5c518;
}

/* -------------------------------------------------------- Contact page ---- */

.contact-intro {
    max-width: 820px;
    margin: 0 auto 50px;
    text-align: center;
    color: var(--text-light);
}

.contact-layout {
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 50px;
    align-items: start;
}

.contact-layout.has-no-details {
    grid-template-columns: 1fr;
    max-width: 760px;
    margin: 0 auto;
}

.contact-details .pretitle,
.contact-form-wrap .pretitle {
    display: inline-block;
    font-size: .875rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--primary);
    font-weight: 600;
    margin-bottom: 10px;
}

.contact-details h2,
.contact-form-wrap h2 {
    margin-bottom: 30px;
}

.contact-detail {
    display: flex;
    gap: 18px;
    align-items: flex-start;
    padding: 18px 0;
    border-bottom: 1px solid var(--border);
}

.contact-detail:last-of-type {
    border-bottom: 0;
}

.contact-detail-icon {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bg-alt);
    color: var(--primary);
}

.contact-detail-text {
    display: block;
    color: var(--text-light);
    line-height: 1.7;
    overflow-wrap: anywhere;
}

.contact-detail-text strong {
    display: block;
    color: var(--secondary);
    font-size: .8rem;
    letter-spacing: .5px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.contact-detail-text a {
    color: var(--text-light);
    transition: var(--transition);
}

.contact-detail-text a:hover,
.contact-detail-text a:focus {
    color: var(--primary);
}

.contact-social {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 25px;
}

.contact-social a {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bg-alt);
    color: var(--secondary);
    transition: var(--transition);
}

.contact-social a:hover,
.contact-social a:focus {
    background: var(--primary);
    color: var(--white);
}

.contact-form-wrap {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 35px;
}

/* Intro text set in Customizer > Theme Settings > Contact Form. */
.contact-form-intro {
    margin: 0 0 22px;
    font-size: .95rem;
    line-height: 1.6;
    color: var(--text-light);
}

.contact-submit {
    width: 100%;
}

.contact-message {
    display: none;
    margin: 15px 0 0;
    text-align: center;
    font-size: .9rem;
}

.contact-message.is-visible {
    display: block;
}

.contact-message.is-success {
    color: #1e7d32;
}

.contact-message.is-error {
    color: #b3261e;
}

.contact-map {
    margin-top: 50px;
}

.contact-map iframe {
    display: block;
    width: 100%;
    height: 380px;
    border: 1px solid var(--border);
    border-radius: 8px;
}

.contact-map-link {
    margin: 0;
    text-align: center;
}

.contact-map-link a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--primary);
    font-weight: 600;
}

/* ---------------------------------------------------- Reservation page ---- */

.reservation-intro {
    max-width: 820px;
    margin: 0 auto 50px;
    text-align: center;
    color: var(--text-light);
}

.reservation-page-form {
    max-width: 760px;
    margin: 0 auto;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 40px;
}

.reservation-submit {
    width: 100%;
}

/* ------------------------------------------------------- Shop archive ----- */

.shop-header {
    margin-bottom: 35px;
}

.shop-header .page-title {
    font-size: 2rem;
    margin: 0 0 10px;
}

.shop-header p {
    color: var(--text-light);
    margin: 0;
}

/* --------------------------------------------------------- Responsive ----- */

@media (max-width: 900px) {
    .contact-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

@media (max-width: 768px) {
    .contact-form-wrap,
    .reservation-page-form {
        padding: 25px;
    }

    .contact-map iframe {
        height: 280px;
    }

    .about-page-content,
    .contact-intro,
    .reservation-intro {
        margin-bottom: 35px;
    }
}

@media (max-width: 480px) {
    .contact-detail {
        gap: 12px;
    }

    .contact-detail-icon {
        flex-basis: 38px;
        width: 38px;
        height: 38px;
    }

    .contact-form-wrap,
    .reservation-page-form {
        padding: 20px;
    }
}

/* ===== Factoid callout ([smr_factoid]) ===== */
/* A quiet aside, not a shout: left rule in the brand orange, tinted panel, and
   the label small-caps so it reads as a label rather than a heading. */
.smr-factoid{
  display:flex;
  gap:14px;
  align-items:flex-start;
  margin:28px 0;
  padding:18px 20px;
  background:var(--bg-alt,#f8f8f8);
  border-left:4px solid var(--primary,#e85d04);
  border-radius:0 4px 4px 0;
}
.smr-factoid__label{
  flex:0 0 auto;
  font-family:var(--font-heading,'Lora',Georgia,serif);
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--primary,#e85d04);
  padding-top:.15em;
}
.smr-factoid__body{margin:0}
.smr-factoid__body > *:last-child{margin-bottom:0}
@media(max-width:600px){
  .smr-factoid{flex-direction:column;gap:6px}
}

/* ===== Availability list ([smr_availability]) ===== */
.smr-availability{
  margin:28px 0;
  padding:18px 20px;
  background:var(--bg-alt,#f8f8f8);
  border-radius:6px;
}
.smr-availability p{margin:0 0 8px}
.smr-availability__list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
  margin:0 0 10px;
  padding:0;
}
.smr-availability__list li{
  padding:4px 12px;
  background:var(--white,#fff);
  border:1px solid var(--border,#e0e0e0);
  border-radius:999px;
  font-size:.85rem;
  color:var(--text,#333);
}
.smr-availability__note{
  font-size:.85rem;
  color:var(--text-light,#777);
  margin:0;
}
.smr-availability--clear{
  border-left:4px solid var(--primary,#e85d04);
  padding-left:18px;
}

/* ===== FAQ ([smr_faq]) ===== */
.smr-faq{margin:28px 0}
.smr-faq__item{
  padding:16px 0;
  border-bottom:1px solid var(--border,#e0e0e0);
}
.smr-faq__item:last-child{border-bottom:none}
.smr-faq__question{
  margin:0 0 6px;
  font-family:var(--font-heading,'Lora',Georgia,serif);
  font-size:1.05rem;
}
.smr-faq__answer{margin:0;color:var(--text,#333)}

/* ===== City note under the service-area select ===== */
.smr-city-note{color:var(--text-light,#777)}
