:root{
  --dark: #283333;
  --dark-2: #3a3f3f;
  --teal: #3a4d4e;
  --olive: #4c563b;
  --tan: #ccb392;
  --tan-light: #dcc9ae;
  --cream: #f4f3ef;
  --white: #ffffff;
  --font-head: 'Montserrat', 'Segoe UI', sans-serif;
  --font-body: 'Lora', Georgia, serif;
  --radius: 6px;
  --shadow: 0 10px 30px rgba(40,51,51,0.10);
  --wrap: 1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--dark-2);
  background: var(--cream);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family: var(--font-head); color: var(--dark); margin:0 0 .5em; line-height:1.25;}
p{margin:0 0 1em;}
ul{margin:0 0 1em; padding-left:1.2em;}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 24px;}

/* Topbar */
.topbar{background:var(--dark); color:var(--tan-light); font-family:var(--font-head); font-size:.8rem;}
.topbar-inner{display:flex; gap:28px; align-items:center; height:38px; overflow-x:auto; white-space:nowrap;}
.topbar-item{opacity:.9;}
.topbar-item:hover{opacity:1; color:var(--tan);}
.topbar-loc{margin-left:auto; opacity:.7;}

/* Header */
.site-header{
  position:sticky; top:0; z-index:100;
  background:transparent;
  transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  padding:14px 0;
}
.site-header.is-scrolled{
  background:rgba(244,243,239,0.96);
  box-shadow:var(--shadow);
  padding:6px 0;
  backdrop-filter:blur(6px);
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.site-header.is-scrolled .brand{opacity:1; pointer-events:auto;}
.brand-logo{height:42px; width:auto;}

.main-nav{display:flex; align-items:center; gap:24px; font-family:var(--font-head); font-size:.82rem; font-weight:500; flex-wrap:nowrap;}
.main-nav a{color:var(--cream); letter-spacing:.02em; padding:6px 0; position:relative; white-space:nowrap;}
.site-header.is-scrolled .main-nav a{color:var(--dark-2);}
.main-nav a:not(.nav-cta)::after{content:""; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--tan); transition:width .25s ease;}
.main-nav a:not(.nav-cta):hover::after{width:100%;}
.nav-cta{background:var(--tan); color:var(--dark) !important; padding:9px 20px !important; border-radius:30px; font-weight:600;}
.nav-cta:hover{background:var(--tan-light);}

.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px; z-index:110;}
.nav-toggle span{width:26px; height:2px; background:var(--cream); transition:.3s;}
.site-header.is-scrolled .nav-toggle span{background:var(--dark);}

/* Hero */
.hero{position:relative; min-height:92vh; display:flex; align-items:center; overflow:hidden; margin-top:calc(-1 * var(--header-h, 84px)); padding-top:var(--header-h, 84px);}
.hero-photo{position:absolute; inset:0; z-index:0; background-size:cover; background-position:center 62%;}
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(28,36,36,.82) 0%, rgba(28,36,36,.5) 48%, rgba(28,36,36,.18) 100%),
    linear-gradient(0deg, rgba(28,36,36,.55) 0%, rgba(28,36,36,.05) 35%, rgba(28,36,36,.15) 100%);
}
.hero-content{position:relative; z-index:2; padding:100px 24px 90px; color:var(--cream); max-width:820px;}
.hero-mark{height:52px; width:auto; display:block; margin:0 auto 30px;}
.eyebrow{font-family:var(--font-head); color:var(--tan); letter-spacing:.12em; text-transform:uppercase; font-size:.8rem; font-weight:600; margin-bottom:16px;}
.hero h1{color:var(--white); font-size:clamp(2rem, 4.2vw, 3.2rem); font-weight:700; margin-bottom:22px;}
.hero-lead{font-size:1.08rem; color:var(--cream); opacity:.92; max-width:640px;}
.hero-actions{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}

