
html,body{margin:0;padding:0;background:#eef7f8;font-family:Arial,sans-serif}
.page{position:relative;width:min(100%,1102px);margin:0 auto;background:#fff;line-height:0}
.page img.mockup{display:block;width:100%;height:auto}
.hotspot{position:absolute;display:block;z-index:10;background:transparent;border-radius:8px}
.hotspot:focus{outline:3px solid rgba(212,164,58,.85);outline-offset:2px}
.booking-anchor{position:absolute;top:42%;left:0;width:1px;height:1px}
.price-cover{position:absolute;background:#fff;z-index:8;border-radius:4px}
.quote-btn{position:absolute;z-index:9;background:#d4a43a;color:#073b63;font-weight:700;font-size:clamp(8px,1.3vw,15px);border-radius:999px;padding:.5% 1.2%;line-height:1.2;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:700px){
  body{background:#fff}
}


/* Live FAQ accordion overlay */
.faq-live-panel{
  position:absolute;
  z-index:12;
  left:14.5%;
  top:31.2%;
  width:71%;
  padding:1.2%;
  background:rgba(255,255,255,.97);
  border-radius:18px;
  box-shadow:0 10px 30px rgba(7,59,99,.12);
  line-height:1.35;
}
.faq-live-panel details{
  background:#fff;
  border:1.5px solid #b9d6dc;
  border-radius:12px;
  margin:.7% 0;
  overflow:hidden;
}
.faq-live-panel summary{
  cursor:pointer;
  list-style:none;
  padding:1.2% 2%;
  color:#073b63;
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(11px,1.55vw,20px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.faq-live-panel summary::-webkit-details-marker{display:none}
.faq-live-panel summary::after{
  content:"⌄";
  font-family:Arial,sans-serif;
  font-size:1.15em;
}
.faq-live-panel details[open] summary::after{content:"⌃"}
.faq-live-panel p{
  margin:0;
  padding:0 2% 1.6%;
  color:#234d66;
  font-size:clamp(9px,1.15vw,15px);
}
@media(max-width:700px){
  .faq-live-panel{
    left:7%;
    width:86%;
    top:30.5%;
    padding:1.8%;
  }
  .faq-live-panel summary{font-size:clamp(10px,3.1vw,16px)}
  .faq-live-panel p{font-size:clamp(9px,2.65vw,14px)}
}




/* Positions match the printed form boxes in the mockup */
.live-booking-form.compact .name{
  left:0%;
  top:7.2%;
  width:48.3%;
  height:11.5%;
}
.live-booking-form.compact .email{
  left:51.7%;
  top:7.2%;
  width:48.3%;
  height:11.5%;
}
.live-booking-form.compact .service{
  left:0%;
  top:28.2%;
  width:48.3%;
  height:11.5%;
}
.live-booking-form.compact .date{
  left:51.7%;
  top:28.2%;
  width:48.3%;
  height:11.5%;
}
.live-booking-form.compact .location{
  left:0%;
  top:49.1%;
  width:100%;
  height:11.5%;
}
.live-booking-form.compact .message{
  left:0%;
  top:68.5%;
  width:100%;
  height:17.4%;
}
.live-booking-form.compact .submit-request{
  position:absolute;
  left:0%;
  top:89.2%;
  width:100%;
  height:10.8%;
  border:0;
  border-radius:9px;
  background:#073b63;
  color:#fff;
  font-weight:800;
  font-size:clamp(9px,1.05vw,13px);
  cursor:pointer;
}
.live-booking-form.compact .submit-request:hover{
  background:#0f597e;
}

@media(max-width:700px){
  .live-booking-form.compact{
    left:4.2%;
    top:42.0%;
    width:47.7%;
    height:29.0%;
  }
  .live-booking-form.compact input,
  .live-booking-form.compact select,
  .live-booking-form.compact textarea{
    padding:3px 4px;
    font-size:clamp(7px,1.7vw,10px);
  }
  .live-booking-form.compact .submit-request{
    font-size:clamp(7px,1.8vw,10px);
  }
}



/* Clearly labeled working appointment form */
.live-booking-form.labeled{
  position:absolute;
  z-index:20;
  left:4.2%;
  top:42.1%;
  width:46.7%;
  height:29.2%;
  padding:1.15% 1.25% 1.0%;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(7,59,99,.12);
  border-radius:14px;
  box-shadow:0 6px 18px rgba(7,59,99,.07);
  line-height:1.08;
  color:#073b63;
}
.live-booking-form.labeled .form-title{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(13px,1.65vw,22px);
  margin-bottom:1.0%;
  color:#073b63;
}
.live-booking-form.labeled .form-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px 8px;
}
.live-booking-form.labeled label{
  display:grid;
  gap:2px;
  font-size:clamp(7px,.78vw,10px);
  font-weight:700;
  color:#073b63;
}
.live-booking-form.labeled label.full{
  grid-column:1/-1;
}
.live-booking-form.labeled input,
.live-booking-form.labeled select,
.live-booking-form.labeled textarea{
  width:100%;
  border:1px solid #b7ccd5;
  border-radius:6px;
  padding:4px 6px;
  background:#fff;
  color:#173f59;
  font:inherit;
  font-size:clamp(7px,.78vw,10px);
  font-weight:400;
  outline:none;
}
.live-booking-form.labeled textarea{
  resize:none;
  min-height:36px;
}
.live-booking-form.labeled input:focus,
.live-booking-form.labeled select:focus,
.live-booking-form.labeled textarea:focus{
  border-color:#0f7c8a;
  box-shadow:0 0 0 2px rgba(15,124,138,.10);
}
.live-booking-form.labeled button{
  width:100%;
  margin-top:5px;
  padding:6px 8px;
  border:0;
  border-radius:7px;
  background:#073b63;
  color:#fff;
  font-weight:800;
  font-size:clamp(7px,.85vw,10px);
  cursor:pointer;
}
.live-booking-form.labeled button:hover{
  background:#0f597e;
}
@media(max-width:700px){
  .live-booking-form.labeled{
    left:4.2%;
    top:42.1%;
    width:46.7%;
    height:29.2%;
    padding:1.1%;
    border-radius:10px;
  }
  .live-booking-form.labeled .form-title{
    font-size:clamp(8px,2.0vw,12px);
  }
  .live-booking-form.labeled .form-fields{
    gap:3px 5px;
  }
  .live-booking-form.labeled label{
    font-size:clamp(5px,1.3vw,8px);
  }
  .live-booking-form.labeled input,
  .live-booking-form.labeled select,
  .live-booking-form.labeled textarea{
    padding:2px 3px;
    font-size:clamp(5px,1.25vw,8px);
  }
  .live-booking-form.labeled textarea{
    min-height:26px;
  }
  .live-booking-form.labeled button{
    margin-top:3px;
    padding:4px 5px;
    font-size:clamp(5px,1.3vw,8px);
  }
}

/* Official phone links */
.contact-card-link{z-index:14}
.faq-live-panel a{color:#0f6374;font-weight:700;text-decoration:none}
.faq-live-panel a:hover{text-decoration:underline}


/* Clean rebuilt call/text cards */
.contact-visual-card{
  position:absolute;
  z-index:16;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4%;
  box-sizing:border-box;
  padding:0 2.2%;
  background:#ffffff;
  border:2px solid #8da6bf;
  border-radius:12px;
  text-decoration:none;
  color:#073b63;
  line-height:1;
  box-shadow:none;
  overflow:hidden;
}
.contact-visual-card:focus{outline:3px solid rgba(212,164,58,.85);outline-offset:2px}
.contact-visual-card .icon{
  display:block;
  flex:0 0 auto;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  filter:none;
  box-shadow:none;
}
.contact-visual-card .textwrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  flex:1;
  min-width:0;
}
.contact-visual-card.small .icon{width:17%;height:58%;}
.contact-visual-card.small .label{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(8px,1.45vw,19px);
  line-height:1;
  margin-bottom:2px;
}
.contact-visual-card.small .value{
  font-family:Arial,sans-serif;
  font-weight:700;
  font-size:clamp(7px,1.12vw,15px);
  line-height:1.05;
  white-space:nowrap;
}
.contact-visual-card.large{
  flex-direction:column;
  gap:4%;
  padding:3.8% 3.5% 5%;
}
.contact-visual-card.large .icon{width:22%;height:23%;}
.contact-visual-card.large .label{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(13px,1.5vw,21px);
  line-height:1;
  margin-top:1%;
}
.contact-visual-card.large .value{
  font-family:Arial,sans-serif;
  font-weight:700;
  font-size:clamp(10px,1.2vw,17px);
  line-height:1.1;
  white-space:nowrap;
  margin-top:2%;
}
.contact-visual-card.large .hint{
  font-family:Arial,sans-serif;
  font-weight:400;
  font-size:clamp(9px,1.0vw,13px);
  line-height:1.2;
  color:#234d66;
  margin-top:7%;
}
.contact-visual-card.phone .icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%23073b63' d='M22.3 8.7c1.4-1.4 3.6-1.8 5.5-.9l8 3.6c2.1.9 3.3 3.1 3 5.4l-1 7c-.2 1.2.2 2.5 1.1 3.4l4.8 4.8c.9.9 2.2 1.3 3.4 1.1l7-1c2.3-.3 4.5.9 5.4 3l3.6 8c.9 1.9.5 4.1-.9 5.5l-4.7 4.7c-2.4 2.4-5.9 3.4-9.2 2.7C29.1 51.7 12.3 34.9 8 15.8c-.7-3.3.3-6.8 2.7-9.2l4.7-4.7z'/%3E%3C/svg%3E")}
.contact-visual-card.text .icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='none' stroke='%23073b63' stroke-width='4.6' stroke-linecap='round' stroke-linejoin='round' d='M32 12c-12.9 0-23.5 8.6-23.5 19.2 0 6.2 3.7 11.8 9.6 15.3l-2.9 10.7 12.1-6.2c1.6.2 3.1.3 4.7.3 12.9 0 23.5-8.6 23.5-19.2S44.9 12 32 12z'/%3E%3C/svg%3E")}
@media(max-width:700px){
  .contact-visual-card{border-width:1.5px;border-radius:8px;padding:0 2%;}
  .contact-visual-card.small .label{font-size:clamp(6px,1.7vw,10px);margin-bottom:1px;}
  .contact-visual-card.small .value{font-size:clamp(5px,1.45vw,9px);}
  .contact-visual-card.large .label{font-size:clamp(8px,1.8vw,12px);}
  .contact-visual-card.large .value{font-size:clamp(6px,1.5vw,10px);}
  .contact-visual-card.large .hint{font-size:clamp(5px,1.3vw,9px);}
}


/* v19: refined cards to match the built-in email box style more closely */
.contact-visual-card{
  background:#fff;
  border:1.8px solid #8ea6bc;
  border-radius:13px;
  box-shadow:none !important;
  color:#073b63;
  transform:scale(1.018);
  transform-origin:center center;
}
.contact-visual-card::before,
.contact-visual-card::after{box-shadow:none !important;filter:none !important}
.contact-visual-card .icon{
  filter:none !important;
  box-shadow:none !important;
  opacity:1;
  background-size:86% 86%;
}
.contact-visual-card.small{
  padding:0 3.2%;
  gap:4.8%;
}
.contact-visual-card.small .icon{
  width:18.5%;
  height:66%;
}
.contact-visual-card.small .label{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(9px,1.32vw,18px);
  line-height:1;
  margin-bottom:2px;
  letter-spacing:0;
}
.contact-visual-card.small .value{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(8px,1.02vw,14px);
  line-height:1;
  white-space:nowrap;
  letter-spacing:0;
}
.contact-visual-card.large{
  padding:3.8% 3.2% 4.5%;
  gap:2%;
  border-radius:14px;
  transform:scale(1.01);
}
.contact-visual-card.large .icon{
  width:22%;
  height:23%;
  background-size:80% 80%;
}
.contact-visual-card.large .label{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(13px,1.55vw,20px);
  line-height:1;
  margin-top:1%;
}
.contact-visual-card.large .value{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:clamp(11px,1.17vw,16px);
  line-height:1.06;
  margin-top:1%;
  white-space:nowrap;
}
.contact-visual-card.large .hint{
  font-family:Arial,sans-serif;
  font-weight:400;
  font-size:clamp(9px,.98vw,13px);
  line-height:1.1;
  color:#234d66;
  margin-top:8%;
}
@media(max-width:700px){
  .contact-visual-card{border-width:1.4px;border-radius:9px;transform:scale(1.01)}
  .contact-visual-card.small{padding:0 2.6%;gap:4%;}
  .contact-visual-card.small .icon{width:18%;height:62%;background-size:84% 84%;}
  .contact-visual-card.small .label{font-size:clamp(6px,1.7vw,10px)}
  .contact-visual-card.small .value{font-size:clamp(5px,1.4vw,8px)}
  .contact-visual-card.large .label{font-size:clamp(8px,1.9vw,12px)}
  .contact-visual-card.large .value{font-size:clamp(6px,1.45vw,10px)}
  .contact-visual-card.large .hint{font-size:clamp(5px,1.25vw,8px)}
}


/* v22: calibrated top navigation hit targets */
.navhot{cursor:pointer;touch-action:manipulation;}
.navhot:hover{background:rgba(255,255,255,.035);}
@media (pointer:coarse){.navhot{top:0!important;height:3.6%!important;}}


/* NNA badge overlay */
.nna-badge-overlay{position:absolute;z-index:18;display:block;text-decoration:none}
.nna-badge-overlay img{display:block;width:100%;height:100%;object-fit:contain}

/* v36: clean wedding package cards — fully covers the old baked-in package cards */
.wedding-packages-rebuilt{
  position:absolute; z-index:14; left:2.2%; top:66.15%; width:95.6%; height:15.15%;
  box-sizing:border-box; padding:.35%;
  display:grid; grid-template-columns:repeat(3,1fr); gap:.8%;
  background:#f7fbfa; line-height:1.15;
}
.wedding-package-card{
  position:relative; overflow:hidden; border-radius:7px; background:#fff;
  box-shadow:0 1px 4px rgba(7,59,99,.12); color:#073b63; font-family:Georgia,serif;
}
.wedding-package-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:31%;
  background-repeat:no-repeat; background-size:cover; background-position:center;
}
.wedding-package-card.simple::before{background-image:url('assets/pkg_simple_visual.png');}
.wedding-package-card.elopement::before{background-image:url('assets/pkg_elopement_visual.png');}
.wedding-package-card.photo::before{background-image:url('assets/pkg_photo_visual.png');}
.wedding-package-content{
  position:absolute; left:31%; top:0; right:0; bottom:0; box-sizing:border-box;
  padding:4.3% 4.2% 3.8%; background:#fff; display:flex; flex-direction:column;
}
.wedding-package-title{font-weight:700;font-size:clamp(10px,1.38vw,18px);line-height:1.02;margin:0;color:#073b63;}
.wedding-package-subtitle{font-family:Arial,sans-serif;font-weight:700;font-size:clamp(6px,.70vw,10px);line-height:1.1;color:#c89221;margin:1.2% 0 4.2%;}
.wedding-package-features{list-style:none;padding:0;margin:0;font-family:Arial,sans-serif;font-size:clamp(6px,.73vw,10px);line-height:1.2;color:#073b63;}
.wedding-package-features li{position:relative;padding-left:1.25em;margin:1.1% 0;}
.wedding-package-features li::before{content:"✓";position:absolute;left:0;color:#c89221;font-weight:900;}
.wedding-package-price{margin-top:auto;padding-top:3.2%;border-top:1px solid rgba(200,146,33,.65);font-weight:700;font-size:clamp(8px,1.05vw,14px);line-height:1;color:#073b63;white-space:nowrap;}
.wedding-package-price span{color:#c89221;}
@media(max-width:700px){
 .wedding-packages-rebuilt{gap:.55%;padding:.3%;}
 .wedding-package-card::before{width:28%;}
 .wedding-package-content{left:28%;padding:4% 3.5% 3.5%;}
 .wedding-package-title{font-size:clamp(7px,2vw,11px)}
 .wedding-package-subtitle{font-size:clamp(5px,1.15vw,7px);margin-bottom:3%}
 .wedding-package-features{font-size:clamp(5px,1.12vw,7px);line-height:1.14}
 .wedding-package-price{font-size:clamp(6px,1.55vw,9px)}
}
/* v37: clean complete package imagery — source slices exclude old price overlays */
.wedding-package-card.elopement::before{background-size:cover;background-position:center center;}
.wedding-package-card.photo::before{background-size:cover;background-position:center center;}

/* v39 dedicated mobile experience. Desktop mockup remains unchanged. */
.mobile-site{display:none}
@media(max-width:700px){
 html{scroll-behavior:smooth} body{background:#f7fbfa;color:#073b63;padding-bottom:68px}.page{display:none!important}
 .mobile-site{display:block;line-height:1.45;min-height:100vh;font-family:Arial,sans-serif;background:#f7fbfa}
 .mobile-header{position:sticky;top:0;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:rgba(255,255,255,.97);border-bottom:1px solid #d9e8e9;backdrop-filter:blur(8px)}
 .mobile-brand{text-decoration:none;color:#073b63;display:flex;flex-direction:column;line-height:.92}.mobile-brand span{font:700 11px/1 Arial;letter-spacing:3px;color:#c89221}.mobile-brand strong{font:700 20px/1 Georgia,serif;letter-spacing:.5px}.mobile-brand small{font-size:8px;letter-spacing:.5px;margin-top:4px;color:#537485}
 .mobile-book-top,.mobile-actions a,.mobile-sticky a{min-height:44px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800;border-radius:999px}.mobile-book-top{background:#d4a43a;color:#073b63;padding:0 18px}
 .mobile-menu{display:flex;overflow-x:auto;gap:7px;padding:9px 12px;background:#fff;border-bottom:1px solid #e4eeee;scrollbar-width:none}.mobile-menu::-webkit-scrollbar{display:none}.mobile-menu a{flex:0 0 auto;text-decoration:none;color:#073b63;background:#eef7f8;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:700}
 .mobile-hero{padding:36px 20px 26px;background:linear-gradient(180deg,#eef8f7 0%,#fff 100%);text-align:center}.mobile-eyebrow{margin:0 0 8px!important;font-size:11px!important;font-weight:900;letter-spacing:2px;color:#c89221}.mobile-hero h1{font:700 34px/1.05 Georgia,serif;margin:0 auto 14px;max-width:520px;color:#073b63}.mobile-hero>p{font-size:16px;line-height:1.55;margin:0 auto 22px;max-width:520px;color:#3f6172}
 .mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-width:480px;margin:0 auto}.mobile-actions a{border:1.5px solid #9fc8cc;color:#073b63;background:#fff;padding:11px 12px}.mobile-actions .primary{grid-column:1/-1;background:#073b63;color:#fff;border-color:#073b63}
 .mobile-services,.mobile-form-section{padding:26px 16px 30px}.mobile-services h2,.mobile-form-section h2{font:700 26px/1.1 Georgia,serif;text-align:center;margin:0 0 16px;color:#073b63}.mobile-service-card{display:block;text-decoration:none;color:#073b63;background:#fff;border:1px solid #d6e8e9;border-radius:16px;padding:18px;margin:10px 0;box-shadow:0 5px 18px rgba(7,59,99,.05)}.mobile-service-card strong{display:block;font:700 20px/1.15 Georgia,serif;margin-bottom:6px}.mobile-service-card span{display:block;color:#55717f;font-size:14px;line-height:1.45}.mobile-service-card b{display:block;margin-top:11px;color:#b77f0c;font-size:13px}
 .mobile-trust{margin:0 16px 28px;padding:22px 18px;text-align:center;background:#073b63;color:#fff;border-radius:18px;display:flex;flex-direction:column;gap:7px}.mobile-trust strong{font:700 21px Georgia,serif}.mobile-trust span{font-size:13px;opacity:.9}.mobile-trust a{color:#fff;font-weight:700;font-size:13px}
 .mobile-footer{text-align:center;padding:0 16px 28px;color:#69818c;font-size:11px}.mobile-footer a{color:#55717f}
 .mobile-sticky{position:fixed;z-index:80;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:7px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #d5e5e6;backdrop-filter:blur(10px)}.mobile-sticky a{background:#eef7f8;color:#073b63;font-size:13px}.mobile-sticky .primary{background:#d4a43a;color:#073b63}
 .mobile-booking-form{background:#fff;border:1px solid #d6e8e9;border-radius:18px;padding:18px;box-shadow:0 6px 20px rgba(7,59,99,.06)}.mobile-booking-form label{display:block;font-size:13px;font-weight:800;color:#234d66;margin:0 0 14px}.mobile-booking-form input,.mobile-booking-form select,.mobile-booking-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;border:1.5px solid #b8d3d6;border-radius:10px;background:#fff;color:#173f56;font:16px Arial,sans-serif;padding:12px}.mobile-booking-form textarea{resize:vertical}.mobile-booking-form button{width:100%;min-height:50px;border:0;border-radius:999px;background:#073b63;color:#fff;font-size:15px;font-weight:900}.mobile-form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
}
@media(max-width:380px){.mobile-hero h1{font-size:30px}.mobile-form-row{grid-template-columns:1fr}.mobile-menu a{padding:7px 10px}}


/* v40 branded mobile refinement: retain original Coastal Sign & Go identity */
@media(max-width:760px){
 .mobile-site{background:linear-gradient(180deg,#f7fcfb 0,#fff 55%,#eef8f7 100%)}
 .mobile-header{min-height:72px;padding:7px 14px;background:rgba(255,255,255,.97);box-shadow:0 2px 14px rgba(7,59,99,.08)}
 .mobile-brand{display:block;width:145px;line-height:1}
 .mobile-brand img{display:block;width:100%;height:58px;object-fit:contain;object-position:left center}
 .mobile-hero{position:relative;overflow:hidden;padding-top:28px;background:linear-gradient(180deg,rgba(238,248,247,.97),rgba(255,255,255,.98)),url('assets/coastal_sign_go_website_mockup.png') center top/cover no-repeat}
 .mobile-hero:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-18px;height:44px;border-radius:50% 50% 0 0;background:#fff;opacity:.95}
 .mobile-home-hero{padding-top:18px}
 .mobile-portrait-wrap{width:150px;height:185px;margin:0 auto 10px;overflow:hidden;position:relative;z-index:1}
 .mobile-portrait{width:100%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply}
 .mobile-eyebrow,.mobile-hero h1,.mobile-hero>p,.mobile-actions{position:relative;z-index:2}
 .mobile-service-card{border-color:#c8e0df;border-top:3px solid #d4a43a;background:linear-gradient(135deg,#fff 72%,#f2f9f8);box-shadow:0 7px 20px rgba(7,59,99,.07)}
 .mobile-services h2:after,.mobile-form-section h2:after{content:"";display:block;width:54px;height:3px;margin:9px auto 0;border-radius:3px;background:#d4a43a}
 .mobile-trust{position:relative;overflow:hidden;background:linear-gradient(145deg,#073b63,#0b5476);border:1px solid rgba(212,164,58,.7);box-shadow:0 8px 24px rgba(7,59,99,.14)}
 .mobile-trust-logo{width:130px;height:76px;object-fit:contain;margin:0 auto 4px;background:#fff;border-radius:12px;padding:5px;box-sizing:border-box}
 .mobile-book-top,.mobile-sticky .primary{box-shadow:0 3px 9px rgba(183,127,12,.18)}
}

/* v41 mobile hero: preserve the original logo, portrait and ocean-forward identity */
@media(max-width:760px){
 .mobile-home-hero{padding:0 20px 30px;background:linear-gradient(180deg,#dff3f2 0%,#f7fcfb 49%,#fff 100%)}
 .mobile-coastal-hero{position:relative;height:310px;margin:0 -20px 16px;overflow:hidden;background:url('assets/coastal_sign_go_website_mockup.png') center 10%/cover no-repeat}
 .mobile-coastal-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(229,246,244,.20) 44%,rgba(247,252,251,.92) 100%)}
 .mobile-hero-logo{position:absolute;z-index:4;top:13px;left:50%;transform:translateX(-50%);width:168px;height:92px;object-fit:contain;border-radius:16px;box-shadow:0 5px 18px rgba(7,59,99,.13)}
 .mobile-coastal-hero .mobile-portrait-wrap{position:absolute;z-index:3;left:50%;bottom:2px;transform:translateX(-50%);width:188px;height:228px;margin:0;overflow:hidden}
 .mobile-coastal-hero .mobile-portrait{width:100%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply;filter:drop-shadow(0 7px 8px rgba(7,59,99,.12))}
 .mobile-wave{position:absolute;z-index:2;left:-8%;right:-8%;bottom:-18px;height:72px;border-radius:50% 48% 0 0;background:rgba(255,255,255,.94);box-shadow:0 -5px 20px rgba(41,133,151,.10)}
 .mobile-home-hero:after{display:none}
 .mobile-home-hero .mobile-eyebrow{margin-top:0!important}
}
@media(max-width:380px){
 .mobile-coastal-hero{height:286px}
 .mobile-hero-logo{width:150px;height:82px}
 .mobile-coastal-hero .mobile-portrait-wrap{width:170px;height:207px}
}

/* v42 dedicated mobile homepage structure */
@media(max-width:760px){
 .mobile-header{position:sticky;top:0;z-index:90}
 .mobile-menu-toggle{width:48px;height:48px;border:0;border-radius:50%;background:#eef7f8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:0;cursor:pointer}
 .mobile-menu-toggle span{display:block;width:22px;height:2px;background:#073b63;border-radius:3px;transition:transform .2s ease,opacity .2s ease}
 .mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
 .mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
 .mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
 .mobile-menu-dropdown{display:none;position:fixed;z-index:85;top:72px;left:0;right:0;max-height:calc(100% - 130px);overflow:auto;padding:10px 16px 18px;background:rgba(255,255,255,.99);border-bottom:1px solid #d9e8e9;box-shadow:0 12px 24px rgba(7,59,99,.12)}
 .mobile-menu-dropdown.is-open{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .mobile-menu-dropdown a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-radius:12px;background:#eef7f8;color:#073b63;text-decoration:none;font-size:13px;font-weight:800;box-sizing:border-box}
 .mobile-spanish{display:inline-block!important;margin:-8px auto 18px!important;padding:6px 13px;border-radius:999px;background:#fff7df;color:#8b620b!important;font-size:13px!important;font-weight:900!important;letter-spacing:.2px}
 .mobile-about{margin:0;padding:34px 20px 30px;display:grid;grid-template-columns:105px 1fr;gap:18px;align-items:center;background:#fff;border-top:1px solid #e1eeee;border-bottom:1px solid #e1eeee}
 .mobile-about-photo{width:105px;height:142px;overflow:hidden;border-radius:52px 52px 18px 18px;background:#e8f6f5;border:2px solid #d4a43a;box-shadow:0 6px 18px rgba(7,59,99,.09)}
 .mobile-about-photo img{width:100%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply}
 .mobile-about .mobile-eyebrow{text-align:left;margin:0 0 5px!important}
 .mobile-about h2{margin:0 0 8px;color:#073b63;font:700 25px/1.08 Georgia,serif}
 .mobile-about p:not(.mobile-eyebrow){margin:0 0 9px;color:#506f7e;font-size:14px;line-height:1.5}
 .mobile-about .mobile-about-credentials{font-size:12px!important;font-weight:800;color:#8b620b!important}
 .mobile-inline-link{color:#073b63;font-size:13px;font-weight:900;text-decoration:none}
 .mobile-services{padding-top:34px;background:linear-gradient(180deg,#f7fcfb,#fff)}
 .mobile-services>.mobile-eyebrow{text-align:center;margin-bottom:5px!important}
 .mobile-service-card{display:block}
 .mobile-service-card span{font-size:14px;line-height:1.55}
 .mobile-service-card a{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;color:#a9750c;font-size:13px;font-weight:900;text-decoration:none}
 .mobile-service-card b{display:none}
 .mobile-spanish-trust{display:inline-block;margin:3px auto;padding:5px 11px;border:1px solid rgba(212,164,58,.8);border-radius:999px;color:#fff;font-weight:900;opacity:1!important}
}
@media(max-width:390px){.mobile-about{grid-template-columns:88px 1fr;gap:14px;padding-left:16px;padding-right:16px}.mobile-about-photo{width:88px;height:122px}.mobile-about h2{font-size:22px}.mobile-menu-dropdown.is-open{grid-template-columns:1fr}}
/* v43: clean mobile hero — use original coastal artwork only; no duplicate logo/portrait overlays */
@media (max-width: 760px){
  .mobile-coastal-hero .mobile-hero-logo,
  .mobile-coastal-hero .mobile-portrait-wrap,
  .mobile-coastal-hero .mobile-wave{display:none!important}
  .mobile-coastal-hero{
    height:auto!important;
    aspect-ratio:1536/1024;
    background-image:url('assets/coastal_sign_go_website_mockup.png')!important;
    background-size:cover!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
  }
  .mobile-coastal-hero:before{display:none!important}
}
/* v44: mobile hero is a clean crop of the desktop artwork only — no desktop nav/actions/services */
@media (max-width: 760px){
  .mobile-coastal-hero{
    aspect-ratio:1122/534!important;
    background-image:url('assets/coastal_mobile_hero_clean.png')!important;
    background-size:100% 100%!important;
    background-position:center!important;
  }
}

/* v47: conservative mobile fix — clean v44 desktop preserved; mobile hero ends before desktop action strip */
@media (max-width: 760px){
  .mobile-coastal-hero{
    aspect-ratio:1122/500!important;
    background-image:url('assets/coastal_mobile_hero_clean.png')!important;
    background-size:100% 100%!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
  }
}

/* v49 manual mobile/desktop view switch */
@media(max-width:760px){
 html.force-desktop body{min-width:1180px;overflow-x:auto}
 html.force-desktop .mobile-site{display:none!important}
 html.force-desktop .page{display:block!important;position:relative!important;width:1180px!important;max-width:none!important;margin:0 auto!important}
 html.force-desktop .page .mockup{display:block!important;width:100%!important;height:auto!important}
 html.force-desktop .mobile-view-link{display:block!important;position:fixed;right:14px;bottom:14px;z-index:99999;background:#073b63;color:#fff;padding:10px 14px;border-radius:999px;text-decoration:none;font:700 13px Arial,sans-serif;box-shadow:0 3px 12px rgba(0,0,0,.22)}
}
.mobile-view-link{display:none}
.desktop-view-link{font-weight:700;text-decoration:underline}
.mobile-brand img,.mobile-trust-logo{object-fit:contain}

/* v51 corrected mobile components */
@media(max-width:760px){
  .mobile-header .mobile-book-top{display:none!important}
  .mobile-faq-section{padding-bottom:34px}
  .mobile-faq-list{position:static!important;inset:auto!important;width:auto!important;height:auto!important;padding:0!important;display:block!important;background:transparent!important}
  .mobile-faq-list details{display:block!important;position:static!important;width:auto!important;margin:10px 0!important;padding:14px 16px!important;border:1px solid #d8c27f!important;border-radius:14px!important;background:#fff!important;box-shadow:0 5px 16px rgba(7,59,99,.05)!important}
  .mobile-faq-list summary{font:700 17px/1.25 Georgia,serif!important;color:#073b63!important;cursor:pointer!important;padding-right:24px!important}
  .mobile-faq-list p{font:14px/1.55 Arial,sans-serif!important;color:#55717f!important;margin:10px 0 0!important}
  .mobile-faq-list a{color:#0f6374!important}
  .mobile-starting-price{display:block!important;color:#a9750c!important;font-size:15px!important;font-weight:900!important;margin:4px 0 7px!important}
}

/* v52 mobile About + Notary content parity */
@media(max-width:760px){
 .mobile-about-full,.mobile-notary-full-list{padding:24px 18px 38px;background:#fff}
 .mobile-about-full h2,.mobile-notary-full-list>h2{text-align:center;font:700 26px/1.2 Georgia,serif;color:#073b63;margin:0 0 12px}
 .mobile-about-full p{font:15px/1.65 Arial,sans-serif;color:#4f6978;margin:0 0 15px}
 .mobile-about-full .mobile-about-role{text-align:center;font-weight:700;color:#a9750c;margin-top:-5px}
 .mobile-about-full .mobile-about-story-title{margin-top:27px}
 .mobile-notary-intro{text-align:center;font:15px/1.5 Arial,sans-serif;color:#55717f;margin:0 0 18px}
 .mobile-notary-item{border:1px solid #dfc98c;border-radius:14px;padding:15px 16px;margin:0 0 12px;background:#fff;box-shadow:0 5px 15px rgba(7,59,99,.05)}
 .mobile-notary-item h3{font:700 18px/1.25 Georgia,serif;color:#073b63;margin:0 0 6px}
 .mobile-notary-item p{font:14px/1.55 Arial,sans-serif;color:#55717f;margin:0}
 .mobile-notary-note{font:13px/1.5 Arial,sans-serif;color:#55717f;background:#eef7fa;border-radius:12px;padding:13px;margin-top:18px}
}
