:root {
    --navy: #102a48;
    --navy-deep: #071c35;
    --ink: #1d344d;
    --gold: #d6a860;
    --gold-light: #efcf98;
    --cream: #faf6ef;
    --cream-deep: #f3ebdf;
    --white: #fffdf9;
    --muted: #67727a;
    --line: #e5ded2;
    --font: "Manrope", "DM Sans", Arial, sans-serif;
}
* {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
body {
    margin: 0;
    background: var(--cream);
    font-family: var(--font);
    color: var(--navy);
    -webkit-font-smoothing: antialiased;
}
button,
input,
textarea {
    font: inherit;
}
a {
    color: inherit;
    text-decoration: none;
}
button {
    cursor: pointer;
}
::selection {
    background: var(--gold-light);
    color: var(--navy-deep);
}
.container {
    width: min(100% - 96px, 1270px);
    margin-inline: auto;
}
.skip-link {
    position: absolute;
    left: 16px;
    top: -60px;
    background: var(--navy);
    color: white;
    padding: 8px 16px;
    z-index: 100;
}
.skip-link:focus {
    top: 8px;
}
.preview-ribbon {
    height: 30px;
    display: flex;
    gap: 13px;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: #f6ead4;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}
.small-sparkle {
    color: var(--gold);
    font-size: 12px;
}
.site-header {
    position: fixed;
    width: 100%;
    top: 0;
    z-index: 40;
    background: rgba(250, 246, 239, 0.97);
    border-bottom: 1px solid rgba(16, 42, 72, 0.08);
}
.header-inner {
    height: 89px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}
.brand {
    display: inline-flex;
    align-items: center;
    gap: 13px;
    flex-shrink: 0;
}
.brand-mark {
    display: block;
    position: relative;
    width: 46px;
    height: 51px;
}
.brand-letter {
    font-family: Arial, sans-serif;
    position: absolute;
    font-size: 59px;
    font-weight: 800;
    font-style: italic;
    letter-spacing: -9px;
    line-height: 1;
    left: -5px;
    top: -7px;
    color: var(--navy);
}
.brand-arc {
    position: absolute;
    left: 10px;
    top: 26px;
    width: 39px;
    height: 17px;
    border-top: 7px solid var(--gold);
    border-radius: 100% 0 0 0;
    transform: rotate(20deg);
}
.brand-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.brand-name {
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.07em;
    line-height: 1;
}
.brand-name span {
    font-weight: 500;
    letter-spacing: -0.052em;
}
.brand-sub {
    font-size: 8px;
    letter-spacing: 0.19em;
    font-weight: 800;
    color: #708092;
}
.desktop-nav {
    display: flex;
    gap: 30px;
    align-items: center;
    margin-left: auto;
}
.desktop-nav a {
    font-size: 12px;
    color: var(--ink);
    font-weight: 700;
    transition: color 0.2s;
}
.desktop-nav a:hover {
    color: #bd8b44;
}
.header-actions {
    display: flex;
    align-items: center;
    gap: 19px;
}
.language-toggle {
    display: flex;
    align-items: center;
    gap: 2px;
    border: 1px solid #d9d2c8;
    background: var(--white);
    padding: 3px;
    border-radius: 50px;
}
.lang {
    background: transparent;
    border: 0;
    border-radius: 50px;
    font-size: 10px;
    font-weight: 800;
    padding: 8px 9px;
    color: #7f858b;
}
.lang.active {
    background: var(--navy);
    color: #fff;
}
.header-cta {
    display: inline-flex;
    align-items: center;
    gap: 17px;
    background: var(--gold);
    padding: 13px 19px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 800;
    transition:
        background 0.2s,
        transform 0.2s;
}
.header-cta:hover {
    background: var(--gold-light);
    transform: translateY(-2px);
}
.header-cta span {
    font-size: 16px;
}
.menu-toggle {
    display: none;
    border: 0;
    background: transparent;
    width: 35px;
    height: 35px;
    padding: 0;
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.menu-toggle span {
    display: block;
    width: 19px;
    height: 2px;
    flex-shrink: 0;
    border-radius: 2px;
    background: var(--navy);
}
.mobile-nav {
    display: none;
}
.hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(112deg, #fcf8f1 0%, #f8f1e5 58%, #efe6d6 100%);
}
.hero-orbit {
    position: absolute;
    border: 1px solid rgba(211, 169, 100, 0.18);
    border-radius: 50%;
    pointer-events: none;
}
.orbit-one {
    width: 840px;
    height: 840px;
    left: -630px;
    top: -470px;
}
.orbit-two {
    width: 900px;
    height: 900px;
    right: -680px;
    bottom: -490px;
}
.hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
    gap: clamp(32px, 4vw, 64px);
    min-height: 670px;
    align-items: center;
    padding-top: 125px;
    padding-bottom: 66px;
}
.hero-content {
    position: relative;
    z-index: 2;
    padding: 14px 0 5px;
}
.eyebrow {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #a6783d;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0.18em;
    font-weight: 800;
    margin-bottom: 29px;
}
.eyebrow-line {
    width: 34px;
    height: 1px;
    background: var(--gold);
}
h1,
h2,
h3,
p {
    margin-top: 0;
}
.hero h1 {
    font-size: clamp(45px, 5vw, 76px);
    line-height: 1.09;
    letter-spacing: -0.062em;
    font-weight: 700;
    max-width: 650px;
    margin-bottom: 29px;
}
.hero h1 em,
.section-intro h2 em,
.about-content h2 em,
.steps-heading h2 em,
.faq-heading h2 em,
.contact-content h2 em {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    letter-spacing: -0.055em;
    color: #c49a59;
}
.hero-description {
    color: #566677;
    font-size: 15px;
    line-height: 1.95;
    max-width: 520px;
    margin-bottom: 34px;
}
.hero-buttons {
    display: flex;
    align-items: center;
    gap: 31px;
    flex-wrap: wrap;
}
.button {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 29px;
    padding: 8px 9px 8px 22px;
    border: 1px solid transparent;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: -0.015em;
    transition:
        background 0.2s,
        color 0.2s,
        transform 0.2s;
}
.button:hover {
    transform: translateY(-3px);
}
.button-primary {
    background: var(--navy);
    color: #fff;
}
.button-primary:hover {
    background: #26476a;
}
.button-arrow {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 2px;
    background: var(--gold);
    color: var(--navy);
    font-size: 18px;
    font-weight: 400;
}
.text-link {
    font-size: 12px;
    font-weight: 800;
    display: inline-flex;
    gap: 14px;
    align-items: center;
    border-bottom: 1px solid var(--gold);
    padding-bottom: 6px;
}
.text-link span:last-child {
    font-size: 17px;
    color: #b58c50;
}
.hero-trust {
    display: flex;
    align-items: center;
    gap: 23px;
    margin-top: 63px;
}
.trust-item {
    display: flex;
    align-items: center;
    gap: 11px;
    color: #607080;
    font-size: 10px;
    line-height: 1.55;
    font-weight: 700;
}
.trust-item strong {
    font-size: 37px;
    line-height: 1;
    color: var(--navy);
    letter-spacing: -0.08em;
}
.trust-item strong span {
    font-size: 24px;
    color: var(--gold);
}
.trust-divider {
    width: 1px;
    height: 38px;
    background: #d8d1c7;
}
.seal-icon,
.heart-icon {
    width: 39px;
    height: 39px;
    display: flex;
    align-items: center;
    justify-content: center;
    place-items: center;
    color: var(--gold);
    border: 1px solid var(--gold-light);
    border-radius: 50%;
    font-size: 30px;
}
.heart-icon {
    font-size: 31px;
}
.hero-visual {
    position: relative;
    height: min(540px, 40vw);
    min-height: 460px;
    max-width: 680px;
    width: 100%;
    margin-left: auto;
}
.hero-picture {
    position: absolute;
    inset: 14px 12px 28px 18px;
    overflow: hidden;
    border-radius: 50% 50% 5px 5px / 42% 42% 5px 5px;
    background-image: url("assets/abakomola-reference-wide.jpg");
    background-size: cover;
    background-position: 68% center;
    background-repeat: no-repeat;
    box-shadow: 0 25px 70px rgba(42, 48, 41, 0.13);
}
.photo-light {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(12, 30, 50, 0.12), transparent 40%),
        linear-gradient(0deg, rgba(6, 25, 47, 0.23), transparent 30%);
}
.photo-frame {
    position: absolute;
    inset: 0 22px 50px 0;
    border: 2px solid var(--gold);
    border-radius: 50% 50% 0 0 / 42% 42% 0 0;
    pointer-events: none;
}
.corner-flower {
    position: absolute;
    right: -20px;
    top: 32px;
    color: var(--gold);
    font-size: 46px;
    animation: rotate 35s linear infinite;
}
.hero-floating-card {
    position: absolute;
    z-index: 3;
    bottom: 67px;
    left: -28px;
    display: flex;
    align-items: center;
    gap: 13px;
    background: var(--white);
    padding: 17px 22px 17px 17px;
    box-shadow: 0 15px 40px rgba(11, 28, 46, 0.15);
    border-left: 3px solid var(--gold);
}
.floating-symbol {
    color: var(--gold);
    font-size: 28px;
}
.hero-floating-card b {
    font-family: Georgia, serif;
    display: block;
    font-size: 19px;
    font-weight: 400;
    line-height: 1.3;
}
.hero-floating-card span {
    display: block;
    color: #7d858d;
    font-size: 10px;
    margin-top: 4px;
}
.image-bottom-tag {
    position: absolute;
    bottom: 31px;
    right: 29px;
    color: white;
    font-size: 10px;
    letter-spacing: 0.15em;
    font-weight: 800;
    display: flex;
    align-items: center;
    gap: 10px;
}
.image-bottom-tag > span:first-child {
    font-weight: 500;
}
.image-bottom-tag .tag-dot {
    font-size: 5px;
    color: var(--gold);
}
.hero-bottom-line {
    border-top: 1px solid rgba(80, 73, 64, 0.12);
}
.hero-bottom-line .container {
    display: flex;
    justify-content: space-between;
    padding-block: 19px;
    color: #9a927e;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.17em;
    text-transform: uppercase;
}
.hero-bottom-line span:last-child {
    color: #a58a5d;
}
.section-pad {
    padding: 120px 0;
}
.section-kicker {
    display: inline-block;
    color: #a37b45;
    font-size: 10px;
    letter-spacing: 0.19em;
    font-weight: 800;
    margin-bottom: 24px;
}
.section-kicker > span:first-child {
    color: var(--gold);
}
.grid-intro {
    display: grid;
    grid-template-columns: 1.25fr 0.75fr;
    gap: 120px;
    align-items: end;
    margin-bottom: 50px;
}
.section-intro h2,
.about-content h2,
.steps-heading h2,
.faq-heading h2,
.contact-content h2 {
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1.18;
    letter-spacing: -0.054em;
    font-weight: 700;
    margin-bottom: 0;
}
.intro-side {
    padding-bottom: 8px;
}
.belief-section {
    background: #fffdf9;
}
.service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 13px;
}
.service-card {
    position: relative;
    min-height: 294px;
    padding: 25px 26px 24px;
    background: #f8f4ed;
    border: 1px solid #f0e9dd;
    transition:
        background 0.25s,
        transform 0.25s,
        box-shadow 0.25s;
}
.service-card:hover {
    background: #f4eadb;
    transform: translateY(-6px);
    box-shadow: 0 16px 30px rgba(15, 38, 62, 0.07);
}
.service-index {
    font-size: 10px;
    font-weight: 800;
    color: #ba9357;
}
.service-symbol {
    color: var(--navy);
    height: 70px;
    width: 70px;
    margin-top: 17px;
    margin-bottom: 19px;
}
.service-symbol svg {
    width: 100%;
    height: 100%;
}
.service-card h3 {
    font-size: 18px;
    letter-spacing: -0.04em;
    margin-bottom: 12px;
}
.service-card p {
    color: #6f7880;
    font-size: 11.5px;
    line-height: 1.85;
    max-width: 230px;
}
.service-arrow {
    position: absolute;
    right: 22px;
    bottom: 19px;
    color: #b78b50;
    font-size: 17px;
}
.statement-section {
    background: var(--navy);
    color: #fff;
    padding: 85px 0;
    overflow: hidden;
}
.statement-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
}
.statement-star {
    font-size: 63px;
    color: var(--gold);
    flex-shrink: 0;
    margin-bottom: auto;
}
.statement-inner p {
    font-family: Georgia, serif;
    font-size: clamp(25px, 2.6vw, 39px);
    line-height: 1.5;
    font-weight: 400;
    max-width: 840px;
    margin: 0;
    letter-spacing: -0.02em;
}
.statement-inner p em {
    color: var(--gold-light);
    font-style: italic;
}
.statement-small {
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.95px;
    white-space: nowrap;
    display: flex;
    justify-content: end;
}
.about-section {
    background: var(--cream);
}
.about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
  align-items: center;
  gap: clamp(42px, 6vw, 90px);
}
.about-visual {
    position: relative;
    min-height: 550px;
    height: 100%;
}
.about-photo {
  position: absolute;
  inset: 14px 12px 28px 18px;
  overflow: hidden;
  border-radius: 50% 50% 5px 5px / 42% 42% 5px 5px;
  background-image: url("assets/abakomola-reference-square.jpg");
  background-size: cover;
  background-position: 65% center;
  background-repeat: no-repeat;
  box-shadow: 0 25px 70px rgba(42, 48, 41, 0.13);
}
.about-frame {
  position: absolute;
  inset: 0 22px 50px 0;
  border-radius: 50% 50% 0 0 / 42% 42% 0 0;
  border: 2px solid var(--gold);
}
.experience-badge {
    position: absolute;
    bottom: 12px;
    right: -20px;
    width: 160px;
    height: 160px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: white;
    border: 10px solid var(--cream);
    box-shadow: 0 3px 0 var(--gold);
}
.experience-badge strong {
    font-size: 47px;
    letter-spacing: -0.08em;
    font-weight: 700;
    line-height: 1;
}
.experience-badge span {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin-top: 11px;
}
.about-annotation {
    position: absolute;
    top: 50%;
    left: -58px;
    color: #a17e50;
    letter-spacing: 0.2em;
    font-weight: 800;
    font-size: 9px;
    transform: rotate(-90deg);
}
.about-content h2 {
    margin-bottom: 30px;
}
.about-main {
    font-size: 14px;
    line-height: 2.1;
    color: #65737f;
    margin-bottom: 35px;
}
.about-highlights {
    display: flex;
    flex-direction: column;
    gap: 22px;
    margin-bottom: 34px;
}
.about-highlights > div {
    display: flex;
    gap: 18px;
    align-items: flex-start;
}
.highlight-icon {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 35px;
    height: 35px;
    border: 1px solid var(--gold-light);
    border-radius: 50%;
    color: #b78a4b;
    font-size: 17px;
}
.about-highlights b {
    display: block;
    font-size: 13px;
    letter-spacing: -0.02em;
    margin-bottom: 5px;
}
.about-highlights p {
    font-size: 11px;
    color: #7b858c;
    line-height: 1.8;
    margin: 0;
}
.button-outline {
    background: transparent;
    border-color: #d4ad6e;
    color: var(--navy);
}
.button-outline:hover {
    background: #f3e8d7;
}
.steps-section {
    background: #efe6d8;
}
.steps-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 90px;
    margin-bottom: 65px;
}
.steps-heading h2 {
    max-width: 710px;
}
.steps-heading > p {
    font-size: 13px;
    line-height: 2;
    color: #6a7380;
    max-width: 320px;
    margin: 0 0 6px;
}
.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
}
.step-card {
    padding: 4px 0 15px;
    position: relative;
}
.step-number {
    font-family: Georgia, serif;
    font-size: 57px;
    color: #bf9356;
    line-height: 1;
}
.step-line {
    height: 1px;
    background: #cebda7;
    position: relative;
    margin: 20px 0 29px;
}
.step-line:after {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--navy);
    position: absolute;
    right: 0;
    top: -3.5px;
}
.step-card h3 {
    font-size: 20px;
    letter-spacing: -0.04em;
    margin-bottom: 15px;
}
.step-card p {
    font-size: 12px;
    line-height: 2;
    max-width: 310px;
    color: #67717c;
}
.faq-section {
    background: var(--white);
}
.faq-grid {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(50px, 9vw, 140px);
}
.faq-heading {
    position: relative;
}
.faq-heading h2 {
    margin-bottom: 24px;
}
.faq-heading p {
    font-size: 13px;
    line-height: 2;
    color: #69747f;
    max-width: 330px;
}
.faq-decor {
    font-family: Georgia, serif;
    font-size: 280px;
    line-height: 1;
    color: #f4ecdf;
    position: absolute;
    left: 115px;
    top: 185px;
    z-index: -1;
    pointer-events: none;
}
.faq-items {
    position: relative;
    z-index: 1;
}
.faq-items details {
    border-bottom: 1px solid #e6ded2;
}
.faq-items details:first-child {
    border-top: 1px solid #e6ded2;
}
.faq-items summary {
    list-style: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 26px 0;
}
.faq-items summary::-webkit-details-marker {
    display: none;
}
.faq-items p {
    font-size: 12px;
    line-height: 2.1;
    color: #6c7985;
    max-width: 540px;
    padding: 0 42px 24px 0;
    margin: 0;
}
.faq-plus {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 1px solid #c6a06d;
    flex-shrink: 0;
    position: relative;
}
.faq-plus:before,
.faq-plus:after {
    content: "";
    position: absolute;
    background: #b48b50;
    left: 7px;
    right: 7px;
    top: 12px;
    height: 1px;
}
.faq-plus:after {
    transform: rotate(90deg);
}
details[open] .faq-plus {
    background: #f1e6d3;
}
details[open] .faq-plus:after {
    transform: rotate(0);
}
.contact-section {
    background: var(--navy);
    color: #fff;
    padding: 112px 0;
    position: relative;
    overflow: hidden;
}
.contact-section:before {
    content: "";
    width: 800px;
    height: 800px;
    border: 1px solid rgba(220, 174, 105, 0.12);
    border-radius: 50%;
    position: absolute;
    left: -490px;
    bottom: -550px;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(60px, 10vw, 160px);
    align-items: center;
    position: relative;
    z-index: 1;
}
.kicker-light {
    color: #e9c58f;
}
.contact-content h2 {
    font-size: clamp(39px, 4.3vw, 61px);
    line-height: 1.18;
    margin-bottom: 27px;
}
.contact-content h2 em {
    color: #f0c987;
}
.contact-content > p {
    font-size: 14px;
    line-height: 2;
    color: #b7c2ce;
    max-width: 530px;
}
.contact-form-shell {
    background: #fffdf9;
    color: var(--navy);
    padding: 35px 39px 30px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.11);
}
.form-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 27px;
}
.form-icon {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    background: #f5e8d3;
    color: #bd8f4e;
    font-size: 22px;
}
.form-head > span {
    font-size: 10px;
    letter-spacing: 0.16em;
    font-weight: 800;
    color: #a57e4e;
}
#contact-form {
    display: flex;
    flex-direction: column;
}
#contact-form label {
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 9px;
}
#contact-form input,
#contact-form textarea {
    border: 1px solid #e4dcd0;
    border-radius: 2px;
    background: #fcf9f4;
    color: var(--navy);
    outline: 0;
    padding: 12px 14px;
    margin-bottom: 18px;
    width: 100%;
    font-size: 12px;
    resize: vertical;
    transition: border-color 0.2s;
}
#contact-form input:focus,
#contact-form textarea:focus {
    border-color: var(--gold);
}
#contact-form input::placeholder,
#contact-form textarea::placeholder {
    color: #a0a0a0;
}
.form-button {
    width: 100%;
    margin-top: 4px;
}
#contact-form .form-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.65;
    color: #65717b;
    cursor: pointer;
    margin: 0 0 12px;
}
#contact-form .form-consent input {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin: 3px 0 0;
    padding: 0;
    accent-color: var(--navy);
}
.form-button:disabled,
.booking-submit:disabled {
    opacity: 0.65;
    cursor: wait;
}
.form-help {
    font-size: 10px;
    color: #90979b;
    margin: 13px 0 0;
    line-height: 1.7;
}
.form-result {
    font-size: 11px;
    color: #30725a;
    min-height: 0;
    margin: 7px 0 0;
    font-weight: 700;
}
.form-result.is-error {
    color: #a34733;
}
.site-footer {
    background: var(--navy-deep);
    color: white;
    padding-top: 43px;
}
.footer-main {
    display: flex;
    align-items: center;
    gap: 24px;
    padding-bottom: 40px;
}
.brand-footer .brand-letter {
    color: white;
}
.brand-footer .brand-sub {
    color: #9caec1;
}
.footer-main > p {
    margin: 0 auto 0 0;
    font-family: Georgia, serif;
    font-style: italic;
    color: #b0becb;
    font-size: 17px;
}
.back-top {
    width: 44px;
    height: 44px;
    border: 1px solid #52687e;
    display: grid;
    place-items: center;
    font-size: 22px;
}
.back-top:hover {
    background: #2d4863;
}
.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #91a5b8;
    font-size: 10px;
    letter-spacing: 0.03em;
}
.reveal {
    animation: rise 0.75s both;
}
.service-card:nth-child(2),
.step-card:nth-child(2) {
    animation-delay: 0.08s;
}
.service-card:nth-child(3),
.step-card:nth-child(3) {
    animation-delay: 0.16s;
}
.service-card:nth-child(4) {
    animation-delay: 0.24s;
}
@keyframes rise {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes rotate {
    to {
        transform: rotate(360deg);
    }
}
@media (max-width: 1150px) {
    .container {
        width: min(100% - 64px, 1100px);
    }
    .desktop-nav {
        gap: 18px;
    }
    .desktop-nav a {
        font-size: 11px;
    }
    .header-actions {
        gap: 11px;
    }
    .header-cta {
        padding: 11px 13px;
    }
    .hero-grid {
        gap: 28px;
    }
    .hero h1 {
        font-size: clamp(44px, 5.2vw, 64px);
    }
    .hero-trust {
        gap: 12px;
    }
    .trust-item {
        gap: 7px;
    }
    .trust-item strong {
        font-size: 30px;
    }
    .grid-intro {
        gap: 55px;
    }
    .service-card {
        padding: 22px 18px;
    }
    .about-grid {
        gap: 65px;
    }
    .contact-grid {
        gap: 55px;
    }
}
@media (max-width: 1100px) {
    .desktop-nav,
    .header-cta {
        display: none;
    }
    .menu-toggle {
        display: flex;
    }
    .header-inner {
        height: 77px;
    }
    .mobile-nav {
        display: flex;
        flex-direction: column;
        gap: 0;
        background: #fffdf9;
        padding: 12px 22px 18px;
        border-top: 1px solid var(--line);
        box-shadow: 0 15px 18px #102a4810;
    }
    .mobile-nav[hidden] {
        display: none;
    }
    .mobile-nav a {
        padding: 12px 0;
        font-size: 13px;
        font-weight: 800;
        border-bottom: 1px solid #f0e8df;
    }
}
/* Keep the hero eyebrow readable in the narrow two-column tablet layout. */
@media (min-width: 901px) and (max-width: 1100px) {
    .eyebrow {
        font-size: 9px;
        letter-spacing: 0.08em;
        gap: 8px;
    }
    .eyebrow-line {
        flex: 0 0 22px;
    }
    .eyebrow span:last-child {
        white-space: nowrap;
    }
}
@media (max-width: 900px) {
    .container {
        width: min(100% - 44px, 760px);
    }
    .hero-grid {
        grid-template-columns: 1fr;
        gap: 55px;
        padding-top: 70px;
        padding-bottom: 80px;
    }
    .hero-content {
        max-width: 690px;
        padding-top: 50px;
    }
    .eyebrow {
        margin-bottom: 8px;
    }
    .hero h1 {
        font-size: clamp(48px, 8vw, 75px);
    }
    .hero-description {
        max-width: 560px;
    }
    .hero-trust {
        margin-top: 42px;
    }
    .hero-visual {
        height: 530px;
        min-height: 0;
        max-width: 680px;
        margin: 0 auto;
    }
    .hero-picture {
        background-size: cover;
        background-position: 68% center;
    }
    .hero-floating-card {
        left: -4px;
    }
    .grid-intro,
    .about-grid,
    .faq-grid,
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 52px;
    }
    .section-pad {
        padding: 86px 0;
    }
    .grid-intro {
        margin-bottom: 35px;
    }
    .intro-side {
        max-width: 580px;
    }
    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .statement-inner {
        gap: 22px;
    }
    .statement-star {
        font-size: 44px;
    }
    .statement-small {
        display: none;
    }
    .about-visual {
        max-width: 550px;
        min-height: 570px;
        width: 100%;
        margin-inline: auto;
    }
    .about-content {
        max-width: 650px;
    }
    .steps-heading {
        display: block;
    }
    .steps-heading > p {
        max-width: 600px;
        margin-top: 20px;
    }
    .contact-section {
        padding: 87px 0;
    }
    .contact-note {
        margin-top: 35px;
    }
    .contact-form-shell {
        max-width: 650px;
        width: 100%;
    }
    .faq-decor {
        display: none;
    }
}
@media (max-width: 580px) {
    .logo {
      width: 211px;
      height: 28px;
    }
    .container {
        width: calc(100% - 36px);
    }
    .preview-ribbon {
        font-size: 8px;
        letter-spacing: 0.06em;
        gap: 7px;
    }
    .header-inner {
        height: 70px;
    }
    .brand-mark {
        width: 38px;
        height: 43px;
    }
    .brand-letter {
        font-size: 48px;
    }
    .brand-arc {
        left: 8px;
        top: 21px;
        width: 33px;
        border-top-width: 6px;
    }
    .brand-name {
        font-size: 18px;
    }
    .brand-sub {
        font-size: 7px;
    }
    .header-actions {
        gap: 7px;
    }
    .lang {
        padding: 7px 8px;
    }
    .hero-grid {
        padding-top: 52px;
        gap: 44px;
        padding-bottom: 58px;
    }
    .eyebrow {
        font-size: 8px;
        margin-bottom: 0px;
        letter-spacing: 0.12em;
    }
    .eyebrow-line {
        width: 23px;
    }
    .hero h1 {
        font-size: clamp(41px, 11vw, 57px);
        line-height: 1.14;
        margin-bottom: 23px;
    }
    .hero-description {
        font-size: 13px;
        line-height: 1.85;
        margin-bottom: 27px;
    }
    .hero-buttons {
        gap: 18px;
    }
    .button {
        min-height: 51px;
        font-size: 11px;
        padding-left: 17px;
        gap: 17px;
    }
    .button-arrow {
        width: 34px;
        height: 34px;
    }
    .text-link {
        font-size: 11px;
    }
    .hero-trust {
        gap: 10px;
        margin-top: 43px;
        flex-wrap: wrap;
    }
    .trust-item {
        font-size: 9px;
        gap: 7px;
    }
    .trust-item strong {
        font-size: 27px;
    }
    .trust-item strong span {
        font-size: 18px;
    }
    .trust-divider {
        height: 30px;
    }
    .seal-icon,
    .heart-icon {
        width: 29px;
        height: 29px;
        font-size: 22px;
    }
    .hero-visual {
        height: min(390px, 99vw);
        width: calc(100% - 4px);
    }
    .hero-picture {
        inset: 12px 9px 28px 14px;
        background-size: cover;
        background-position: 68% center;
    }
    .photo-frame {
        inset: 0 17px 46px 0;
    }
    .corner-flower {
        right: -9px;
        font-size: 27px;
    }
    .hero-floating-card {
        left: -5px;
        bottom: 57px;
        padding: 10px 12px;
    }
    .hero-floating-card b {
        font-size: 14px;
    }
    .hero-floating-card span {
        font-size: 8px;
    }
    .floating-symbol {
        font-size: 20px;
    }
    .image-bottom-tag {
        font-size: 7px;
        right: 10px;
        bottom: 31px;
        gap: 6px;
    }
    .hero-bottom-line .container {
        font-size: 8px;
    }
    .section-pad {
        padding: 72px 0;
    }
    .section-kicker {
        font-size: 9px;
        margin-bottom: 20px;
    }
    .section-intro h2,
    .about-content h2,
    .steps-heading h2,
    .faq-heading h2 {
        font-size: clamp(34px, 9vw, 46px);
    }
    .grid-intro {
        gap: 20px;
    }
    .intro-side p {
        font-size: 12px;
    }
    .service-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }
    .service-card {
        min-height: 200px;
        padding: 20px 23px;
    }
    .service-symbol {
        position: absolute;
        top: 0;
        right: 18px;
        width: 50px;
        height: 50px;
    }
    .service-card h3 {
        font-size: 18px;
        margin-top: 20px;
    }
    .service-card p {
        font-size: 11px;
        max-width: 80%;
    }
    .statement-section {
        padding: 51px 0;
    }
    .statement-inner {
        gap: 10px;
        align-items: flex-start;
    }
    .statement-star {
        font-size: 27px;
    }
    .statement-inner p {
        font-size: 24px;
    }
    .about-grid {
        gap: 45px;
    }
    .about-visual {
        min-height: 415px;
        max-width: 400px;
    }
    .about-photo {
        inset: 12px 25px 16px 12px;
        background-size: auto 160%;
    }
    .about-frame {
        inset: 0 15px 33px 0;
    }
    .experience-badge {
        width: 112px;
        height: 112px;
        right: -7px;
        bottom: 6px;
        border-width: 6px;
    }
    .experience-badge strong {
        font-size: 33px;
    }
    .experience-badge span {
        font-size: 8px;
        margin-top: 4px;
    }
    .about-annotation {
        display: none;
    }
    .about-content h2 {
        margin-bottom: 21px;
    }
    .about-main {
        font-size: 12px;
    }
    .about-highlights {
        gap: 18px;
    }
    .about-highlights b {
        font-size: 12px;
    }
    .about-highlights p {
        font-size: 10px;
    }
    .steps-heading {
        margin-bottom: 40px;
    }
    .steps-grid {
        grid-template-columns: 1fr;
        gap: 19px;
    }
    .step-card {
        padding: 0 0 5px;
    }
    .step-number {
        font-size: 43px;
    }
    .step-line {
        margin: 13px 0 19px;
    }
    .step-card h3 {
        font-size: 19px;
    }
    .step-card p {
        font-size: 12px;
        max-width: 100%;
    }
    .faq-grid {
        gap: 18px;
    }
    .faq-items summary {
        font-size: 12px;
        padding: 21px 0;
    }
    .faq-items p {
        font-size: 11px;
        padding: 0 18px 20px 0;
    }
    .contact-section {
        padding: 71px 0;
    }
    .contact-grid {
        gap: 32px;
    }
    .contact-content h2 {
        font-size: clamp(37px, 10vw, 52px);
    }
    .contact-content > p {
        font-size: 12px;
    }
    .contact-note {
        margin-top: 25px;
    }
    .contact-form-shell {
        padding: 27px 22px 22px;
    }
    .footer-main {
        gap: 15px;
        flex-wrap: wrap;
    }
    .footer-main > p {
        order: 3;
        width: 100%;
        font-size: 14px;
    }
    .back-top {
        margin-left: auto;
    }
    .footer-bottom {
        gap: 14px;
        flex-direction: column;
        align-items: flex-start;
        font-size: 9px;
    }
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
    .reveal {
        animation: none;
    }
    .corner-flower {
        animation: none;
    }
    .button,
    .service-card {
        transition: none;
    }
}

