
:root{
  --navy:#0b2a67;
  --navy2:#153f8e;
  --ink:#101827;
  --muted:#5e6672;
  --cream:#fbf8f2;
  --paper:#fffdf9;
  --line:#e3ded5;
  --gold:#b88a2b;
  --max:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
h1,h2,h3,.brand-name{font-family:Georgia,"Times New Roman",serif;font-weight:500}
.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}
header{
  position:sticky;top:0;z-index:20;background:rgba(255,253,249,.94);
  backdrop-filter:blur(14px);border-bottom:1px solid var(--line)
}
nav{height:92px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{display:flex;align-items:center;gap:14px;min-width:255px}
.brand img{width:54px;height:54px;object-fit:contain}
.brand-copy{display:flex;flex-direction:column;line-height:1}
.brand-name{font-size:25px;letter-spacing:.08em;color:var(--navy)}
.brand-sub{font-size:10px;letter-spacing:.34em;color:var(--navy);margin-top:8px;font-weight:700}
.links{display:flex;align-items:center;gap:30px;font-size:14px;color:#243149}
.links a:hover{color:var(--navy)}
.lang{border-left:1px solid var(--line);padding-left:22px;font-weight:600;color:var(--navy)}
.hero{
  min-height:610px;display:grid;grid-template-columns:1.02fr .98fr;
  border-bottom:1px solid var(--line);background:var(--paper)
}
.hero-copy{padding:82px 68px 76px max(24px,calc((100vw - var(--max))/2))}
.hero-kicker{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.hero-kicker img{width:34px;height:34px;object-fit:contain}
.hero-kicker span{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-weight:700}
h1{font-size:clamp(54px,5.3vw,82px);line-height:.99;letter-spacing:-.035em;margin:0;color:var(--navy);max-width:680px}
.gold-rule{width:132px;height:2px;background:var(--gold);margin:30px 0 22px}
.hero-copy p{font-size:18px;max-width:620px;color:#4b5563;margin:0}
.actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:1px solid var(--navy);font-weight:650;font-size:14px}
.btn.primary{background:var(--navy);color:white}
.btn.primary:hover{background:var(--navy2)}
.btn.secondary{background:transparent;color:var(--navy)}
.hero-photo{
  position:relative;min-height:610px;overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,253,249,.98) 0%,rgba(255,253,249,.35) 20%,rgba(255,253,249,0) 45%),
    linear-gradient(0deg,rgba(10,27,58,.10),rgba(10,27,58,.10)),
    url("castillo-window-real.jpg") center/cover no-repeat;
}
.hero-photo:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,244,225,.08),rgba(8,30,74,.10));
}
section{padding:88px 0}
.section-title{text-align:center;max-width:820px;margin:0 auto 48px}
.section-title h2{font-size:46px;line-height:1.08;color:var(--navy);margin:0 0 12px}
.section-title p{margin:0;color:var(--muted);font-size:17px}
.services{background:var(--paper);border-bottom:1px solid var(--line)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.service{padding:36px 28px 38px;text-align:center;position:relative}
.service:not(:last-child){border-right:1px solid var(--line)}
.icon{width:54px;height:54px;margin:0 auto 20px;color:var(--navy)}
.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6}
.service h3{font-size:23px;line-height:1.17;color:var(--navy);margin:0 0 12px}
.service p{font-size:14.5px;color:var(--muted);margin:0}
.audience-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.audience{background:#fff;border:1px solid var(--line);padding:34px 30px;min-height:270px}
.eyebrow{font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--gold);font-weight:750;margin-bottom:40px}
.audience h3{font-size:28px;color:var(--navy);margin:0 0 12px}
.audience p{margin:0;color:var(--muted)}
.process{background:#0d1f43;color:#fff}
.process .section-title h2{color:#fff}
.process .section-title p{color:#cbd5e1}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.17);border:1px solid rgba(255,255,255,.17)}
.step{background:#0d1f43;padding:34px 30px;min-height:235px}
.step .n{font-size:11px;letter-spacing:.17em;color:#d6b15e;margin-bottom:45px}
.step h3{font-size:26px;margin:0 0 10px}
.step p{margin:0;color:#cbd5e1}
.contact{background:var(--paper)}
.contact-box{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:58px 0}
.contact h2{font-size:43px;color:var(--navy);margin:0 0 9px}
.contact p{margin:0;color:var(--muted);font-size:17px}
footer{padding:42px 0 34px;background:#fff}
.footer-top{display:flex;justify-content:space-between;gap:35px;align-items:flex-start}
.footer-brand{color:var(--navy);font-family:Georgia,serif;letter-spacing:.08em;font-size:18px}
.footer-contact{margin-top:6px;font-size:13px;color:var(--muted)}
.footer-links{display:flex;gap:24px;font-size:13px;color:var(--muted)}
.disclosure{border-top:1px solid var(--line);margin-top:30px;padding-top:24px;max-width:1060px;font-size:11.5px;color:#78808d;line-height:1.6}
.photo-credit{font-size:10px;color:#8c94a0;margin-top:13px}
@media(max-width:980px){
  .links a:not(.lang){display:none}
  .hero{grid-template-columns:1fr}
  .hero-copy{padding:64px 30px}
  .hero-photo{min-height:390px}
  .service-grid{grid-template-columns:1fr 1fr}
  .service:nth-child(2){border-right:0}
  .service:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .audience-grid,.process-grid{grid-template-columns:1fr}
  .contact-box{grid-template-columns:1fr}
}
@media(max-width:620px){
  .wrap{width:min(calc(100% - 28px),var(--max))}
  nav{height:76px}.brand img{width:42px;height:42px}.brand-name{font-size:20px}.brand-sub{font-size:8px}
  .brand{min-width:auto}.links{gap:12px}.lang{padding-left:12px}
  h1{font-size:48px}.hero-copy p{font-size:17px}.hero-photo{min-height:300px}
  section{padding:70px 0}.section-title h2{font-size:38px}
  .service-grid{grid-template-columns:1fr}.service{border-right:0!important;border-bottom:1px solid var(--line)!important}.service:last-child{border-bottom:0!important}
  .contact h2{font-size:36px}.footer-top{flex-direction:column}.footer-links{flex-wrap:wrap}
}

/* Contact form addition */
.contact-box.contact-form-layout{grid-template-columns:.8fr 1.2fr;align-items:start}
.contact-details{margin-top:24px;font-size:15px;color:var(--muted);line-height:1.8}
.contact-details a{color:var(--navy)}
.inquiry-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-field{display:flex;flex-direction:column;gap:7px}
.form-field.full{grid-column:1/-1}
.form-field label{font-size:12px;font-weight:700;letter-spacing:.06em;color:#354052}
.form-field input,.form-field textarea{
  width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;
  font:inherit;color:var(--ink);border-radius:0;outline:none
}
.form-field input:focus,.form-field textarea:focus{border-color:var(--navy)}
.form-field textarea{min-height:125px;resize:vertical}
.form-note{grid-column:1/-1;font-size:11.5px;color:#7b8492;line-height:1.5;margin:0}
.form-submit{grid-column:1/-1;justify-self:start;cursor:pointer}
@media(max-width:900px){.contact-box.contact-form-layout{grid-template-columns:1fr}}
@media(max-width:620px){.inquiry-form{grid-template-columns:1fr}.form-field.full,.form-note,.form-submit{grid-column:1}}

/* User-provided real Castillo photo; balanced hero outer margins */
.hero{
  width:min(calc(100% - 48px),var(--max));
  margin-left:auto;
  margin-right:auto;
}
.hero-copy{padding-left:0}
.hero-photo{background-position:center center}
@media(max-width:980px){
  .hero{width:min(calc(100% - 48px),var(--max))}
  .hero-copy{padding-left:0;padding-right:30px}
}
@media(max-width:620px){
  .hero{width:min(calc(100% - 28px),var(--max))}
  .hero-copy{padding-left:0;padding-right:0}
}
