/*
Theme Name: Casa Ohana Elegant
Author: Casa Ohana
Version: 2.0
Description: Home fotografica responsive per Casa Ohana B&B.
*/


/* =========================
   FONT LOCALI
   ========================= */

@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-Light.ttf') format('truetype');
  font-weight:300;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-Regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-Medium.ttf') format('truetype');
  font-weight:500;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-SemiBold.ttf') format('truetype');
  font-weight:600;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Poppins';
  src:url('./fonts/Poppins-Bold.ttf') format('truetype');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

@font-face{
  font-family:'Great Vibes';
  src:url('./fonts/GreatVibes-Regular.ttf') format('truetype');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}


:root{
  --tiffany:#63d1c6;
  --tiffany-dark:#2fb3a7;
  --sand:#f6ead7;
  --text:#2f3e3e;
  --white:#fff;
  --content-width:1200px;
  --radius:20px;
  --shadow:0 12px 35px rgba(0,0,0,.14);
}


*,*::before,*::after{
  box-sizing:border-box;
}


html{
  margin:0;
  padding:0;
  overflow-x:hidden;
  scroll-behavior:smooth;
}


body{
  margin:0;
  padding:0;
  font-family:'Poppins',sans-serif;
  color:var(--text);
  background:#fff;
  overflow-x:hidden;
}


img{
  display:block;
  max-width:100%;
  height:auto;
}


a{
  color:inherit;
}


/* =========================
   HERO
   ========================= */

.hero{
  position:relative;
  width:100%;
  height:100svh;
  min-height:620px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:#111;
}


.hero-background{
  position:absolute;
  inset:-.1%;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:0;
  animation:heroZoom 20s ease-in-out infinite alternate;
  will-change:transform;
}


.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.08),
    rgba(0,0,0,.28)
  );
  pointer-events:none;
}


.hero-content{
  position:relative;
  z-index:2;
  width:100%;
  padding:30px 22px 6vh;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
}


.hero-brand{
  width:min(720px,88vw);
  height:auto;
  margin:auto auto 5vh;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.25));
}


/* =========================
   BOTTONE HERO
   ========================= */

.hero-btn{
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  z-index:5;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-width:220px;
  padding:15px 30px;

  background:var(--tiffany);
  color:#fff;
  text-decoration:none;
  font-weight:600;
  border-radius:999px;

  box-shadow:0 8px 25px rgba(0,0,0,.25);

  transition:
    transform .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}


.hero-btn:hover{
  background:var(--tiffany-dark);
  transform:translateX(-50%) translateY(-3px);
  box-shadow:0 12px 30px rgba(0,0,0,.30);
}


/* =========================
   SEZIONI
   ========================= */

.section{
  width:100%;
  max-width:var(--content-width);
  margin:0 auto;
  padding:95px 24px;
}


.section-title{
  margin:0 0 15px;
  text-align:center;
  font-size:42px;
  line-height:1.15;
}


.section-intro{
  max-width:760px;
  margin:0 auto 48px;
  text-align:center;
  font-size:17px;
  line-height:1.7;
}


/* =========================
   INGRESSO / MOSAICO
   ========================= */

.entry-section{
  background:var(--sand);
}


.entry-mosaic{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:100px;
  gap:14px;
}


.entry-mosaic-item{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  min-height:100%;
}


.entry-mosaic-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
}


.entry-mosaic-item:hover img{
  transform:scale(1.05);
}


.entry-mosaic-item:nth-child(1){
  grid-column:span 5;
  grid-row:span 4;
}


