:root {
--blue:#243B53;
    --warm:#F7F5F0;
    --orange:#E57A44;
    --gray:#D9E2EC;
    --dark:#17202A;
    --muted:#65717d;
    --white:#fff;
    --line:#dfe4e8;
    --shadow:0 22px 60px rgba(36,59,83,.13);
    --radius:24px}

* {
box-sizing:border-box;
    margin:0;
    padding:0}

html {
scroll-behavior:smooth}

body {
font-family:"DM Sans",sans-serif;
    background:var(--warm);
    color:var(--dark);
    line-height:1.7}

a {
text-decoration:none;
    color:inherit}

button,input,textarea,select {
font:inherit}

.container {
width:min(1180px,92%);
    margin:auto}

.site-header {
position:sticky;
    top:0;
    z-index:100;
    background:rgba(247,245,240,.94);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(36,59,83,.08)}

.navbar {
min-height:78px;
    display:flex;
    align-items:center;
    justify-content:space-between}

.brand {
display:flex;
    align-items:center;
    gap:10px;
    font-size:20px;
    font-weight:600;
    color:var(--blue)}

.brand b {
font-family:"Playfair Display"}

.logo {
width:39px;
    height:39px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:var(--blue);
    color:var(--orange);
    font-size:22px}

.nav-links {
display:flex;
    align-items:center;
    gap:35px;
    font-size:17px;
    font-weight:300}

.nav-links>a:not(.btn):hover {
color:var(--orange)}

.menu-toggle {
display:none;
    border:0;
    background:none;
    color:var(--blue);
    font-size:27px}

.btn {
border:0;
    border-radius:999px;
    padding:14px 23px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font-weight:700;
    cursor:pointer;
    transition:.3s}

.btn-orange {
background:var(--orange);
    color:#fff;
    box-shadow:0 10px 25px rgba(229,122,68,.22)}

.btn-orange:hover,.btn-blue:hover {
transform:translateY(-3px)}

