*,*::before,*::after{box-sizing:border-box}*{margin:0}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

body {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    background: linear-gradient(180deg, #F7FAF9 0%, #F9F9F9 60%, #F7FAF9 100%);
    color: #1F2937;
    min-height: 100dvh;
    display: grid;
    grid-template-rows: auto 1fr;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.logo {
    text-align: left;
    max-width: 200px;
    padding: 20px 0;
}

.logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero {
    text-align: center;
    margin: 0 auto;
}

.hero h1 {
    font-size: 40px;
    font-weight: 400;
}

main {
    display: grid;
    grid-template-rows: 1fr auto;
}

/* Header layout */
.header-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 16px;
}

.cta-button { display:inline-block; background-color:#2F855A; color:#FFFFFF; text-decoration:none; padding:10px 14px; border-radius:8px; font-weight:600; transition:background-color 0.2s ease-in-out, transform 0.05s ease-in-out; }

.cta-button:hover {
    background-color: #276749;
}

.cta-button:active {
    transform: translateY(1px);
}

/* Intro section */
.intro { display:grid; grid-template-columns: 180px minmax(0, 560px); gap:32px; align-items:center; padding:56px 20px 24px; justify-content:center; align-self:start; justify-self:center; margin-top:6vh; }

.intro-media .avatar { width:160px; height:160px; border-radius:50%; object-fit:cover; box-shadow: 0 6px 18px rgba(0,0,0,0.06); }

.intro-content h2 { font-size:28px; font-weight:600; margin-bottom:6px; }

.intro-content h3 { font-size:18px; font-weight:600; color:#111827; margin-top:12px; margin-bottom:6px; }

.intro-content { max-width:560px; }

.intro-content p { font-size:16px; color:#374151; margin-bottom:10px; }

.intro-signature { font-style:italic; text-align:right; color:#374151; margin-top:18px; margin-bottom:10px; }

.intro-content ul {
    list-style: disc;
    padding-left: 34px;
    margin: 0 0 8px 0;
}

.intro-content li {
    margin-bottom: 6px;
}

/* Social section */
.social { text-align:center; padding:32px 20px 48px; }

.social-icons {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-bottom: 16px;
}

.social-icons a { width:40px; height:40px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#F3F4F6; color:#1F2937; text-decoration:none; transition:transform 0.05s ease-in-out, background 0.2s ease-in-out, color 0.2s ease-in-out; }

.social-icons a:hover { background: #E2E8F0; color: #1A202C; }
.social-icons i { font-size: 20px; }

.contact-row{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:12px; }
.contact-phone .phone-link{ font-size:22px; }
.contact-address{ color:#111827; display:flex; align-items:center; gap:12px; column-gap:12px; row-gap:4px; flex-wrap:wrap; }
.map-link{ color:#3182CE; text-decoration:none; }
.map-link:hover{ text-decoration:underline; }

.intro-phone {
    margin-top: 14px;
    padding: 14px 16px;
    background: #F0FFF4;
    border: 1px solid #C6F6D5;
    border-radius: 12px;
}

.phone-cta { margin-top: 8px; color: #2D3748; }
.phone-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 26px;
    font-weight: 700;
    color: #2F855A;
    text-decoration: none;
}
.phone-link:hover { text-decoration: underline; }

/* Responsive */
@media (max-width: 768px) {
    .container {
        padding-left: calc(24px + env(safe-area-inset-left));
        padding-right: calc(24px + env(safe-area-inset-right));
    }
    .logo { max-width: 120px; padding-top: 8px; padding-bottom: 8px; }
    .header-bar { padding-top: 10px; padding-bottom: 10px; }
    .cta-button { padding: 10px 14px; }
    .intro { grid-template-columns:1fr; text-align:center; gap:20px; padding:28px 24px; margin-top:20px; }
    .intro-media { display:flex; justify-content:center; }
    .intro-media .avatar { width:140px; height:140px; }
    .intro-content { max-width: 600px; margin: 0 auto; text-align: left; }
    .intro-content h2 { font-size:22px; }
    .intro-content h3 { font-size:17px; }
    .intro-content p, .intro-content li { font-size:15px; }
    .intro-content ul { list-style-position: inside; padding-left: 0; }
    .intro-content p { margin-bottom: 14px; }
    .intro-content p + h3 { margin-top: 18px; }
    .intro-content h3 + ul { margin-top: 12px; }
    .intro-content { max-width: 600px; margin: 0 auto; }
    .intro-phone { padding: 12px 14px; }
    .social { padding: 28px 16px 40px; }
    .social-icons a { width: 40px; height: 40px; }
    .phone-link { font-size: 22px; }
    .contact-row { flex-direction: column; align-items: center; gap:8px; }
    .contact-address { justify-content: center; text-align: center; }
}