/*
Theme Name: Menteith Group
Theme URI: https://menteithgroup.com
Author: Menteith Group
Author URI: https://menteithgroup.com
Description: Official WordPress theme for Menteith Group — a UK property and investment platform. Recreated from the group's institutional site, integrating asset management, facilities operations, development and private capital services content across a full multi-page structure.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Tested up to: 6.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: menteith-group
Tags: custom-menu, featured-images, full-width-template, translation-ready
*/

/* =========================================================
   FONTS
   ========================================================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.cdnfonts.com/css/codec-pro');

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --font-heading: 'Codec Pro', 'Inter', sans-serif;
  --font-body: 'Codec Pro', 'Inter', sans-serif;

  --color-bg: #ffffff;
  --color-fg: #1a1a1a;
  --color-muted-bg: #f2f4f3;
  --color-muted-fg: #666666;
  --color-border: #e2e6e4;

  --color-deep-green: #025d4d;
  --color-deep-green-dark: #01352b;
  --color-gold: #caae7d;

  --max-width: 1280px;
  --gutter: 1.5rem;

  --ease: cubic-bezier(.22,1,.36,1);
}

@media (min-width:1024px){
  :root{ --gutter: 4rem; }
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--color-fg);
  background:var(--color-bg);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6{ margin:0; font-weight:400; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
input,textarea{ font-family:inherit; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

.font-heading{ font-family:var(--font-heading); }
.font-body{ font-family:var(--font-body); }

/* =========================================================
   LAYOUT HELPERS
   ========================================================= */
.container{
  max-width:var(--max-width);
  margin-left:auto;
  margin-right:auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}
