:root {
        --bg-body: #ffffff;
        --bg-secondary: #f8f7f5;
        --bg-header: #454545;
        --text-primary: #111111;
        --text-secondary: #666666;
        --border-light: #e8e5e0;
        --container-padding: 8vw;
        --section-gap: 130px;
      }
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
        margin: 0;
        background-color: var(--bg-body);
        color: var(--text-primary);
        font-family: "Manrope", sans-serif;
        -webkit-font-smoothing: antialiased;
        overflow-x: hidden;
        line-height: 1.6;
      }
a, a:visited, a:active {
        text-decoration: none !important;
        color: inherit;
        transition: 0.25s ease;
      }

/* ── Intro (matches the suite's page-intro pattern) ── */
.page-intro-block {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 80px;
        align-items: end;
        padding: 110px var(--container-padding) 90px;
        max-width: 1800px;
        margin: 0 auto;
      }
.intro-label {
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2.5px;
        color: var(--text-secondary);
        display: block;
        margin-bottom: 18px;
        font-weight: 600;
      }
.page-intro-block h1 {
        font-family: "Playfair Display", serif;
        font-size: clamp(2.75rem, 5vw, 5rem);
        margin: 0;
        font-weight: 400;
        line-height: 1.05;
        letter-spacing: -1px;
        color: var(--text-primary);
      }
.page-intro-block h1 em { font-style: italic; }
.intro-right p {
        font-size: 15px;
        color: var(--text-secondary);
        font-weight: 300;
        line-height: 1.9;
        max-width: 520px;
        margin: 0 0 20px;
      }

/* ── Contact grid ── */
.contact-section {
        padding: 0 var(--container-padding) 120px;
        max-width: 1800px;
        margin: 0 auto;
      }
.contact-grid {
        display: grid;
        grid-template-columns: 0.9fr 1.1fr;
        gap: 110px;
        align-items: start;
      }
.contact-details .detail-block { margin-bottom: 44px; }
.contact-details h3 {
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 2.5px;
        font-weight: 600;
        color: var(--text-primary);
        margin: 0 0 16px;
      }
.detail-line {
        display: block;
        font-family: "Playfair Display", serif;
        font-size: 20px;
        margin-bottom: 8px;
      }
.detail-line:hover { opacity: 0.55; }
.address-pair {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 40px;
        padding-top: 8px;
        border-top: 1px solid var(--border-light);
        margin-top: 8px;
      }
.address-pair .detail-block { margin-top: 28px; }
address {
        font-style: normal;
        font-size: 14px;
        color: var(--text-secondary);
        font-weight: 300;
        line-height: 1.8;
      }
.detail-note {
        display: block;
        margin-top: 12px;
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: var(--text-secondary);
        font-weight: 600;
      }
.consultation-note {
        border-top: 1px solid var(--border-light);
        padding-top: 28px;
        font-size: 14px;
        color: var(--text-secondary);
        font-weight: 300;
        max-width: 400px;
      }

/* ── Form ── */
.contact-form h2 {
        font-family: "Playfair Display", serif;
        font-size: clamp(1.6rem, 2.4vw, 2.2rem);
        font-style: italic;
        font-weight: 400;
        margin: 0 0 36px;
        color: var(--text-primary);
      }
/* WPForms restyle — minimal, editorial */
.emb-page .wpforms-container { margin: 0 !important; }
.emb-page .wpforms-field { padding: 0 0 28px !important; }
.emb-page .wpforms-field-label {
        font-size: 10px !important;
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: 600 !important;
        color: var(--text-secondary) !important;
        margin-bottom: 10px !important;
      }
.emb-page .wpforms-field input[type="text"],
.emb-page .wpforms-field input[type="email"],
.emb-page .wpforms-field input[type="tel"],
.emb-page .wpforms-field textarea {
        width: 100% !important;
        max-width: 100% !important;
        border: 0 !important;
        border-bottom: 1px solid var(--border-light) !important;
        border-radius: 0 !important;
        background: transparent !important;
        padding: 10px 0 !important;
        font-family: "Manrope", sans-serif !important;
        font-size: 15px !important;
        font-weight: 300;
        color: var(--text-primary) !important;
        box-shadow: none !important;
        transition: border-color 0.25s;
      }
.emb-page .wpforms-field input:focus,
.emb-page .wpforms-field textarea:focus {
        outline: none !important;
        border-bottom-color: var(--text-primary) !important;
      }
.emb-page .wpforms-field textarea { min-height: 140px; resize: vertical; }
.emb-page .wpforms-submit,
.emb-page button.wpforms-submit,
.emb-page .wpforms-form button[type="submit"] {
        background: var(--bg-header) !important;
        color: #ffffff !important;
        border: 1px solid var(--bg-header) !important;
        border-radius: 0 !important;
        padding: 16px 52px !important;
        font-size: 11px !important;
        text-transform: uppercase;
        letter-spacing: 2px;
        font-weight: 600 !important;
        cursor: pointer;
        transition: background 0.25s, color 0.25s !important;
        box-shadow: none !important;
      }
.emb-page .wpforms-submit:hover,
.emb-page .wpforms-form button[type="submit"]:hover {
        background: transparent !important;
        color: var(--bg-header) !important;
      }

/* ── Awards strip ── */
.awards-strip {
        border-top: 1px solid var(--border-light);
        background: var(--bg-secondary);
        text-align: center;
        padding: 72px var(--container-padding);
      }
.awards-strip img {
        max-width: 720px;
        width: 100%;
        height: auto;
        opacity: 0.85;
      }
.credits {
        margin: 40px 0 0;
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: 2px;
        color: var(--text-secondary);
        font-weight: 500;
      }
.credits a:hover { color: var(--text-primary); }

/* ── Responsive ── */
@media (max-width: 1024px) {
        .page-intro-block { grid-template-columns: 1fr; gap: 40px; align-items: start; padding-top: 72px; }
        .contact-grid { grid-template-columns: 1fr; gap: 72px; }
      }
@media (max-width: 600px) {
        :root { --container-padding: 6vw; }
        .address-pair { grid-template-columns: 1fr; }
      }
