/*
 Theme Name:   Rising Construction Child
 Theme URI:    https://risingconstruction.com.au/
 Description:  Custom luxury golden child theme for Rising Construction. Extends GeneratePress.
 Author:       Rising Construction
 Template:     generatepress
 Version:      2.0.0
*/

/* ============================================================
   01. DESIGN TOKENS (CSS variables)
   ============================================================ */
:root{
  --rc-base:        #1d1916;     /* deep warm near-black */
  --rc-base-soft:   #241f1a;     /* hover bg on dark cards */
  --rc-cream:       #f5efe2;     /* page bg */
  --rc-cream-warm:  #ece4d0;     /* alt page bg */
  --rc-paper:       #fff;        /* white cards on cream */
  --rc-gold:        #d0a746;     /* primary brand gold */
  --rc-gold-dk:     #c5993e;     /* hover/active */
  --rc-gold-lt:     #e7c869;     /* highlight */
  --rc-gold-deep:   #b8862f;     /* deepest in sheen gradient */
  --rc-gold-sheen:  linear-gradient(135deg,#e7c869 0%,#d0a746 45%,#b8862f 100%);
  --rc-text:        #1d1916;
  --rc-text-soft:   #4a4338;
  --rc-text-muted:  #6b6253;
  --rc-text-dim:    #bcae93;
  --rc-divider:     rgba(208,167,70,.25);
  --rc-divider-soft:rgba(208,167,70,.15);

  /* Brand red (from original logo) — used sparingly */
  --rc-red:         #c41e2e;

  --rc-serif:  'Cormorant Garamond', 'Garamond', 'Times New Roman', serif;
  --rc-sans:   'Jost', 'Trebuchet MS', system-ui, -apple-system, sans-serif;

  --rc-max:    1200px;
}

/* ============================================================
   02. BASE PROSE OVERRIDES
   ============================================================ */
body{font-family:var(--rc-sans);color:var(--rc-text-soft);background:var(--rc-cream)}
body, p{font-size:16px;line-height:1.7}
a{color:var(--rc-gold-dk);text-decoration:none}
a:hover{color:var(--rc-gold)}

/* ============================================================
   03. HEADER + NAVIGATION
   ============================================================ */

/* Reset GP defaults that fight our design */
.site-header{background:transparent;border:none;padding:0}
.site-header .inside-header{padding:0;max-width:none}
.main-navigation{border:none}

/* Default (inner-page) header: cream background with dark nav below */
body.rc-header-light .site-header{
  background:var(--rc-cream);
  border-bottom:1px solid var(--rc-divider-soft);
  padding:14px 0
}
body.rc-header-light .site-header .inside-header{
  display:flex;align-items:center;justify-content:flex-start;
  max-width:var(--rc-max);margin:0 auto;padding:0 6vw;
  gap:24px
}
body.rc-header-light .site-logo,
body.rc-header-light .site-branding{flex:0 0 auto}

/* Overlay header (home + page-blank + rc-post-blank): transparent, sits over hero */
body.page-template-page-blank .site-header,
body.rc-post-blank .site-header,
body.home .site-header{
  position:absolute;top:0;left:0;right:0;z-index:50;
  background:transparent;border:none;padding:18px 0
}
body.page-template-page-blank .site-header .inside-header,
body.rc-post-blank .site-header .inside-header,
body.home .site-header .inside-header{
  display:flex;align-items:center;justify-content:space-between;
  max-width:var(--rc-max);margin:0 auto;padding:0 6vw
}

/* === LOGO === */
.site-logo{display:flex;align-items:center;flex:0 0 auto}
.site-logo a{display:block;line-height:0}
.site-logo img.header-image{
  display:block;
  height:56px;width:auto;max-width:280px;
  transition:opacity .25s
}
.site-logo a:hover img{opacity:.85}
/* On overlay header (dark hero): logo needs to read white — invert/brighten */
body.page-template-page-blank .site-logo img.header-image,
body.rc-post-blank .site-logo img.header-image,
body.home .site-logo img.header-image{
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));
  opacity:1
}
body.page-template-page-blank .site-logo a:hover img,
body.rc-post-blank .site-logo a:hover img,
body.home .site-logo a:hover img{opacity:1}
/* On light/cream header: keep original brand colours (no filter) */

