/* Local hardening and responsive corrections. Loaded after the original generated styles. */
html, body { width: 100%; max-width: 100%; overflow-x: hidden; }
body { min-width: 0; }
img { max-width: 100%; height: auto; }
svg { max-width: 100%; }
main { display: block; width: 100%; min-width: 0; }
section { min-width: 0; }
.navigation-container, .footer-container,
.hero-bespoke-fireplaces-container, .key-advantages-container, .our-process-container,
.services-snapshot-container, .project-gallery-container, .testimonials-carousel-container,
.primary-cta-container, .quick-contact-container,
.hero-craftsmanship-container, .materials-grid-wrapper, .functionality-about-container,
.design-process-container, .team-workshop-container, .client-perspectives-container, .cta-discuss-container,
.services-hero-container, .custom-fireplaces-container, .custom-stoves-container,
.masonry-section-container, .renovation-section-container, .process-section-container,
.case-studies-container, .get-started-cta-container,
.contact-hero__container, .contact-details__container, .project-inquiry__container,
.consultation-snapshot__container, .studio-location__container {
  max-width: 100%;
}

/* Keep inactive social glyphs visibly identical but non-interactive. */
.footer-social-static { display: contents; cursor: default; }
.footer-social-static .footer-social-link { cursor: default; }

/* Legal pages */
.legal-page { background: var(--color-surface); color: var(--color-on-surface); }
.legal-hero { padding: clamp(3rem, 8vw, 7rem) var(--spacing-lg) clamp(2.5rem, 6vw, 5rem); background: var(--color-surface-elevated); }
.legal-hero__inner, .legal-content__inner { width: min(100%, 1080px); margin: 0 auto; }
.legal-hero h1 { font-family: var(--font-family-heading); font-size: clamp(2.25rem, 6vw, 4.75rem); line-height: 1.08; margin: 0 0 1rem; }
.legal-hero p { max-width: 760px; font-family: var(--font-family-body); color: var(--color-on-surface-secondary); }
.legal-content { padding: clamp(3rem, 7vw, 6.5rem) var(--spacing-lg); }
.legal-content__inner { display: flex; flex-direction: column; gap: 2.25rem; }
.legal-section { display: flex; flex-direction: column; gap: 0.9rem; }
.legal-section h2 { font-family: var(--font-family-heading); font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1.2; }
.legal-section h3 { font-family: var(--font-family-heading); font-size: clamp(1.15rem, 2.4vw, 1.5rem); line-height: 1.3; margin-top: .4rem; }
.legal-section p, .legal-section li, .legal-meta { font-family: var(--font-family-body); line-height: 1.75; color: var(--color-on-surface-secondary); }
.legal-section ul, .legal-section ol { margin: .25rem 0 0 1.25rem; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.legal-contact-card { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--color-border); background: var(--color-surface-elevated); border-radius: var(--border-radius-lg); }
.legal-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1rem; }

/* Section breathing room without altering composition. */
main > section { padding-top: max(var(--spacing-3xl, 4rem), 4rem); padding-bottom: max(var(--spacing-3xl, 4rem), 4rem); }