.container-md{ max-width:960px; margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.container-sm{ max-width:768px; margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }

.section{ padding:7rem 0; }
.section-lg{ padding:9rem 0; }
.section-sm{ padding:5rem 0; }

.bg-deep-green{ background-color:var(--color-deep-green); color:#fff; }
.bg-muted{ background-color:var(--color-muted-bg); }
.bg-white{ background-color:#fff; }
.text-gold{ color:var(--color-gold); }
.text-white{ color:#fff; }
.text-muted{ color:var(--color-muted-fg); }

.golden-thread{ height:1px; width:100%; background:var(--color-gold); border:0; }

.section-label{
  display:inline-block;
  font-family:var(--font-body);
  font-size:.72rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--color-gold);
  font-weight:500;
}

/* =========================================================
   REVEAL ON SCROLL
   ========================================================= */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  padding:1rem 2rem;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  transition:background-color .3s ease, color .3s ease, border-color .3s ease;
  border:1px solid transparent;
  white-space:nowrap;
}
.btn svg{ width:16px; height:16px; flex-shrink:0; }
.btn-gold{ background:var(--color-gold); color:var(--color-deep-green); }
.btn-gold:hover{ background:#fff; color:var(--color-deep-green); }
.btn-deep{ background:var(--color-deep-green); color:#fff; }
.btn-deep:hover{ background:var(--color-gold); color:var(--color-deep-green); }
.btn-outline-light{ border-color:rgba(255,255,255,.3); color:#fff; }
.btn-outline-light:hover{ border-color:var(--color-gold); color:var(--color-gold); }
.btn-link{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.82rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--color-deep-green); transition:color .3s ease;
}
.btn-link:hover{ color:var(--color-gold); }
.btn-link-light{ color:#fff; }
.btn-link-light:hover{ color:var(--color-gold); }
.btn-link-muted{ color:var(--color-muted-fg); font-weight:400; text-transform:none; letter-spacing:0; font-size:.9rem; }
.btn-link-muted:hover{ color:var(--color-deep-green); }

/* =========================================================
   HEADER / NAV
   ========================================================= */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background-color .5s ease, box-shadow .5s ease, border-color .5s ease;
  background:transparent;
}
.site-header.is-scrolled{
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.header-social-bar{
  display:none;
  justify-content:flex-end;
  align-items:center;
  gap:1rem;
  padding:.5rem var(--gutter);
  border-bottom:1px solid rgba(255,255,255,.1);
  transition:border-color .5s ease;
}
.site-header.is-scrolled .header-social-bar{ border-color:rgba(0,0,0,.08); }
@media (min-width:1024px){ .header-social-bar{ display:flex; } }
.header-social-bar a{ color:var(--color-gold); transition:opacity .2s ease; display:flex; }
.header-social-bar a:hover{ opacity:.7; }

.header-main{ max-width:var(--max-width); margin:0 auto; padding:0 var(--gutter); }
.header-row{ display:flex; align-items:center; justify-content:space-between; height:4rem; }
.header-logo img{ height:2.5rem; width:auto; object-fit:contain; }

.header-nav{ display:none; align-items:center; gap:2.5rem; }
@media (min-width:1024px){ .header-nav{ display:flex; } }
.header-nav a{
  font-size:.85rem; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.8);
  transition:color .3s ease;
}
.site-header.is-scrolled .header-nav a{ color:rgba(26,26,26,.7); }
.header-nav a:hover, .header-nav a.is-active{ color:var(--color-gold); }

.header-toggle{
  background:none; border:0; color:#fff; display:flex; padding:0; line-height:0;
}
.site-header.is-scrolled .header-toggle{ color:var(--color-fg); }
@media (min-width:1024px){ .header-toggle{ display:none; } }

.mobile-menu{
  position:fixed; inset:0; z-index:200; background:var(--color-deep-green);
  display:flex; flex-direction:column;
  transform:translateX(100%); opacity:0;
  transition:transform .4s var(--ease), opacity .4s var(--ease);
  visibility:hidden;
}
.mobile-menu.is-open{ transform:translateX(0); opacity:1; visibility:visible; }
.mobile-menu-top{ display:flex; align-items:center; justify-content:space-between; padding:0 1.5rem; height:5rem; }
.mobile-menu-top img{ height:2.5rem; width:auto; object-fit:contain; }
.mobile-menu-close{ background:none; border:0; color:#fff; }
.mobile-menu-nav{ flex:1; display:flex; flex-direction:column; justify-content:center; padding:0 3rem; gap:.25rem; }
.mobile-menu-nav a{
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.1);
  color:#fff; font-family:var(--font-heading); font-size:1.5rem;
  transition:color .3s ease;
}
.mobile-menu-nav a:hover{ color:var(--color-gold); }
.mobile-menu-nav svg{ color:var(--color-gold); opacity:.4; width:20px; height:20px; }

/* =========================================================
   PAGE HERO
   ========================================================= */
.page-hero{
  background:var(--color-deep-green);
  color:#fff;
  padding:9rem 0 6rem;
  position:relative;
  overflow:hidden;
}
.page-hero.is-compact{ padding:8rem 0 4rem; }
.page-hero h1{
  font-family:var(--font-heading);
  font-size:2rem;
  line-height:1.15;
  max-width:56rem;
}
.page-hero .golden-thread{ max-width:6rem; margin:2rem 0; }
.page-hero p.subtitle{
  font-size:1.1rem;
  color:rgba(255,255,255,.7);
  max-width:42rem;
  line-height:1.7;
  font-weight:300;
}
@media (min-width:768px){
  .page-hero h1{ font-size:3rem; }
  .page-hero p.subtitle{ font-size:1.25rem; }
}
@media (min-width:1024px){
  .page-hero h1{ font-size:3.75rem; }
}

/* =========================================================
   HOME HERO
   ========================================================= */
.hero-home{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-home .hero-bg{ position:absolute; inset:0; }
.hero-home .hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero-home .hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to right, rgba(2,93,77,.92), rgba(2,93,77,.72) 55%, rgba(2,93,77,.45));
}
.hero-home .container{ position:relative; z-index:2; padding-top:8rem; padding-bottom:8rem; width:100%; }
.hero-home-content{ max-width:44rem; }
.hero-home h1{
  font-family:var(--font-heading);
  font-size:2.4rem;
  line-height:1.12;
  color:#fff;
}
@media (min-width:768px){ .hero-home h1{ font-size:3rem; } }
@media (min-width:1024px){ .hero-home h1{ font-size:4.5rem; } }
.hero-home .golden-thread{ max-width:5rem; margin:2.5rem 0; }
.hero-home p.lead{
  font-size:1.1rem; font-weight:300; line-height:1.7;
  color:rgba(255,255,255,.7); max-width:36rem;
}
@media (min-width:768px){ .hero-home p.lead{ font-size:1.25rem; } }
.hero-home .hero-actions{ display:flex; flex-direction:column; gap:1rem; margin-top:3rem; }
@media (min-width:640px){ .hero-home .hero-actions{ flex-direction:row; } }

/* =========================================================
   GRID SECTIONS (companies / platform / insights / entities)
   ========================================================= */
.tile-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1px;
  background:var(--color-border);
}
@media (min-width:768px){ .tile-grid.cols-2{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .tile-grid.cols-3{ grid-template-columns:repeat(3,1fr); } }

.tile{
  background:#fff;
  padding:2.5rem;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  min-height:200px;
  transition:background-color .5s ease;
}
.tile:hover{ background:var(--color-deep-green); }
.tile h3{ font-family:var(--font-heading); font-size:1.25rem; color:var(--color-fg); transition:color .5s ease; }
.tile:hover h3{ color:#fff; }
.tile p{ font-size:.9rem; color:var(--color-muted-fg); margin-top:.75rem; transition:color .5s ease; }
.tile:hover p{ color:rgba(255,255,255,.6); }
.tile .tile-arrow{ color:var(--color-gold); margin-top:1.5rem; transition:transform .3s ease; width:20px; height:20px; }
.tile:hover .tile-arrow{ transform:translate(3px,-3px); }
@media (min-width:1024px){ .tile{ padding:3.5rem; } }

/* =========================================================
   METRICS COUNTER
   ========================================================= */
.metrics-band{ background:var(--color-deep-green); padding:5rem 0; }
.metrics-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2.5rem; text-align:center; }
@media (min-width:1024px){ .metrics-grid{ grid-template-columns:repeat(4,1fr); gap:4rem; } }
.metric-value{ font-family:var(--font-heading); font-size:2.5rem; color:var(--color-gold); margin-bottom:.75rem; }
@media (min-width:768px){ .metric-value{ font-size:3rem; } }
.metric-label{ color:rgba(255,255,255,.5); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; }

/* =========================================================
   SECTORS / NUMBERED LIST
   ========================================================= */
.sectors-grid{ display:grid; grid-template-columns:1fr; gap:3rem; }
@media (min-width:768px){ .sectors-grid{ grid-template-columns:repeat(3,1fr); } }
.sector-item{ border-top:2px solid var(--color-gold); padding-top:2rem; }
.sector-item .num{ color:var(--color-gold); font-size:.85rem; letter-spacing:.15em; }
.sector-item h3{ font-family:var(--font-heading); font-size:1.5rem; margin:1rem 0; }
.sector-item p{ color:var(--color-muted-fg); line-height:1.7; }

/* =========================================================
   TWO COLUMN CONTENT BLOCKS
   ========================================================= */
.split{ display:grid; grid-template-columns:1fr; gap:4rem; }
@media (min-width:1024px){ .split{ grid-template-columns:1fr 1fr; gap:6rem; align-items:center; } }
.split.align-start{ align-items:start; }
.prose{ color:var(--color-muted-fg); font-size:1.1rem; line-height:1.8; }
.prose p + p{ margin-top:1.5rem; }
.prose-light{ color:rgba(255,255,255,.7); }

.image-frame{ position:relative; }
.image-frame img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.image-frame .accent-block{ position:absolute; bottom:-1rem; left:-1rem; width:6rem; height:6rem; background:var(--color-gold); z-index:-1; }

.dot-list{ display:flex; flex-direction:column; gap:1rem; margin-top:1.5rem; }
.dot-list li{ display:flex; align-items:flex-start; gap:.75rem; }
.dot-list .dot{ width:6px; height:6px; border-radius:50%; background:var(--color-gold); margin-top:.6rem; flex-shrink:0; }
.dot-list span{ color:var(--color-muted-fg); }

.enquire-box{ background:var(--color-muted-bg); padding:2.5rem; margin-top:2rem; }
.enquire-box h4{ font-family:var(--font-heading); font-size:1.1rem; margin-bottom:1rem; }
.enquire-box p{ font-size:.9rem; color:var(--color-muted-fg); margin-bottom:1.5rem; }

.back-link-row{ margin-top:5rem; padding-top:2.5rem; border-top:1px solid var(--color-border); }

/* =========================================================
   CTA SECTION
   ========================================================= */
.cta-section{ position:relative; background:var(--color-deep-green); padding:8rem 0; overflow:hidden; text-align:center; }
.cta-watermark{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-size:16rem; color:rgba(255,255,255,.02); pointer-events:none;
}
.cta-section .inner{ position:relative; z-index:1; }
.cta-section h2{ font-family:var(--font-heading); font-size:2.2rem; color:#fff; margin-bottom:1.5rem; }
@media (min-width:768px){ .cta-section h2{ font-size:2.75rem; } }
@media (min-width:1024px){ .cta-section h2{ font-size:3.25rem; } }
.cta-section p{ color:rgba(255,255,255,.6); font-size:1.1rem; max-width:34rem; margin:0 auto 3rem; }

/* =========================================================
   PARTNERS MARQUEE
   ========================================================= */
.partners-section{ padding:5rem 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); overflow:hidden; }
.partners-heading{ text-align:center; margin-bottom:3rem; }
.partners-heading h2{ font-family:var(--font-heading); font-size:1.5rem; margin-top:.75rem; }
@media (min-width:768px){ .partners-heading h2{ font-size:1.75rem; } }
.marquee-wrap{ position:relative; }
.marquee-track{
  display:flex; align-items:center; gap:4rem; width:max-content;
  animation:marquee 30s linear infinite;
}
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.marquee-item{
  min-width:180px; display:flex; align-items:center; justify-content:center;
  padding:1rem 2rem; border:1px solid rgba(0,0,0,.08); background:rgba(242,244,243,.4);
}
.marquee-item span{ font-family:var(--font-heading); font-size:.85rem; letter-spacing:.1em; color:var(--color-muted-fg); white-space:nowrap; }

/* =========================================================
   NEWSLETTER
   ========================================================= */
.newsletter-band{ background:var(--color-deep-green); padding:4rem 0; }
.newsletter-inner{ max-width:36rem; }
.newsletter-label{ font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-bottom:.75rem; }
.newsletter-inner h3{ font-family:var(--font-heading); font-size:1.35rem; color:#fff; margin-bottom:1rem; }
.newsletter-inner p{ font-size:.9rem; color:rgba(255,255,255,.5); line-height:1.7; margin-bottom:1.5rem; }
.newsletter-form{ display:flex; flex-direction:column; gap:.75rem; }
@media (min-width:640px){ .newsletter-form{ flex-direction:row; } }
.newsletter-form input[type=email]{
  flex:1; padding:.9rem 1rem; font-size:.9rem; border:1px solid rgba(255,255,255,.2);
  background:rgba(255,255,255,.1); color:#fff;
}
.newsletter-form input[type=email]::placeholder{ color:rgba(255,255,255,.3); }
.newsletter-form input[type=email]:focus{ outline:none; border-color:var(--color-gold); }
.newsletter-form button{
  flex-shrink:0; display:flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.5rem; background:var(--color-gold); color:var(--color-deep-green);
  border:0; font-size:.85rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  transition:background-color .3s ease;
}
.newsletter-form button:hover{ background:#fff; }
.newsletter-success{ color:var(--color-gold); font-size:.9rem; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--color-deep-green); color:#fff; }
.footer-grid{ display:grid; grid-template-columns:1fr; gap:3rem; padding:5rem 0; }
@media (min-width:768px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .footer-grid{ grid-template-columns:repeat(4,1fr); gap:4rem; } }
.footer-col h4{ font-family:var(--font-heading); font-size:1.1rem; color:var(--color-gold); margin-bottom:1.5rem; }
.footer-col ul{ display:flex; flex-direction:column; gap:.75rem; }
.footer-col a{ font-size:.9rem; color:rgba(255,255,255,.6); transition:color .3s ease; }
.footer-col a:hover{ color:var(--color-gold); }
.footer-brand img{ height:2.5rem; width:auto; object-fit:contain; margin-bottom:1.5rem; }
.footer-brand p.desc{ font-size:.9rem; color:rgba(255,255,255,.5); line-height:1.7; margin-bottom:1.5rem; }
.footer-address{ font-size:.9rem; color:rgba(255,255,255,.4); line-height:1.6; margin-bottom:1.5rem; }
.footer-address p.email{ padding-top:.5rem; }
.footer-social{ display:flex; align-items:center; gap:1rem; }
.footer-social a{ color:var(--color-gold); transition:opacity .2s ease; display:flex; }
.footer-social a:hover{ opacity:.7; }
.footer-bottom{ display:flex; flex-direction:column; gap:1rem; align-items:center; justify-content:space-between; padding-bottom:3rem; text-align:center; }
@media (min-width:768px){ .footer-bottom{ flex-direction:row; text-align:left; } }
.footer-bottom p{ font-size:.75rem; color:rgba(255,255,255,.4); }

/* =========================================================
   TEAM CARDS
   ========================================================= */
.team-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--color-border); }
@media (min-width:768px){ .team-grid.cols-2{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .team-grid.cols-3{ grid-template-columns:repeat(3,1fr); } .team-grid.cols-4{ grid-template-columns:repeat(4,1fr); } }
.team-card{ background:#fff; padding:2rem; }
.team-card .avatar{ width:4rem; height:4rem; background:var(--color-deep-green); display:flex; align-items:center; justify-content:center; margin-bottom:1.5rem; }
.team-card .avatar span{ font-family:var(--font-heading); font-size:1rem; color:var(--color-gold); }
.team-card h3{ font-family:var(--font-heading); font-size:1.1rem; }
.team-card .role{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-gold); margin:.35rem 0 .75rem; }
.team-card .bio{ font-size:.9rem; color:var(--color-muted-fg); line-height:1.6; }
.team-card .golden-thread{ max-width:2.5rem; margin-top:1.5rem; }
@media (min-width:1024px){
  .team-card.lg{ padding:2.5rem; }
  .team-card.lg .avatar{ width:5rem; height:5rem; }
}

/* =========================================================
   CAREERS
   ========================================================= */
.job-area{ border-top:1px solid var(--color-border); padding:2.5rem 0; display:flex; flex-direction:column; gap:1rem; justify-content:space-between; }
@media (min-width:768px){ .job-area{ flex-direction:row; align-items:center; } }
.job-area h3{ font-family:var(--font-heading); font-size:1.25rem; }
.job-area p{ color:var(--color-muted-fg); margin-top:.5rem; }
.cta-box{ background:var(--color-muted-bg); padding:3rem; text-align:center; }
.cta-box h3{ font-family:var(--font-heading); font-size:1.5rem; margin-bottom:1rem; }
.cta-box p{ color:var(--color-muted-fg); margin-bottom:2rem; }
@media (min-width:1024px){ .cta-box{ padding:4rem; } }

/* =========================================================
   CONTACT
   ========================================================= */
.contact-form{ display:flex; flex-direction:column; gap:1.5rem; }
.form-row{ display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:640px){ .form-row.two{ grid-template-columns:1fr 1fr; } }
.form-field label{ display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.5rem; }
.form-field input, .form-field textarea{
  width:100%; background:var(--color-muted-bg); border:0; padding:.85rem 1rem; font-size:.95rem; color:var(--color-fg);
}
.form-field textarea{ resize:none; }
.form-field input:focus, .form-field textarea:focus{ outline:2px solid var(--color-deep-green); outline-offset:1px; }

.contact-detail{ display:flex; align-items:flex-start; gap:1rem; margin-bottom:2rem; }
.contact-detail svg{ color:var(--color-gold); width:20px; height:20px; margin-top:2px; flex-shrink:0; }
.contact-detail .label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.25rem; }
.contact-detail .value{ color:var(--color-fg); }

.office-map{ position:relative; width:100%; height:380px; overflow:hidden; }
.office-map iframe{ width:100%; height:100%; border:0; }
.office-map .map-pin{
  position:absolute; bottom:1.5rem; left:1.5rem; max-width:20rem;
  background:#fff; box-shadow:0 20px 40px rgba(0,0,0,.15); border:1px solid var(--color-border);
  padding:1rem; display:flex; gap:.75rem; align-items:flex-start;
}
.office-map .map-pin .icon{ width:2rem; height:2rem; background:var(--color-deep-green); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.office-map .map-pin .icon svg{ color:var(--color-gold); width:16px; height:16px; }
.office-map .map-pin p.label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.25rem; }
.office-map .map-pin p.addr{ font-size:.9rem; line-height:1.4; }
.office-map .map-pin a{ display:flex; align-items:center; gap:.35rem; margin-top:.5rem; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-deep-green); }
.office-map .accent-bar{ position:absolute; top:0; left:0; right:0; height:4px; background:var(--color-gold); }

.form-notice{ padding:1rem 1.5rem; margin-bottom:1.5rem; font-size:.9rem; }
.form-notice.success{ background:#e9f5f1; color:var(--color-deep-green); border-left:3px solid var(--color-deep-green); }
.form-notice.error{ background:#fdecec; color:#a33; border-left:3px solid #c33; }

/* =========================================================
   PROJECT / CASE STUDY
   ========================================================= */
.project-hero{ position:relative; min-height:70vh; display:flex; align-items:flex-end; overflow:hidden; }
.project-hero img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.project-hero .overlay{ position:absolute; inset:0; background:linear-gradient(to top, rgba(2,93,77,.95), rgba(2,93,77,.4) 60%, transparent); }
.project-hero .inner{ position:relative; z-index:1; padding:0 var(--gutter) 4rem; max-width:var(--max-width); margin:0 auto; width:100%; }
.project-hero h1{ font-family:var(--font-heading); font-size:2.25rem; color:#fff; margin-top:1rem; }
@media (min-width:768px){ .project-hero h1{ font-size:3rem; } }
@media (min-width:1024px){ .project-hero h1{ font-size:3.75rem; } }

.spec-band{ background:var(--color-deep-green); padding:3rem 0; }
.spec-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; text-align:center; }
@media (min-width:768px){ .spec-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px){ .spec-grid{ grid-template-columns:repeat(6,1fr); } }
.spec-grid .val{ font-family:var(--font-heading); font-size:1.25rem; color:var(--color-gold); }
.spec-grid .lbl{ color:rgba(255,255,255,.5); font-size:.72rem; margin-top:.25rem; text-transform:uppercase; letter-spacing:.1em; }

.stat-pair{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; margin-bottom:2rem; }
.stat-pair .val{ font-family:var(--font-heading); font-size:1.75rem; color:var(--color-gold); }
.stat-pair .lbl{ font-size:.9rem; color:var(--color-muted-fg); margin-top:.25rem; }

.case-card{ display:block; border:1px solid var(--color-border); transition:border-color .3s ease; }
.case-card:hover{ border-color:var(--color-gold); }
.case-card-grid{ display:grid; grid-template-columns:1fr; }
@media (min-width:1024px){ .case-card-grid{ grid-template-columns:1fr 1fr; } .case-card-grid.reverse{ direction:rtl; } .case-card-grid.reverse > *{ direction:ltr; } }
.case-card-img{ overflow:hidden; }
.case-card-img img{ width:100%; height:18rem; object-fit:cover; transition:transform .7s ease; }
@media (min-width:1024px){ .case-card-img img{ height:100%; } }
.case-card:hover .case-card-img img{ transform:scale(1.05); }
.case-card-body{ padding:2.5rem; display:flex; flex-direction:column; justify-content:space-between; }
@media (min-width:1024px){ .case-card-body{ padding:3.5rem; } }
.case-card-meta{ display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; }
.case-card-meta .cat{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-gold); }
.case-card-meta .sep{ width:4px; height:4px; border-radius:50%; background:var(--color-muted-fg); }
.case-card-meta .yr{ font-size:.72rem; color:var(--color-muted-fg); }
.case-card h3{ font-family:var(--font-heading); font-size:1.5rem; margin-bottom:1rem; }
@media (min-width:1024px){ .case-card h3{ font-size:1.85rem; } }
.case-card p.summary{ color:var(--color-muted-fg); line-height:1.7; margin-bottom:2rem; }
.case-card-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.case-card-stats .val{ font-family:var(--font-heading); font-size:1.25rem; }
.case-card-stats .lbl{ font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--color-muted-fg); margin-top:.25rem; }
.case-card-stats div{ border-left:2px solid var(--color-gold); padding-left:1rem; }
.case-card-cta{ display:flex; align-items:center; gap:.5rem; margin-top:2.5rem; color:var(--color-deep-green); }
.case-card:hover .case-card-cta{ color:var(--color-gold); }

.stats-bar{ background:var(--color-deep-green); }
.stats-bar-grid{ display:grid; grid-template-columns:repeat(2,1fr); }
@media (min-width:768px){ .stats-bar-grid{ grid-template-columns:repeat(4,1fr); } }
.stats-bar-grid > div{ padding:2.5rem 2rem; border-left:1px solid rgba(255,255,255,.1); }
.stats-bar-grid > div:first-child{ border-left:0; }
.stats-bar-grid .val{ font-family:var(--font-heading); font-size:1.85rem; color:var(--color-gold); }
.stats-bar-grid .lbl{ font-size:.72rem; color:rgba(255,255,255,.5); margin-top:.5rem; text-transform:uppercase; letter-spacing:.1em; }

.check-list li{ display:flex; align-items:flex-start; gap:.75rem; }
.check-list svg{ color:var(--color-gold); width:20px; height:20px; flex-shrink:0; margin-top:2px; }

.gallery-grid{ display:grid; grid-template-columns:1fr; gap:1rem; margin-top:2rem; }
@media (min-width:768px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .gallery-grid{ grid-template-columns:repeat(3,1fr); } }
.gallery-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.gallery-grid figcaption{ font-size:.75rem; color:var(--color-muted-fg); margin-top:.5rem; }

/* =========================================================
   ESG DASHBOARD
   ========================================================= */
.esg-tabs{ display:flex; gap:0; border-bottom:1px solid var(--color-border); margin-bottom:3rem; overflow-x:auto; }
.esg-tab{
  padding:.75rem 1.5rem; font-size:.85rem; letter-spacing:.1em; text-transform:uppercase;
  background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; color:var(--color-muted-fg);
  transition:all .2s ease; white-space:nowrap;
}
.esg-tab.is-active{ border-color:var(--color-deep-green); color:var(--color-fg); font-weight:600; }
.esg-panel{ display:none; }
.esg-panel.is-active{ display:block; }

.esg-cards{ display:grid; grid-template-columns:1fr; gap:1.5rem; margin-bottom:2rem; }
@media (min-width:1024px){ .esg-cards.cols-3{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:768px){ .esg-cards.cols-4{ grid-template-columns:repeat(4,1fr); } .esg-cards.cols-2{ grid-template-columns:repeat(2,1fr); } }
.esg-card{ background:#fff; border:1px solid var(--color-border); padding:1.5rem; }
.esg-card .label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.5rem; }
.esg-card .value{ font-family:var(--font-heading); font-size:2rem; }
.esg-card .sub{ font-size:.85rem; color:var(--color-muted-fg); margin-top:.25rem; }
.esg-card .trend{ display:flex; align-items:center; gap:.4rem; margin-top:1rem; font-size:.85rem; color:#059669; }
.esg-card .trend svg{ width:16px; height:16px; }

.esg-chart-card{ background:#fff; border:1px solid var(--color-border); padding:1.5rem; }
.esg-chart-card .label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.25rem; }
.esg-chart-card .title{ font-family:var(--font-heading); font-size:1.5rem; margin-bottom:1.5rem; }
.chart-legend{ display:flex; gap:1.5rem; margin-top:1rem; }
.chart-legend .item{ display:flex; align-items:center; gap:.5rem; font-size:.75rem; color:var(--color-muted-fg); }
.chart-legend .swatch{ width:12px; height:12px; border-radius:2px; }

.gauge-card{ display:flex; flex-direction:column; align-items:center; text-align:center; padding:1.5rem; background:#fff; border:1px solid var(--color-border); }
.gauge-card svg{ transform:rotate(-90deg); }
.gauge-score{ margin-top:-4.5rem; margin-bottom:1rem; }
.gauge-score .num{ font-family:var(--font-heading); font-size:1.5rem; }
.gauge-score .max{ font-size:.72rem; color:var(--color-muted-fg); }
.gauge-card .label{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--color-muted-fg); margin-bottom:.25rem; }
.gauge-card .desc{ font-size:.72rem; color:var(--color-muted-fg); line-height:1.5; }

.esg-initiatives{ display:grid; grid-template-columns:1fr; gap:1px; background:rgba(255,255,255,.1); }
@media (min-width:768px){ .esg-initiatives{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .esg-initiatives{ grid-template-columns:repeat(4,1fr); } }
.esg-initiative{ background:var(--color-deep-green); padding:2rem; }
.esg-initiative svg{ color:var(--color-gold); width:24px; height:24px; margin-bottom:1.25rem; }
.esg-initiative h3{ font-family:var(--font-heading); font-size:1.1rem; color:#fff; margin-bottom:.75rem; }
.esg-initiative p{ font-size:.9rem; color:rgba(255,255,255,.6); line-height:1.6; }

.esg-disclaimer{ font-size:.75rem; color:var(--color-muted-fg); line-height:1.6; max-width:48rem; }

/* =========================================================
   404
   ========================================================= */
.error-404{ min-height:60vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:8rem 1.5rem; }
.error-404 h1{ font-family:var(--font-heading); font-size:5rem; color:var(--color-gold); }
.error-404 h2{ font-family:var(--font-heading); font-size:1.5rem; margin:1rem 0 2rem; }

/* =========================================================
   MISC
   ========================================================= */
.text-center{ text-align:center; }
.mt-0{ margin-top:0 !important; }
.wp-block-page-content{ padding:4rem 0; }
