/* WordPress host compatibility. Keep these rules scoped to our shortcode. */
/* Explicit link states beat the host theme's dark hover colour on dark panels. */
.ss-page .sea-prologue .island-prologue-footer>a,
.ss-page .sea-prologue .island-prologue-footer>a:is(:hover,:focus,:active){color:var(--ivory);background:var(--deep)}
.ss-page .sea-prologue .island-prologue-footer>a:is(:hover,:focus-visible){border-color:var(--ivory);text-decoration:underline;text-underline-offset:4px}
.ss-page .care-note>a.text-link,
.ss-page .care-note>a.text-link:is(:hover,:focus,:active){color:var(--ivory)}
.ss-page .care-note>a.text-link:is(:hover,:focus-visible){border-color:var(--ivory);text-decoration:underline;text-underline-offset:4px}
/* Hello's [type=button] rules and Elementor Kit styles load after the plugin.
   Keep the original component fonts/sizes, but prevent the Kit font leaking in. */
.ss-page :is(.menu-toggle,.film-card,.image-expand,.connection-node,.map-motion,.sea-motion,.dialog-close,.form-submit),
.ss-page .enquiry-options button,
.ss-page .island-tabs button { font-family:var(--sans); }
.ss-page .architecture-slide > img {
  width:100%; height:100%; object-fit:cover; object-position:center 57%;
}
.ss-page button.arrow-button {
  display:grid; place-items:center; width:44px; height:44px; min-width:44px;
  padding:0; border:1px solid var(--line); border-radius:0;
  background:transparent; color:var(--deep); font:400 20px/1 var(--sans);
}
.ss-page button.arrow-button:hover,
.ss-page button.arrow-button:focus { background:var(--ivory); color:var(--deep); }
.ss-page button.image-expand {
  display:flex; align-items:center; gap:14px; padding:11px 17px;
  border:1px solid #f4f1ea80; border-radius:0; background:#0b35404d;
  color:var(--ivory); line-height:1.5;
}
.ss-page button.image-expand:hover,
.ss-page button.image-expand:focus { background:var(--deep); }
.ss-page button.connection-node {
  display:flex; flex-direction:column; align-items:center; padding:12px 9px;
  background:transparent; border:0; color:var(--ivory); line-height:1.8;
}
/* The deployed page also has an ID-based 30% radius override. */
.ss-page button:is(#connection-tab-0,#connection-tab-1,#connection-tab-2) { border-radius:0; }
.ss-page button.connection-node:hover,
.ss-page button.connection-node:focus { background:transparent; color:var(--ivory); }
.ss-page button.map-motion {
  background:transparent; color:var(--ivory); border:0;
  border-bottom:1px solid #7fa9af66; border-radius:0; padding:0; line-height:1.8;
}
.ss-page button.map-motion:hover,
.ss-page button.map-motion:focus { background:transparent; color:var(--gold); }
.ss-page button.sea-motion {
  border:1px solid #f4f1ea80; border-radius:40px; padding:9px 15px;
  background:#0b354050; color:var(--ivory); line-height:1.8;
}
.ss-page button.sea-motion:hover,
.ss-page button.sea-motion:focus { background:var(--deep); color:var(--ivory); }
.ss-page .island-tabs button {
  display:flex; align-items:center; background:transparent; color:var(--deep);
  border:0; border-bottom:2px solid transparent; padding:22px 0; line-height:1.8;
}
.ss-page .island-tabs button[aria-selected=true] { border-bottom-color:var(--rust); font-weight:600; }
.ss-page .community-tabs button {
  display:flex; align-items:center; width:100%; padding:21px 0;
  background:transparent; color:var(--deep); border:0; border-bottom:1px solid var(--line);
  font-family:var(--serif); line-height:normal;
}
.ss-page .community-tabs button[aria-selected=true] { color:var(--rust); border-bottom-color:var(--rust); }
.ss-page .enquiry-options button:not([aria-pressed=true]) { background:transparent; color:var(--deep); }
@media(max-width:760px) {
  .ss-page button.image-expand { padding:9px 12px; }
  .ss-page button.connection-node { padding:9px 4px; }
  .ss-page .island-tabs button { padding:19px 0; }
  .ss-page .community-tabs button { padding:20px 0; }
}
.ss-page > .site-header {
  position:absolute; inset:0 0 auto; display:flex; flex-wrap:nowrap;
  align-items:center; justify-content:space-between; height:92px;
  padding:0 4.5vw; gap:30px; z-index:50; border:0;
}
.ss-page .menu-toggle,
.ss-page .menu-toggle:hover,
.ss-page .menu-toggle:focus {
  background:transparent; color:var(--deep); border:0; border-radius:0;
  padding:10px 0; box-shadow:none; text-decoration:none;
}
.ss-page .menu-toggle { display:none; }
.ss-page .film-card,
.ss-page .film-card:hover,
.ss-page .film-card:focus { background:var(--ivory); color:var(--deep); border:0; }
.ss-page .film-card > img { height:156px; width:100%; object-fit:cover; border-radius:0; }
.ss-page > .site-footer { display:block; width:100%; padding:55px 6vw 30px; }
.ss-page .policy-links { display:flex; flex-wrap:wrap; gap:12px 24px; padding-top:20px; font-size:13px; }
.ss-page .policy-links a { text-decoration:underline; text-underline-offset:4px; }
.ss-page .legacy-anchor { display:block; height:0; scroll-margin-top:100px; }
@media(min-width:1600px) { .ss-page .film-card > img { height:190px; } }
@media(max-width:1100px) {
  .ss-page > .site-header { padding:0 24px; gap:18px; }
  .ss-page .film-card > img { height:145px; }
}
@media(max-width:760px) {
  .ss-page > .site-header { height:78px; }
  .ss-page .menu-toggle { display:flex; }
  /* Natural flow reserves space even when text wraps or translations expand. */
  .ss-page .hero { height:auto; min-height:960px; max-height:none; padding:115px 24px 98px; display:flex; flex-direction:column; }
  .ss-page .hero-title { position:relative; inset:auto; width:100%; flex:none; }
  .ss-page .hero-actions { max-width:none; }
  .ss-page .hero-actions > a { min-width:0; white-space:normal; }
  .ss-page .film-card { position:relative; inset:auto; flex:none; align-self:flex-end; margin:40px 0 0; }
  .ss-page .film-card > img { height:100px; }
  .ss-page .collection-seal { left:24px; bottom:108px; width:80px; height:80px; }
  .ss-page .collection-seal > img { width:35px; height:35px; }
  .ss-page > .site-footer { padding:40px 24px 24px; }
}