@media (max-width: 767px) {
  .section-title, h1, h2, h3 { overflow-wrap: anywhere; }
  main h1, main h2, main h3, .section-title, .section-subtitle { text-align: center; }
  main h1 { font-size: clamp(2rem, 10vw, 3.1rem) !important; line-height: 1.1 !important; }
  main h2 { font-size: clamp(1.65rem, 7.5vw, 2.35rem) !important; line-height: 1.18 !important; }
  main h3 { font-size: clamp(1.25rem, 6vw, 1.75rem) !important; line-height: 1.25 !important; }
  .navigation-container { width: 100%; }
  .navigation-brand { min-width: 0; }
  .navigation-brand-text { max-width: 62vw; overflow-wrap: anywhere; text-align: left; }
  .footer-legal { width: 100%; align-items: center; }
  .footer-legal-links { flex-wrap: wrap; gap: .75rem 1.25rem; }
  .project-inquiry__form-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; width: 100%; }
  .project-inquiry__field, .project-inquiry__input, .project-inquiry__select, .project-inquiry__textarea { width: 100%; min-width: 0; }
  .project-inquiry__footer { flex-direction: column; align-items: stretch; }
  .project-inquiry__footer .btn { width: 100%; justify-content: center; }
  .contact-details__grid, .custom-fireplaces-grid, .masonry-grid, .process-steps,
  .materials-grid-container, .team-grid, .testimonial-grid, .project-grid,
  .key-advantages-grid, .services-grid, .case-studies-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .functionality-row, .renovation-grid, .custom-stoves-grid, .cta-card, .cta-discuss-wrapper,
  .studio-location__split, .consultation-snapshot__steps, .home-process-steps { flex-direction: column !important; }
  .btn, button, a[class*="btn"] { max-width: 100%; white-space: normal; text-align: center; }
  main > section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .legal-hero, .legal-content { padding-left: 1rem; padding-right: 1rem; }
}

@media (max-width: 480px) {
  .navigation-container { padding-left: 1rem !important; padding-right: 1rem !important; }
  .navigation-brand-text { font-size: .92rem !important; }
  .project-inquiry__card { padding: 1.25rem !important; }
  main > section { padding-top: 3rem; padding-bottom: 3rem; }
}

/* Contrast hardening for the dark footer and local form feedback. */
.footer-description,.footer-contact-text,.footer-contact-link,.footer-legal-link,.footer-origin,.footer-copyright { color: color-mix(in oklab, var(--color-on-primary) 88%, transparent) !important; }
.footer-column-title,.footer-brand-name,.footer-brand-tagline { color: var(--color-on-primary); }
.project-inquiry__status { margin-top:1rem; padding:1rem; border:1px solid var(--color-border); border-radius:var(--border-radius-md); background:var(--color-surface-elevated); color:var(--color-on-surface); }
.project-inquiry__status[hidden] { display:none; }


*,
*::before,
*::after {
box-sizing: border-box;
}

body {
margin: 0;
font: 16px/1.25 Arial, serif;
position: relative;
appearance: none;
}

/* Fix Masonry section on mobile */
@media (max-width: 767px) {
  .masonry-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto !important;
  }

  .masonry-item {
    width: 100%;
    min-width: 0;
  }

  /* Image cards keep a controlled visual height */
  .masonry-item:not(.masonry-text) {
    height: 350px !important;
  }

  /* Text card must grow according to its content */
  .masonry-item.masonry-text {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    padding: 2.5rem 1.5rem !important;
    align-items: flex-start;
  }

  .masonry-content-box {
    width: 100%;
    max-width: 100%;
  }

  .masonry-content-box .section-title {
    margin-top: 0;
    margin-bottom: 1rem;
    text-align: center;
  }

  .masonry-content-box .section-content {
    margin-bottom: 1.5rem;
  }

  .masonry-tags {
    width: 100%;
    margin-top: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .masonry-tags .btn {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }

  .masonry-img {
    width: 100%;
    height: 100% !important;
    object-fit: cover;
    display: block;
  }

  .masonry-overlay {
    width: 100%;
    box-sizing: border-box;
    padding: 1.5rem !important;
  }
}