.entry-mosaic-item:nth-child(2){
  grid-column:span 3;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(3){
  grid-column:span 4;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(4){
  grid-column:span 3;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(5){
  grid-column:span 4;
  grid-row:span 4;
}


.entry-mosaic-item:nth-child(6){
  grid-column:span 5;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(7){
  grid-column:span 4;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(8){
  grid-column:span 3;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(9){
  grid-column:span 5;
  grid-row:span 4;
}


.entry-mosaic-item:nth-child(10){
  grid-column:span 4;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(11){
  grid-column:span 3;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(12){
  grid-column:span 4;
  grid-row:span 3;
}


.entry-mosaic-item:nth-child(13){
  grid-column:span 5;
  grid-row:span 4;
}


/* =========================
   SLIDESHOW CAMERE
   ========================= */

.room-showcase{
  background:#fff;
  padding-top:85px;
}


.room-slideshow{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  min-height:420px;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:0 16px 45px rgba(0,0,0,.16);
  background:#111;
}


.room-slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  animation:roomSlide var(--cycle) linear infinite;
  animation-delay:calc(var(--delay) * -1);
  will-change:opacity,transform;
}


.room-slide-label{
  position:absolute;
  left:24px;
  bottom:24px;
  z-index:3;
  padding:10px 17px;
  border-radius:999px;
  background:rgba(0,0,0,.5);
  color:#fff;
  backdrop-filter:blur(5px);
  font-weight:600;
}


/* =========================
   CAMERE
   ========================= */

.rooms{
  background:var(--sand);
}


.rooms-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
}


.room-card{
  overflow:hidden;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  transition:box-shadow .25s ease;
}


.room-card:hover{
  box-shadow:0 20px 45px rgba(0,0,0,.16);
}


.room-card-image{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}


.room-card-content{
  padding:25px;
}


.room-card h3{
  margin:0 0 10px;
  font-size:27px;
}


.room-card p{
  margin:0 0 20px;
  line-height:1.65;
}


/* =========================
   BOTTONI
   ========================= */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 25px;
  background:var(--tiffany);
  color:#fff;
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
  transition:
    transform .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}


.btn:hover{
  background:var(--tiffany-dark);
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.20);
}


/* =========================
   CONTATTI
   ========================= */

.contact-section{
  text-align:center;
}


.contact-actions{
  display:flex;
  justify-content:center;
  gap:15px;
  flex-wrap:wrap;
}


.email-btn{
  background:#d19a43;
}


.email-btn:hover{
  background:#b9822f;
}


/* =========================
   FORM CONTATTI
   ========================= */

.casa-ohana-contact-form-wrapper{
  width:100%;
  max-width:850px;
  margin:45px auto 0;
  text-align:left;
}


.casa-ohana-contact-form{
  width:100%;
}


.contact-row{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}


.contact-field{
  margin-bottom:22px;
}


.contact-field label{
  display:block;
  margin:0 0 8px;
  color:var(--text);
  font-size:15px;
  font-weight:500;
}


.required-mark{
  color:var(--tiffany-dark);
  font-weight:700;
}


.contact-field input,
.contact-field textarea{
  display:block;
  width:100%;
  margin:0;
  padding:13px 16px;
  border:1px solid rgba(47,62,62,.20);
  border-radius:12px;
  background:#fff;
  color:var(--text);
  font-family:'Poppins',sans-serif;
  font-size:15px;
  line-height:1.5;
  outline:none;
  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    background .25s ease;
}


.contact-field textarea{
  min-height:170px;
  resize:vertical;
}


.contact-field input::placeholder,
.contact-field textarea::placeholder{
  color:rgba(47,62,62,.50);
}


.contact-field input:focus,
.contact-field textarea:focus{
  border-color:var(--tiffany);
  box-shadow:0 0 0 3px rgba(99,209,198,.18);
}


.contact-field input:invalid:not(:placeholder-shown),
.contact-field textarea:invalid:not(:placeholder-shown){
  border-color:#d88b7d;
}


.casa-ohana-contact-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:210px;
  padding:14px 28px;
  border:0;
  border-radius:999px;
  background:var(--tiffany);
  color:#fff;
  font-family:'Poppins',sans-serif;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.15);
  transition:
    transform .25s ease,
    background .25s ease,
    box-shadow .25s ease;
}


.casa-ohana-contact-submit:hover{
  background:var(--tiffany-dark);
  transform:translateY(-2px);
  box-shadow:0 10px 25px rgba(0,0,0,.20);
}


.casa-ohana-contact-submit:active{
  transform:translateY(0);
}


.casa-ohana-contact-submit:focus-visible{
  outline:3px solid rgba(99,209,198,.35);
  outline-offset:3px;
}


.casa-ohana-contact-error,
.casa-ohana-contact-success{
  width:100%;
  margin:0 0 25px;
  padding:15px 18px;
  border-radius:14px;
  font-size:15px;
  line-height:1.6;
}


.casa-ohana-contact-error{
  background:#f9e6e2;
  color:#8a3f35;
  border:1px solid #edc4bc;
}


.casa-ohana-contact-success{
  background:rgba(99,209,198,.14);
  color:#247b73;
  border:1px solid rgba(47,179,167,.30);
  text-align:center;
}


.casa-ohana-honeypot{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}


/* =========================
   WHATSAPP
   ========================= */

.whatsapp-container{
  position:fixed;
  right:25px;
  bottom:25px;
  z-index:9999;
}


.whatsapp-float{
  width:65px;
  height:65px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#25D366;
  border-radius:50%;
  box-shadow:0 6px 18px rgba(0,0,0,.3);
  animation:whatsappPulse 2.5s infinite;
}


.whatsapp-float img{
  width:32px;
  height:32px;
}


.whatsapp-text{
  position:absolute;
  right:0;
  bottom:75px;
  padding:8px 14px;
  background:#fff;
  color:#333;
  border-radius:20px;
  font-size:14px;
  white-space:nowrap;
  box-shadow:0 4px 10px rgba(0,0,0,.2);
  opacity:0;
  transform:translateY(10px);
  transition:.4s;
}


.whatsapp-container:hover .whatsapp-text,
.whatsapp-container.show .whatsapp-text{
  opacity:1;
  transform:translateY(0);
}


/* =========================
   FOOTER
   ========================= */

.site-footer{
  padding:40px 20px;
  background:#111;
  color:#fff;
  text-align:center;
}


/* =========================
   ANIMAZIONI
   ========================= */

@keyframes heroZoom{
  from{
    transform:scale(1);
  }

  to{
    transform:scale(1.10);
  }
}


@keyframes roomSlide{
  0%{
    opacity:0;
    transform:scale(1.02);
  }

  2%{
    opacity:1;
  }

  14%{
    opacity:1;
    transform:scale(1.06);
  }

  16%{
    opacity:0;
    transform:scale(1.08);
  }

  100%{
    opacity:0;
  }
}


@keyframes whatsappPulse{
  0%{
    box-shadow:0 0 0 0 rgba(37,211,102,.65);
  }

  70%{
    box-shadow:0 0 0 16px rgba(37,211,102,0);
  }

  100%{
    box-shadow:0 0 0 0 rgba(37,211,102,0);
  }
}


/* =========================
   RIDUZIONE ANIMAZIONI
   ========================= */

@media (prefers-reduced-motion:reduce){

  html{
    scroll-behavior:auto;
  }

  .hero-background,
  .room-slide,
  .whatsapp-float{
    animation:none;
  }

  .room-slide:first-child{
    opacity:1;
  }
}


/* =========================
   TABLET
   ========================= */

@media (max-width:900px){

  .rooms-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .entry-mosaic{
    grid-auto-rows:80px;
  }

  .section{
    padding:75px 20px;
  }

  .casa-ohana-contact-form-wrapper{
    max-width:760px;
  }

}


/* =========================
   MOBILE
   ========================= */

@media (max-width:600px){

  .hero{
    min-height:100svh;
  }

  .hero-brand{
    width:min(92vw,520px);
    margin-bottom:4vh;
  }

  .hero-btn{
    width:100%;
    max-width:270px;
  }

  .entry-mosaic{
    grid-template-columns:repeat(2,1fr);
    grid-auto-rows:120px;
    gap:10px;
  }

  .entry-mosaic-item:nth-child(n){
    grid-column:span 1;
    grid-row:span 2;
  }

  .entry-mosaic-item:nth-child(1){
    grid-column:span 2;
    grid-row:span 3;
  }

  .room-slideshow{
    aspect-ratio:4/3;
    min-height:0;
  }

  .rooms-grid{
    grid-template-columns:1fr;
  }

  .section{
    padding:65px 18px;
  }

  .section-title{
    font-size:34px;
  }

  .section-intro{
    font-size:16px;
  }

  .whatsapp-container{
    right:18px;
    bottom:18px;
  }

  .whatsapp-float{
    width:58px;
    height:58px;
  }


  /* FORM CONTATTI MOBILE */

  .casa-ohana-contact-form-wrapper{
    margin-top:35px;
  }

  .contact-row{
    grid-template-columns:1fr;
    gap:0;
  }

  .contact-field{
    margin-bottom:18px;
  }

  .contact-field input,
  .contact-field textarea{
    padding:12px 14px;
    font-size:16px;
  }

  .contact-field textarea{
    min-height:150px;
  }

  .casa-ohana-contact-submit{
    width:100%;
    min-width:0;
  }

}

/* =========================================================
   PAGINE CAMERE
   ========================================================= */

.room-page{
    position:relative;
    min-height:100vh;
    overflow:hidden;
    background:#f5e7d0;
}

.room-page-background{
    position:fixed;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    z-index:0;
}

.room-page-overlay{
    position:fixed;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(0,0,0,.38) 0%,
        rgba(0,0,0,.18) 35%,
        rgba(0,0,0,.42) 100%
    );
    z-index:1;
}

.room-page-content{
    position:relative;
    z-index:2;
    width:min(1120px, calc(100% - 32px));
    margin:0 auto;
    padding:120px 0 70px;
}

.room-page-card{
    background:rgba(255,255,255,.93);
    border-radius:24px;
    padding:34px;
    box-shadow:0 18px 55px rgba(0,0,0,.22);
    backdrop-filter:blur(5px);
}

.room-page-header{
    text-align:center;
    max-width:820px;
    margin:0 auto 30px;
}

.room-page-kicker{
    margin:0 0 8px;
    font-size:15px;
    letter-spacing:2px;
    text-transform:uppercase;
    font-weight:600;
    opacity:.72;
}

.room-page-title{
    margin:0 0 18px;
    font-size:clamp(42px, 6vw, 68px);
    line-height:1;
    color:#1d7770;
}

.room-page-description{
    margin:0 auto;
    max-width:780px;
    font-size:18px;
    line-height:1.75;
    color:#444;
}

.room-page-gallery{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:14px;
    margin-top:34px;
}

.room-page-gallery-item{
    position:relative;
    overflow:hidden;
    aspect-ratio:4 / 3;
    border-radius:16px;
    background:#eee;
    cursor:zoom-in;
}

.room-page-gallery-item{
    width:100%;
    padding:0;
    margin:0;
    border:0;
    font:inherit;
    color:inherit;
    appearance:none;
    -webkit-appearance:none;
    user-select:none;
    -webkit-user-select:none;
    -webkit-touch-callout:none;
}

.room-page-gallery-item img{
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
    -webkit-touch-callout:none;
    pointer-events:none;
}

.room-page-gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s ease;
}