/* Session request experience */
.booking-section {
    position: relative;
    background: linear-gradient(130deg, #fcf8f1 0%, #f7f0e5 64%, #efe1cd 100%);
    overflow: hidden;
}
.booking-section:before {
    content: "";
    position: absolute;
    width: 690px;
    height: 690px;
    border: 1px solid rgba(188, 145, 83, 0.17);
    border-radius: 50%;
    left: -490px;
    bottom: -450px;
}
.booking-grid {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: clamp(50px, 8vw, 120px);
    align-items: start;
    position: relative;
    z-index: 1;
}
.booking-copy {
    padding-top: 76px;
}
.booking-copy h2 {
    font-size: clamp(39px, 4.1vw, 58px);
    line-height: 1.17;
    letter-spacing: -0.055em;
    margin-bottom: 27px;
}
.booking-copy h2 em {
    color: #bd9255;
    font-family: Georgia, serif;
    font-weight: 400;
    letter-spacing: -0.05em;
}
.booking-copy > p {
    color: #65727f;
    font-size: 14px;
    line-height: 2;
    max-width: 500px;
}
.booking-points {
    margin: 47px 0 44px;
    display: grid;
    gap: 20px;
}
.booking-points > div {
    display: flex;
    align-items: center;
    gap: 20px;
}
.booking-points span {
    width: 38px;
    height: 38px;
    border: 1px solid #d8b77f;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #a97d45;
    font-size: 11px;
    font-weight: 800;
    flex-shrink: 0;
}
.booking-points p {
    font-weight: 800;
    font-size: 13px;
    margin: 0;
    letter-spacing: -0.02em;
}
.booking-disclaimer {
    max-width: 460px;
    display: flex;
    gap: 14px;
    border-top: 1px solid #ddd0bd;
    padding-top: 25px;
    color: #87909b;
}
.booking-disclaimer > span {
    font-size: 21px;
    color: #b88e53;
}
.booking-disclaimer p {
    font-size: 11px;
    line-height: 1.9;
    margin: 0;
}
.booking-panel {
    background: #fffdfa;
    padding: 35px 38px 35px;
    box-shadow: 0 23px 80px rgba(27, 46, 56, 0.09);
    border: 1px solid #eadfcd;
}
.booking-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    border-bottom: 1px solid #ece3d6;
    padding-bottom: 24px;
    margin-bottom: 28px;
}
.booking-panel-label {
    font-size: 9px;
    color: #b88f57;
    letter-spacing: 0.19em;
    font-weight: 800;
}
.booking-panel-header h3 {
    font-size: 25px;
    letter-spacing: -0.045em;
    margin: 9px 0 0;
}
.booking-panel-icon {
    font-size: 37px;
    color: #d1a667;
}
.session-choice {
    padding: 0;
    border: 0;
    margin: 0 0 23px;
}
.session-choice legend,
.booking-fields label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: -0.01em;
    margin-bottom: 11px;
}
.session-choice legend {
    margin-bottom: 15px;
}
.session-option {
    display: block;
    position: relative;
    margin-bottom: 8px;
    cursor: pointer;
}
.session-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.option-content {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 13px 43px 13px 14px;
    min-height: 65px;
    background: #fcf9f4;
    border: 1px solid #e9e1d6;
    transition:
        background 0.2s,
        border-color 0.2s;
}
.option-content b {
    display: block;
    font-size: 12px;
    line-height: 1.5;
}
.option-content small {
    display: block;
    color: #8f989e;
    font-size: 10px;
    margin-top: 3px;
}
.option-icon {
    width: 37px;
    height: 37px;
    display: grid;
    place-items: center;
    background: #f2e7d8;
    color: #b7894b;
    border-radius: 50%;
    font-size: 19px;
    flex-shrink: 0;
}
.option-check {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 17px;
    height: 17px;
    border: 1px solid #c7c5c0;
    border-radius: 50%;
}
.session-option input:checked ~ .option-content {
    border-color: #c39a5c;
    background: #f8f0e3;
}
.session-option input:checked ~ .option-check {
    border-color: var(--navy);
    background: var(--navy);
    box-shadow: inset 0 0 0 4px #fff;
}
.session-option input:focus-visible ~ .option-content {
    outline: 2px solid var(--navy);
    outline-offset: 2px;
}
.booking-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    margin-bottom: 18px;
}
.booking-fields.two-cols {
    grid-template-columns: 1fr 1fr;
}
.booking-fields input,
.booking-fields select,
.booking-fields textarea {
    display: block;
    width: 100%;
    border: 1px solid #e1d9cd;
    background: #fcf9f4;
    color: var(--navy);
    border-radius: 2px;
    outline: 0;
    min-height: 46px;
    padding: 12px 11px;
    font-size: 12px;
    resize: vertical;
}
.booking-fields input:focus,
.booking-fields select:focus,
.booking-fields textarea:focus {
    border-color: var(--gold);
}
.booking-fields input::placeholder,
.booking-fields textarea::placeholder {
    color: #a2a2a2;
}
.booking-submit {
    width: 100%;
    margin-top: 10px;
}
.booking-consent {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.65;
    color: #65717b;
    cursor: pointer;
    margin: 10px 0 12px;
}
.booking-consent input {
    flex: 0 0 auto;
    margin-top: 3px;
    accent-color: var(--navy);
}
.booking-result {
    background: #f4eadc;
    border: 1px solid #d6ba8e;
    padding: 18px 20px;
    margin-top: 19px;
}
.booking-result b {
    font-size: 12px;
}
.booking-result p {
    font-size: 10px;
    line-height: 1.7;
    color: #62717a;
    margin: 8px 0 12px;
}
.booking-result.is-error {
    background: #fff1ed;
    border-color: #d99982;
}
.booking-result textarea {
    display: block;
    width: 100%;
    background: #fffdfa;
    border: 1px solid #d9ccbb;
    border-radius: 2px;
    color: var(--navy);
    font-size: 11px;
    line-height: 1.6;
    padding: 11px;
    resize: vertical;
}
.copy-booking {
    margin-top: 10px;
    padding: 10px 16px;
    background: var(--gold);
    border: 0;
    color: var(--navy);
    font-size: 11px;
    font-weight: 800;
}
.booking-copy-status {
    font-size: 10px;
    color: #316b58;
    margin-left: 10px;
    font-weight: 700;
}
@media (max-width: 900px) {
    .booking-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }
    .booking-copy {
        padding-top: 0;
    }
    .booking-copy h2 {
        max-width: 680px;
    }
    .booking-points {
        margin: 26px 0;
    }
    .booking-panel {
        max-width: 680px;
        width: 100%;
    }
}
@media (max-width: 580px) {
    .booking-copy h2 {
        font-size: clamp(35px, 9.4vw, 48px);
    }
    .booking-copy > p {
        font-size: 12px;
    }
    .booking-points {
        gap: 13px;
    }
    .booking-points p {
        font-size: 11px;
    }
    .booking-panel {
        padding: 26px 19px;
    }
    .booking-panel-header h3 {
        font-size: 22px;
    }
    .booking-fields.two-cols {
        grid-template-columns: 1fr;
        gap: 13px;
    }
    .option-content {
        padding: 12px 37px 12px 12px;
    }
    .option-content b {
        font-size: 11px;
    }
    .option-content small {
        font-size: 9px;
    }
}


.section-left p {
    margin-bottom: 14px;
}
.logo{
    width: 210px;
    height: 36px;
}
.footer-logo{
    width: 50px;
    height: 40px;
}
.email-send, .question-mark {
    width: 20px;
    height: auto;
}
.send-mark {
    width: 14px;
}
.spam-trap {
    position: absolute !important;
    left: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

@media (max-width: 580px) {
    .hero-content {
        padding-top: 60px;
    }

    .logo {
        width: 210px;
        height: 29px;
    }
}