/* Fix "Begin Your Custom Project" CTA on mobile */
@media (max-width: 767px) {

  .get-started-container {
    width: 100%;
    max-width: 100%;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    box-sizing: border-box;
  }

  .cta-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 2rem 1.25rem !important;
    gap: 2rem !important;

    flex-direction: column !important;
    align-items: stretch !important;

    text-align: center;
    overflow: hidden;
  }

  .cta-content,
  .cta-actions {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none !important;
    box-sizing: border-box;
  }

  .cta-content .section-title {
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem !important;
    text-align: center;
  }

  .cta-content > .section-content {
    width: 100%;
    max-width: 100%;
    margin: 0 0 1.5rem !important;

    text-align: center;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }

  .cta-contact-info {
    width: 100%;
    max-width: 100%;
    gap: 1.25rem !important;
    align-items: stretch;
  }

  .cta-info-item {
    width: 100%;
    max-width: 100%;
    min-width: 0;

    display: flex;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    gap: 0.35rem !important;
    text-align: center;
  }

  .cta-info-item .section-subtitle {
    min-width: 0 !important;
    width: auto;
    margin: 0 !important;
    text-align: center;
  }

  .cta-info-item .section-content {
    width: 100%;
    max-width: 100%;
    min-width: 0;

    margin: 0 !important;
    text-align: center;

    overflow-wrap: anywhere;
    word-break: normal;
  }

  .cta-actions {
    gap: 1rem !important;
    align-items: center !important;
  }

  .services-link6 {
    display: block;
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
  }

  .services-link6 .btn {
    width: 100%;
    max-width: 100%;
    min-height: 0;

    padding: 1rem 1.25rem !important;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: center;

    white-space: normal;
    text-align: center;
  }

  .cta-note {
    width: 100%;
    max-width: 280px;
    margin: 0 auto !important;
    text-align: center;
  }
}

/* Extra protection for very narrow phones */
@media (max-width: 390px) {

  .cta-card {
    padding: 1.75rem 1rem !important;
  }

  .cta-info-item .section-content {
    font-size: 0.95rem;
  }
}

/* Complete mobile fix for project inquiry form */
@media (max-width: 767px) {

  .project-inquiry,
  .project-inquiry__container,
  .project-inquiry__card,
  .project-inquiry__form,
  .project-inquiry__form-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }

  .project-inquiry__container {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .project-inquiry__card {
    padding: 1.5rem !important;
    overflow: hidden;
  }

  .project-inquiry__header {
    width: 100%;
    max-width: 100%;
    margin-bottom: 1.75rem !important;
  }

  .project-inquiry__header .section-title,
  .project-inquiry__header .section-content {
    width: 100%;
    max-width: 100%;
    text-align: center;
    overflow-wrap: break-word;
  }

  .project-inquiry__form-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-columns: minmax(0, 1fr) !important;
    gap: 1.25rem !important;
  }

  /* Critical fix:
     remove desktop span:2 from fields in the one-column mobile grid */
  .project-inquiry__field,
  .project-inquiry__field.full-width {
    grid-column: 1 / -1 !important;
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .project-inquiry__field {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }

  .project-inquiry__field > label:not(.project-inquiry__checkbox-label) {
    width: 100%;
    max-width: 100%;
    text-align: left !important;
  }

  .project-inquiry__input,
  .project-inquiry__select,
  .project-inquiry__textarea {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;

    font-size: 16px !important;

    padding: 0.9rem 1rem !important;
  }

  .project-inquiry__select {
    min-height: 48px;
  }

  .project-inquiry__textarea {
    min-height: 150px;
    resize: vertical;
  }

  .project-inquiry__input::placeholder,
  .project-inquiry__textarea::placeholder {
    white-space: normal;
    text-overflow: ellipsis;
  }

  /* Privacy checkbox */
  .project-inquiry__checkbox-label {
    width: 100%;
    max-width: 100%;
    min-width: 0;

    display: grid !important;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 0.75rem !important;

    align-items: start !important;
    text-align: left !important;
  }

  .project-inquiry__checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 0.15rem 0 0 !important;
  }

  .project-inquiry__checkbox-label .section-content {
    width: 100%;
    min-width: 0;
    max-width: 100%;

    text-align: left !important;
    overflow-wrap: break-word;
    word-break: normal;
  }

  .project-inquiry__footer {
    width: 100%;
    max-width: 100%;

    margin-top: 1.75rem !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .project-inquiry__footer .btn,
  #project-submit {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;

    padding: 1rem 1.25rem !important;

    display: flex;
    align-items: center;
    justify-content: center;

    white-space: normal !important;
    text-align: center;
  }

  .project-inquiry__status {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
}

@media (max-width: 390px) {

  .project-inquiry__container {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  .project-inquiry__card {
    padding: 1.25rem 1rem !important;
  }

  .project-inquiry__form-grid {
    gap: 1rem !important;
  }
}