.room-page-gallery-item:hover img{
    transform:scale(1.045);
}

.room-page-amenities{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin:30px auto 0;
}

.room-page-amenity{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:9px 15px;
    border:1px solid rgba(29,119,112,.22);
    border-radius:999px;
    background:rgba(255,255,255,.72);
    color:#286d68;
    font-size:14px;
    line-height:1.2;
}

.room-page-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:12px;
    margin-top:34px;
}

.room-page-actions .btn{
    text-decoration:none;
}

.room-page-back{
    background:transparent;
    color:var(--tiffany);
    border:2px solid transparent;
}

.room-page-back:hover{
    background:rgba(99,209,198,.10);
    color:var(--tiffany-dark);
    box-shadow:none;
}

.room-page-empty{
    text-align:center;
    padding:70px 20px;
    color:#555;
}

@media (max-width:900px){

    .room-page-gallery{
        grid-template-columns:repeat(2, 1fr);
    }

}

@media (max-width:600px){

    .room-page-content{
        width:min(100% - 20px, 1120px);
        padding:88px 0 35px;
    }

    .room-page-card{
        padding:24px 16px;
        border-radius:18px;
    }

    .room-page-title{
        font-size:42px;
    }

    .room-page-description{
        font-size:16px;
        line-height:1.65;
    }

    .room-page-gallery{
        grid-template-columns:1fr;
        gap:10px;
    }

    .room-page-gallery-item{
        aspect-ratio:16 / 11;
    }

    .room-page-actions{
        flex-direction:column;
    }

    .room-page-actions .btn{
        width:100%;
        box-sizing:border-box;
    }

}


