:root{
    --primary:#B97C84;
    --primary-dark:#8F5A61;
    --secondary:#E6C8B8;
    --accent:#D8A15D;
    --background:#FCFAF8;
    --surface:#FFFFFF;
    --text:#2C2C2C;
    --text-light:#6D6D6D;
    --border:rgba(185,124,132,.15);
    --shadow:0 20px 50px rgba(0,0,0,.08);
    --shadow-hover:0 30px 60px rgba(0,0,0,.12);
    --glass:rgba(255,255,255,.75);
    --radius:28px;
}

body{
    background: linear-gradient(
        180deg,
        #ffffff 0%,
        #fcfaf8 45%,
        #f8f4f1 100%
    );
}
.header{
    background: rgba(255,255,255,.75);
    backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(255,255,255,.4);
    box-shadow: 0 10px 30px rgba(0,0,0,.04);
}
.hero{
    min-height:100vh;

    background:
      radial-gradient(circle at top right,
      rgba(230,200,184,.35),
      transparent 35%),

      radial-gradient(circle at left center,
      rgba(185,124,132,.15),
      transparent 30%),

      #fff;
}
.hero h1,
.section-heading h2,
.booking h2{
    font-family:'Playfair Display',serif;
    font-weight:600;
    letter-spacing:-3px;

    color:var(--text);
}
.hero h1 em{
    color:var(--primary);

    background: linear-gradient(
       135deg,
       var(--primary),
       var(--accent)
    );

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
}
.button-primary{
    background: linear-gradient(
        135deg,
        var(--primary),
        var(--primary-dark)
    );

    border:none;
    color:white;

    box-shadow:
      0 10px 25px rgba(185,124,132,.35);
}
.button-primary:hover{
    transform:translateY(-4px);

    box-shadow:
      0 20px 40px rgba(185,124,132,.40);
}
.button-secondary{
    background:white;

    border:1px solid rgba(185,124,132,.25);

    color:var(--primary);
}
.portrait-placeholder{

    border:none;

    overflow:hidden;

    background:white;

    box-shadow:
      0 35px 80px rgba(72,40,40,.14);

    border-radius:
      300px
      300px
      40px
      40px;
}
.service-card{

    background:
      rgba(255,255,255,.85);

    backdrop-filter: blur(12px);

    border:
      1px solid rgba(255,255,255,.7);

    box-shadow:
      var(--shadow);
}
.service-card:hover{

    transform:
      translateY(-12px);

    box-shadow:
      var(--shadow-hover);
}
.service-card.featured{

    background:
      linear-gradient(
         135deg,
         var(--primary),
         var(--primary-dark)
      );

    color:white;
}
.service-icon{

    width:70px;
    height:70px;

    border-radius:50%;

    background:
      linear-gradient(
         135deg,
         rgba(185,124,132,.15),
         rgba(216,161,93,.15)
      );

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:28px;
}
.services{

    background:
      linear-gradient(
         180deg,
         #fff,
         #fcfaf8
      );
}
.coverage-list span{

    background:white;

    border:none;

    box-shadow:
      0 5px 20px rgba(0,0,0,.05);

    transition:.3s;
}
.coverage-list span:hover{

    transform:
      translateY(-4px);

    color:
      var(--primary);
}
.gallery-item{

    overflow:hidden;

    transition:
       transform .4s ease,
       box-shadow .4s ease;

    cursor:pointer;
}
.gallery-item:hover{

    transform:
      scale(1.03);

    box-shadow:
      0 25px 50px rgba(0,0,0,.15);
}
.booking{

    background:
      linear-gradient(
         135deg,
         #b97c84,
         #a16870,
         #8f5a61
      );
}
.booking-form{

    box-shadow:
      0 25px 60px rgba(0,0,0,.12);

    background:
      rgba(255,255,255,.95);

    backdrop-filter: blur(10px);
}
.reveal{

    opacity:0;

    transform:
      translateY(40px);

    transition:
      opacity .8s ease,
      transform .8s ease;
}
html{
    scroll-behavior:smooth;
}

section{
    position:relative;
}

section::before{

    content:"";

    position:absolute;

    top:0;
    left:50%;

    width:120px;
    height:2px;

    background:
      linear-gradient(
         90deg,
         transparent,
         rgba(185,124,132,.4),
         transparent
      );

    transform:
      translateX(-50%);
}