/* Hide GP's text-based main-title/site-description when custom_logo is set (it's redundant) */
.site-logo + .site-branding,
.has-logo .site-branding,
.wp-custom-logo .site-branding{display:none !important}

/* === NAVIGATION === */
/* The nav uses GP's default markup. We restyle it. */

/* On overlay (dark hero) pages: transparent nav, light text */
body.page-template-page-blank .main-navigation,
body.rc-post-blank .main-navigation,
body.home .main-navigation{
  position:absolute;top:0;left:0;right:0;z-index:51;
  background:transparent;border:none;padding-top:24px
}
body.page-template-page-blank .main-navigation .inside-navigation,
body.rc-post-blank .main-navigation .inside-navigation,
body.home .main-navigation .inside-navigation{
  display:flex;justify-content:flex-end;
  max-width:var(--rc-max);margin:0 auto;padding:0 6vw;background:transparent
}
body.page-template-page-blank .main-navigation .main-nav,
body.rc-post-blank .main-navigation .main-nav,
body.home .main-navigation .main-nav{flex:0 0 auto}
body.page-template-page-blank .main-navigation .main-nav ul li a,
body.rc-post-blank .main-navigation .main-nav ul li a,
body.home .main-navigation .main-nav ul li a{
  color:#e8ddc6;background:transparent;
  font-family:var(--rc-sans);font-size:12px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  padding:10px 18px;line-height:1.4;
  transition:color .25s
}
body.page-template-page-blank .main-navigation .main-nav ul li a:hover,
body.page-template-page-blank .main-navigation .main-nav ul li.current-menu-item > a,
body.rc-post-blank .main-navigation .main-nav ul li a:hover,
body.rc-post-blank .main-navigation .main-nav ul li.current-menu-item > a,
body.home .main-navigation .main-nav ul li a:hover,
body.home .main-navigation .main-nav ul li.current-menu-item > a{
  color:var(--rc-gold-lt);background:transparent
}
/* Move the nav up inline with the logo on overlay layout */
body.page-template-page-blank .main-navigation,
body.rc-post-blank .main-navigation,
body.home .main-navigation{top:28px;padding-top:0}
body.page-template-page-blank .main-navigation .inside-navigation,
body.rc-post-blank .main-navigation .inside-navigation,
body.home .main-navigation .inside-navigation{padding-right:6vw}

/* On inner-page (cream) layout: solid dark nav bar below cream header */
body.rc-header-light .main-navigation{
  background:var(--rc-base);border:none;margin:0
}
body.rc-header-light .main-navigation .inside-navigation{
  max-width:var(--rc-max);margin:0 auto;padding:0 6vw;background:transparent
}
body.rc-header-light .main-navigation .main-nav ul li a{
  color:#e8ddc6;background:transparent;
  font-family:var(--rc-sans);font-size:12px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  padding:18px 22px
}
body.rc-header-light .main-navigation .main-nav ul li a:hover,
body.rc-header-light .main-navigation .main-nav ul li.current-menu-item > a{
  color:var(--rc-gold-lt);background:transparent
}

/* Submenu (dropdown) */
.main-navigation ul ul{
  background:var(--rc-base) !important;
  border:1px solid var(--rc-divider) !important
}
.main-navigation ul ul li a{
  color:#cdbf9f !important;padding:12px 18px !important;
  font-size:11.5px !important;letter-spacing:.18em !important;
  background:transparent
}
.main-navigation ul ul li a:hover{color:var(--rc-gold-lt) !important}