/* =========================================================
   LIGHTBOX FOTO CAMERE
   ========================================================= */

body.room-lightbox-open{
    overflow:hidden;
}

.room-lightbox{
    position:fixed;
    inset:0;
    z-index:99999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
    box-sizing:border-box;
}

.room-lightbox.is-open{
    display:flex;
}

.room-lightbox-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(0,0,0,.88);
    cursor:zoom-out;
}

.room-lightbox-content{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:min(94vw, 1500px);
    height:min(90vh, 1000px);
    pointer-events:none;
}

.room-lightbox-image{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:8px;
    box-shadow:0 18px 70px rgba(0,0,0,.45);
    user-select:none;
    -webkit-user-select:none;
    -webkit-user-drag:none;
    -webkit-touch-callout:none;
    pointer-events:auto;
    cursor:zoom-out;
}

.room-lightbox-close{
    position:absolute;
    top:18px;
    right:22px;
    z-index:3;
    width:48px;
    height:48px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.92);
    color:var(--tiffany-dark);
    font-size:34px;
    line-height:48px;
    cursor:pointer;
    box-shadow:0 5px 18px rgba(0,0,0,.25);
}

.room-lightbox-close:hover{
    background:var(--tiffany);
    color:#fff;
}

@media (max-width:600px){

    .room-lightbox{
        padding:15px;
    }

    .room-lightbox-content{
        width:96vw;
        height:88vh;
    }

    .room-lightbox-close{
        top:12px;
        right:12px;
        width:44px;
        height:44px;
        line-height:44px;
        font-size:30px;
    }

}

