:root{
--navy: #182040;
--navy-2: #232C55;
--navy-3: #2E3868;
--red: #D43432;
--red-dark: #AE2926;
--gold: #E8C838;
--gold-ink: #A8842A;
--paper: #EEF0F4;
--panel: #FFFFFF;
--line: #DADFE6;
--ink: var(--navy);
--ink-soft: #4C5670;
--paper-soft: rgba(238,240,244,.72);
--paper-mute: rgba(238,240,244,.5);
--serif: Cambria, Georgia, "Iowan Old Style", serif;
--sans: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
margin:0;
background:var(--paper);
color:var(--ink);
font-family:var(--sans);
-webkit-font-smoothing:antialiased;
overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
.wrap{ max-width:1180px; margin:0 auto; padding:0 clamp(18px,4vw,32px); }.eyebrow{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin:0 0 12px; }
.eyebrow.on-light{ color:var(--gold-ink); }
.eyebrow.on-dark{ color:var(--gold); }h1,h2,h3{ font-family:var(--serif); font-weight:600; text-wrap:balance; margin:0; }
h1{ font-size:clamp(2.1rem,4.2vw,3.3rem); line-height:1.12; }
h2{ font-size:clamp(1.7rem,3vw,2.5rem); line-height:1.15; }
h3{ font-size:1.25rem; line-height:1.25; }
p{ margin:0; line-height:1.65; }.btn{
display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700;
letter-spacing:.03em; text-decoration:none; padding:13px 24px; border-radius:3px;
transition:transform .2s ease, box-shadow .2s ease, background .2s ease; border:none; cursor:pointer;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--gold); color:var(--navy); box-shadow:0 10px 22px -10px rgba(168,132,42,.5); }
.btn-primary:hover{ background:#F2D65C; }
.btn-call{ background:var(--red); color:#fff; box-shadow:0 10px 22px -10px rgba(212,52,50,.55); }
.btn-call:hover{ background:var(--red-dark); }
.btn-outline.dark{ border:1.5px solid var(--navy); color:var(--navy); }
.btn-outline.dark:hover{ border-color:var(--red); color:var(--red); }section{ position:relative; }
.band-light{ background:var(--paper); }
.band-panel{ background:var(--panel); }
.band-navy{ background:linear-gradient(155deg, var(--navy) 0%, var(--navy-2) 100%); color:var(--paper); }
.pad{ padding:clamp(56px,9vw,110px) 0; }.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
html{ scroll-behavior:auto; }
.reveal{ opacity:1; transform:none; transition:none; }
.btn:hover{ transform:none; }
}/* ---------- hero ---------- */
.hero{ overflow:hidden; }
.hero-inner{
padding:clamp(56px,9vw,100px) 0 clamp(30px,5vw,48px);
position:relative; z-index:2; max-width:60ch;
}
.hero h1 .accent{ color:var(--gold); }
.hero .desc{ font-size:15px; color:var(--paper-soft); max-width:52ch; margin-top:14px; }
.hero-deco{
position:absolute; right:-8%; top:50%; transform:translateY(-50%);
width:min(46vw,560px); aspect-ratio:1; opacity:.35; z-index:1;
}/* ---------- secretary + info ---------- */
.contact-top-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:50px; align-items:start; }
@media (max-width:860px){ .contact-top-grid{ grid-template-columns:1fr; gap:36px; } }.staff-card{ display:flex; gap:20px; align-items:center; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:24px; margin-bottom:28px; }
.staff-photo{ width:88px; height:88px; border-radius:50%; overflow:hidden; flex:none; border:3px solid var(--gold); }
.staff-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.staff-card .role{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:var(--gold-ink); margin-bottom:4px; }
.staff-card h3{ margin-bottom:6px; }
.staff-card p{ font-size:13.5px; color:var(--ink-soft); }.info-list{ display:flex; flex-direction:column; gap:18px; }
.info-row{ display:flex; gap:16px; align-items:flex-start; }
.info-icon{ width:42px; height:42px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center; flex:none; }
.info-icon svg{ width:20px; height:20px; stroke:var(--gold); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.info-row .label{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--gold-ink); margin-bottom:3px; }
.info-row .value{ font-size:15px; color:var(--ink); line-height:1.5; }
.info-row .value.soft{ color:var(--ink-soft); font-size:13.5px; }.map-card{ position:relative; border-radius:10px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 18px 40px -22px rgba(24,32,64,.45); margin-top:26px; }
.map-card iframe{ width:100%; height:100%; border:0; display:block; }/* ---------- contact form ---------- */
.form-card{ background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:clamp(28px,5vw,48px); box-shadow:0 24px 50px -30px rgba(24,32,64,.3); }
.form-card .wpcf7-form p{ margin:0 0 16px; }
.form-card .wpcf7-form label{ display:block; font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.form-card .wpcf7-form input[type=text],
.form-card .wpcf7-form input[type=email],
.form-card .wpcf7-form input[type=tel],
.form-card .wpcf7-form textarea{
width:100%; border:1.5px solid var(--line); border-radius:6px; padding:12px 14px;
font-family:var(--sans); font-size:14.5px; color:var(--ink); background:var(--paper);
transition:border-color .2s ease;
}
.form-card .wpcf7-form input:focus,
.form-card .wpcf7-form textarea:focus{ outline:none; border-color:var(--gold); }
.form-card .wpcf7-form textarea{ min-height:110px; resize:vertical; }
.form-card .wpcf7-form input[type=submit]{
background:var(--gold); color:var(--navy); border:none; font-weight:700; font-size:13px;
letter-spacing:.03em; padding:14px 30px; border-radius:3px; cursor:pointer;
transition:transform .2s ease, background .2s ease;
}
.form-card .wpcf7-form input[type=submit]:hover{ background:#F2D65C; transform:translateY(-2px); }
.form-card .wpcf7-form .wpcf7-acceptance label{ display:flex; align-items:flex-start; gap:8px; font-size:12.5px; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink-soft); }
.form-card .wpcf7-form .wpcf7-acceptance input{ margin-top:3px; }
.form-card .wpcf7-not-valid-tip{ color:var(--red); font-size:12px; margin-top:4px; display:block; }
.form-card .wpcf7-response-output{ border-radius:6px; padding:12px 16px; font-size:13.5px; margin-top:16px; border:1.5px solid var(--line); }
Contact
We're here to help.
Book your appointment, get your questions answered, or visit us in Marbella. Our team will assist you with the same friendly service as always.
if (!matchMedia('(prefers-reduced-motion: reduce)').matches && 'IntersectionObserver' in window){
var io = new IntersectionObserver(function(entries){
entries.forEach(function(entry){
if (entry.isIntersecting){ entry.target.classList.add('is-visible'); io.unobserve(entry.target); }
});
}, { threshold:.12 });
document.querySelectorAll('.reveal').forEach(function(el){ io.observe(el); });
} else {
document.querySelectorAll('.reveal').forEach(function(el){ el.classList.add('is-visible'); });
}