/* Mobile menu toggle */
.menu-toggle{
  background:transparent !important;
  color:var(--rc-gold) !important;
  font-family:var(--rc-sans);font-size:11px;
  letter-spacing:.22em;text-transform:uppercase;
  border:1px solid rgba(208,167,70,.45);
  padding:8px 14px;border-radius:2px
}
body.page-template-page-blank .menu-toggle,
body.rc-post-blank .menu-toggle,
body.home .menu-toggle{color:var(--rc-cream) !important;border-color:rgba(231,200,105,.45)}
.menu-toggle:hover{background:rgba(208,167,70,.08) !important}

/* Push page content below header on inner pages (no overlay) */
body.rc-header-light .site-content{padding-top:0}

/* Skip-link styling kept default — GP handles it */

/* ============================================================
   04. BLANK TEMPLATE WRAP (full-bleed page content)
   ============================================================ */
.rc-blank-wrap{width:100%;margin:0;padding:0}
.rc-blank-wrap > *{max-width:100%}

/* Strip GP container wrappers on blank template + single posts */
.page-template-page-blank .inside-article,
.page-template-page-blank .entry-content,
.page-template-page-blank .content-area,
.page-template-page-blank #primary,
.rc-post-blank .inside-article,
.rc-post-blank .entry-content,
.rc-post-blank .content-area,
.rc-post-blank #primary{padding:0 !important;margin:0 !important;background:transparent !important}

.page-template-page-blank .site-content,
.page-template-page-blank .grid-container,
.rc-post-blank .site-content,
.rc-post-blank .grid-container{max-width:100% !important;padding:0 !important;margin:0 !important;width:100% !important}

.page-template-page-blank #page,
.rc-post-blank #page{max-width:100% !important;padding-top:0 !important;margin-top:0 !important}

/* Hide GP's auto-rendered title + meta on single posts */
.rc-post-blank .entry-header,
.rc-post-blank .post-image,
.rc-post-blank .featured-image,
.rc-post-blank .post-image-aligned-center,
.rc-post-blank .entry-meta,
.rc-post-blank .post-navigation,
.rc-post-blank .nav-below{display:none !important}

/* ============================================================
   05. UTILITY HELPERS used by content blocks
   ============================================================ */
.rc-eyebrow-h{
  font-size:11px;letter-spacing:.34em;color:var(--rc-gold-dk);
  text-transform:uppercase;display:inline-flex;align-items:center;
  gap:14px;margin-bottom:20px;font-weight:500
}
.rc-eyebrow-h::before{content:'';width:36px;height:1px;background:var(--rc-gold)}
.rc-eyebrow-h.center{justify-content:center}
.rc-eyebrow-h.center::after{content:'';width:36px;height:1px;background:var(--rc-gold)}
.rc-eyebrow-h.light{color:var(--rc-gold-lt)}

.rc-btn-gold{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--rc-gold-sheen);color:#1d1408;
  padding:15px 30px;font-family:var(--rc-sans);font-size:11.5px;
  letter-spacing:.22em;font-weight:500;text-transform:uppercase;
  border-radius:2px;text-decoration:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 14px rgba(0,0,0,.18);
  transition:transform .25s,box-shadow .25s
}
.rc-btn-gold:hover{
  color:#1d1408;transform:translateY(-2px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 6px 22px rgba(0,0,0,.25)
}

.rc-btn-ghost{
  display:inline-flex;align-items:center;gap:10px;
  background:transparent;color:var(--rc-cream);
  padding:14px 28px;font-family:var(--rc-sans);font-size:11.5px;
  letter-spacing:.22em;font-weight:400;text-transform:uppercase;
  border:1px solid rgba(231,200,105,.45);border-radius:2px;text-decoration:none;
  transition:all .25s
}
.rc-btn-ghost:hover{color:var(--rc-gold-lt);border-color:var(--rc-gold-lt);background:rgba(208,167,70,.05)}

.rc-dark{background:var(--rc-base);color:var(--rc-cream)}

