 :root{
    --sand:#F6F0E4;
    --sand-deep:#EFE6D2;
    --ink:#1B1812;
    --palm:#4B6355;
    --palm-dark:#31402F;
    --coral:#E2735A;
    --blush:#F4DCCB;
    --gold:#B8892B;
  }
  *{box-sizing:border-box;}
  body{font-family:'Work Sans', sans-serif;background:#fff;color:var(--ink);}
  h1,h2,h3,.display-serif{font-family:'Italiana', serif;font-weight:400;letter-spacing:.01em;}
  .container-narrow{max-width:1220px;}
  a{text-decoration:none;}

  /* NAV */
  .navbar-coco{padding:20px 0;border-bottom:1px solid var(--sand-deep);position:relative;z-index:50;background:#fff;}
  .nav-top-row{display:flex;align-items:center;justify-content:space-between;}
  .nav-links a{
    color:var(--ink);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
    margin-right:30px;position:relative;
  }
  .logo-center img {
    width: 57px;
}
 
  .nav-links a:last-child{margin-right:0;}
  .nav-links .dropdown-toggle::after{margin-left:6px;font-size:.65rem;vertical-align:middle;}
  .navbar-coco .logo-center{text-align:center;}
  .navbar-coco .logo-center .display-serif{font-size:1.5rem;letter-spacing:.08em;margin:0;}
  .navbar-coco .logo-center .tagline{font-size:.6rem;letter-spacing:.28em;color:var(--palm);text-transform:uppercase;}
  .btn-contact{
    background:var(--coral);color:#fff;border-radius:2px;
    padding:11px 26px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;
    display:inline-block;
  }
  .btn-contact:hover{background:#c95d45;color:#fff;}
  .dropdown-menu{border-radius:4px;border:1px solid var(--sand-deep);font-size:.85rem;}

  .nav-toggler{
    display:none;
    width:32px;height:24px;
    border:none;background:none;padding:0;
    flex-direction:column;justify-content:space-between;
    cursor:pointer;
  }
  .nav-toggler span{display:block;height:2px;width:100%;background:var(--ink);transition:transform .25s ease, opacity .25s ease;}
  .nav-toggler[aria-expanded="true"] span:nth-child(1){transform:translateY(11px) rotate(45deg);}
  .nav-toggler[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggler[aria-expanded="true"] span:nth-child(3){transform:translateY(-11px) rotate(-45deg);}

  @media(max-width:991.98px){
    .nav-toggler{display:flex;}
    .navbar-coco .nav-links-wrap{
      display:none;
      flex-direction:column;
      align-items:flex-start;
      gap:16px;
      padding-top:22px;
      margin-top:18px;
      border-top:1px solid var(--sand-deep);
    }
    .navbar-coco .nav-links-wrap.show{display:flex;}
    .navbar-coco .nav-links{flex-direction:column;align-items:flex-start;gap:14px;width:100%;}
    .nav-links a{margin-right:0;}
    .navbar-coco .nav-links .dropdown{width:100%;}
    .navbar-coco .nav-links .dropdown-menu{position:static;border:none;box-shadow:none;padding-left:14px;}
    .navbar-coco .right-links{flex-direction:column;align-items:flex-start;gap:14px;}
    .navbar-coco .btn-contact{align-self:flex-start;}
  }


  section.about {
    padding: 100px 0 0;
}section.about p {
    color: #666666;
    font-size: 16px;
    padding: 16px 0 0;
    font-weight: 400;
}
.hero-slide img {
    width: 100%;
}
  section.about img{width: 100%; border-radius: 10px;}
  /* HERO */
  .hero-slide{
    display:flex;
    align-items:center;
    position:relative;
    overflow:hidden;
  }
  .hero-slide::before{
    content:"";
    position:absolute; inset:0;
    opacity:.14;
    background-image:radial-gradient(circle, #fff 1.5px, transparent 1.5px);
    background-size:26px 26px;
  }
  .slide-1{background:linear-gradient(135deg,var(--palm) 0%,var(--palm-dark) 70%);}
  .slide-2{background:linear-gradient(135deg,var(--coral) 0%,#b8492f 75%);}
  .slide-3{background:linear-gradient(135deg,var(--ink) 0%,#3a352b 80%);}
  .hero-copy{position:relative;z-index:2;color:var(--sand);padding-top:90px;}
  .hero-copy .eyebrow{
    font-size:.85rem;letter-spacing:.08em;color:var(--blush);opacity:.85;
  }
   .btn-book{
    background:var(--coral);
    color:#fff;
    border-radius:999px;
    padding:14px 32px;
    font-size:.88rem;
    text-decoration:none;
    white-space:nowrap;
  }
  .btn-book:hover{background:#c95d45;color:#fff;}
  .hero-copy h1{
    font-size:clamp(3rem,7vw,5.4rem);
    line-height:.98;
    margin:14px 0 22px;
  }
  .hero-copy p{max-width:430px;font-size:1.02rem;opacity:.9;}
  .arch-frame{
    position:relative;z-index:2;
    width:100%; max-width:340px; margin-left:auto;
    aspect-ratio:3/4;
    border-radius:170px 170px 0 0;
    border:2px solid rgba(246,240,228,.55);
    display:flex; align-items:flex-end; justify-content:center;
    padding-bottom:0px;
    background:rgba(246,240,228,.07);
  }
  .arch-frame svg{width:62%;height:auto;}
  .carousel-indicators [data-bs-target]{
    background-color:var(--sand); width:8px;height:8px;border-radius:50%;
    opacity:.5;
  }
  .carousel-indicators .active{opacity:1;}
  .carousel-control-prev,.carousel-control-next{width:6%;}
  .hero{background:var(--blush);padding:70px 0;overflow:hidden;}
  .hero .eyebrow-sm{font-size:.78rem;letter-spacing:.14em;color:var(--palm-dark);text-transform:uppercase;}
  .hero h1{font-size:clamp(2.7rem,5.2vw,4.3rem);line-height:1.02;margin:16px 0 20px;color:var(--ink);}
  .hero p.lead-text{max-width:420px;color:#4a4438;font-size:1rem;margin-bottom:30px;}
  .btn-hero{
    background:var(--coral);color:#fff;border-radius:2px;
    padding:15px 34px;font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;
    display:inline-block;
  }
  .btn-hero:hover{background:#c95d45;color:#fff;}
  .hero-art-wrap{position:relative;display:flex;justify-content:center;align-items:center;height:100%;min-height:420px;}
  .hero-art-wrap svg{width:100%;max-width:420px;height:auto;}
  .hero-dots{display:flex;gap:8px;margin-top:34px;}
  .hero-dots span{width:7px;height:7px;border-radius:50%;background:var(--ink);opacity:.25;}
  .hero-dots span.active{opacity:.9;}


   .services-section{padding:100px 0 100px; background: #F6F0E4;}
  .arch-card{
    background:#fff;
    border-radius:150px 150px 14px 14px;
    padding:56px 30px 34px;
    height:100%;
    border:1px solid var(--sand-deep);
    position:relative;
  }
  .arch-icon{
    width:70px;height:70px;border-radius:50%;
    background:var(--sand);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 20px;
  }
  .arch-icon svg{width:32px;height:32px;stroke:var(--palm-dark);}
  .arch-card h3{font-size:1.35rem;text-align:center;margin-bottom:22px;}
.price-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .92rem;
    padding: 9px 0;
    border-bottom: 1px dashed #e4ddcc;
    gap: 10px;
    justify-content: center;
}
  .price-row:last-child{border-bottom:none;}
  .price-row .item-name{color:#3c3730;}
  .price-row .item-price{color:var(--coral);font-weight:600;white-space:nowrap; display:none}

  /* INTRO + ICON ROW */
  .intro-section{padding:90px 0 50px;text-align:center;}
  .intro-section .eyebrow-sm{font-size:.78rem;letter-spacing:.18em;color:var(--gold);text-transform:uppercase;}
  .intro-section h2{font-size:clamp(1.8rem,3.6vw,2.5rem);max-width:640px;margin:16px auto 0;line-height:1.25;color:var(--ink);}

  .icon-row{padding:50px 0 100px;}
  .icon-col{text-align:center;padding:0 18px;}
  .icon-circle {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2735a;
    border-radius: 50%;
}
  .icon-circle svg{width:36px;height:36px;stroke:var(--palm-dark);fill:none;stroke-width:1.4;}
  .icon-col h3{font-size:1.1rem;font-family:'Work Sans',sans-serif;font-weight:600;margin-bottom:10px;}
  .icon-col p{font-size:.88rem;color:#6b6355;line-height:1.6;margin-bottom:0;}


  /* MASONRY GALLERY */
  .masonry-grid {
    column-count: 4;
    column-gap: 20px;
}

.masonry-item {
    display: inline-block;
    aspect-ratio: 1 / 1;
    width: 100%;
    overflow: hidden;

    break-inside: avoid;
}

.masonry-item  img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    width: 100%;
    display: block;
    border-radius: 8px;
}

/* Tablet */
@media (max-width: 991px) {
    .masonry-grid {
        column-count: 3;
    }
    section.about{padding: 50px 0 0;}
    section.about img{margin-top: 25px;}
}

/* Mobile */
@media (max-width: 767px) {
    .masonry-grid {
        column-count: 2;
        column-gap: 15px;
    }

    .masonry-item {
        margin-bottom: 15px;
    }
}

@media (max-width: 480px) {
    .masonry-grid {
        column-count: 1;
    }
}
  .gallery-section{padding:80px 0;}
  .masonry-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }
  .m-tile{
    border-radius:6px;
    display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;
  }
  .section-pad{padding:5rem 0;}
  .section-alt{background:#F6F0E4;}
.faq-item{border-bottom:1px solid rgba(0,0,0,.08);padding:1.25rem 0;}
  .faq-item summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary:after{content:"+";font-size:1.4rem;line-height:1;opacity:.6;}
  .faq-item[open] summary:after{content:"–";}
  .faq-item p{margin-top:.75rem;opacity:.85;font-size:.95rem;line-height:1.7;}

  .team-card{background:#fff;border-radius:14px;padding:2rem 1.5rem;text-align:center;box-shadow:0 6px 24px rgba(0,0,0,.06);height:100%;}
  .team-card img{width:110px;height:110px;object-fit:cover;border-radius:50%;margin:0 auto 1rem;display:block;}
  .team-card h4{margin-bottom:.25rem;}
  .team-card .role{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;opacity:.65;margin-bottom:.75rem;}
  .testimonial-card{background:#fff;border-radius:14px;padding:1.75rem;box-shadow:0 6px 24px rgba(0,0,0,.06);height:100%;}
  .testimonial-card .stars{color:#C9A24B;letter-spacing:.15em;margin-bottom:.75rem;}
  .testimonial-card .name{font-weight:600;margin-top:1rem;}
  .review-cta{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.5rem;}
  .info-block{background:#fff;border-radius:14px;padding:2rem;box-shadow:0 6px 24px rgba(0,0,0,.06);height:100%;}
  .info-block h3{font-family:'Italiana',serif;margin-bottom:1rem;}
  .info-block p{font-size:.95rem;line-height:1.75;opacity:.85;}

  @media(max-width:767px){
    .navbar-coco .nav-links,.navbar-coco .col-lg-4:last-child{display:none;}
    .masonry-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;}
    .t1{grid-column:1/2;grid-row:1/3;}
    .t2{grid-column:2/3;grid-row:1/2;}
    .t3{grid-column:2/3;grid-row:2/3;}
    .t4{grid-column:1/2;grid-row:3/5;}
    .t5{grid-column:2/3;grid-row:3/4;}
    .t6{grid-column:2/3;grid-row:4/5;}
    .t7{grid-column:1/2;grid-row:5/6;}
    .t8{grid-column:2/3;grid-row:5/7;}
  }

  /* CONTACT STRIP */
  .contact-strip{background:var(--palm);color:var(--sand);padding:44px 0;}
  .contact-strip .container-narrow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;}
  .contact-strip a{color:var(--sand);}
  footer{padding:34px 0;background:var(--ink);color:#a89f8e;text-align:center;font-size:.82rem;}

  .location-section{padding:100px 0;background: var(--sand);}
  .shop-card{
    background:#fff;border:1px solid var(--sand-deep);
    border-radius:22px;padding:32px 30px;height:100%;
  }
  .shop-card h4{font-family:'Italiana',serif;font-size:1.3rem;margin-bottom:10px;}
  .shop-card p{color:#4a4438;font-size:.95rem;margin-bottom:0;}
  .contact-strip{
    background:var(--palm);color:var(--sand);
    border-radius:22px;padding:34px 36px;
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
    gap:20px;
  }
  .contact-strip a{color:var(--sand);text-decoration:none;font-size:1.05rem;}
  .contact-strip .btn-book{background:var(--coral);}
  
  
  .location-row {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        width: 100%;
    }

    .location-col {
        flex: 1 1 calc(50% - 10px);
        min-width: 280px;
        box-sizing: border-box;
    }

    .location-col iframe {
        width: 100%;
        height: 450px;
        border: 0;
        display: block;
        border-radius: 8px;
    }

    @media (max-width: 767px) {
        .location-col {
            flex: 1 1 100%;
        }

        .location-col iframe {
            height: 300px;
        }
    }