/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1, h2, h3, h4, h5, h6, blockquote, caption, figcaption, p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}


/* ==== GENERAL CARD STYLING ==== */
.estimate-request-form #forminator-module-230,
#forminator-module-230 {
  max-width: 1200px;
  margin: 40px auto;
  padding: 40px 40px 35px;
  background: #f7f7f7;           /* Light grey card background */
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.06);
  box-sizing: border-box;
}

/* Remove Forminator’s default borders/shadows, if any */
#forminator-module-230 .forminator-field,
#forminator-module-230 .forminator-row {
  border: none;
  box-shadow: none;
}

/* ==== TITLE (“REQUEST ESTIMATE”) ==== */
.estimate-request-form h2,
.estimate-request-form .form-title {
  margin: 0 0 25px;
  font-size: 28px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 700;
}

/* If Forminator doesn’t output a title, you can add one above the shortcode in HTML:
   <h2 class="form-title">Request Estimate</h2> */

/* ==== GRID LAYOUT – TWO COLUMNS ON DESKTOP ==== */
#forminator-module-230 .forminator-row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
}

/* Let built-in column classes be real 50/100% widths */
#forminator-module-230 .forminator-col-6 {
  flex: 0 0 calc(50% - 10px);
}
#forminator-module-230 .forminator-col-12 {
  flex: 0 0 100%;
}

/* Make City + Zip sit on one row like the design */
#forminator-module-230 #address-1 .forminator-row[data-multiple="false"] .forminator-col {
  flex: 0 0 calc(50% - 10px);
}

/* ==== LABELS ==== */
#forminator-module-230 .forminator-label {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 500 !important;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Required star */
#forminator-module-230 .forminator-required {
  color: #EE4C01; /* small orange accent */
}

/* ==== INPUTS / TEXTAREA ==== */
#forminator-module-230 .forminator-input,
#forminator-module-230 .forminator-textarea {
  width: 100%;
  border-radius: 4px;
  border: none;
  background: #ffffff;
  padding: 10px 12px;
  font-size: 14px;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#forminator-module-230 .forminator-input:focus,
#forminator-module-230 .forminator-textarea:focus {
  border-color: #EE4C01;
  box-shadow: 0 0 0 2px rgba(255,90,0,0.15);
  outline: none;
}

/* Textarea taller like in mockup */
#forminator-module-230 .forminator-textarea {
  min-height: 180px;
}

/* Hide the “0 / 180” counter */
#forminator-module-230 .forminator-description {
  display: none;
}

/* ==== UPLOAD FIELD (“+ ADD A PHOTO”) ==== */
#forminator-module-230 .forminator-field-upload .forminator-multi-upload {
  border-radius: 4px;
  border: 1px dashed #cccccc;
  background: #ffffff;
  padding: 10px 12px;
  text-align: left;
  position: relative;
}

/* Make it look like a button + filename line */
#forminator-module-230 .forminator-multi-upload-message {
  display: flex;
  justify-content: flex-end;
  gap: 16px;
  margin: 0;
}

.forminator-ui.forminator-custom-form[data-design=flat] .forminator-multi-upload .forminator-multi-upload-message [class*=forminator-icon-]{
  display: none !important;
}

/* The button */
#forminator-module-230 .forminator-multi-upload-message a {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 4px;
  background: #f0f0f0;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Uploaded files text styling */
#forminator-module-230 .forminator-uploaded-files {
  margin-top: 6px;
  padding-left: 0;
  list-style: none;
  font-size: 12px;
  color: #555;
}

/* ==== CTA BUTTON BAR (“GET A QUOTE”) ==== */
#forminator-module-230 .forminator-row-last {
  margin-top: 30px;
}

/* Make last row full-width bar with centered button */
#forminator-module-230 .forminator-row-last .forminator-col {
  flex: 0 0 100%;
}

/* Big orange bar style */
#forminator-module-230 .forminator-button-submit {
  width: 100%;
  padding: 18px 20px;
  border-radius: 6px;
  border: none;
  background: #EE4C01;    /* main orange */
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.10em;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.05s ease;
}

#forminator-module-230 .forminator-button-submit:hover {
  background: #e34f00;
  transform: translateY(-1px);
}

/* Remove default focus outline and replace with glow */
#forminator-module-230 .forminator-button-submit:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255,90,0,0.4);
}

/* ==== RESPONSIVE ==== */
@media (max-width: 768px) {
  #forminator-module-230 {
    padding: 25px 20px 25px;
  }

  #forminator-module-230 .forminator-col-6,
  #forminator-module-230 .forminator-col-12,
  #forminator-module-230 #address-1 .forminator-row[data-multiple="false"] .forminator-col {
    flex: 0 0 100%;
  }

  #forminator-module-230 .forminator-row {
    gap: 14px;
  }
}


/* =========================================
   fit-image-square: ONLY square the images
   (keeps WP gallery layout + spacing intact)
   ========================================= */

/* If the class is on the gallery OR a parent */
.wp-block-gallery.fit-image-square figure,
.fit-image-square .wp-block-gallery figure,
.wp-block-gallery.fit-image-square .blocks-gallery-item,
.fit-image-square .wp-block-gallery .blocks-gallery-item,
.wp-block-gallery.fit-image-square li,
.fit-image-square .wp-block-gallery li{
  aspect-ratio: 1 / 1;   /* makes the tile square */
  overflow: hidden;      /* hides overflow when cropping */
}

/* Make inner wrappers fill the square */
.wp-block-gallery.fit-image-square figure > a,
.fit-image-square .wp-block-gallery figure > a,
.wp-block-gallery.fit-image-square figure > picture,
.fit-image-square .wp-block-gallery figure > picture,
.wp-block-gallery.fit-image-square .blocks-gallery-item > a,
.fit-image-square .wp-block-gallery .blocks-gallery-item > a,
.wp-block-gallery.fit-image-square .blocks-gallery-item > picture,
.fit-image-square .wp-block-gallery .blocks-gallery-item > picture{
  display: block;
  width: 100%;
  height: 100%;
}

/* Image fills the square without stretching */
.wp-block-gallery.fit-image-square img,
.fit-image-square .wp-block-gallery img{
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;     /* crop to square */
  object-position: center;
  display: block;
}

/* =========================================
   fit-image-square: last row should NOT stretch
   If last row has 1 or 2 items, keep their
   normal column width + align left
   ========================================= */

/* Flex-based gallery (legacy layout) */
.wp-block-gallery.fit-image-square,
.fit-image-square .wp-block-gallery{
  justify-content: flex-start !important; /* left align last row */
}

.wp-block-gallery.fit-image-square .blocks-gallery-item,
.fit-image-square .wp-block-gallery .blocks-gallery-item,
.wp-block-gallery.fit-image-square figure,
.fit-image-square .wp-block-gallery figure{
  flex-grow: 0 !important;  /* <-- key: prevents stretching */
}

/* Grid-based gallery (new "nested images" layout) */
.wp-block-gallery.fit-image-square.has-nested-images,
.fit-image-square .wp-block-gallery.has-nested-images{
  /* lock to the chosen column count, so last row doesn't expand */
  grid-template-columns: repeat(var(--gallery-columns, 3), minmax(0, 1fr)) !important;
  justify-items: start !important; /* left align items in last row */
}