/* CTA block reused on several pages */
.rc-cta{
  background:#1d1916 url('https://risingconstruction.com.au/wp-content/uploads/2015/12/about-call-to-action-57862405.jpg') center/cover no-repeat;
  padding:140px 6vw;position:relative;color:var(--rc-cream);text-align:center
}
.rc-cta::before{content:'';position:absolute;inset:0;background:rgba(29,25,22,.78)}
.rc-cta .inner{position:relative;max-width:760px;margin:0 auto}
.rc-cta h2{font-family:var(--rc-serif);font-weight:400;font-size:clamp(40px,5vw,64px);line-height:1.08;margin:0 0 22px;color:var(--rc-cream)}
.rc-cta h2 em{color:var(--rc-gold-lt);font-style:italic;font-weight:300}
.rc-cta p{font-family:var(--rc-serif);font-style:italic;font-size:21px;color:#cdbf9f;margin:0 0 42px;line-height:1.5}
.rc-cta .actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ============================================================
   06. FOOTER
   ============================================================ */
.rc-luxury-footer{
  background:var(--rc-base);color:#cdbf9f;
  padding:90px 6vw 0;font-family:var(--rc-sans);
  position:relative;overflow:hidden
}
.rc-luxury-footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(208,167,70,.5) 50%,transparent 100%)
}
.rc-foot-inner{
  max-width:var(--rc-max);margin:0 auto;
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;
  gap:60px;padding-bottom:70px
}

/* Footer brand block with the actual SVG logo */
.rc-foot-brand img{
  display:block;width:auto;height:64px;max-width:260px;
  margin-bottom:24px;
  filter:none;
  opacity:1
}
.rc-foot-blurb{
  font-family:var(--rc-serif);font-style:italic;font-size:15.5px;
  color:#cdbf9f;line-height:1.65;margin:0;max-width:36ch
}

.rc-foot-eyebrow{
  font-size:10px;letter-spacing:.28em;color:var(--rc-gold-lt);
  text-transform:uppercase;margin-bottom:24px;
  padding-bottom:14px;border-bottom:1px solid var(--rc-divider);
  font-weight:500
}
.rc-foot-links{list-style:none;padding:0;margin:0}
.rc-foot-links li{margin-bottom:11px}
.rc-foot-links li a{
  color:#cdbf9f;text-decoration:none;font-size:14px;
  transition:color .25s;border-bottom:none
}
.rc-foot-links li a:hover{color:var(--rc-gold-lt)}

.rc-foot-address{
  font-style:normal;font-size:14px;color:#cdbf9f;
  line-height:1.7;margin:0 0 20px
}
.rc-foot-link-phone,
.rc-foot-link-email{
  display:block;color:var(--rc-cream);text-decoration:none;
  font-family:var(--rc-serif);font-size:19px;
  margin-bottom:6px;border:none
}
.rc-foot-link-email{font-size:15px;font-style:italic}
.rc-foot-link-phone:hover,
.rc-foot-link-email:hover{color:var(--rc-gold-lt)}
.rc-foot-hours{
  font-size:12.5px;letter-spacing:.06em;color:var(--rc-text-dim);
  margin-top:16px;padding-top:14px;border-top:1px solid var(--rc-divider-soft)
}

.rc-foot-divider{
  height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(208,167,70,.35) 50%,transparent 100%);
  margin:0 auto;max-width:var(--rc-max)
}
.rc-foot-bottom{
  max-width:var(--rc-max);margin:0 auto;
  padding:26px 0;
  display:flex;justify-content:space-between;align-items:center;
  gap:30px;font-size:11.5px;letter-spacing:.04em;
  color:#8a8170;flex-wrap:wrap
}
.rc-foot-bottom-r{font-family:var(--rc-serif);font-style:italic;color:var(--rc-text-dim)}