/* =========================================================
   POSIZIONE / DINTORNI
   ========================================================= */

.location-section{
    background:var(--sand);
}

.location-map-card{
    overflow:hidden;
    background:#fff;
    border-radius:24px;
    box-shadow:var(--shadow);
}

.location-map-frame{
    width:100%;
    aspect-ratio:16 / 7;
    min-height:330px;
    background:#e9e9e9;
}

.location-map-frame iframe{
    display:block;
    width:100%;
    height:100%;
    border:0;
}

.location-map-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding:25px 30px;
}

.location-kicker{
    display:block;
    margin-bottom:5px;
    color:var(--tiffany-dark);
    font-size:13px;
    font-weight:600;
    letter-spacing:1.5px;
    text-transform:uppercase;
}

.location-map-content h3{
    margin:0 0 4px;
    font-size:22px;
}

.location-map-content p{
    margin:0;
    color:#666;
}

.location-subsection{
    margin-top:55px;
}

.location-subsection > h3{
    margin:0 0 22px;
    text-align:center;
    font-size:28px;
}

.location-grid{
    display:grid;
    gap:16px;
}

.location-grid-two{
    grid-template-columns:repeat(2,1fr);
}

.location-grid-four{
    grid-template-columns:repeat(4,1fr);
}

.location-info-card{
    display:flex;
    align-items:flex-start;
    gap:15px;
    min-height:125px;
    padding:22px 19px;
    background:#fff;
    color:var(--text);
    border:1px solid rgba(47,62,62,.08);
    border-radius:18px;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
    text-decoration:none;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.location-info-card:hover{
    transform:translateY(-3px);
    border-color:rgba(99,209,198,.45);
    box-shadow:0 13px 30px rgba(0,0,0,.12);
}

.location-icon{
    flex:0 0 42px;
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:rgba(99,209,198,.14);
    font-size:21px;
}

.location-info-card > span:last-child{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.location-info-card strong{
    color:var(--tiffany-dark);
    font-size:17px;
}

.location-info-card span span{
    color:#606767;
    font-size:14px;
    line-height:1.55;
}

.location-business-card{
    min-height:105px;
}

@media (max-width:900px){

    .location-grid-four{
        grid-template-columns:repeat(2,1fr);
    }

    .location-map-frame{
        aspect-ratio:16 / 9;
    }
}

@media (max-width:600px){

    .location-map-content{
        flex-direction:column;
        align-items:stretch;
        padding:22px 18px;
    }

    .location-map-content .btn{
        width:100%;
    }

    .location-subsection{
        margin-top:42px;
    }

    .location-subsection > h3{
        font-size:25px;
    }

    .location-grid-two,
    .location-grid-four{
        grid-template-columns:1fr;
    }

    .location-info-card{
        min-height:0;
    }
}

/* =========================================================
   COOKIE CONSENT
   ========================================================= */

.site-footer-copy{
    margin-bottom:8px;
}

.cookie-settings-link{
    display:inline-block;
    padding:0;
    border:0;
    background:transparent;
    color:rgba(255,255,255,.72);
    font-family:'Poppins',sans-serif;
    font-size:12px;
    line-height:1.5;
    cursor:pointer;
    text-decoration:underline;
    text-underline-offset:2px;
}

.cookie-settings-link:hover{
    color:#fff;
}

.casa-ohana-cookie-banner{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:100000;
    padding:18px;
    background:rgba(255,255,255,.98);
    border-top:1px solid rgba(47,62,62,.12);
    box-shadow:0 -12px 35px rgba(0,0,0,.18);
    font-family:'Poppins',sans-serif;
}

.casa-ohana-cookie-banner[hidden],
.casa-ohana-cookie-preferences[hidden]{
    display:none !important;
}

.casa-ohana-cookie-inner{
    width:min(1120px,100%);
    margin:0 auto;
}

.casa-ohana-cookie-copy h2{
    margin:0 0 7px;
    color:var(--text);
    font-size:18px;
    line-height:1.3;
}

.casa-ohana-cookie-copy p{
    max-width:850px;
    margin:0;
    color:#555;
    font-size:13px;
    line-height:1.6;
}

.casa-ohana-cookie-actions{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    margin-top:14px;
}

.cookie-btn{
    min-width:115px;
    padding:10px 18px;
    border-radius:999px;
    font-family:'Poppins',sans-serif;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
    transition:background .2s ease, transform .2s ease, box-shadow .2s ease;
}

.cookie-btn:hover{
    transform:translateY(-1px);
}

.cookie-btn-primary{
    border:1px solid var(--tiffany);
    background:var(--tiffany);
    color:#fff;
    box-shadow:0 5px 15px rgba(0,0,0,.12);
}

.cookie-btn-primary:hover{
    background:var(--tiffany-dark);
}

.cookie-btn-secondary{
    border:1px solid rgba(47,62,62,.22);
    background:#fff;
    color:var(--text);
}

.cookie-btn-secondary:hover{
    background:#f7f7f7;
}

.casa-ohana-cookie-preferences{
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid rgba(47,62,62,.12);
}

.cookie-preference-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:12px 0;
}

.cookie-preference-row > div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.cookie-preference-row strong{
    color:var(--text);
    font-size:14px;
}

.cookie-preference-row span:not(.cookie-always-active){
    color:#666;
    font-size:12px;
    line-height:1.5;
}

.cookie-always-active{
    flex:0 0 auto;
    color:var(--tiffany-dark);
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
}

.cookie-switch{
    position:relative;
    flex:0 0 48px;
    width:48px;
    height:27px;
    cursor:pointer;
}

.cookie-switch input{
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
}

.cookie-switch span{
    position:absolute;
    inset:0;
    border-radius:999px;
    background:#c9c9c9;
    transition:background .2s ease;
}

.cookie-switch span::after{
    content:'';
    position:absolute;
    top:3px;
    left:3px;
    width:21px;
    height:21px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 2px 5px rgba(0,0,0,.2);
    transition:transform .2s ease;
}

.cookie-switch input:checked + span{
    background:var(--tiffany);
}

.cookie-switch input:checked + span::after{
    transform:translateX(21px);
}

.cookie-switch input:focus-visible + span{
    outline:3px solid rgba(99,209,198,.35);
    outline-offset:2px;
}

.cookie-preferences-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:10px;
}

