:root{
  --green:#a6c5a6;
  --green-soft:#c1d8c3;
  --green-strong:#8fb695;
  --green-pale:#eaf3eb;
  --ink:#090909;
  --muted:#4e514f;
  --paper:#fff;
  --card:#f4f4f4;
  --line:#d9ded9;
  --sans:Lato,Arial,sans-serif;
  --page-title-size:clamp(40px,4.3vw,60px);
  --section-title-size:clamp(34px,3.2vw,48px);
  --card-title-size:clamp(30px,2.5vw,36px);
  --copy-size:20px;
  --copy-line-height:1.45;
}

*{box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,p{margin-top:0}

.site-header{
  width:100%;
  min-height:126px;
  padding:8px clamp(24px,4.2vw,64px) 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  background:#fff;
  border-bottom:1px solid #d9ded9;
  position:relative;
  z-index:10;
}
.site-logo{display:block;width:clamp(350px,30vw,440px);height:128px;flex:0 0 auto;overflow:hidden}
.site-logo img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 45%}
.site-nav{display:flex;align-items:center;gap:clamp(28px,5vw,70px)}
.site-nav a{position:relative;padding:13px 2px;color:#111;text-decoration:none;font-size:clamp(15px,1.45vw,20px);font-weight:500;white-space:nowrap}
.site-nav a::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,var(--green-strong) 20%,var(--green-strong) 80%,transparent);transform:scaleX(0);transform-origin:center;transition:transform .24s ease}
.site-nav a:hover::after,.site-nav a[aria-current="page"]::after{transform:scaleX(1)}

