/*
Theme Name: ArcHub Child
Theme URI: https://archub.liquid-themes.com/
Author: Liquid Themes
Author URI: https://themeforest.net/user/liquidthemes
Template: archub
Description: Smart, Powerful and Unlimited Customizable WordPress Theme.
Version: 1.0
License: GNU General Public License
License URI: license.txt
Text Domain: archub-child
Tags: responsive, retina, rtl-language-support, blog, portfolio, custom-colors, live-editor
*/
/* ==========================================================================
   Responsive fixes (tablet + phone) — site-wide, no per-page Elementor edits
   Desktop (>1024px) is untouched.
   ========================================================================== */

/* ---------- Global safety nets (all sizes) ---------- */
img, video, iframe, embed, object { max-width: 100%; }
img { height: auto; }
.lqd-single-post-content iframe { width: 100%; }

/* ---------- Tablet (≤1024px) ---------- */
@media (max-width: 1024px) {
  :is(h1.ld-fh-element, h1.elementor-heading-title):not(.own-size *) { font-size: 44px !important; line-height: 1.15 !important; }
  :is(h2.ld-fh-element, h2.elementor-heading-title):not(.own-size *) { font-size: 38px !important; line-height: 1.2 !important; }

  /* Widgets with a fixed "laptop" width must not exceed the screen */
  .elementor-widget { max-width: 100% !important; }
}

/* ---------- Phone (≤767px) ---------- */
@media (max-width: 767px) {
  /* Headings: scale down, allow long words to wrap */
  :is(h1.ld-fh-element, h1.elementor-heading-title):not(.own-size *) { font-size: 34px !important; line-height: 1.2 !important; }
  :is(h2.ld-fh-element, h2.elementor-heading-title):not(.own-size *) { font-size: 30px !important; line-height: 1.25 !important; }
  .ld-fh-element, .elementor-heading-title { overflow-wrap: break-word; }

  /* Rotating-keyword headings ("Extraordinary Spaces…") */
  .txt-rotate-keywords, .txt-rotate-keyword { max-width: 100%; }
  .elementor-widget-hub_fancy_heading:has(.txt-rotate-keywords) { overflow: hidden; }

  /* Counters: fit the screen, big "150+" counter scaled down */
  .elementor-widget-ld_counter { width: 100% !important; max-width: 100% !important; }
  .elementor-widget-ld_counter .lqd-counter-element { font-size: min(18vw, 72px) !important; line-height: 1.1 !important; }

  /* Blog post tables: scroll sideways instead of being cut off */
  .lqd-single-post-content .wp-block-table,
  .lqd-single-post-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .lqd-single-post-content table { max-width: 100%; }
  .lqd-single-post-content th, .lqd-single-post-content td { min-width: 140px; }

  /* Body text in posts: comfortable reading size */
  .lqd-single-post-content p, .lqd-single-post-content li { font-size: 17px; line-height: 1.65; }

  /* Galleries / hotspots: never wider than the screen */
  .elementor-widget-ld_gallery, .elementor-widget-ld_hotspots { overflow: hidden; }
}

/* ---------- Header + hero on tablet (768–1024px) ---------- */
@media (max-width: 1024px) {
  /* Logo left, menu button right */
  .main-header .elementor-top-section > .elementor-container { justify-content: space-between; }
  .main-header .elementor-top-section > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { justify-content: flex-end; }

  /* Homepage hero heading: align with the logo instead of hugging the edge */
  .elementor-element-406273f > .elementor-widget-wrap { padding-left: 35px !important; padding-right: 35px !important; }
}

/* ==========================================================================
   Responsive pass 2 — page elements (from full-site audit, phone/tablet)
   ========================================================================== */

