/* ============================================================
 EXCEED — shared furniture
 ------------------------------------------------------------
 The guest feedback page uses its own stylesheet (feedback.css)
 rather than site.css, so it was missing every rule for the
 section navigator, the ambience control, the language bar and
 the two footer disclaimers. These rules are EXTRACTED FROM
 site.css by build-furniture, so they cannot drift apart.
 ============================================================ */
:root{--navy:#071a2d;--footer:#051422;--ivory:#f7f7f3;--ink-dim:#39434f;--gold:#b78b43;--gold-deep:#8a692a;--gold-bright:#d8b36b;--line:rgba(16,32,51,.16);--line-gold:rgba(183,139,67,.4);--display:"Cormorant Garamond",Georgia,serif;--reading:"Jost","Avenir Next",Arial,sans-serif;}

.btn-gold{display:inline-block;background:var(--gold);color:#0c0c0c;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:600;padding:19px 46px;transition:background .3s;}

.btn-gold:hover{background:var(--gold-bright);}


/* ============ FOOTER ============ */
.site-footer{background:var(--footer);padding:clamp(40px,5vh,58px) 0 76px;}

.foot-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:38px;align-items:start;margin-bottom:30px;}

.foot-brand .brand{display:inline-block;text-align:center;}

.foot-brand .brand-word{font-size:22px;}

.foot-brand .brand-swash{width:110px;}

.foot-brand .brand-sub{font-size:8px;}

.foot-brand .brand-star{width:18px;height:18px;}

.foot-links{font-size:13.5px;line-height:1.9;}

.foot-links a{color:#ccd4dd;display:block;transition:color .3s;}

.foot-links a:hover{color:var(--gold-bright);}

.foot-links .inspector-access{margin:10px 0 7px;color:#93a0ad;font-size:11px;letter-spacing:.16em;text-transform:uppercase;}

.foot-links .inspector-access::before{content:"Private · ";color:var(--gold);}

.foot-head{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:9px;}

.foot-base{border-top:1px solid rgba(255,255,255,.08);padding-top:18px;font-size:12.5px;color:#9fadbb;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;}
@media(max-width:900px){
  body{font-size:16.5px;}
  .body-copy{text-align:left;hyphens:none;}
  .split-story,.profile-story,.exp-chapter{grid-template-columns:1fr;min-height:0;}
  .split-story .media,.profile-story .p-media,.exp-chapter .e-media{min-height:320px;}
  .split-story.reverse .media,.profile-story.reverse .p-media,.exp-chapter.reverse .e-media{order:0;}
  .industry-gallery{grid-template-columns:1fr;}
  .industry.full{grid-column:auto;min-height:46vh;}
  .contact-grid{grid-template-columns:1fr;}
  .method-step .grid,.case .grid{grid-template-columns:1fr;gap:10px;}
  .method-step .num,.case .num{font-size:48px;}
  .coverage-cols{grid-template-columns:1fr;}
  .checklist{columns:1;}
  .brand-word{font-size:22px;}
  .brand-sub{font-size:7px;}
  .brand-phone{font-size:10px;}
  .site-header{padding-top:18px;}
  .explore-button{top:22px;padding:12px 18px 12px 22px;}
  .hero-rotator h1{font-size:clamp(44px,10vw,72px);}
  .hero-rotator{min-height:180px;}
  .compare td{padding:14px 12px;font-size:18px;}
  .compare th{padding:0 12px 12px;}
  .foot-grid{grid-template-columns:1fr;gap:30px;}
}
@media(max-width:700px){
  .mobile-bar{display:grid;}
  .site-footer{padding-bottom:110px;}
}
@media(max-width:600px){
  .service-grid{grid-template-columns:1fr;}
  .image-statement p{font-size:clamp(34px,9vw,52px);}
  .page-hero h1,.page-intro h1{font-size:clamp(38px,9.5vw,58px);}
  .editorial h2,.closing h2{font-size:clamp(32px,8.5vw,48px);}
  .btn-gold{width:100%;text-align:center;}
  .quiet-link{font-size:11px;}
  .mosaic{grid-template-columns:1fr;}
  .mosaic figure{aspect-ratio:4/3;}
  .deliverables{grid-template-columns:1fr;}
  .hero-intro{font-size:16.5px;}
  .leader-list .rl{display:none;}
}

.foot-addr{display:block;font-size:12px;line-height:1.7;color:#9fadbb;margin:8px 0 6px;}

.foot-brand .brand-img{width:126px;}


/* Lobby ambience toggle */
.ambience-toggle{position:fixed;left:clamp(18px,3vw,44px);bottom:26px;z-index:75;display:flex;align-items:center;gap:12px;background:rgba(7,26,45,.55);backdrop-filter:blur(8px);border:1px solid var(--line-gold);color:var(--gold-bright);font-family:var(--reading);padding:9px 16px;border-radius:999px;}

.amb-btn{display:flex;align-items:center;gap:10px;background:none;border:none;color:inherit;font:inherit;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;cursor:pointer;}

.amb-vol{-webkit-appearance:none;appearance:none;width:76px;height:3px;border-radius:2px;background:rgba(216,179,107,.35);outline:none;cursor:pointer;}

.amb-vol::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:13px;height:13px;border-radius:50%;background:var(--gold-bright);border:none;}

.amb-vol::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--gold-bright);border:none;}

.ambience-toggle:hover{background:rgba(7,26,45,.8);}

.ambience-toggle .bars{display:inline-flex;gap:2.5px;align-items:flex-end;height:12px;}

.ambience-toggle .bars i{width:2.5px;background:var(--gold-bright);height:4px;border-radius:1px;}

.ambience-toggle.playing .bars i{animation:amb 1.2s ease-in-out infinite;}

.ambience-toggle.playing .bars i:nth-child(2){animation-delay:.2s}

.ambience-toggle.playing .bars i:nth-child(3){animation-delay:.45s}
@media(max-width:760px){.ambience-toggle{bottom:88px;}}

.exceed-disclaimer{flex-basis:100%;margin-top:14px;font-size:10.5px;line-height:1.65;color:#7d8894;max-width:none;opacity:.9;}

.lp-cta .exceed-disclaimer{max-width:900px;margin:34px auto 0;text-align:center;color:#8a95a1;}

.foot-photo-note{flex-basis:100%;margin:9px 0 0;font-size:9.5px;line-height:1.6;letter-spacing:.01em;color:#6d7783;max-width:none;opacity:.78;}

.lp-cta .foot-photo-note{max-width:860px;margin:10px auto 0;text-align:center;}
@media(max-width:640px){.foot-photo-note{font-size:9px;}}


/* Section navigator */
.pagenav{position:fixed;right:clamp(14px,2.2vw,28px);bottom:26px;z-index:78;display:flex;flex-direction:column;gap:6px;}

.pagenav button,.pagenav a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(7,26,45,.6);backdrop-filter:blur(8px);border:1px solid var(--line-gold);color:var(--gold-bright);font-size:13px;cursor:pointer;border-radius:50%;transition:background .25s,color .25s,transform .25s;text-decoration:none;}

.pagenav button:hover,.pagenav a:hover{background:var(--gold);color:#0c0c0c;border-color:var(--gold);transform:translateY(-1px);}

.pagenav.at-top [data-pn="up"]{opacity:.35;pointer-events:none;}
@media(max-width:760px){.pagenav{bottom:92px;right:12px;} .pagenav button,.pagenav a{width:36px;height:36px;}}
@media print{.pagenav{display:none;}}


/* ============================================================
   Language bar — one long centred line across the foot
   ============================================================ */
.lang-select {
  left: 0 !important;
  right: 0;
  transform: none !important;
  bottom: 0 !important;
  width: 100%;
  max-width: none !important;
  flex-wrap: nowrap !important;
  justify-content: center;
  gap: clamp(6px, 1.1vw, 14px) !important;
  padding: 9px clamp(12px, 3vw, 28px) !important;
  border-radius: 0 !important;
  border-left: 0; border-right: 0; border-bottom: 0;
  box-shadow: 0 -8px 30px rgba(7,26,45,.14) !important;
}

/* No overflow-x here any more — the flags live in a popup panel that opens
   upward, outside the bar's own box; overflow-x:auto would clip it. */
.lang-select::-webkit-scrollbar { display: none; }

.lang-select > * { flex: 0 0 auto; }


/* keep the fixed furniture clear of the new bar */
.ambience-toggle { bottom: 62px; }

.pagenav { bottom: 66px; }

.site-footer { padding-bottom: 104px; }


/* ============================================================
   The lockup — logo and telephone are one mark
   The number is drawn into the artwork in the logo's own
   typeface; this transparent link keeps it tap-to-call.
   ============================================================ */
.brand-lockup { position: relative; display: inline-block; width: 184px; pointer-events: auto; }

.brand-lockup .brand { display: block; width: 100%; }

.brand-lockup .brand-img { width: 100%; height: auto; }

.brand-tel {
  position: absolute; left: 14%; right: 14%; top: 78%; bottom: 3%;
  z-index: 2; display: block; border-radius: 3px;
  transition: background .3s ease;
}

.brand-tel:hover { background: rgba(216,179,107,.12); }

.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: 640px) { .brand-lockup { width: 172px; } }


/* ============================================================
   Property search — the live type-ahead on the guest feedback form
   ============================================================ */
.prop-search-results{position:absolute;left:0;right:0;top:100%;z-index:40;
  background:#fff;border:1px solid var(--line);border-top:0;
  box-shadow:0 14px 30px rgba(7,26,45,.12);max-height:280px;overflow-y:auto;display:none;}
.prop-search-results.open{display:block;}
.prop-search-row{display:block;width:100%;text-align:left;background:none;border:0;
  border-bottom:1px solid var(--line);padding:10px 14px;cursor:pointer;font-family:var(--reading);}
.prop-search-row:last-child{border-bottom:0;}
.prop-search-row:hover,.prop-search-row:focus{background:var(--ivory-2,#eeeee7);outline:none;}
.psr-name{display:block;font-size:14px;color:var(--navy);}
.psr-sub{display:block;font-size:11px;color:#7d8894;margin-top:2px;}
[dir="rtl"] .prop-search-row{text-align:right;}

/* ============================================================
   Affiliations — the marks that sit above the footer
   Sized between a UK five pence piece (~18mm) and a twenty pence
   piece (~21.4mm) — a quiet credential line, centred at the foot
   of the page, noticeable without reading as a second logo row.
   The Govan Weavers crest and Institute of Hospitality mark carry
   fine detail (a shield, a small crest within the lockup) so they
   get a touch more height to stay legible at this size; the two
   flatter wordmarks read fine at the base size.
   ============================================================ */
.affiliations{background:var(--ivory-2,#eeeee7);padding:36px 0 40px;border-top:1px solid var(--line);}
.aff-head{display:block;text-align:center;font-family:var(--reading);font-size:10.5px;
  letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:18px;}
.aff-row{list-style:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(18px,3vw,30px);margin:0 auto;padding:0;max-width:640px;}
.aff-row li{display:flex;align-items:center;}
/* height uses clamp() rather than a single mobile breakpoint, so
   the marks genuinely grow and shrink in step with the viewport —
   phone, tablet and desktop alike, in any browser — instead of
   sitting at one fixed size then jumping to another at 640px. */
.aff-row img{height:clamp(22px,5vw,30px);width:auto;max-width:110px;object-fit:contain;
  opacity:.92;transition:opacity .35s ease,transform .35s ease;}
.aff-row li:nth-child(1) img,.aff-row li:nth-child(4) img{height:clamp(26px,6vw,38px);}
.aff-row a:hover img,.aff-row li:hover img{opacity:1;transform:translateY(-2px);}
@media(max-width:640px){
  .aff-row{gap:16px;}
}


/* ============================================================
   Paired buttons — identical boxes, evenly spaced, centred
   Every call to action is the same shape and the same width as
   every other, so a row of them reads as one balanced set.
   ============================================================ */
.btn-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 18px;
}

.btn-row .btn-gold {
  flex: 0 1 auto;
  min-width: 268px;
  padding-left: 0;
  padding-right: 0;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.closing .btn-row { margin-top: 4px; }
@media (max-width: 640px) {
  .btn-row { gap: 14px; }
  .btn-row .btn-gold { min-width: 0; width: 100%; }
}