.btn-blue {
background:var(--blue);
    color:#fff}

.hero {
background:var(--blue);
    color:#fff;
    overflow:hidden;
    position:relative}

.hero:before {
content:"";
    position:absolute;
    width:600px;
    height:600px;
    right:-180px;
    top:-260px;
    border-radius:50%;
    background:rgba(229,122,68,.18);
    filter:blur(3px)}

.hero-grid {
min-height:calc(100vh - 78px);
    padding:100px 0;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:75px;
    align-items:center}

.eyebrow {
display:inline-block;
    color:var(--orange);
    font-size:12px;
    letter-spacing:2px;
    font-weight:800;
    margin-bottom:17px}

.hero h1,h1,h2 {
font-family:"Playfair Display";
    line-height:1.08}

.hero h1 {
font-size:clamp(50px,6vw,78px);
    letter-spacing:-2px}

.hero h1 em,h1 em,h2 em {
color:var(--orange);
    font-style:normal}

.hero-copy>p {
font-size:18px;
    color:#dce5ed;
    max-width:590px;
    margin:26px 0}

.hero-actions {
display:flex;
    gap:25px;
    align-items:center;
    flex-wrap:wrap}

.text-link {
font-weight:700}

.hero-trust {
display:flex;
    gap:18px;
    flex-wrap:wrap;
    margin-top:35px;
    color:#c7d4df;
    font-size:12px}

.hero-card {
padding:11px;
    border:1px solid rgba(255,255,255,.14);
    border-radius:28px;
    background:rgba(255,255,255,.07)}

.hero-photo,.about-photo,.planning-photo {
border-radius:20px;
    min-height:520px;
    background:center/cover url("https://i.pinimg.com/1200x/55/12/56/551256ed53e411020636b48fa1bf56cf.jpg")}

.hero-photo {
background-image:url("https://i.pinimg.com/1200x/d5/1b/6b/d51b6bca3928e2c8afb98d158c3788fe.jpg")}

.photo-overlay {
min-height:520px;
    border-radius:20px;
    padding:30px;
    display:flex;
    justify-content:flex-end;
    flex-direction:column;
    background:linear-gradient(transparent 40%,rgba(23,32,42,.8))}

.photo-overlay small {
color:#f6d4c3;
    letter-spacing:2px}

.photo-overlay strong {
font:700 33px/1.15 "Playfair Display";
    margin-top:8px}

.hero-bottom {
display:flex;
    gap:18px;
    padding:17px 8px 4px;
    align-items:center}

.hero-bottom b {
color:#f4c6ae}

.hero-bottom span {
font-size:12px;
    color:#c7d4df}

.section {
padding:110px 0}

.about {
background:#fff}

.two-col {
display:grid;
    grid-template-columns:1fr 1fr;
    gap:85px;
    align-items:center}

.about-photo {
min-height:560px;
    background-image:url("https://i.pinimg.com/1200x/e9/20/da/e920da7642acee2d3d63abc8af9197be.jpg")}

.about-photo-wrap {
position:relative}

.badge {
position:absolute;
    bottom:28px;
    right:-22px;
    background:var(--orange);
    color:#fff;
    padding:20px 23px;
    border-radius:18px;
    display:flex;
    gap:13px;
    align-items:center;
    box-shadow:var(--shadow)}

.badge b {
font:700 38px "Playfair Display"}

.badge span {
font-size:12px;
    line-height:1.3}

.section-copy h2,.section-heading h2 {
font-size:clamp(38px,4vw,56px);
    margin-bottom:22px}

.section-copy p,.section-heading p {
color:var(--muted);
    margin-bottom:17px}

.checks {
display:grid;
    gap:9px;
    margin:25px 0 30px;
    color:var(--blue);
    font-weight:700;
    font-size:14px}

.values {
background:var(--warm)}

.center {
text-align:center;
    max-width:760px;
    margin:0 auto 52px}

.value-grid {
display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px}

.value-card {
background:#fff;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:31px;
    min-height:235px;
    transition:.3s}

.value-card:hover,.feature-card:hover,.service-card:hover,.review-card:hover {
transform:translateY(-7px);
    box-shadow:var(--shadow)}

.value-card>span {
color:var(--orange);
    font-weight:800}

.value-card h3,.feature-card h3,.service-card h3 {
font:700 23px "Playfair Display";
    margin:17px 0 9px}

.value-card p,.feature-card p,.service-card p {
color:var(--muted);
    font-size:14px}

.features {
background:#fff}

.feature-grid,.service-grid,.review-grid {
display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px}

.feature-card {
padding:30px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    transition:.3s}

.feature-card i {
font-style:normal;
    width:50px;
    height:50px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:var(--warm);
    color:var(--orange);
    font-size:22px}

.process {
background:var(--blue);
    color:#fff}

.process .section-heading p {
color:#c7d4df}

.process-grid {
display:grid;
    grid-template-columns:repeat(4,1fr)}

.step {
padding:28px;
    border-left:1px solid rgba(255,255,255,.17)}

.step>b {
color:var(--orange)}

.step h3 {
font:700 22px "Playfair Display";
    margin:17px 0 8px}

.step p {
font-size:14px;
    color:#c7d4df}

.services {
background:var(--warm)}

.service-card {
background:#fff;
    padding:30px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    transition:.3s}

.service-card>div {
font-size:35px}

.planning {
background:#fff}

.planning-photo {
background-image:url("https://i.pinimg.com/1200x/b2/01/a6/b201a61f7356d27b5b00d4fdfb3a1098.jpg")}

.planning-visual {
position:relative}

.floating-card {
position:absolute;
    bottom:24px;
    left:-25px;
    background:var(--blue);
    color:#fff;
    padding:20px 24px;
    border-radius:17px;
    display:grid}

.floating-card b {
font:700 20px "Playfair Display"}

.floating-card span {
font-size:12px;
    color:#c7d4df}

.booking {
background:var(--gray)}

.booking-grid,.contact-grid {
display:grid;
    grid-template-columns:.8fr 1.2fr;
    gap:70px;
    align-items:center}

.callout {
display:flex;
    gap:14px;
    align-items:center;
    margin-top:28px}

.callout small {
display:block;
    color:var(--muted)}

.form-card {
background:#fff;
    border-radius:var(--radius);
    padding:34px;
    box-shadow:var(--shadow)}

label {
display:grid;
    gap:7px;
    font-size:13px;
    font-weight:700;
    margin-bottom:17px}

input,textarea,select {
width:100%;
    border:1px solid var(--line);
    background:#fcfcfb;
    border-radius:12px;
    padding:13px 14px;
    outline:0;
    color:var(--dark)}

input:focus,textarea:focus,select:focus {
border-color:var(--orange);
    box-shadow:0 0 0 3px rgba(229,122,68,.12)}

textarea {
resize:vertical}

.form-row {
display:grid;
    grid-template-columns:1fr 1fr;
    gap:15px}

.form-card label{
    color: #17202A !important;
}

.faq {
background:#fff}

.faq-grid {
display:grid;
    grid-template-columns:.7fr 1.3fr;
    gap:70px}

.faq-list {
display:grid;
    gap:12px}

.faq-list details {
background:var(--warm);
    border:1px solid var(--line);
    border-radius:16px;
    padding:18px 20px}

.faq-list summary {
font-weight:700;
    cursor:pointer;
    list-style:none;
    position:relative;
    padding-right:25px}

.faq-list summary:after {
content:"+";
    position:absolute;
    right:0;
    color:var(--orange);
    font-size:21px}

.faq-list details[open] summary:after {
content:"−"}

.faq-list p {
padding-top:11px;
    color:var(--muted);
    font-size:14px}

.reviews {
background:var(--warm)}

.review-card {
background:#fff;
    border:1px solid var(--line);
    padding:30px;
    border-radius:var(--radius);
    transition:.3s}

.review-card>span {
color:var(--orange);
    letter-spacing:2px}

.review-card p {
color:var(--muted);
    font-size:14px;
    margin:17px 0}

.review-card b {
display:block}

.review-card small {
color:var(--muted)}

.contact {
background:var(--blue);
    color:#fff}

.contact-copy>p {
color:#c7d4df}

.contact-details {
display:grid;
    gap:17px;
    margin-top:28px}

.contact-details>div {
display:flex;
    gap:13px}

.contact-details p {
color:#c7d4df;
    margin:0}

.contact-details b {
display:block;
    color:#fff}

.site-footer {
background:#172a3a;
    color:#d5e0e8;
    padding-top:70px}

.footer-grid {
display:grid;
    grid-template-columns:1.4fr .8fr .9fr 1.2fr;
    gap:45px;
    padding-bottom:52px}

.footer-brand {
color:#fff;
    margin-bottom:17px}

.site-footer p {
color:#aab9c5;
    font-size:13px}

.site-footer h4 {
color:#fff;
    margin-bottom:17px}

.site-footer a:not(.brand) {
display:block;
    color:#aab9c5;
    font-size:13px;
    margin:8px 0}

.site-footer a:hover {
color:var(--orange)!important}

.subscribe-form {
display:flex;
    margin:15px 0 8px}

.subscribe-form input {
border-radius:10px 0 0 10px;
    border:0;
    background:#fff}

.subscribe-form button {
border:0;
    background:var(--orange);
    color:#fff;
    width:50px;
    border-radius:0 10px 10px 0}

.unsubscribe {
text-decoration:underline;
    font-size:11px!important}

.footer-bottom {
border-top:1px solid rgba(255,255,255,.1);
    padding:20px 0;
    display:flex;
    justify-content:space-between;
    gap:20px;
    color:#8fa0ad;
    font-size:12px}

.footer-bottom span:last-child {
display:flex;
    gap:20px}

.inner-hero {
background:var(--blue);
    color:#fff;
    padding:90px 0}

.inner-hero h1 {
font-size:clamp(45px,6vw,70px)}

.inner-hero p {
color:#c7d4df;
    margin-top:12px}

.legal {
background:#fff}

.narrow {
max-width:850px}

.legal h2 {
font:700 28px "Playfair Display";
    margin:34px 0 10px}

.legal p {
color:var(--muted);
    margin-bottom:11px}

.center-page {
min-height:65vh;
    text-align:center;
    display:grid;
    place-items:center}

.narrow-form {
max-width:600px;
    margin:28px auto}

.reveal {
opacity:0;
    transform:translateY(22px);
    transition:.7s ease}

.reveal.visible {
opacity:1;
    transform:none}

@media(max-width:950px) {
.menu-toggle {
display:block    }

.nav-links {
display:none;
        position:absolute;
        top:78px;
        left:0;
        right:0;
        background:var(--warm);
        padding:20px;
        flex-direction:column;
        align-items:stretch;
        border-bottom:1px solid var(--line)    }

.nav-links.open {
display:flex    }

.hero-grid,.two-col,.booking-grid,.contact-grid,.faq-grid {
grid-template-columns:1fr;
        gap:45px    }

.value-grid,.process-grid {
grid-template-columns:repeat(2,1fr)    }

.feature-grid,.service-grid,.review-grid {
grid-template-columns:repeat(2,1fr)    }

.footer-grid {
grid-template-columns:repeat(2,1fr)    }

}

@media(max-width:600px) {
.section {
padding:75px 0    }

.hero-grid {
padding:65px 0    }

.hero h1 {
font-size:47px    }

.value-grid,.process-grid,.feature-grid,.service-grid,.review-grid,.footer-grid,.form-row {
grid-template-columns:1fr    }

.hero-photo,.photo-overlay,.about-photo,.planning-photo {
min-height:410px    }

.badge {
right:10px    }

.floating-card {
left:10px    }

.footer-bottom {
flex-direction:column    }

.footer-bottom span:last-child {
flex-direction:column;
        gap:5px    }

.nav-cta {
display:none    }

}