/* override GP's site-info bar (the "Built with..." line container) */
.site-info{
  background:#15110e !important;
  color:#8a8170 !important;
  border-top:1px solid var(--rc-divider-soft);
  padding:0
}
.site-info,.site-info a{color:#8a8170 !important;font-size:11.5px;letter-spacing:.04em}
.site-info .copyright-bar{padding:18px 6vw;text-align:center}
.rc-copyright{font-family:var(--rc-sans)}

/* ============================================================
   07. RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  /* Header collapses to logo-left + menu-toggle-right on mobile */
  body.page-template-page-blank .site-header .inside-header,
  body.rc-post-blank .site-header .inside-header,
  body.home .site-header .inside-header{padding:0 5vw}
  body.page-template-page-blank .main-navigation,
  body.rc-post-blank .main-navigation,
  body.home .main-navigation{position:absolute;top:auto;padding-top:0}
  body.rc-header-light .site-header .inside-header{padding:0 5vw;flex-direction:row;justify-content:space-between}
  .site-logo img.header-image{height:44px;max-width:200px}
  
  /* Footer collapses to 2-column then 1-column */
  .rc-foot-inner{grid-template-columns:1fr 1fr;gap:40px}
  .rc-foot-brand{grid-column:span 2}
  .rc-foot-bottom{flex-direction:column;text-align:center}
}
@media (max-width:560px){
  .rc-foot-inner{grid-template-columns:1fr}
  .rc-foot-brand{grid-column:span 1}
  .site-logo img.header-image{height:40px;max-width:180px}
}

/* === FIX: hide GP text site-branding when custom_logo is set === */
/* WP adds 'wp-custom-logo' class to <body> when custom_logo is set */
body.wp-custom-logo .site-header .site-branding{display:none !important}

/* === FIX: ensure overlay header doesn't collapse — give explicit min-height === */
body.page-template-page-blank .site-header,
body.rc-post-blank .site-header,
body.home .site-header{
  min-height:80px;
  background:transparent;border:none;padding:18px 0
}

/* === FIX: GP wraps the logo in .site-logo with no inherent display, ensure visible === */
.site-logo{display:flex !important;align-items:center !important}
.site-logo a{display:inline-block;line-height:0}
.site-logo img.header-image{
  display:block !important;
  height:60px !important;width:auto !important;max-width:280px !important;
  transition:opacity .25s
}

/* === FIX: Source-order is site-branding BEFORE site-logo in GP markup. 
   When we hide site-branding, the inside-header flex starts with site-logo. 
   Just ensure inside-header is flex and centers properly. === */
body.wp-custom-logo .site-header .inside-header{
  display:flex !important;
  align-items:center !important
}

/* === On overlay pages: inside-header is full-width flex with logo left + (nav comes from separate <nav>) === */
body.page-template-page-blank.wp-custom-logo .site-header .inside-header,
body.rc-post-blank.wp-custom-logo .site-header .inside-header,
body.home.wp-custom-logo .site-header .inside-header{
  justify-content:flex-start;
  max-width:var(--rc-max);
  margin:0 auto;padding:0 6vw
}
/* On inner pages: same */
body.rc-header-light.wp-custom-logo .site-header .inside-header{
  justify-content:flex-start;
  max-width:var(--rc-max);
  margin:0 auto;padding:0 6vw
}

/* === MAKE MENU-TOGGLE VISIBLE AND DEFINITELY POSITIONED === */
.menu-toggle{
  display:inline-block !important;
  position:relative;
  z-index:60;
  background:rgba(208,167,70,.12) !important;
  color:var(--rc-cream) !important;
  border:1px solid var(--rc-gold-lt) !important;
  padding:10px 18px !important;
  margin:0 !important;
  font-family:var(--rc-sans) !important;
  font-size:11px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  border-radius:2px !important;
  cursor:pointer
}
.menu-toggle:hover{background:rgba(208,167,70,.22) !important}