@media (max-width:600px){

    .casa-ohana-cookie-banner{
        padding:15px 14px;
    }

    .casa-ohana-cookie-copy h2{
        font-size:16px;
    }

    .casa-ohana-cookie-copy p{
        font-size:12px;
        line-height:1.55;
    }

    .casa-ohana-cookie-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .cookie-btn{
        width:100%;
        min-width:0;
        padding:10px 12px;
    }

    .cookie-btn-primary{
        grid-column:span 2;
        grid-row:1;
    }

    .cookie-btn-secondary{
        grid-row:2;
    }

    .cookie-preference-row{
        align-items:flex-start;
    }

    .cookie-preference-row > div{
        max-width:calc(100% - 65px);
    }

    .cookie-preference-row span:not(.cookie-always-active){
        font-size:11px;
    }

    .cookie-preferences-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
}


/* =========================================================
   DOCUMENTI LEGALI
   ========================================================= */

.legal-page {
    min-height: 100vh;
    padding: 80px 20px 70px;
    background:
        linear-gradient(
            rgba(255,255,255,0.86),
            rgba(255,255,255,0.94)
        ),
        none;
}

.legal-page-inner {
    width: min(100%, 980px);
    margin: 0 auto;
}

.legal-back-link {
    display: inline-block;
    margin-bottom: 22px;
    color: #58c9c1;
    font-weight: 600;
    text-decoration: none;
}

.legal-back-link:hover {
    text-decoration: underline;
}

.legal-document {
    background: rgba(255,255,255,0.96);
    border-radius: 28px;
    padding: 44px 52px;
    box-shadow: 0 16px 50px rgba(0,0,0,0.10);
}

.legal-title {
    margin: 0 0 34px;
    color: #58c9c1;
    text-align: center;
}