/* ---------- Blog posts: title + headings inside the article ---------- */
@media (max-width: 1024px) {
  .single-post .entry-title, .single-post h1.entry-title { font-size: 38px !important; line-height: 1.2 !important; }
  .lqd-single-post-content h2 { font-size: 34px !important; line-height: 1.25 !important; }
  .lqd-single-post-content h3 { font-size: 28px !important; line-height: 1.3 !important; }
  .lqd-single-post-content h4 { font-size: 22px !important; line-height: 1.35 !important; }
}
@media (max-width: 767px) {
  .single-post .entry-title, .single-post h1.entry-title { font-size: 30px !important; }
  .lqd-single-post-content h2 { font-size: 26px !important; }
  .lqd-single-post-content h3 { font-size: 22px !important; }
  .lqd-single-post-content h4 { font-size: 19px !important; }
  .lqd-single-post-content img { margin-left: auto; margin-right: auto; }
}

/* ---------- Team page: member names (40px on phones) ---------- */
@media (max-width: 1024px) {
  .elementor-element-3cc62e4a .ld-fh-element,
  .elementor-element-0cad991 .ld-fh-element,
  .elementor-element-f0bfb72 .ld-fh-element { font-size: 32px !important; line-height: 1.2 !important; }
}
@media (max-width: 767px) {
  .elementor-element-3cc62e4a .ld-fh-element,
  .elementor-element-0cad991 .ld-fh-element,
  .elementor-element-f0bfb72 .ld-fh-element { font-size: 26px !important; }
}

/* ---------- Icon boxes with oversized titles (Corridor service page) ---------- */
@media (max-width: 1024px) {
  .elementor-element-c037986 .lqd-iconbox-heading, .elementor-element-76621d6 .lqd-iconbox-heading,
  .elementor-element-411a980 .lqd-iconbox-heading, .elementor-element-a1ca0b0 .lqd-iconbox-heading,
  .elementor-element-bc5a59a .lqd-iconbox-heading { font-size: 30px !important; line-height: 1.25 !important; }
}
@media (max-width: 767px) {
  .elementor-element-c037986 .lqd-iconbox-heading, .elementor-element-76621d6 .lqd-iconbox-heading,
  .elementor-element-411a980 .lqd-iconbox-heading, .elementor-element-a1ca0b0 .lqd-iconbox-heading,
  .elementor-element-bc5a59a .lqd-iconbox-heading { font-size: 24px !important; }
}

/* ---------- Oversized section spacing on tablet/phone ---------- */
@media (max-width: 1024px) {
  .elementor-element-31738e6f { padding-top: 160px !important; padding-bottom: 160px !important; }
  .elementor-element-df10267 { padding-top: 120px !important; }
  .elementor-element-1d0055b, .elementor-element-25a03e3,
  .elementor-element-19b124bc, .elementor-element-3015a1ea { padding-top: 90px !important; }
}
@media (max-width: 767px) {
  .elementor-element-31738e6f { padding-top: 100px !important; padding-bottom: 100px !important; }
  .elementor-element-2bfcb33a, .elementor-element-2e6830a { padding-top: 80px !important; padding-bottom: 80px !important; }
  .elementor-element-df10267 { padding-top: 80px !important; }
  .elementor-element-1d0055b, .elementor-element-25a03e3,
  .elementor-element-19b124bc, .elementor-element-3015a1ea { padding-top: 60px !important; }
}

/* ---------- Touch devices: bigger tap area on text-link buttons ---------- */
@media (max-width: 1024px) {
  .elementor-widget-ld_button .btn { min-height: 44px; display: inline-flex; align-items: center; }
}

/* ---------- Phone: general polish ---------- */
@media (max-width: 767px) {
  /* Absolute-positioned decorations never push past the screen */
  .elementor-absolute { max-width: 100vw; }
  .elementor-element-5bcd369 { left: 0 !important; right: 0 !important; width: 100% !important; }

  /* Buttons that sit side by side wrap nicely */
  .elementor-widget-ld_button { max-width: 100%; }
  .elementor-widget-ld_button .btn { white-space: normal; text-align: center; }

  /* Forms: full-width fields, 16px text so iPhones don't zoom in */
  .wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),
  .wpcf7 select, .wpcf7 textarea { width: 100%; font-size: 16px; }
}

/* ---------- H2 headings: 50px desktop + tablet, 40px phone (all H2s site-wide) ----------
   To control one heading's size from Elementor instead, add the CSS class  own-size
   to that widget (Advanced > CSS Classes). */