/* On light header pages, menu-toggle gets dark text */
body.rc-header-light .menu-toggle{
  color:var(--rc-base) !important;
  border-color:var(--rc-gold-dk) !important;
  background:transparent !important
}

/* Mobile only: inside-navigation lays out as flex with toggle on the right.
   On desktop the overlay/inner rules keep the menu right-aligned (flex-end). */
@media (max-width:768px){
  .main-navigation .inside-navigation{
    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
    width:100%
  }
}
/* Desktop: menu stays right-aligned, container centered to --rc-max */
@media (min-width:769px){
  .main-navigation .inside-navigation{
    display:flex !important;
    justify-content:flex-end !important;
    align-items:center !important;
    max-width:var(--rc-max) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* On mobile (<= 768px), GP shows .menu-toggle and hides .main-nav UL.
   On desktop (> 768px), GP hides .menu-toggle (display:none) and shows the UL. */
@media (min-width:769px){
  .menu-toggle{display:none !important}
}

/* Make sure desktop nav UL is visible inline at >768px */
@media (min-width:769px){
  .main-navigation .main-nav,
  .main-navigation .main-nav > ul{
    display:flex !important;
    align-items:center
  }
  .main-navigation .main-nav > ul > li{display:inline-block;float:none}
}

/* When mobile nav is toggled open, show the menu as a dropdown */
.main-navigation.toggled .main-nav{
  position:absolute;
  top:60px;left:0;right:0;
  background:var(--rc-base);
  border-top:1px solid var(--rc-divider);
  padding:10px 6vw
}
.main-navigation.toggled .main-nav > ul{display:block !important}
.main-navigation.toggled .main-nav > ul > li{display:block;float:none;border-bottom:1px solid var(--rc-divider-soft)}
.main-navigation.toggled .main-nav > ul > li:last-child{border-bottom:none}
.main-navigation.toggled .main-nav > ul > li > a{padding:14px 0 !important;letter-spacing:.18em !important}

/* ============ PROJECT GALLERY + LIGHTBOX (rc) ============ */
.rc-proj-hero{position:relative;min-height:58vh;display:flex;align-items:flex-end;background:#1d1916 center/cover no-repeat}
.rc-proj-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,25,22,.45) 0%,rgba(29,25,22,.35) 45%,rgba(29,25,22,.92) 100%)}
.rc-proj-hero-inner{position:relative;padding:150px 6vw 64px;max-width:1200px;width:100%;margin:0 auto;color:#f5efe2}
.rc-proj-hero .eyebrow{font-size:11px;letter-spacing:.34em;color:#e7c869;text-transform:uppercase;margin-bottom:22px;display:inline-flex;align-items:center;gap:14px}
.rc-proj-hero .eyebrow::before,.rc-proj-hero .eyebrow::after{content:'';width:36px;height:1px;background:#d0a746}
.rc-proj-hero h1{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(40px,5.4vw,68px);line-height:1.05;margin:0 0 16px;max-width:20ch}
.rc-proj-hero h1 em{font-style:italic;color:#e7c869;font-weight:300}
.rc-proj-hero p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:#dcd1b9;max-width:56ch;line-height:1.55;margin:0}

.rc-proj-intro{background:#f5efe2;padding:90px 6vw 30px}
.rc-proj-intro-inner{max-width:980px;margin:0 auto;text-align:center}
.rc-proj-intro .eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#c5993e;margin-bottom:16px}
.rc-proj-intro h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:34px;color:#1d1916;margin:0 0 18px}
.rc-proj-intro h2 em{font-style:italic;color:#c5993e}
.rc-proj-intro p{font-size:16px;color:#6b6253;line-height:1.8;margin:0 auto 14px;max-width:70ch}
.rc-proj-specs{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 40px;margin-top:30px;padding-top:28px;border-top:1px solid rgba(208,167,70,.3)}
.rc-proj-specs div{font-size:13px;color:#4a4338}
.rc-proj-specs b{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#c5993e;margin-bottom:5px;font-weight:500}

.rc-gallery{background:#f5efe2;padding:40px 6vw 100px}
.rc-gallery-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rc-gallery-grid a{display:block;aspect-ratio:4/3;overflow:hidden;background:#1d1916;cursor:pointer;position:relative}
.rc-gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s}
.rc-gallery-grid a:hover img{transform:scale(1.06)}
@media(max-width:900px){.rc-gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rc-gallery-grid{grid-template-columns:1fr}}

/* lightbox */
.rc-lb{position:fixed;inset:0;background:rgba(15,13,11,.96);z-index:99999;display:none;align-items:center;justify-content:center}
.rc-lb.open{display:flex}
.rc-lb img{max-width:92vw;max-height:86vh;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.rc-lb-close,.rc-lb-prev,.rc-lb-next{position:absolute;background:transparent;border:1px solid rgba(231,200,105,.5);color:#e7c869;cursor:pointer;font-size:22px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:serif}
.rc-lb-close:hover,.rc-lb-prev:hover,.rc-lb-next:hover{background:rgba(231,200,105,.14);border-color:#e7c869}
.rc-lb-close{top:28px;right:28px}
.rc-lb-prev{left:28px;top:50%;transform:translateY(-50%)}
.rc-lb-next{right:28px;top:50%;transform:translateY(-50%)}
.rc-lb-count{position:absolute;bottom:28px;left:0;right:0;text-align:center;color:#dcd1b9;font-size:13px;letter-spacing:.2em}
@media(max-width:560px){.rc-lb-prev{left:10px}.rc-lb-next{right:10px}.rc-lb-close{top:14px;right:14px}}

/* project card "View project" link */
.pf-card .img a{display:block;width:100%;height:100%}
.pf-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#c5993e;text-decoration:none;border-bottom:1px solid rgba(197,153,62,.4);padding-bottom:3px;transition:color .2s,border-color .2s}
.pf-link:hover{color:#1d1916;border-color:#1d1916}

/* HEADER PADDING FIX */
body.page-template-page-blank .site-header .inside-header,
body.rc-post-blank .site-header .inside-header,
body.home .site-header .inside-header,
body.rc-header-light .site-header .inside-header{
  padding-left:6vw !important;
  padding-right:6vw !important;
  max-width:var(--rc-max);
  margin-left:auto;margin-right:auto;
}
/* nav matches the same gutter so logo (left) and menu (right) align with hero content */
body.page-template-page-blank .main-navigation .inside-navigation,
body.rc-post-blank .main-navigation .inside-navigation,
body.home .main-navigation .inside-navigation{
  padding-left:6vw !important;
  padding-right:6vw !important;
  max-width:var(--rc-max);
  margin-left:auto;margin-right:auto;
}

/* NAV LINK CONTRAST FIX (Option A) */
/* Brighter cream-white resting state so the menu doesn't read as faint */
body.page-template-page-blank .main-navigation .main-nav ul li a,
body.rc-post-blank .main-navigation .main-nav ul li a,
body.home .main-navigation .main-nav ul li a,
body.rc-header-light .main-navigation .main-nav ul li a{
  color:#f3ecdc !important;
  position:relative;
}
/* Active / hover: gold + a gold underline for unmistakable feedback */
body.page-template-page-blank .main-navigation .main-nav ul li a:hover,
body.page-template-page-blank .main-navigation .main-nav ul li.current-menu-item > a,
body.page-template-page-blank .main-navigation .main-nav ul li.current-menu-ancestor > a,
body.rc-post-blank .main-navigation .main-nav ul li a:hover,
body.rc-post-blank .main-navigation .main-nav ul li.current-menu-item > a,
body.rc-post-blank .main-navigation .main-nav ul li.current-menu-ancestor > a,
body.home .main-navigation .main-nav ul li a:hover,
body.home .main-navigation .main-nav ul li.current-menu-item > a,
body.home .main-navigation .main-nav ul li.current-menu-ancestor > a,
body.rc-header-light .main-navigation .main-nav ul li a:hover,
body.rc-header-light .main-navigation .main-nav ul li.current-menu-item > a,
body.rc-header-light .main-navigation .main-nav ul li.current-menu-ancestor > a{
  color:var(--rc-gold-lt) !important;
}
/* gold underline on hover/active — sits just below the text, inside the link padding */
.main-navigation .main-nav ul li a::after{
  content:'';position:absolute;left:18px;right:18px;bottom:4px;height:2px;
  background:var(--rc-gold,#d0a746);transform:scaleX(0);transform-origin:left center;
  transition:transform .25s ease;
}
.main-navigation .main-nav ul li a:hover::after,
.main-navigation .main-nav ul li.current-menu-item > a::after,
.main-navigation .main-nav ul li.current-menu-ancestor > a::after{
  transform:scaleX(1);
}
/* inner-page nav has larger horizontal padding (22px) — match the underline insets there */
body.rc-header-light .main-navigation .main-nav ul li a::after{left:22px;right:22px;bottom:12px}

/* OVERFLOW FIX (box-sizing on header/nav containers) */
/* GP's .grid-container forces width:100% then our 6vw padding was ADDED on top,
   pushing inside-header/nav past the viewport (horizontal scroll). Force border-box
   so padding is included, and clamp width to viewport. */
html, body{overflow-x:hidden;max-width:100%}
.site-header .inside-header,
.main-navigation .inside-navigation{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:var(--rc-max) !important;
}
.inside-header.grid-container,
.inside-navigation.grid-container{box-sizing:border-box !important;width:100% !important}

/* MOBILE POLISH (logo cap + CF7 fields) */
/* CF7 / quote form fields: force border-box + full-but-contained width so they
   never exceed the screen on mobile. */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 textarea,
.wpcf7 select,
.rc-quote-form input,
.rc-quote-form textarea{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
}
.wpcf7, .rc-quote-form, .rc-quote-form .embed{box-sizing:border-box;max-width:100%}

/* Logo: cap size on mobile so it doesn't dominate a narrow screen.
   (Overrides the earlier !important FIX rule via media-query + !important.) */
@media (max-width:768px){
  .site-logo img.header-image{height:46px !important;max-width:200px !important}
}
@media (max-width:480px){
  .site-logo img.header-image{height:40px !important;max-width:170px !important}
}

/* MOBILE HEADER ALIGN (logo left + toggle top-right, no overlap) */
@media (max-width:980px){
  /* Both header (logo) and nav (toggle) are absolute over the hero.
     Anchor the nav to the top-right at the same vertical band as the logo
     so the toggle sits beside the logo, not on top of it. */
  body.page-template-page-blank .main-navigation,
  body.rc-post-blank .main-navigation,
  body.home .main-navigation{
    position:absolute !important;
    top:18px !important; left:auto !important; right:0 !important;
    width:auto !important; z-index:60 !important;
    padding:0 5vw !important;
  }
  body.page-template-page-blank .main-navigation .inside-navigation,
  body.rc-post-blank .main-navigation .inside-navigation,
  body.home .main-navigation .inside-navigation{
    width:auto !important; padding:0 !important; justify-content:flex-end !important;
  }
  /* keep the logo header row a fixed comfortable height so the toggle lines up */
  body.page-template-page-blank .site-header,
  body.rc-post-blank .site-header,
  body.home .site-header{ min-height:78px; padding:14px 0 !important; }
  /* inner (cream) pages: header is relative flex already; just make sure toggle is right */
  body.rc-header-light .main-navigation .inside-navigation{ justify-content:flex-end !important; }
  /* the toggled dropdown spans full viewport width below the bar */
  .main-navigation.toggled .main-nav{
    position:fixed !important; top:70px !important; left:0 !important; right:0 !important;
    width:100vw !important; max-width:100vw !important; box-sizing:border-box !important;
  }
}