.legal-section {
    margin-bottom: 30px;
}

.legal-section:last-child {
    margin-bottom: 0;
}

.legal-section h2 {
    margin: 0 0 10px;
    color: #333;
    font-size: 21px;
}

.legal-section p {
    margin: 0 0 10px;
    color: #555;
    font-size: 15px;
    line-height: 1.75;
}

.site-footer-legal {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 8px 0 4px;
    font-size: 12px;
}

.site-footer-legal a {
    color: inherit;
    text-decoration: none;
}

.site-footer-legal a:hover {
    text-decoration: underline;
}

.casa-ohana-contact-privacy-notice {
    margin: 18px auto 22px;
    max-width: 860px;
    color: rgba(60,60,60,0.72);
    font-size: 11px;
    line-height: 1.55;
    text-align: center;
}

.casa-ohana-contact-privacy-notice a {
    color: inherit;
    text-decoration: underline;
}

@media (max-width: 700px) {

    .legal-page {
        padding: 45px 14px 50px;
        background-attachment: scroll;
    }

    .legal-document {
        border-radius: 20px;
        padding: 30px 22px;
    }

    .legal-title {
        font-size: 30px;
    }

    .legal-section h2 {
        font-size: 19px;
    }

    .legal-section p {
        font-size: 14px;
        line-height: 1.7;
    }

    .site-footer-legal {
        font-size: 11px;
        gap: 6px;
    }

    .casa-ohana-contact-privacy-notice {
        font-size: 10px;
        padding: 0 8px;
    }
}


/* =========================================================
   CASA OHANA — NEW INTEGRATIONS
   ========================================================= */

/* Cloudflare Turnstile */
.casa-ohana-turnstile{
  margin:0 0 22px;
  display:flex;
  justify-content:flex-start;
  min-height:65px;
}

/* Google reviews */
.google-reviews-section{
  background:var(--sand);
  text-align:center;
}

.google-reviews-attribution{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:-20px auto 35px;
  font-family:'Poppins',sans-serif;
  font-size:14px;
  color:var(--text);
}

.google-maps-text{
  font-family:Arial,sans-serif;
  font-weight:500;
}

.google-reviews-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:25px;
}

.google-review-card{
  display:flex;
  flex-direction:column;
  text-align:left;
  background:#fff;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:25px;
  min-height:100%;
}

.google-review-rating{
  margin:0 0 14px;
  color:#d19a43;
  letter-spacing:2px;
  font-size:16px;
}

.google-review-text{
  margin:0 0 20px;
  line-height:1.7;
  flex:1;
}

.google-review-author{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  font-size:13px;
  margin-bottom:14px;
}

.google-review-author a{
  font-weight:600;
  text-decoration:none;
}

.google-review-source{
  align-self:flex-start;
  font-size:13px;
  color:var(--text);
  text-decoration:underline;
}

.google-reviews-order{
  max-width:850px;
  margin:28px auto 24px;
  font-size:12px;
  line-height:1.6;
}

.google-reviews-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
}

.google-reviews-leave{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 25px;
  color:var(--text);
  border:1px solid rgba(47,62,62,.22);
  border-radius:999px;
  text-decoration:none;
  font-weight:600;
  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease;
}

.google-reviews-leave:hover{
  background:#fff;
  border-color:var(--tiffany);
  transform:translateY(-2px);
}

/* Social links in the existing footer */
.site-footer-social{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:8px 0;
}

.site-footer-social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  color:var(--text);
  text-decoration:none;
  transition:transform .2s ease, color .2s ease;
}

.site-footer-social-link svg{
  display:block;
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.site-footer-social-facebook svg{
  fill:currentColor;
  stroke:none;
}

.site-footer-social-link:hover{
  color:var(--tiffany-dark);
  transform:translateY(-2px);
}

.site-footer-social-dot{
  fill:currentColor;
  stroke:none;
}

@media (max-width:900px){
  .google-reviews-grid{
    grid-template-columns:1fr;
    max-width:650px;
    margin:0 auto;
  }
}

@media (max-width:600px){
  .casa-ohana-turnstile{
    justify-content:center;
  }

  .google-reviews-attribution{
    margin-top:-15px;
    flex-wrap:wrap;
  }

  .google-review-card{
    padding:22px;
  }

  .google-reviews-actions{
    flex-direction:column;
  }

  .google-reviews-actions .btn,
  .google-reviews-leave{
    width:100%;
  }
}
