/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

/* Mega menu: hide desktop nav on mobile / hide hamburger on desktop */
@media (min-width:1025px){
  .bdt-mega-menu-hamburger-tablet .megamenu-header-default,
  .bdt-mega-menu-hamburger-m .megamenu-header-default{ display:flex !important; }
  .bdt-mega-menu-hamburger-tablet .megamenu-header-mobile,
  .bdt-mega-menu-hamburger-m .megamenu-header-mobile{ display:none !important; }
}
@media (max-width:1024px){
  .bdt-mega-menu-hamburger-tablet .megamenu-header-default,
  .bdt-mega-menu-hamburger-m .megamenu-header-default{ display:none !important; }
  .bdt-mega-menu-hamburger-tablet .megamenu-header-mobile,
  .bdt-mega-menu-hamburger-m .megamenu-header-mobile{ display:flex !important; justify-content:flex-end; }
}


/* ==QDS-START== */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;1,9..144,400&family=Hanken+Grotesk:wght@400;600&display=swap');

:root{
  --qds-ink:#14171A; --qds-navy:#2B3A46; --qds-blue:#45586B;
  --qds-pale:#C0CCDE; --qds-stone:#F0F2F4; --qds-muted:#6A7079; --qds-line:#E3E6EA;
}
body{ -webkit-font-smoothing:antialiased; }

/* --- Eyebrow: circle brand dot before the label --- */
.qds-eyebrow .elementor-heading-title::before,
.qds-eyebrow.elementor-widget-heading .elementor-heading-title::before{
  content:""; display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--qds-blue); margin-right:.7em; vertical-align:middle;
  position:relative; top:-1px;
}
.qds-eyebrow--pale .elementor-heading-title::before{ background:var(--qds-pale); }

/* --- Cover images fill their box --- */
.qds-cover img{ width:100%; height:100%; object-fit:cover; display:block; }