.btn{display:inline-block; font-family:var(--font-head); font-weight:600; font-size:.9rem; padding:14px 30px; border-radius:30px; transition:.25s ease; letter-spacing:.02em;}
.btn-primary{background:var(--tan); color:var(--dark);}
.btn-primary:hover{background:var(--tan-light); transform:translateY(-2px);}
.btn-ghost{border:1.5px solid var(--cream); color:var(--cream);}
.btn-ghost:hover{background:rgba(244,243,239,.12); transform:translateY(-2px);}

/* Sections */
.section{padding:96px 0;}
.section-alt{background:var(--white);}
.section-dark{background:var(--dark); color:var(--cream);}
.section-dark .mini-card--dark{background:rgba(244,243,239,.06); border:1px solid rgba(204,179,146,.25);}
.section-dark .mini-card--dark li{color:var(--cream);}
.kicker{font-family:var(--font-head); color:var(--olive); text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:600; margin-bottom:10px;}
.kicker--light{color:var(--tan);}
.center{text-align:center;}
.section-photo{background-image:var(--bg-photo); background-size:cover; background-position:center; background-repeat:no-repeat;}
.section-photo--light{background-image:linear-gradient(rgba(244,243,239,.84), rgba(244,243,239,.84)), var(--bg-photo);}
.section-photo--dark{background-image:linear-gradient(rgba(30,38,38,.76), rgba(30,38,38,.76)), var(--bg-photo);}

.alliance-wrap{max-width:820px;}
.alliance-text{font-size:1.05rem;}
h2{font-size:clamp(1.5rem, 2.6vw, 2.1rem);}
h2.light{color:var(--white);}
.light-p{color:var(--cream); opacity:.9;}

.corresponsalia-content{max-width:820px; display:flex; flex-direction:column; gap:28px;}

.two-col{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:start;}

.col-cards{display:flex; flex-direction:column; gap:20px;}
.mini-card{background:var(--cream); border-left:3px solid var(--tan); border-radius:var(--radius); padding:26px 28px; box-shadow:var(--shadow);}
.mini-card h3{font-size:1.05rem; margin-bottom:.4em;}
.mini-card p{margin:0; font-size:.95rem; color:var(--dark-2);}
.mini-card--dark ul{margin:0; padding-left:1.1em;}
.mini-card--dark li{margin-bottom:.6em; font-size:.95rem;}
.mini-card--dark h3{color:var(--tan);}

/* Team */
.team-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:48px;}
.team-card{background:var(--cream); border-radius:8px; padding:36px; box-shadow:var(--shadow); border-top:4px solid var(--tan);}
.team-head{margin-bottom:18px; padding-bottom:18px; border-bottom:1px solid rgba(40,51,51,.12);}
.team-head h3{margin-bottom:.2em; font-size:1.4rem;}
.team-role{display:block; font-family:var(--font-head); font-size:.85rem; color:var(--olive); font-weight:600;}
.team-mp{display:block; font-family:var(--font-head); font-size:.75rem; color:var(--dark-2); opacity:.65; margin-top:4px;}
.team-body p{margin-bottom:.4em; font-size:.95rem;}
.team-body ul{font-size:.92rem; margin-bottom:1.1em;}
.team-body li{margin-bottom:.3em;}

/* Areas */
.areas-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
.area-card{background:var(--white); padding:32px 28px; border-radius:8px; box-shadow:var(--shadow); transition:transform .25s ease, box-shadow .25s ease;}
.area-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(40,51,51,.14);}
.area-icon{font-size:1.6rem; margin-bottom:14px; width:52px; height:52px; display:flex; align-items:center; justify-content:center; background:var(--cream); border-radius:50%; color:var(--olive);}
.area-card h3{font-size:1.08rem;}
.area-card p{font-size:.92rem; margin:0; color:var(--dark-2);}

/* Clients */
.clients-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px 32px; margin-top:44px;}
.clients-grid span{display:block; padding:16px 20px; background:var(--cream); border-radius:var(--radius); font-family:var(--font-head); font-size:.9rem; font-weight:500; color:var(--dark); text-align:center; border:1px solid rgba(40,51,51,.08);}