:is(body h2, body .h2:not(.lqd-counter-element):not(.lqd-counter-element *), body .lqd-single-post-content h2):not(.own-size *) { font-size: 50px !important; line-height: 1.2 !important; }
body h2 span, body h2 .txt-rotate-keyword { font-size: inherit !important; }
@media (max-width: 767px) {
  :is(body h2, body .h2:not(.lqd-counter-element):not(.lqd-counter-element *), body .lqd-single-post-content h2):not(.own-size *) { font-size: 40px !important; line-height: 1.2 !important; }
}

/* ---------- H1 headings: 50px desktop + tablet, 40px phone (all H1s site-wide, incl. blog post titles) ---------- */
:is(body h1, body .h1:not(.lqd-counter-element):not(.lqd-counter-element *)):not(.own-size *) { font-size: 50px !important; line-height: 1.2 !important; }
body h1 span { font-size: inherit !important; }
@media (max-width: 767px) {
  :is(body h1, body .h1:not(.lqd-counter-element):not(.lqd-counter-element *)):not(.own-size *) { font-size: 40px !important; line-height: 1.2 !important; }
}

/* ---------- H3 headings: 42px desktop + tablet, 36px phone ----------
   Applies to H3 section headings (heading widgets + blog post headings).
   Small H3 card titles (icon boxes, progress bars, About-page process steps) keep their own sizes. */
:is(body h3.ld-fh-element, body h3.elementor-heading-title, body .lqd-single-post-content h3):not(.own-size *):not(.elementor-element-48fff33b *):not(.elementor-element-180ee7ff *):not(.elementor-element-5cc33e9 *):not(.elementor-element-1de16d05 *):not(.elementor-element-95d74b0 *) { font-size: 42px !important; line-height: 1.2 !important; }
body h3.ld-fh-element span { font-size: inherit !important; }
@media (max-width: 767px) {
  :is(body h3.ld-fh-element, body h3.elementor-heading-title, body .lqd-single-post-content h3):not(.own-size *):not(.elementor-element-48fff33b *):not(.elementor-element-180ee7ff *):not(.elementor-element-5cc33e9 *):not(.elementor-element-1de16d05 *):not(.elementor-element-95d74b0 *) { font-size: 36px !important; line-height: 1.2 !important; }
}

/* ---------- H4 headings: 36px desktop + tablet, 28px phone ----------
   Applies to all H4s (accordion titles, Team names, blog sub-headings).
   Team page role / email labels keep their small size. */
:is(body h4, body .lqd-single-post-content h4):not(.own-size *):not(.lqd-hotspot-content *):not(.elementor-element-5931c482 *):not(.elementor-element-c2878ac *):not(.elementor-element-543c437 *):not(.elementor-element-a2593e7 *):not(.elementor-element-62d9f59 *):not(.elementor-element-1feaeee *) { font-size: 36px !important; line-height: 1.2 !important; }
body h4 span { font-size: inherit !important; }
@media (max-width: 767px) {
  :is(body h4, body .lqd-single-post-content h4):not(.own-size *):not(.lqd-hotspot-content *):not(.elementor-element-5931c482 *):not(.elementor-element-c2878ac *):not(.elementor-element-543c437 *):not(.elementor-element-a2593e7 *):not(.elementor-element-62d9f59 *):not(.elementor-element-1feaeee *) { font-size: 28px !important; line-height: 1.25 !important; }
}

/* ---------- Image hotspots (project pages): readable tooltips that stay inside the image ---------- */
.lqd-hotspot-item { cursor: pointer; }
.lqd-hotspot-item.is-open .lqd-hotspot-content { opacity: 1; visibility: visible; }
.lqd-hotspot-content { box-sizing: border-box; z-index: 20; }
.elementor-widget-ld_hotspots .lqd-hotspot-content .title { font-size: 22px !important; line-height: 1.25 !important; margin-bottom: .4em; }
.elementor-widget-ld_hotspots .lqd-hotspot-content p { font-size: 14px; line-height: 1.5; }
@media (max-width: 767px) {
  .elementor-widget-ld_hotspots .lqd-hotspot-content { padding: 16px !important; }
  .elementor-widget-ld_hotspots .lqd-hotspot-content .title { font-size: 18px !important; }
}