.primary-button,.small-button,.book-online{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  border:0;
  border-radius:12px;
  background:#0b0b0b;
  color:#fff;
  text-decoration:none;
  font-weight:600;
  transition:transform .18s ease,background .18s ease;
}
.primary-button:hover,.small-button:hover,.book-online:hover{background:#2b2b2b;transform:translateY(-2px)}

/* Home */
.home-hero{
  height:650px;
  min-height:625px;
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,55%) minmax(0,45%);
  grid-template-rows:minmax(0,1fr);
  gap:18px;
  padding:18px 18px 0 0;
  overflow:hidden;
  background:var(--green-pale);
}
.home-hero::after{display:none}
.home-hero-image{position:relative;grid-column:2;grid-row:1;width:100%;height:100%;min-height:0;object-fit:cover;object-position:center;border-radius:110px 12px 12px 110px;box-shadow:0 18px 38px rgba(29,57,34,.12)}
.home-hero-image,.suite-mosaic img,.contact-banner img{filter:saturate(1.16) contrast(1.06) brightness(1.035)}
.home-hero-image{filter:saturate(1.28) contrast(1.04) brightness(1.075)}
.home-hero-panel{
  position:relative;
  grid-column:1;
  grid-row:1;
  width:auto;
  min-height:589px;
  margin:0;
  display:flex;
  flex-direction:column;
  z-index:2;
}
.home-hero-heading{
  position:relative;
  flex:0 0 43%;
  padding:44px clamp(74px,5vw,84px) 28px clamp(64px,5vw,76px);
  display:flex;
  align-items:center;
  background:url("images/frank-final/wave-home-top.svg") no-repeat left center/100% 100%;
}
.home-hero-heading h1{position:relative;z-index:2;max-width:780px;margin:0;color:#fff;font-size:clamp(34px,3.1vw,49px);font-weight:700;line-height:1.18;letter-spacing:0;text-shadow:0 1px 1px rgba(20,40,24,.15)}
.home-hero-copy{
  position:relative;
  flex:1 0 auto;
  padding:48px clamp(76px,5vw,86px) 36px clamp(64px,5vw,76px);
  background:url("images/frank-final/wave-home-copy.svg") no-repeat left center/100% 100%;
}
.home-hero-copy p{max-width:670px;margin:0 0 34px;font-size:var(--copy-size);line-height:var(--copy-line-height)}
.primary-button{min-width:248px;padding:15px 30px;font-size:24px}

.map-section{position:relative;overflow:hidden;padding:70px clamp(24px,5vw,72px) 70px;background:linear-gradient(180deg,var(--green-pale),#fff 68%)}
.map-inner{position:relative;z-index:1;width:min(1220px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,82px)}
.map-copy{padding:12px 0}
.map-copy::before{content:"";display:block;width:72px;height:2px;margin-bottom:28px;border-radius:2px;background:linear-gradient(90deg,var(--green-strong),transparent)}
.eyebrow{margin:0 0 12px;color:#4d7555;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.map-copy h2{margin:0 0 20px;font-family:var(--sans);font-size:var(--section-title-size);font-weight:600;line-height:1.1}
.map-copy address{font-size:clamp(19px,1.6vw,24px);line-height:1.5;font-style:normal}
.map-directions{min-height:50px;width:max-content;max-width:100%;margin-top:36px;padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:18px;border-radius:8px;background:#0b0b0b;color:#fff;text-decoration:none;font-size:16px;font-weight:700;transition:background .18s ease,transform .18s ease}
.map-directions:hover{background:#2b2b2b;transform:translateY(-2px)}
.map-directions:focus-visible{outline:3px solid #4d7555;outline-offset:4px}
.map-directions img{width:18px;height:18px;filter:invert(1)}
.map-frame{position:relative;width:100%;max-width:650px;height:340px;justify-self:end;overflow:hidden;border:7px solid #fff;border-radius:8px 66px 8px 66px;background:var(--green-pale);box-shadow:0 18px 40px rgba(29,57,34,.14)}
.map-frame iframe{position:relative;z-index:1;display:block;width:100%;height:100%;border:0;filter:saturate(.74);opacity:0;transition:opacity .35s ease}
.map-frame.map-ready iframe{opacity:1}
.map-preview{position:absolute;inset:0;overflow:hidden;background:linear-gradient(105deg,rgba(208,228,208,.58),rgba(234,243,235,.2)),repeating-linear-gradient(90deg,#dae8d9 0 76px,#cbdccb 76px 82px);color:#315737;transition:opacity .35s ease}
.map-frame.map-ready .map-preview{opacity:0;pointer-events:none}
.map-preview-road{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;background:#f9fbf8;color:#52765a;font-size:12px;font-weight:700;letter-spacing:.03em;box-shadow:0 1px 5px rgba(29,57,34,.08)}
.map-preview-road--vertical{top:-10%;bottom:-10%;left:43%;width:52px;writing-mode:vertical-rl}
.map-preview-road--horizontal{left:-10%;right:-10%;top:44%;height:49px}
.map-preview-marker{position:absolute;z-index:2;top:23%;left:35%;padding:8px 11px;display:flex;align-items:center;gap:7px;border:1px solid #b2cdb7;border-radius:999px;background:#fff;box-shadow:0 5px 15px rgba(29,57,34,.12);font-size:13px;font-weight:700;white-space:nowrap}
.map-preview-marker span{width:11px;height:11px;border-radius:50%;background:#315737;box-shadow:0 0 0 4px #e2f0e3}
.map-preview-caption{position:absolute;z-index:2;right:16px;bottom:13px;font-size:12px;font-weight:600}
.map-location-badge{position:absolute;top:16px;left:16px;z-index:2;min-height:42px;padding:9px 14px;display:flex;align-items:center;gap:10px;border:1px solid rgba(49,87,55,.2);border-radius:999px;background:rgba(255,255,255,.94);box-shadow:0 8px 22px rgba(29,57,34,.15);font-size:14px;font-weight:700;pointer-events:none}
.map-frame:not(.map-ready) .map-location-badge{opacity:0}
.map-pulse{position:relative;width:12px;height:12px;flex:0 0 auto;border-radius:50%;background:#315737}
.map-pulse::after{content:"";position:absolute;inset:-5px;border:2px solid rgba(49,87,55,.4);border-radius:50%;animation:map-pulse 1.8s ease-out infinite}
@keyframes map-pulse{0%{transform:scale(.55);opacity:1}70%,100%{transform:scale(1.55);opacity:0}}

/* Shared page banner */
.page-banner{
  width:100%;
  min-height:170px;
  padding:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:url("images/frank-final/wave-banner.svg") no-repeat left center/100% 100%;
}
.page-banner h1,.rent-heading h1{margin:0;font-family:var(--sans);font-size:var(--page-title-size);font-weight:500;line-height:1.1;letter-spacing:0;text-align:center}

/* Team */
.team-page{position:relative;padding-bottom:40px;overflow:hidden}
.team-grid{width:min(1370px,calc(100% - 80px));margin:16px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;position:relative;z-index:1}
.team-card{min-width:0;padding:15px;display:flex;flex-direction:column;border-radius:36px;background:#f8f8f8;box-shadow:0 10px 22px rgba(29,44,31,.05);transition:transform .22s ease,box-shadow .22s ease}
.team-card:hover{transform:translateY(-6px);box-shadow:0 16px 34px rgba(29,44,31,.12)}
.team-card>img{width:100%;aspect-ratio:1.32/1;border-radius:22px;object-fit:cover;object-position:center}
.team-card:nth-child(1)>img{object-position:center 42%}
.team-card:nth-child(3)>img{object-position:center 28%}
.team-card-body{padding:14px 2px 0;display:flex;flex:1;flex-direction:column}
.team-card-title{display:flex;align-items:center;justify-content:space-between;gap:14px}
.team-card h2{margin:0;font-family:var(--sans);font-size:var(--card-title-size);line-height:1.1;font-weight:700}
.small-button{min-width:136px;min-height:42px;padding:10px 18px;border-radius:8px;font-size:18px;white-space:nowrap}
.team-card p{min-height:78px;margin:7px 0 8px;font-size:var(--copy-size);line-height:var(--copy-line-height)}
.card-socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:auto}
.card-socials a{min-width:0;min-height:44px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #b6cdbb;border-radius:6px;background:#fff;color:#244d2b;text-decoration:none;font-size:13px;font-weight:700;transition:background .18s ease,transform .18s ease}
.card-socials a:hover{background:var(--green-pale);transform:translateY(-2px)}
.card-socials img{width:18px;height:18px;flex:none}

/* Rent a suite */
.rent-page{position:relative;padding-bottom:56px;overflow:hidden}
.rent-page::after{content:"";position:absolute;right:-8%;bottom:-160px;width:46%;height:240px;border-radius:55% 45% 0 0;background:var(--green-pale);z-index:-1}
.rent-intro{display:grid;grid-template-columns:minmax(420px,39%) minmax(0,61%);gap:0;align-items:start}
.rent-copy{min-width:0}
.rent-heading{width:100%;min-height:215px;padding:28px;display:flex;align-items:center;justify-content:center;background:url("images/frank-final/wave-banner.svg") no-repeat left center/100% 100%;position:relative;z-index:1}
.rent-heading h1{white-space:nowrap}
.rent-text{padding:27px 34px 24px clamp(62px,5.2vw,80px)}
.rent-text p{max-width:490px;margin:0 0 30px;font-size:var(--copy-size);line-height:var(--copy-line-height)}
.contact-pill{width:min(270px,100%);min-height:72px;padding:14px 34px;display:flex;align-items:center;justify-content:space-between;border-radius:999px;background:var(--green-pale);color:#0b0b0b;text-decoration:none;font-size:23px;font-weight:700;transition:background .18s ease,transform .18s ease}
.contact-pill img{width:46px;height:46px}
.contact-pill:hover{background:var(--green-strong);transform:translateY(-2px)}
.suite-mosaic{padding:10px 40px 0 5px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:clamp(280px,22.5vw,345px) clamp(245px,18.5vw,285px);gap:13px;position:relative;z-index:2}
.suite-mosaic img{width:100%;height:100%;min-height:0;border-radius:26px;object-fit:cover}

/* Contact */
.contact-page{min-height:710px;position:relative;padding-bottom:64px;overflow:hidden}
.contact-banner{height:280px;position:relative;background:#fff;overflow:hidden}
.contact-banner::before{content:"";position:absolute;inset:0 auto 0 0;width:78%;background:url("images/frank-final/wave-contact.svg") no-repeat left center/100% 100%;z-index:1;pointer-events:none}
.contact-banner h1{position:absolute;left:0;top:38%;z-index:2;width:57%;margin:0;color:#050505;font-family:var(--sans);font-size:var(--page-title-size);line-height:1.1;font-weight:500;letter-spacing:0;text-align:center;transform:translateY(-50%)}
.contact-banner img{position:absolute;inset:0 0 0 auto;width:51%;height:100%;object-fit:cover;object-position:center 55%}
.contact-photo-lead{height:230px;margin-top:52px;overflow:hidden;border-radius:0 0 70px 0}
.contact-photo-lead img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.contact-title-after{min-height:145px;padding:25px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:var(--green-pale)}
.contact-title-after h1{margin:0;font-family:var(--sans);font-size:var(--page-title-size);font-weight:500;line-height:1.1;text-align:center}
.contact-title-after::after{content:"";width:78px;height:2px;background:var(--green-strong)}
.contact-card-grid{width:min(1125px,calc(100% - 72px));margin:22px auto 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:22px;position:relative;z-index:2}
.contact-card{grid-column:span 2;min-width:0;min-height:235px;padding:28px 24px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(143,182,149,.18);border-radius:30px;background:#eef1ee;text-align:center;box-shadow:0 10px 24px rgba(29,57,34,.08)}
.contact-card:nth-child(4){grid-column:2/span 2}
.contact-card:nth-child(5){grid-column:4/span 2}
.contact-card h2{margin:0;font-family:var(--sans);font-size:var(--card-title-size);font-weight:700;line-height:1.1}
.contact-card p{margin:4px 0 14px;font-size:var(--copy-size);line-height:var(--copy-line-height)}
.book-online{min-width:200px;min-height:50px;padding:10px 22px;font-size:20px}
.contact-icons{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:16px}
.contact-icons a,.contact-icons .contact-icon-unavailable{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.contact-icons a{background:#101110;text-decoration:none;transition:background .18s ease,transform .18s ease}
.contact-icons a:hover{background:#315737;transform:translateY(-2px)}
.contact-icons .contact-icon-unavailable{background:#e2e7e3;cursor:default}
.contact-icons a:focus-visible,.card-socials a:focus-visible{outline:3px solid #315737;outline-offset:3px}
.contact-icons img{width:24px;height:24px}
.contact-icons a img{filter:invert(1)}
.contact-icons a[href*="facebook"] img,.contact-icons .contact-icon-unavailable:has(img[src*="facebook"]) img{width:21px;height:21px}

.site-footer{min-height:92px;padding:22px clamp(32px,5vw,72px);display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--green);border-top:1px solid rgba(49,87,55,.18)}
.footer-address{font-size:21px;font-weight:600;text-decoration:none}
.footer-contact{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex-wrap:wrap}
.footer-contact span{margin-right:12px;font-size:21px;font-weight:500}
.footer-contact a{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:38px;font-weight:700;line-height:1}
.footer-contact a img{width:37px;height:37px}
.footer-contact a[href*="instagram"] img{width:42px;height:42px}
.footer-contact a[href*="facebook"] img{width:31px;height:31px}
.footer-contact a{transition:transform .18s ease}
.footer-contact a:hover{transform:translateY(-2px)}
.footer-contact a:focus-visible{outline:3px solid #315737;outline-offset:3px}

.booking-page{min-height:100vh;background:var(--green-pale)}
.booking-main{min-height:calc(100vh - 140px);padding:70px 24px;display:grid;place-items:center;background:var(--green-pale)}
.booking-panel{width:min(680px,100%);padding:54px;border-radius:34px;background:#fff;box-shadow:0 18px 50px rgba(45,77,50,.12)}
.booking-panel h1{margin:0 0 18px;font-family:var(--sans);font-size:var(--page-title-size);font-weight:500;line-height:1.1}
.booking-panel>p:not(.eyebrow){max-width:540px;margin-bottom:30px;font-size:var(--copy-size);line-height:var(--copy-line-height);color:var(--muted)}
.booking-panel>div{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.booking-panel .primary-button{min-width:220px;font-size:17px}.back-link{font-weight:700;text-underline-offset:5px}

@media (min-width:981px) and (max-width:1300px){
  .team-card-title{align-items:flex-start;flex-direction:column;gap:8px}
  .team-card .small-button{width:100%;min-width:0}
}

@media (max-width:980px){
  :root{--copy-size:18px;--card-title-size:32px}
  .site-header{min-height:auto;padding:18px 24px;flex-direction:column;align-items:flex-start;gap:12px}
  .site-logo{width:min(380px,74vw);height:108px}
  .site-nav{width:100%;justify-content:flex-start;gap:clamp(16px,6vw,46px)}
  .home-hero{height:auto;min-height:0;grid-template-columns:1fr;grid-template-rows:auto 300px;gap:0;padding:0;background:#fff}
  .home-hero::after{display:none}
  .home-hero-image{grid-column:1;grid-row:2;width:100%;height:300px;object-position:center;border-top:12px solid var(--green-pale);border-radius:46px 46px 0 0}
  .home-hero-panel{grid-column:1;grid-row:1;width:100%;height:auto;min-height:0;margin:0;grid-template-rows:auto auto}
  .home-hero-heading{flex:none;padding:36px 56px 32px 30px;border-radius:0 0 64px 0;background:var(--green)}
  .home-hero-copy{flex:none;padding:54px 80px 30px 30px;border-radius:0}
  .primary-button{min-width:190px;font-size:18px}
  .map-section{padding:70px 28px 48px}.map-inner{grid-template-columns:1fr;gap:28px}.map-copy{padding:0}.map-frame{max-width:620px;height:320px;justify-self:center}
  .rent-intro{grid-template-columns:1fr}.rent-heading{min-height:180px}.rent-text{padding-right:50px}.suite-mosaic{padding:0 26px 36px;grid-template-rows:230px 230px}
  .contact-banner img{width:55%}.contact-card-grid{width:min(780px,calc(100% - 36px));grid-template-columns:repeat(2,minmax(0,1fr));margin-top:24px}.contact-card,.contact-card:nth-child(4),.contact-card:nth-child(5){grid-column:auto}.contact-card:last-child{grid-column:1/-1;width:calc(50% - 11px);justify-self:center}
}

@media (min-width:768px) and (max-width:980px){
  .team-grid{width:calc(100% - 36px);grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
  .team-card{display:block;padding:12px;border-radius:24px}
  .team-card>img{width:100%;height:auto;aspect-ratio:1.18/1}
  .team-card-body{padding:12px 2px 0}
  .team-card-title{align-items:flex-start;flex-direction:column;gap:8px}
  .team-card .small-button{width:100%;min-width:0;font-size:14px}
  .team-card p{min-height:126px}
  .card-socials{gap:6px}
  .card-socials a{padding:7px 5px;gap:5px;font-size:11px}
  .card-socials img{width:16px;height:16px}
}

@media (max-width:767px){
  .site-footer{padding:20px 24px;flex-direction:column;text-align:center}
  .footer-contact{justify-content:center;gap:10px}
  .footer-contact span{width:100%;margin-right:0}
  .site-footer .footer-contact a{width:44px;height:44px;border:1px solid rgba(24,59,31,.45);border-radius:50%;background:rgba(255,255,255,.16)}
  .site-footer .footer-contact a img,.site-footer .footer-contact a[href*="instagram"] img{width:25px;height:25px}
  .site-footer .footer-contact a[href*="facebook"] img{width:22px;height:22px}
  .team-grid{width:min(760px,calc(100% - 36px));grid-template-columns:1fr;gap:22px;margin-top:26px}
  .team-card{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(0,1.1fr);gap:24px}
  .team-card>img{height:100%;aspect-ratio:auto}
  .team-card p{min-height:0}
  .card-socials{margin-top:auto}
}

@media (max-width:640px){
  :root{--page-title-size:clamp(32px,8vw,42px);--section-title-size:34px;--card-title-size:30px;--copy-size:16px}
  body{font-size:16px}
  .site-header{padding:15px 10px 10px}
  .site-logo{width:min(340px,86vw);height:100px;margin:0}
  .site-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;max-width:none;margin:0 auto}
  .site-nav a{padding:13px 2px;text-align:center;font-size:clamp(12px,3.35vw,14px)}
  .site-nav a::after{left:8px;right:8px;height:2px}
  .home-hero{min-height:0;grid-template-rows:auto 245px}
  .home-hero-image{height:245px;border-top-width:9px;border-radius:34px 34px 26px 26px}
  .home-hero-panel{width:100%;height:auto;grid-template-rows:auto auto}
  .home-hero-heading{padding:28px 52px 28px 22px}.home-hero-heading h1{font-size:30px;line-height:1.2}
  .home-hero-copy{padding:42px 58px 28px 22px}.home-hero-copy p{margin-bottom:20px}.primary-button{min-height:44px;padding:10px 20px}
  .map-section{padding:38px 16px 30px}.map-inner{gap:28px}.map-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:end;padding:0 8px}.map-copy::before{display:none}.map-copy .eyebrow,.map-copy h2{grid-column:1/-1;text-align:center}.map-copy h2{margin-bottom:24px}.map-copy address{grid-column:1;grid-row:3;font-size:16px;line-height:1.45}.map-directions{grid-column:2;grid-row:3;align-self:center;min-height:48px;margin:0;padding:9px 12px;gap:8px;border-radius:8px;font-size:13px;white-space:nowrap}.map-directions img{width:16px;height:16px}.map-frame{width:calc(100% - 16px);height:260px;border-width:5px;border-radius:6px 46px 6px 46px}.map-location-badge{top:12px;left:12px;min-height:38px;padding:7px 12px;font-size:13px}
  .page-banner{min-height:135px;padding:26px 28px}
  .team-grid{width:calc(100% - 24px);margin-top:18px}.team-card{display:block;padding:14px;border-radius:26px}.team-card>img{width:100%;height:auto;aspect-ratio:1.18/1;border-radius:18px;object-fit:cover}.team-card-body{padding:14px 5px 2px}.small-button{min-width:116px;min-height:40px;font-size:15px}.team-card p{margin-top:15px}
  .rent-heading{min-height:135px;padding:30px 28px}.rent-heading h1{white-space:normal}.rent-text{padding:30px 24px}.contact-pill{min-height:62px;font-size:20px}.contact-pill img{width:36px;height:36px}.suite-mosaic{padding:0 12px 26px;gap:8px;grid-template-rows:165px 165px}.suite-mosaic img{min-height:0;border-radius:16px}
  .contact-page{padding-bottom:40px}.contact-banner{height:190px}.contact-banner::before{width:90%}.contact-banner h1{width:58%}.contact-banner img{width:58%;object-position:62% center}
  .contact-photo-lead{height:150px;margin-top:35px;border-radius:0 0 42px 0}
  .contact-title-after{min-height:115px;gap:12px}
  .contact-title-after::after{width:60px}
  .contact-card-grid{width:calc(100% - 24px);grid-template-columns:1fr;gap:14px;margin-top:16px}.contact-card,.contact-card:nth-child(4),.contact-card:nth-child(5),.contact-card:last-child{grid-column:auto;width:100%;min-height:0;padding:24px 18px;border-radius:26px}.book-online{min-width:190px;min-height:46px;font-size:18px}
  .booking-main{min-height:calc(100vh - 190px);padding:40px 16px}.booking-panel{padding:34px 24px;border-radius:26px}.booking-panel>div{align-items:flex-start;flex-direction:column}
}

@media (max-width:360px){
  .home-hero-heading h1{font-size:27px}
  .map-copy{column-gap:6px}
  .map-copy address{font-size:14px}
  .map-directions{padding:8px;gap:5px;font-size:12px}
  .map-directions img{width:14px;height:14px}
  .team-card-title{display:block}
  .team-card-title .small-button{width:100%;margin:8px 0 0}
}

@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
