
  :root{
    --teal-deep:#0f6a6a;
    --teal:#1c8a8a;
    --mint:#bfe9e6;
    --cream:#fffaf1;
    --pink:#f0729a;
    --pink-deep:#e15c85;
    --coral:#ef8093;
    --ink:#0d3d3d;
    --shadow: 0 18px 40px -18px rgba(15,106,106,0.45);
    --radius-lg: 28px;
    --radius-md: 18px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Nunito', sans-serif;
    background-color:var(--cream);
    background-image:
      radial-gradient(circle at 12% 8%, rgba(240,114,154,0.10) 0, transparent 45%),
      radial-gradient(circle at 90% 15%, rgba(28,138,138,0.10) 0, transparent 40%),
      radial-gradient(circle at 50% 100%, rgba(191,233,230,0.35) 0, transparent 55%);
    background-repeat: no-repeat, no-repeat, no-repeat;
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Baloo 2', sans-serif;
    margin:0;
  }

  /* ---------- Background swirl texture ---------- */
  /* ---------- Call bar ---------- */
  .call-bar{
    background:var(--teal-deep);
    color:#fff;
    text-align:center;
    padding:8px 6vw;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    letter-spacing:0.3px;
  }
  .call-bar a{
    color:#fff;
    text-decoration:none;
    border-bottom:1.5px dotted rgba(255,255,255,0.6);
  }
  .call-bar a:hover{border-bottom-style:solid;}

  /* ---------- Header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 6vw;
    background:rgba(255,250,241,0.85);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(15,106,106,0.08);
  }
  .brand{
    display:flex;
    align-items:center;
    gap:12px;
  }
  .brand img{height:62px;width:auto;display:block;}
  .brand span{
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    font-size:1.15rem;
    color:var(--teal-deep);
  }
  .nav-link{
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    color:var(--teal-deep);
    text-decoration:none;
    font-size:0.95rem;
  }
  .nav-link:hover{color:var(--pink-deep);}
  .nav-cta{
    background:var(--pink-deep);
    color:#fff;
    border:none;
    padding:12px 22px;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.95rem;
    cursor:pointer;
    box-shadow:0 10px 22px -8px rgba(225,92,133,0.6);
    transition:transform .18s ease, box-shadow .18s ease;
  }
  .nav-cta:hover{transform:translateY(-2px); box-shadow:0 14px 26px -8px rgba(225,92,133,0.7);}
  .nav-cta:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
    outline:3px solid var(--teal-deep);
    outline-offset:3px;
  }

  /* ---------- Hero (background video) ---------- */
  .hero{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:8vh 6vw;
    position:relative;
    overflow:hidden;
    min-height:min(88vh, 720px);
  }
  .hero-video-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    z-index:0;
  }
  .hero-video-scrim{
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,
      rgba(15,61,61,0.35) 0%,
      rgba(15,61,61,0.15) 40%,
      rgba(255,250,241,0.92) 100%);
  }
  .hero-content{
    position:relative;
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
  }
  @keyframes drop-in{
    0%{opacity:0; transform:translateY(-30px) scale(.96);}
    100%{opacity:1; transform:translateY(0) scale(1);}
  }
  .tagline{
    font-size:clamp(1.3rem, 2.6vw, 2rem);
    color:#fff;
    font-weight:700;
    max-width:20ch;
    line-height:1.25;
    margin-top:0.75rem;
    letter-spacing:0.2px;
    text-shadow:0 2px 14px rgba(0,0,0,0.35);
    animation:drop-in 900ms cubic-bezier(.2,.9,.25,1.15) both;
  }
  .tagline em{
    font-style:normal;
    color:var(--pink-deep);
  }
  .hero-sub{
    margin-top:0.9rem;
    color:#fff;
    font-size:1.05rem;
    max-width:46ch;
    text-shadow:0 2px 10px rgba(0,0,0,0.35);
  }
  .hero-actions{
    margin-top:2.1rem;
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    justify-content:center;
  }
  .hero-reassurance{
    margin-top:1.1rem;
    font-size:0.85rem;
    color:#fff;
    text-shadow:0 2px 8px rgba(0,0,0,0.35);
  }
  .hero-reassurance a{
    color:#fff;
    text-decoration:underline;
    text-underline-offset:2px;
  }
  .hero-reassurance a:hover{color:var(--mint);}
  .btn-primary{
    background:var(--teal-deep);
    color:#fff;
    border:none;
    padding:16px 34px;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    font-size:1.05rem;
    cursor:pointer;
    box-shadow:var(--shadow);
    transition:transform .18s ease, box-shadow .18s ease;
  }
  .btn-primary:hover{transform:translateY(-3px);}
  .btn-secondary{
    background:transparent;
    color:var(--teal-deep);
    border:2px solid var(--teal-deep);
    padding:14px 30px;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    font-size:1.05rem;
    cursor:pointer;
    transition:background .18s ease, color .18s ease;
  }
  .btn-secondary:hover{background:var(--teal-deep); color:#fff;}

  /* ---------- Flavor strip (signature scroll) ---------- */
  .trust-strip{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:10px 28px;
    padding:16px 6vw;
    background:rgba(255,255,255,0.82);
    border-bottom:1px solid rgba(15,106,106,0.08);
  }
  .trust-item{
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    color:var(--teal-deep);
    white-space:nowrap;
  }
  .trust-item-link{
    text-decoration:none;
    color:var(--pink-deep);
    cursor:pointer;
  }
  .trust-item-link:hover{text-decoration:underline;}
  @media (max-width:600px){
    .trust-strip{gap:8px 16px; padding:14px 6vw;}
    .trust-item{font-size:0.78rem;}
  }

  .flavor-strip{
    overflow:hidden;
    background:var(--teal-deep);
    padding:14px 0;
    white-space:nowrap;
  }
  .flavor-track{
    display:inline-flex;
    gap:3rem;
    animation:scroll-left 28s linear infinite;
  }
  .flavor-track span{
    font-family:'Baloo 2', sans-serif;
    color:var(--mint);
    font-weight:600;
    font-size:1.05rem;
    letter-spacing:0.5px;
  }
  .flavor-track span::after{content:"•"; margin-left:3rem; color:var(--pink);}
  @keyframes scroll-left{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion: reduce){
    .flavor-track{animation:none;}
    .tagline{animation:none;}
  }

  /* ---------- Sections ---------- */
  section{padding:7vh 6vw;}
  .section-head{
    text-align:center;
    max-width:640px;
    margin:0 auto 3rem;
  }
  .eyebrow{
    display:inline-block;
    font-family:'Baloo 2', sans-serif;
    color:var(--pink-deep);
    font-weight:700;
    font-size:0.85rem;
    letter-spacing:1.5px;
    text-transform:uppercase;
    margin-bottom:0.6rem;
  }
  .section-head h2{
    font-size:clamp(1.6rem, 3vw, 2.3rem);
    color:var(--teal-deep);
  }

  /* ---------- Shared 3D box treatment ---------- */
  .card,
  .contact-card,
  .link-card,
  .product-list,
  .about-text{
    position:relative;
    background:linear-gradient(180deg, #ffffff 0%, #fdfbf6 100%);
    border-radius:var(--radius-md);
    border:1px solid rgba(15,106,106,0.08);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.8),
      inset 0 -10px 16px -10px rgba(15,106,106,0.10),
      0 3px 6px -2px rgba(15,106,106,0.18),
      0 20px 36px -16px rgba(15,106,106,0.42);
    transition:transform .22s ease, box-shadow .22s ease;
  }
  .card:hover,
  .contact-card:hover,
  .link-card:hover,
  .product-list:hover,
  .about-text:hover{
    transform:translateY(-5px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,0.85),
      inset 0 -10px 18px -10px rgba(15,106,106,0.12),
      0 4px 8px -2px rgba(15,106,106,0.22),
      0 30px 48px -16px rgba(15,106,106,0.5);
  }

  .about-text{
    max-width:1100px;
    margin:0 auto;
    text-align:left;
    color:#3a5f5f;
    font-size:1.1rem;
    line-height:1.8;
    padding:32px 40px;
  }

  .occasions-pills{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    max-width:900px;
    margin:0 auto 1.2rem;
  }
  .occasion-pill{
    background:#fff;
    border:1.5px solid rgba(15,106,106,0.18);
    color:var(--teal-deep);
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.9rem;
    padding:9px 20px;
    border-radius:999px;
    box-shadow:0 6px 14px -8px rgba(15,106,106,0.3);
  }
  .occasions-note{
    text-align:center;
    max-width:640px;
    margin:0.4rem auto 0;
    color:#4a5f5f;
    font-size:0.92rem;
    line-height:1.6;
  }

  .faq-list{
    max-width:820px;
    margin:0 auto 1.2rem;
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .faq-item{
    background:linear-gradient(180deg, #ffffff 0%, #fdfbf6 100%);
    border-radius:var(--radius-md);
    border:1px solid rgba(15,106,106,0.08);
    box-shadow:0 10px 24px -16px rgba(15,106,106,0.3);
    padding:18px 22px;
  }
  .faq-question{
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    color:var(--teal-deep);
    font-size:1rem;
    margin-bottom:6px;
  }
  .faq-answer{
    color:#3a5f5f;
    font-size:0.92rem;
    line-height:1.6;
  }

  .product-list{
    max-width:900px;
    margin:0 auto;
    padding:10px 32px;
    column-count:2;
    column-gap:40px;
  }
  .product-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    break-inside:avoid;
    -webkit-column-break-inside:avoid;
    gap:12px;
    padding:14px 4px;
    border-bottom:1px dashed rgba(15,106,106,0.2);
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    color:var(--teal-deep);
    font-size:1rem;
  }
  .product-row:last-child{border-bottom:none;}
  .product-row .price{color:var(--pink-deep); flex-shrink:0;}
  @media (max-width:600px){
    .product-list{column-count:1;}
  }
  .add-product-btn{
    display:none;
    margin:18px auto 0;
    background:rgba(255,255,255,0.6);
    border:2px dashed rgba(15,106,106,0.4);
    border-radius:999px;
    padding:12px 28px;
    color:var(--teal-deep);
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.95rem;
    cursor:pointer;
    transition:background .15s ease, border-color .15s ease, color .15s ease;
  }
  .add-product-btn:hover{background:rgba(255,255,255,0.9); border-color:var(--pink-deep); color:var(--pink-deep);}
  

  .contact-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:24px;
    max-width:900px;
    margin:0 auto;
  }
  .contact-card{
    padding:28px 24px;
    text-align:center;
  }
  .contact-card .icon{font-size:2rem; display:block; margin-bottom:0.5rem;}
  .contact-card h3{font-size:1.1rem; color:var(--teal-deep); margin-bottom:0.5rem;}
  .contact-card a{color:var(--pink-deep); text-decoration:none; font-weight:600;}
  .contact-card a:hover{text-decoration:underline;}

  /* ---------- Find Us Online (editable link cards) ---------- */
  .links-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:24px;
    max-width:900px;
    margin:0 auto;
  }
  .link-card{
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .link-card.add-tile{
    align-items:center;
    justify-content:center;
    min-height:220px;
  }
  .link-thumb{
    position:relative;
    aspect-ratio:4/3;
    overflow:hidden;
  }
  .link-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .link-body{
    padding:14px 16px 16px;
  }
  .link-title{
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    color:var(--teal-deep);
    font-size:1.05rem;
    margin-bottom:4px;
  }
  .link-url{
    display:block;
    color:var(--pink-deep);
    font-size:0.85rem;
    word-break:break-all;
    text-decoration:none;
    cursor:pointer;
  }
  .link-url:hover{text-decoration:underline;}


  .cards{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
    gap:24px;
    max-width:1100px;
    margin:0 auto;
  }
  .card{
    padding:28px 24px;
  }
  .card .icon{font-size:2rem; margin-bottom:0.6rem; display:block;}
  .card h3{font-size:1.15rem; color:var(--teal-deep); margin-bottom:0.4rem;}
  .card p{margin:0; color:#4a5f5f; font-size:0.95rem; line-height:1.5;}

  .cta-banner{
    background:linear-gradient(120deg, var(--teal-deep), var(--teal));
    border-radius:var(--radius-lg);
    max-width:1100px;
    margin:0 auto;
    padding:4.5vh 6vw;
    text-align:center;
    color:#fff;
    position:relative;
    overflow:hidden;
  }
  .cta-banner::before{
    content:"";
    position:absolute;
    right:-60px; top:-60px;
    width:220px; height:220px;
    background:radial-gradient(circle, rgba(255,255,255,0.18), transparent 70%);
  }
  .cta-banner h2{font-size:clamp(1.5rem,2.8vw,2.1rem); margin-bottom:0.6rem;}
  .cta-banner p{margin:0 0 1.6rem; opacity:0.9; font-size:1.02rem;}

  footer{
    text-align:center;
    padding:4vh 6vw 5vh;
    color:#5a7a7a;
    font-size:0.9rem;
  }

  /* ---------- Sticky mobile call-to-action bar ---------- */
  .mobile-cta-bar{
    display:none;
    position:fixed;
    left:0; right:0; bottom:0;
    z-index:90;
    background:#fff;
    box-shadow:0 -8px 22px -6px rgba(15,106,106,0.28);
    padding:10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    gap:10px;
  }
  .mobile-cta-bar a, .mobile-cta-bar button{
    flex:1;
    text-align:center;
    padding:12px 0;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    font-size:0.95rem;
    border:none;
    text-decoration:none;
    cursor:pointer;
  }
  .mobile-cta-bar .mcta-call{background:var(--mint); color:var(--teal-deep);}
  .mobile-cta-bar .mcta-book{background:var(--pink-deep); color:#fff;}
  @media (max-width:640px){
    .mobile-cta-bar{display:flex;}
    body{padding-bottom:76px;}
  }

  /* ---------- Gallery ---------- */
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
    max-width:1100px;
    margin:0 auto;
  }
  .gallery-item{
    position:relative;
    border-radius:var(--radius-md);
    overflow:hidden;
    aspect-ratio:4/3;
    box-shadow:0 14px 30px -16px rgba(15,106,106,0.4);
    border:1px solid rgba(15,106,106,0.08);
  }
  .gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
  }
  .gallery-item:hover img{transform:scale(1.06);}
  .gallery-caption{
    position:absolute;
    left:0; right:0; bottom:0;
    padding:14px 16px 12px;
    background:linear-gradient(0deg, rgba(15,61,61,0.72), transparent);
    color:#fff;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.95rem;
    text-align:left;
    z-index:2;
  }
  .gallery-item.add-tile,
  .link-card.add-tile{
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    background:rgba(255,255,255,0.6);
    border:2px dashed rgba(15,106,106,0.4);
    box-shadow:none;
    cursor:pointer;
    color:var(--teal-deep);
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    transition:background .15s ease, border-color .15s ease;
  }
  .gallery-item.add-tile:hover,
  .link-card.add-tile:hover{background:rgba(255,255,255,0.9); border-color:var(--pink-deep); color:var(--pink-deep); box-shadow:none; transform:none;}
  .add-tile-plus{font-size:2.4rem; line-height:1;}
  .add-tile-label{font-size:0.9rem;}
  
  @media (max-width:760px){
    .gallery-grid{grid-template-columns:repeat(2, 1fr);}
  }
  @media (max-width:480px){
    .gallery-grid{grid-template-columns:1fr;}
  }

  /* ---------- Booking Modal ---------- */
  .modal-overlay{
    position:fixed;
    inset:0;
    background:rgba(13,61,61,0.55);
    backdrop-filter:blur(3px);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:100;
    padding:20px;
  }
  .modal-overlay.open{display:flex;}
  .modal{
    background:var(--cream);
    border-radius:var(--radius-lg);
    max-width:520px;
    width:100%;
    max-height:90vh;
    overflow-y:auto;
    padding:34px 32px 30px;
    position:relative;
    box-shadow:0 30px 60px -20px rgba(0,0,0,0.4);
    animation:modal-in 320ms cubic-bezier(.2,.9,.25,1.1) both;
  }
  @keyframes modal-in{
    from{opacity:0; transform:translateY(24px) scale(.97);}
    to{opacity:1; transform:translateY(0) scale(1);}
  }
  .modal-close{
    position:absolute;
    top:18px; right:18px;
    background:var(--mint);
    border:none;
    width:36px; height:36px;
    border-radius:50%;
    font-size:1.1rem;
    cursor:pointer;
    color:var(--teal-deep);
    line-height:1;
  }
  .modal h3.display{
    color:var(--teal-deep);
    font-size:1.5rem;
    margin-bottom:0.3rem;
  }
  .modal .modal-sub{
    color:#4a5f5f;
    font-size:0.95rem;
    margin-bottom:1.6rem;
  }
  .field{
    margin-bottom:16px;
  }
  .field label{
    display:block;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.9rem;
    color:var(--teal-deep);
    margin-bottom:6px;
  }
  .field .hint{
    font-weight:400;
    color:#7a9494;
    font-size:0.8rem;
    margin-left:4px;
  }
  .field input,
  .field select,
  .field textarea{
    width:100%;
    padding:12px 14px;
    border-radius:12px;
    border:1.5px solid rgba(15,106,106,0.2);
    background:#fff;
    font-family:'Nunito', sans-serif;
    font-size:0.95rem;
    color:var(--ink);
  }
  .field input:focus,
  .field select:focus,
  .field textarea:focus{
    border-color:var(--teal-deep);
    outline:none;
  }
  .row-2{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .location-row{
    display:flex;
    gap:8px;
  }
  .location-row input{flex:1;}
  .locate-btn{
    flex:0 0 auto;
    background:var(--mint);
    border:1.5px solid rgba(15,106,106,0.2);
    border-radius:12px;
    padding:0 14px;
    cursor:pointer;
    font-size:1.1rem;
    color:var(--teal-deep);
  }
  .locate-btn:hover{background:#a9dfda;}
  #locationStatus{
    font-size:0.8rem;
    color:#4a5f5f;
    margin-top:6px;
    min-height:1em;
  }
  .submit-btn{
    width:100%;
    margin-top:8px;
    background:var(--pink-deep);
    color:#fff;
    border:none;
    padding:15px;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:700;
    font-size:1.05rem;
    cursor:pointer;
    box-shadow:0 12px 24px -10px rgba(225,92,133,0.6);
  }
  .submit-btn:hover{transform:translateY(-2px);}
  .form-note{
    font-size:0.78rem;
    color:#7a9494;
    text-align:center;
    margin-top:12px;
    line-height:1.4;
  }

  /* Confirmation state */
  .confirm{
    text-align:center;
    padding:10px 4px 4px;
  }
  .confirm .check{
    width:64px; height:64px;
    border-radius:50%;
    background:var(--mint);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 18px;
    font-size:1.8rem;
    color:var(--teal-deep);
  }
  .confirm h3{color:var(--teal-deep); font-size:1.4rem; margin-bottom:8px;}
  .confirm p{color:#4a5f5f; font-size:0.95rem; line-height:1.5;}
  .confirm .summary{
    background:#fff;
    border-radius:14px;
    padding:16px 18px;
    margin:18px 0;
    text-align:left;
    border:1px solid rgba(15,106,106,0.1);
    font-size:0.9rem;
  }
  .confirm .summary div{padding:4px 0; display:flex; justify-content:space-between; gap:12px;}
  .confirm .summary strong{color:var(--teal-deep);}
  .add-cal-row{
    display:flex;
    gap:10px;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:6px;
  }
  .add-cal-row a, .add-cal-row button{
    text-decoration:none;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    padding:10px 16px;
    border-radius:999px;
    border:1.5px solid var(--teal-deep);
    color:var(--teal-deep);
    background:#fff;
    cursor:pointer;
  }
  .add-cal-row a:hover, .add-cal-row button:hover{background:var(--teal-deep); color:#fff;}
  .add-cal-row a.email-btn{
    background:var(--pink-deep);
    border-color:var(--pink-deep);
    color:#fff;
  }
  .add-cal-row a.email-btn:hover{background:var(--pink); border-color:var(--pink);}
  .add-cal-row a.call-btn{
    background:var(--teal-deep);
    border-color:var(--teal-deep);
    color:#fff;
  }
  .add-cal-row a.call-btn:hover{background:var(--teal); border-color:var(--teal);}

  .email-status{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin:14px auto 4px;
    padding:10px 16px;
    border-radius:999px;
    font-family:'Baloo 2', sans-serif;
    font-weight:600;
    font-size:0.85rem;
    max-width:fit-content;
  }
  .email-status.pending{background:#f1efe6; color:#7a6a55;}
  .email-status.success{background:#d9f2ee; color:var(--teal-deep);}
  .email-status.warning{background:#fdecef; color:var(--pink-deep);}
  .email-status .status-icon{font-size:1rem;}

  @media (max-width:520px){
    .row-2{grid-template-columns:1fr;}
    .modal{padding:28px 22px 24px;}
  }


  /* Photo grids: column width follows the size slider */
  .gallery-grid{
    grid-template-columns:repeat(auto-fill, minmax(min(var(--img-min, 330px), 46%), 1fr));
    justify-content:center;
  }
  @media (max-width:480px){ .gallery-grid{grid-template-columns:1fr;} }

  /* Get in touch — smaller boxes */
  .contact-grid{
    grid-template-columns:repeat(auto-fit, minmax(calc(170px * var(--box-scale, 1)), calc(240px * var(--box-scale, 1))));
    justify-content:center;
    gap:calc(16px * var(--box-scale, 1));
    max-width:900px;
  }
  .contact-card{
    padding:calc(16px * var(--box-scale, 1)) calc(14px * var(--box-scale, 1));
    font-size:calc(0.85rem * var(--box-scale, 1));
  }
  .contact-card .icon{font-size:1.9em; margin-bottom:0.3em;}
  .contact-card h3{font-size:1.15em; margin-bottom:0.3em;}
  .contact-card a{overflow-wrap:break-word;}
  .contact-card p{margin:0.4em 0 0;}
  .contact-card .btn-secondary{font-size:1em; padding:0.45em 1.2em;}

  /* Find us online — smaller boxes */
  .links-grid{
    grid-template-columns:repeat(auto-fit, minmax(calc(130px * var(--box-scale, 1)), calc(180px * var(--box-scale, 1))));
    justify-content:center;
    gap:calc(16px * var(--box-scale, 1));
    max-width:900px;
  }
  .link-card{font-size:calc(0.85rem * var(--box-scale, 1));}
  .link-card.add-tile{min-height:calc(150px * var(--box-scale, 1));}
  .link-body{padding:0.8em 0.9em 0.95em;}
  .link-title{font-size:1.15em; margin-bottom:0.2em;}
  .link-url{font-size:0.85em;}


/* ================= RESPONSIVE / MOBILE-FRIENDLY ================= */
html{-webkit-text-size-adjust:100%;}
img,video{max-width:100%;}
body{overflow-wrap:break-word;}
.nav-toggle{display:none;}
header{gap:12px;}
.site-nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end;}
.brand img{height:calc(62px * 0.85);max-width:100%;}
.hero{min-height:min(88vh,720px);}
@supports (min-height:100svh){.hero{min-height:min(88svh,720px);}}
.modal{max-height:90vh;}
@supports (max-height:100dvh){.modal{max-height:90dvh;}}
input,select,textarea{font-size:16px;} /* stops iOS zoom on focus */
.nav-link,.nav-cta,.btn-primary,.btn-secondary{min-height:44px;}
.nav-link{display:inline-flex;align-items:center;}

@media (min-width:1400px){
  section{padding-left:max(6vw,calc((100vw - 1240px)/2));padding-right:max(6vw,calc((100vw - 1240px)/2));}
}

@media (max-width:1000px){
  .nav-toggle{
    display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:46px;height:46px;padding:0 11px;border:none;border-radius:12px;
    background:var(--teal-deep);cursor:pointer;flex-shrink:0;
  }
  .nav-toggle span{display:block;height:3px;border-radius:2px;background:#fff;transition:transform .2s ease,opacity .2s ease;}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
  .site-nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:rgba(255,250,241,0.98);padding:8px 6vw 18px;
    border-bottom:1px solid rgba(15,106,106,0.12);
    box-shadow:0 18px 30px -18px rgba(15,106,106,0.4);
    max-height:calc(100vh - 80px);overflow-y:auto;
  }
  .site-nav.open{display:flex;}
  .site-nav .nav-link{padding:12px 4px;font-size:1.05rem;border-bottom:1px solid rgba(15,106,106,0.08);}
  .site-nav .nav-cta{margin-top:14px;width:100%;}
}

@media (max-width:640px){
  .call-bar{font-size:0.8rem;padding:8px 4vw;}
  .brand img{height:48px;}
  .brand span{font-size:1rem;}
  section{padding:6vh 5vw;}
  .section-head{margin-bottom:2rem;}
  .hero{padding:6vh 5vw;}
  .hero-actions{flex-direction:column;align-items:stretch;width:100%;max-width:320px;}
  .hero-actions .btn-primary,.hero-actions .btn-secondary{width:100%;}
  .btn-primary{padding:14px 26px;}
  .trust-item{white-space:normal;text-align:center;}
  .cards{grid-template-columns:1fr !important;}
  .cta-banner{padding:32px 20px !important;}
  .modal-overlay{padding:10px;align-items:flex-end;}
  .modal{border-radius:22px;}
  .footer,footer{padding-bottom:96px;}
}
@media (max-width:380px){
  .brand span{display:none;}
}
@media (hover:none){
  .gallery-item:hover img{transform:none;}
  .btn-primary:hover,.nav-cta:hover{transform:none;}
}

/* Page background colour carried over from your original design */
body{background-color:rgb(212,205,213);background-image:none;}

/* Email chooser pop-up */
.email-pop{position:fixed;inset:0;z-index:9998;background:rgba(13,61,61,.55);display:none;align-items:center;justify-content:center;padding:16px}
.email-pop.open{display:flex}
.email-pop-box{background:#fffaf1;border-radius:22px;padding:24px 22px;width:100%;max-width:360px;box-shadow:0 24px 60px rgba(0,0,0,.35);text-align:center}
.email-pop-box h3{margin:0 0 4px;color:var(--teal-deep,#0f6a6a)}
.email-pop-box p{margin:0 0 16px;font-size:.95rem;word-break:break-all}
.email-pop-box a,.email-pop-box button{display:block;width:100%;box-sizing:border-box;margin:8px 0;padding:13px;border-radius:999px;border:0;font:700 1rem inherit;font-family:inherit;text-decoration:none;cursor:pointer;background:#bfe9e6;color:#0f6a6a}
.email-pop-box a.primary{background:#e15c85;color:#fff}
.email-pop-box .close{background:transparent;color:#666;font-weight:600}

/* Powered-by badge in footer */
.powered-by{display:inline-block;margin:16px auto 14px;line-height:0;border-radius:12px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(124,255,60,.35),0 6px 18px rgba(0,0,0,.35);opacity:.92;transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease;}
.powered-by img{display:block;width:170px;max-width:46vw;height:auto;}
.powered-by:hover{opacity:1;transform:translateY(-2px);box-shadow:0 0 0 1px rgba(124,255,60,.7),0 8px 22px rgba(60,255,60,.25);}
@media (min-width:1000px){.powered-by img{width:200px;}}