/* Contact */
.contact-block{margin-bottom:22px;}
.contact-block h4{font-family:var(--font-head); font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color:var(--olive); margin-bottom:6px;}
.contact-block a:hover{color:var(--olive); text-decoration:underline;}
.map-wrap{margin-top:56px;}
.col-map{min-height:340px; border-radius:8px; overflow:hidden; box-shadow:var(--shadow);}
.col-map iframe{width:100%; height:100%; min-height:340px;}

/* Contact form */
.col-form{background:var(--white); border-radius:8px; padding:34px; box-shadow:var(--shadow);}
.contact-form h4{font-family:var(--font-head); font-size:1rem; text-transform:uppercase; letter-spacing:.06em; color:var(--olive); margin-bottom:22px;}
.contact-form label{display:block; font-family:var(--font-head); font-size:.8rem; font-weight:600; color:var(--dark); margin-bottom:6px;}
.contact-form input, .contact-form textarea{
  width:100%; font-family:var(--font-body); font-size:.95rem; color:var(--dark-2);
  padding:11px 14px; margin-bottom:18px; border:1px solid rgba(40,51,51,.2);
  border-radius:var(--radius); background:var(--cream); resize:vertical;
}
.contact-form input:focus, .contact-form textarea:focus{outline:none; border-color:var(--tan); background:var(--white);}
.contact-form .btn{border:none; cursor:pointer; width:100%; text-align:center;}
.form-note{font-size:.78rem; opacity:.6; margin:10px 0 0; text-align:center;}

/* Footer affiliation badge */
.footer-affiliation{
  font-family:var(--font-head); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(204,179,146,.55); margin:18px 0 0;
}

/* Footer */
.site-footer{background:var(--dark); color:var(--cream); padding:56px 0 28px;}
.footer-inner{display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px;}
.footer-logo{width:64px; height:64px; border-radius:50%; border:1px solid rgba(204,179,146,.35);}
.footer-tag{color:var(--tan); font-family:var(--font-head); font-size:.9rem; max-width:420px;}
.footer-nav{display:flex; gap:24px; flex-wrap:wrap; justify-content:center; font-family:var(--font-head); font-size:.85rem; margin:10px 0;}
.footer-nav a:hover{color:var(--tan);}
.footer-copy{font-size:.78rem; opacity:.6; margin-top:12px;}

/* Whatsapp FAB */
.whatsapp-fab{
  position:fixed; right:22px; bottom:22px; z-index:200;
  width:56px; height:56px; border-radius:50%; background:var(--olive); color:var(--cream);
  display:flex; align-items:center; justify-content:center; font-size:1.5rem;
  box-shadow:0 8px 22px rgba(40,51,51,.35); transition:transform .2s ease;
}
.whatsapp-fab:hover{transform:scale(1.08);}

/* Responsive */
@media (max-width: 980px){
  .two-col, .two-col--reverse{grid-template-columns:1fr; gap:40px;}
  .two-col--reverse .col-cards, .two-col--reverse .col-text{order:initial;}
  .team-grid{grid-template-columns:1fr;}
  .areas-grid{grid-template-columns:repeat(2,1fr);}
  .clients-grid{grid-template-columns:repeat(2,1fr);}
}

@media (max-width: 760px){
  .topbar-loc{display:none;}
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:78%; max-width:320px; height:100vh;
    background:var(--dark); flex-direction:column; align-items:flex-start; justify-content:center;
    gap:26px; padding:40px 32px; transform:translateX(100%); transition:transform .3s ease; z-index:105;
  }
  .main-nav.is-open{transform:translateX(0);}
  .main-nav a{color:var(--cream) !important; font-size:1.05rem;}
  .nav-toggle{display:flex;}
  .nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.is-open span:nth-child(2){opacity:0;}
  .nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .hero-content{padding:80px 20px 70px;}
  .areas-grid{grid-template-columns:1fr;}
  .clients-grid{grid-template-columns:1fr;}
  .section{padding:64px 0;}
}