/* ---------- Tabs (project pages): all tabs side by side on phones ---------- */
@media (max-width: 767px) {
  .elementor-widget-ld_tabs .lqd-tabs-nav { flex-wrap: nowrap !important; align-items: stretch !important; }
  .elementor-widget-ld_tabs .lqd-tabs-nav > li { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; max-width: none !important; padding: 0 4px !important; display: flex; }
  .elementor-widget-ld_tabs .lqd-tabs-nav > li > a { display: flex !important; flex-direction: column; justify-content: flex-end; width: 100%; }
  .elementor-widget-ld_tabs .lqd-tabs-nav > li > a > .lqd-tabs-nav-icon { flex: 1 1 auto; display: flex !important; flex-direction: column; justify-content: space-between; }
  .elementor-widget-ld_tabs .lqd-tabs-nav-content .h3 { font-size: 12px !important; line-height: 1.3 !important; letter-spacing: .02em; overflow-wrap: break-word; }
  .elementor-widget-ld_tabs .lqd-tabs-nav-icon-icon { margin-bottom: 6px; }
}

/* Tabs on phones: even spacing between the tab row and the text below */
@media (max-width: 767px) {
  .elementor-widget-ld_tabs .lqd-tabs-nav > li { margin-bottom: 0 !important; }
  .elementor-widget-ld_tabs .lqd-tabs-nav > li > a { padding-bottom: 8px !important; }
  .elementor-widget-ld_tabs .lqd-tabs-nav-wrap { margin-bottom: 20px !important; }
  .elementor-widget-ld_tabs .lqd-tabs-pane > :first-child, .elementor-widget-ld_tabs .lqd-tabs-pane p:first-child { margin-top: 0 !important; }
}