/* --- Buttons: crisp, minimal, brand hover --- */
.elementor-button{ transition:.35s cubic-bezier(.22,.61,.36,1); letter-spacing:.02em; }
.qds-btn-blue .elementor-button:hover{ background:transparent!important; color:var(--qds-blue)!important; box-shadow:inset 0 0 0 1px var(--qds-blue); }
.qds-btn-light .elementor-button:hover{ background:transparent!important; color:#fff!important; box-shadow:inset 0 0 0 1px #fff; }
.qds-btn-ghost .elementor-button:hover{ background:var(--qds-ink)!important; color:#fff!important; }

/* --- Fixed header: transparent over hero, solid on scroll --- */
.qds-header{ position:fixed; top:0; left:0; right:0; z-index:1000;
  transition:background .4s ease, box-shadow .4s ease, padding .4s ease; }
.qds-header .qds-logo-dark{ display:none; }
.qds-header.qds-scrolled{ background:#fff; box-shadow:0 1px 0 var(--qds-line); }
.qds-header.qds-scrolled .qds-logo-light{ display:none; }
.qds-header.qds-scrolled .qds-logo-dark{ display:block; }
.qds-header.qds-scrolled .qds-nav a{ color:var(--qds-ink)!important; }
.qds-nav a{ position:relative; transition:.3s; }
.qds-nav a::after{ content:""; position:absolute; left:0; bottom:-3px; height:1px; width:0; background:currentColor; transition:.3s cubic-bezier(.22,.61,.36,1); }
.qds-nav a:hover::after{ width:100%; }

/* --- About statement italic accent --- */
.qds-about-statement em{ font-style:italic; color:var(--qds-blue); }
.qds-about-statement p{ margin:0; }

/* --- Hero side tag (Est. Brisbane) --- */
.qds-hero-meta{ position:absolute; right:48px; bottom:104px; z-index:3;
  font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:12px; letter-spacing:1.5px;
  text-transform:uppercase; color:rgba(246,244,239,.7); writing-mode:vertical-rl; }
@media (max-width:1024px){ .qds-hero-meta{ display:none; } }

/* --- Projects masonry (matches mockup) --- */
#qds-projgrid{ grid-template-columns:repeat(6,1fr)!important; grid-auto-rows:11vw!important;
  grid-template-rows:unset!important; }
.qds-pa{ grid-column:span 4; grid-row:span 4; }
.qds-pb{ grid-column:span 2; grid-row:span 2; }
.qds-pc{ grid-column:span 2; grid-row:span 2; }
.qds-pd{ grid-column:span 2; grid-row:span 3; }
.qds-pe{ grid-column:span 2; grid-row:span 3; }
.qds-pf{ grid-column:span 2; grid-row:span 3; }
.qds-fill, .qds-fill .elementor-widget-container, .qds-fill .elementor-image,
.qds-fill figure, .qds-fill a{ height:100%; margin:0; display:block; }
@media (max-width:768px){
  #qds-projgrid{ grid-template-columns:repeat(2,1fr)!important; grid-auto-rows:44vw!important; }
  .qds-pa,.qds-pb,.qds-pc,.qds-pd,.qds-pe,.qds-pf{ grid-column:span 2!important; grid-row:span 1!important; }
}

/* --- Service / process tiles: hairline grid look handled by grid gap bg --- */
.qds-tile{ transition:background .35s ease; }
.qds-tile:hover{ background:#fff; }

/* --- Contact form (Ninja Forms) --- */
.qds-nf .nf-form-content{ max-width:none; padding:0; }
.qds-nf input:not([type="button"]), .qds-nf textarea, .qds-nf select{
  border-radius:1px !important; border:1px solid rgba(20,23,26,.16) !important;
  background:rgba(255,255,255,.7) !important; font-family:'Hanken Grotesk',sans-serif !important; color:var(--qds-ink) !important; }
.qds-nf input:focus, .qds-nf textarea:focus, .qds-nf select:focus{ border-color:var(--qds-blue) !important; background:#fff !important; }
.qds-nf .nf-field-label label{ font-family:'Hanken Grotesk',sans-serif !important; font-size:11px !important;
  letter-spacing:.12em; text-transform:uppercase; color:#3A4650 !important; font-weight:600 !important; }
.qds-nf input[type="button"]{ background:var(--qds-blue) !important; border:0 !important; border-radius:1px !important;
  font-family:'Hanken Grotesk',sans-serif !important; font-weight:600 !important; letter-spacing:.02em; }
.qds-nf input[type="button"]:hover{ background:var(--qds-navy) !important; }

/* --- Single Project template (single-project.php) --- */
.qds-ps-wrap{ max-width:1336px; margin:0 auto; padding:0 48px; box-sizing:border-box; }  /* content caps at 1240 rail w/ 48px gutters */
.qds-ps-hero{ position:relative; background:var(--qds-navy); background-size:cover; background-position:center; padding:190px 0 90px; color:#fff; }
.qds-ps-hero-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,23,26,.5), rgba(43,58,70,.86)); }
.qds-ps-hero .qds-ps-wrap{ position:relative; z-index:2; }
.qds-ps-eyebrow{ display:inline-block; font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:12px; letter-spacing:2.4px; text-transform:uppercase; color:var(--qds-pale); margin-bottom:16px; }
.qds-ps-eyebrow::before{ content:""; display:inline-block; width:8px; height:8px; border-radius:50%; background:var(--qds-pale); margin-right:.7em; vertical-align:middle; position:relative; top:-1px; }
.qds-ps-eyebrow--blue{ color:var(--qds-blue); }
.qds-ps-eyebrow--blue::before{ background:var(--qds-blue); }
.qds-ps-title{ font-family:'Fraunces',serif; font-weight:400; font-size:52px; line-height:1.05; margin:0; max-width:20ch; }
.qds-ps-body{ padding:80px 0 90px; background:#fff; }
.qds-ps-content p{ font-family:'Hanken Grotesk',sans-serif; font-size:18px; line-height:1.75; color:var(--qds-muted); max-width:70ch; }
.qds-ps-content .wp-block-gallery{ margin-top:38px; gap:14px; }
.qds-ps-content .wp-block-image img{ display:block; }
.qds-ps-back{ margin-top:46px; }
.qds-ps-back a{ font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:14px; letter-spacing:.02em; color:var(--qds-blue); text-decoration:none; }
.qds-ps-back a:hover{ color:var(--qds-navy); }
.qds-ps-cta{ background:var(--qds-pale); padding:88px 0; }
.qds-ps-cta-center{ text-align:center; max-width:640px; margin:0 auto; }
.qds-ps-cta-h{ font-family:'Fraunces',serif; font-weight:400; font-size:38px; margin:14px 0 16px; color:var(--qds-ink); }
.qds-ps-cta-p{ font-family:'Hanken Grotesk',sans-serif; font-size:17px; line-height:1.7; color:#3a4650; margin-bottom:26px; }
.qds-ps-btn{ display:inline-block; background:var(--qds-blue); color:#fff !important; font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:14px; letter-spacing:.02em; padding:15px 30px; text-decoration:none; transition:.35s cubic-bezier(.22,.61,.36,1); }
.qds-ps-btn:hover{ background:transparent; color:var(--qds-blue) !important; box-shadow:inset 0 0 0 1px var(--qds-blue); }
@media (max-width:768px){
  .qds-ps-wrap{ padding:0 24px; }
  .qds-ps-hero{ padding:140px 0 64px; }
  .qds-ps-title{ font-size:36px; }
}

/* --- [qds_projects] filterable project grid --- */
.qds-pgrid-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:34px; }
/* !important overrides the theme's global button rules (.elementor-kit-6 button = blue rest, button:hover = #c36 pink) */
.qds-pf-btn{ font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:13px; letter-spacing:.02em; padding:9px 18px; border:1px solid var(--qds-line) !important; background:#fff !important; color:var(--qds-muted) !important; cursor:pointer; transition:.25s; }
.qds-pf-btn:hover{ background:var(--qds-stone) !important; color:var(--qds-ink) !important; border-color:var(--qds-navy) !important; }
.qds-pf-btn.is-active{ background:var(--qds-navy) !important; color:#fff !important; border-color:var(--qds-navy) !important; }
.qds-pgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
/* Elementor sets --flex-wrap-mobile:wrap on containers; on the flex-COLUMN wrappers
   around the shortcode grid that wraps/clips the last card on mobile. Force nowrap. */
.e-con:has(.qds-pgrid), .e-con:has(.qds-pgrid) .e-con-inner{ flex-wrap:nowrap !important; }
.qds-pcard{ display:block; text-decoration:none; color:inherit; }
.qds-pcard-img{ width:100%; aspect-ratio:4/3; background:var(--qds-stone) center/cover no-repeat; transition:opacity .3s; }
.qds-pcard:hover .qds-pcard-img{ opacity:.9; }
.qds-pcard-meta{ padding:16px 2px 0; }
.qds-pcard-cat{ font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--qds-blue); }
.qds-pcard-title{ font-family:'Fraunces',serif; font-weight:400; font-size:20px; color:var(--qds-ink); margin:6px 0 0; line-height:1.2; }
.qds-pcard.is-hidden{ display:none; }
@media (max-width:1024px){ .qds-pgrid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .qds-pgrid{ grid-template-columns:1fr; } }

/* ==QDS-END== */