/* Ninja Forms: match the Contact Form 7 look */
.nf-form-cont .nf-form-title, .nf-form-cont .nf-form-fields-required { display: none !important; }
.nf-form-cont nf-fields-wrap { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 30px; row-gap: 6px; }
.nf-form-cont nf-field { display: block; min-width: 0; }
.nf-form-cont nf-field:has(.textarea-container, .checkbox-container, .submit-container, .html-container, .listcheckbox-container, .hr-container) { grid-column: 1 / -1; }
.nf-form-cont .nf-field-container { margin-bottom: 0 !important; }
.nf-form-cont .nf-field-label { margin: 0 !important; }
.nf-form-cont .nf-field-label label { font-size: 12px !important; font-weight: 400 !important; color: #b9b9b9 !important; line-height: 1.6 !important; }
.nf-form-cont .nf-field-label .ninja-forms-req-symbol { color: #b9b9b9 !important; }
.nf-form-cont .nf-field-element input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), .nf-form-cont .nf-field-element textarea, .nf-form-cont .nf-field-element select { width: 100% !important; height: auto !important; min-height: 44px; padding: 8px 0 !important; font-size: 18px !important; line-height: 1.5 !important; color: #333 !important; background: transparent !important; border: 0 !important; border-bottom: 1px solid #d3d6e3 !important; border-radius: 0 !important; box-shadow: none !important; outline: 0 !important; }
.nf-form-cont .nf-field-element textarea { min-height: 120px; resize: vertical; }
.nf-form-cont .nf-field-element input:focus, .nf-form-cont .nf-field-element textarea:focus { border-bottom-color: #000 !important; }
.nf-form-cont ::placeholder { color: #8a8a8a; opacity: 1; }
.nf-form-cont .checkbox-wrap label, .nf-form-cont .nf-field-element label { font-size: 16px; color: #333; }
.nf-form-cont .nf-field-element input[type=submit], .nf-form-cont .nf-field-element button, .nf-form-cont input[type=button].ninja-forms-field { width: 100% !important; height: auto !important; padding: 14px 20px !important; margin-top: 10px; background: #000 !important; color: #fff !important; border: 0 !important; border-radius: 0 !important; font-size: 18px !important; cursor: pointer; transition: opacity .2s; }
.nf-form-cont .nf-field-element input[type=submit]:hover { opacity: .85; }
.nf-form-cont .nf-error-msg, .nf-form-cont .nf-form-errors, .nf-form-cont .nf-response-msg { font-size: 14px; }
@media (max-width: 767px) { .nf-form-cont nf-fields-wrap { grid-template-columns: 1fr; } }
/* Ninja Forms: larger, easier to read text */
.nf-form-cont .nf-field-label label { font-size: 16px !important; color: #7a7a7a !important; line-height: 1.5 !important; }
.nf-form-cont .nf-field-label .ninja-forms-req-symbol { color: #7a7a7a !important; }
.nf-form-cont .nf-field-element input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), .nf-form-cont .nf-field-element textarea, .nf-form-cont .nf-field-element select { font-size: 20px !important; min-height: 50px; }
.nf-form-cont .checkbox-container .nf-field-label label, .nf-form-cont .checkbox-wrap label, .nf-form-cont .nf-field-element label { font-size: 18px !important; color: #444 !important; }
.nf-form-cont .nf-error-msg, .nf-form-cont .nf-form-errors, .nf-form-cont .nf-response-msg, .nf-form-cont .nf-error-wrap, .nf-form-cont .nf-error { font-size: 16px !important; }
.nf-form-cont .nf-field-element input[type=submit], .nf-form-cont .nf-field-element button { font-size: 20px !important; padding: 16px 20px !important; }
@media (max-width: 767px) { .nf-form-cont .nf-field-element input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), .nf-form-cont .nf-field-element textarea, .nf-form-cont .nf-field-element select { font-size: 18px !important; } }


/* Ninja Forms on the Contact page: boxed grid look (matches the original contact form) */
.page-id-8064 .nf-form-cont nf-fields-wrap { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 0 !important; row-gap: 0 !important; border-top: 1px solid #cfcfcf; border-left: 1px solid #cfcfcf; }
.page-id-8064 .nf-form-cont nf-field { border-right: 1px solid #cfcfcf; border-bottom: 1px solid #cfcfcf; padding: 18px 20px 14px; }
.page-id-8064 .nf-form-cont nf-field:has(.textarea-container) { grid-column: 1 / -1; min-height: 220px; }
.page-id-8064 .nf-form-cont nf-field:has(.checkbox-container, .submit-container, .html-container, .hr-container, .listcheckbox-container) { grid-column: 1 / -1; border: 0 !important; padding: 12px 0 0; }
.page-id-8064 .nf-form-cont .nf-field-label label { font-size: 15px !important; color: #333 !important; line-height: 1.5 !important; }
.page-id-8064 .nf-form-cont .nf-field-element input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]), .page-id-8064 .nf-form-cont .nf-field-element textarea, .page-id-8064 .nf-form-cont .nf-field-element select { border: 0 !important; padding: 8px 0 !important; font-size: 20px !important; min-height: 40px; background: transparent !important; }
.page-id-8064 .nf-form-cont .nf-field-element textarea { min-height: 150px; }
.page-id-8064 .nf-form-cont ::placeholder { color: #b5b5b5 !important; opacity: 1; }
.page-id-8064 .nf-form-cont .checkbox-container .nf-field-label label, .page-id-8064 .nf-form-cont .checkbox-wrap label { font-size: 13px !important; color: #444 !important; }
.page-id-8064 .nf-form-cont .nf-field-element input[type=submit], .page-id-8064 .nf-form-cont .nf-field-element button { width: 100% !important; margin-top: 18px; padding: 20px !important; background: #000 !important; color: #fff !important; font-size: 18px !important; border: 0 !important; border-radius: 0 !important; }
.page-id-8064 .nf-form-cont .nf-error-msg { font-size: 14px !important; margin-top: 6px; }
@media (max-width: 767px) { .page-id-8064 .nf-form-cont nf-fields-wrap { grid-template-columns: 1fr; } .page-id-8064 .nf-form-cont nf-field { padding: 14px 16px 10px; } }

/* ---------- Testimonial carousel: name bigger, position smaller, quote in Work Sans 16px (responsive) ---------- */
html body .lqd-testi-np h3:not(#a):not(#b) { font-size: 24px !important; line-height: 1.3 !important; margin-bottom: .2em !important; }
html body .lqd-testi-np h4:not(#a):not(#b) { font-size: 16px !important; line-height: 1.4 !important; }
html body .lqd-testi-quote :is(blockquote, blockquote p, p) { font-family: "Work Sans", sans-serif !important; font-size: 16px !important; line-height: 1.7 !important; }
@media (max-width: 1024px) { html body .lqd-testi-np h3:not(#a):not(#b) { font-size: 22px !important; } html body .lqd-testi-np h4:not(#a):not(#b) { font-size: 15px !important; } html body .lqd-testi-quote :is(blockquote, blockquote p, p) { font-size: 15px !important; } }
@media (max-width: 767px) { html body .lqd-testi-np h3:not(#a):not(#b) { font-size: 20px !important; } html body .lqd-testi-np h4:not(#a):not(#b) { font-size: 14px !important; } html body .lqd-testi-quote :is(blockquote, blockquote p, p) { font-size: 14px !important; line-height: 1.65 !important; } }


/* Testimonial carousel: tighter spacing, position in Work Sans 14px */
html body .lqd-testi-style-6:not(#a):not(#b) { padding-top: 20px !important; padding-bottom: 20px !important; }
html body .lqd-testi .lqd-testi-quote:not(#a):not(#b) { margin-bottom: 16px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
html body .lqd-testi .lqd-testi-info:not(#a):not(#b) { padding-bottom: 0 !important; margin-bottom: 0 !important; }
html body .lqd-testi .lqd-testi-np:not(#a):not(#b) { padding-left: 0 !important; padding-inline-start: 0 !important; }
html body .lqd-testi .lqd-testi-np h3:not(#a):not(#b) { margin: 0 0 4px !important; }
html body .lqd-testi .lqd-testi-np h4:not(#a):not(#b) { margin: 0 !important; font-family: "Work Sans", sans-serif !important; font-size: 14px !important; line-height: 1.4 !important; }
html body .lqd-testi .lqd-testi-quote :is(blockquote, blockquote p, p, blockquote *):not(#a):not(#b) { font-family: "Work Sans", sans-serif !important; margin-bottom: 0 !important; }

/* Testimonial carousel: match the site's body text (Work Sans, same colour, regular weight) */
html body .lqd-testi .lqd-testi-quote :is(blockquote, blockquote p, p, blockquote *):not(#a):not(#b) { font-family: "Work Sans", sans-serif !important; font-weight: 400 !important; font-style: normal !important; color: var(--color-font, #626974) !important; letter-spacing: normal !important; line-height: 1.7 !important; }
html body .lqd-testi .lqd-testi-np h4:not(#a):not(#b) { font-weight: 400 !important; letter-spacing: normal !important; color: var(--color-font, #626974) !important; opacity: .85; }


/* Testimonial carousel: description + position at 18px (17px tablet, 16px phone) */
html body .lqd-testi .lqd-testi-quote :is(blockquote, blockquote p, p, blockquote *):not(#a):not(#b), html body .lqd-testi .lqd-testi-np h4:not(#a):not(#b) { font-size: 18px !important; }
@media (max-width: 1024px) { html body .lqd-testi .lqd-testi-quote :is(blockquote, blockquote p, p, blockquote *):not(#a):not(#b), html body .lqd-testi .lqd-testi-np h4:not(#a):not(#b) { font-size: 17px !important; } }
@media (max-width: 767px) { html body .lqd-testi .lqd-testi-quote :is(blockquote, blockquote p, p, blockquote *):not(#a):not(#b), html body .lqd-testi .lqd-testi-np h4:not(#a):not(#b) { font-size: 16px !important; } }