.hospitality-page {
  --hospitality-black: #171717;
  --hospitality-grey: #747474;
  color: #1d1d1d;
  overflow: hidden;
}

.hospitality-shell {
  width: min(1490px, calc(100% - 64px));
  margin-inline: auto;
}

.hospitality-eyebrow {
  margin: 0;
  color: #777;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: .01em;
}

.hospitality-hero {
  position: relative;
  display: grid;
  min-height: 603px;
  place-items: center;
  background: linear-gradient(rgba(0, 0, 0, .58), rgba(0, 0, 0, .58)), var(--hospitality-hero) center 55% / cover no-repeat;
}

.hospitality-hero::after {
  position: absolute;
  right: -3%;
  bottom: -1px;
  left: -3%;
  height: 88px;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  background: #fff;
  content: "";
}

.hospitality-hero h1 {
  position: relative;
  z-index: 1;
  margin: -36px 0 0;
  color: #fff;
  font-family: "Judson", serif;
  font-size: clamp(38px, 3vw, 48px);
  font-weight: 400;
}

.hospitality-intro {
  min-height: 468px;
  padding-top: 55px;
  text-align: center;
}

.hospitality-intro__copy {
  max-width: 930px;
  margin: 52px auto 0;
  color: #777;
  font-size: clamp(19px, 1.35vw, 24px);
  line-height: 1.42;
}

.hospitality-intro__copy::first-line { color: #202020; }

.hospitality-scroll {
  display: block;
  width: 32px;
  height: 44px;
  margin: 68px auto 0;
}

.hospitality-scroll::before {
  display: block;
  width: 1px;
  height: 35px;
  margin: auto;
  background: #777;
  content: "";
}

.hospitality-scroll span {
  display: block;
  width: 10px;
  height: 10px;
  margin: -10px auto 0;
  border-right: 1px solid #777;
  border-bottom: 1px solid #777;
  transform: rotate(45deg);
}

.hospitality-process {
  display: grid;
  grid-template-columns: minmax(440px, 1fr) minmax(560px, 1.18fr);
  min-height: 912px;
  background: #f2f2f0;
}

.hospitality-process__content {
  width: min(515px, calc(100% - 96px));
  margin: 0 auto;
  padding-top: 100px;
}

.hospitality-steps {
  margin: 78px 0 0;
  padding: 0;
  list-style: none;
}

.hospitality-steps li {
  display: grid;
  grid-template-columns: 72px 1fr;
  min-height: 108px;
  padding: 30px 0;
  border-top: 1px solid #9b9b9b;
}

.hospitality-steps li:last-child { border-bottom: 1px solid #9b9b9b; }
.hospitality-steps span { padding-top: 7px; color: #6b6b6b; font-size: 14px; }

.hospitality-steps h2 {
  margin: 0;
  font-family: "Inter", sans-serif;
  font-size: clamp(21px, 1.55vw, 27px);
  font-weight: 400;
  letter-spacing: .01em;
  text-transform: uppercase;
}

.hospitality-steps p {
  max-width: 380px;
  margin: 24px 0 0;
  color: #6f6f6f;
  font-size: 15px;
  line-height: 1.65;
}

.hospitality-process__image { width: 100%; height: 912px; object-fit: cover; object-position: center; }

.hospitality-capabilities { padding-top: 155px; }
.hospitality-capabilities > h2 { margin: 0; font-family: "Judson", serif; font-size: clamp(34px, 2.4vw, 44px); font-weight: 400; text-align: center; }
.hospitality-capabilities__tabs { display: flex; justify-content: center; gap: 60px; margin: 58px 0 48px; color: #777; font-size: 16px; }
.hospitality-capabilities__tabs span { padding-bottom: 12px; }
.hospitality-capabilities__tabs .is-active { border-bottom: 1px solid #111; color: #111; }

.hospitality-capabilities__panel {
  display: grid;
  grid-template-columns: 1fr 44%;
  align-items: center;
  min-height: 756px;
  padding: 60px max(7vw, 70px) 38px max(11vw, 110px);
  background: #111;
  color: #fff;
}

.hospitality-capabilities__copy h3 { margin: 0; font-family: "Judson", serif; font-size: clamp(30px, 2.25vw, 42px); font-weight: 400; line-height: 1.18; text-transform: uppercase; }
.hospitality-capabilities__copy p { margin: 84px 0 58px; color: #c9c9c9; font-size: 16px; }
.hospitality-capabilities__copy strong { color: #fff; font-weight: 500; text-decoration: underline; text-underline-offset: 7px; }
.hospitality-capabilities__panel > img { width: min(520px, 100%); justify-self: center; object-fit: contain; }

.hospitality-button {
  display: inline-grid;
  min-width: 273px;
  height: 65px;
  place-items: center;
  border: 1px solid currentColor;
  font-size: 16px;
  text-decoration: none;
}
.hospitality-button--light { background: #fff; color: #111; }

.hospitality-projects { display: grid; grid-template-columns: 28% 72%; min-height: 1010px; padding-top: 178px; }
.hospitality-projects__heading { padding-top: 176px; }
.hospitality-projects__heading h2 { max-width: 280px; margin: 25px 0 105px; font-family: "Judson", serif; font-size: 40px; line-height: 1.05; }
.hospitality-link { display: flex; width: max-content; align-items: center; gap: 28px; color: #111; font-size: 16px; text-decoration: none; }
.hospitality-link img { width: 47px; }
.hospitality-projects__gallery { display: grid; grid-template-columns: 1.26fr 1fr 1fr; align-items: start; gap: 39px; }
.hospitality-projects__gallery img { width: 100%; height: 490px; object-fit: cover; }
.hospitality-projects__gallery img:first-child { height: 617px; }
.hospitality-projects__gallery img:nth-child(2), .hospitality-projects__gallery img:nth-child(3) { margin-top: 64px; }

.hospitality-production { display: grid; grid-template-columns: 1fr 1fr; gap: 120px; padding-top: 68px; padding-bottom: 120px; }
.hospitality-production h2 { margin: 0 0 32px; font-family: "Inter", sans-serif; font-size: 24px; }
.hospitality-production div > p { max-width: 690px; margin: 0; color: #5f5f5f; font-size: 16px; line-height: 1.85; }
.hospitality-production__statement { margin: 0; font-size: clamp(31px, 2.25vw, 41px); font-weight: 700; line-height: 1.25; }
.hospitality-workshop { display: block; width: 100%; height: min(46vw, 883px); min-height: 520px; object-fit: cover; object-position: center; }

.hospitality-features { display: grid; grid-template-columns: repeat(4, 1fr); gap: 62px; padding-top: 76px; padding-bottom: 150px; text-align: center; }
.hospitality-features__icon { display: grid; height: 90px; place-items: center; }
.hospitality-features__icon img { max-width: 96px; max-height: 72px; object-fit: contain; }
.hospitality-features article:nth-child(2) .hospitality-features__icon img { max-width: 110px; }
.hospitality-features article:nth-child(4) .hospitality-features__icon img { max-width: 120px; }
.hospitality-features h2 { margin: 26px 0 17px; font-family: "Inter", sans-serif; font-size: 18px; font-weight: 600; }
.hospitality-features p { max-width: 260px; margin: auto; color: #777; font-size: 14px; line-height: 1.55; }

@media (max-width: 1000px) {
  .hospitality-process { grid-template-columns: 1fr; }
  .hospitality-process__content { width: min(700px, calc(100% - 48px)); padding: 80px 0; }
  .hospitality-process__image { height: 680px; }
  .hospitality-capabilities__panel { grid-template-columns: 1fr 42%; padding-inline: 48px; }
  .hospitality-projects { grid-template-columns: 1fr; padding-top: 100px; }
  .hospitality-projects__heading { padding: 0 0 65px; }
  .hospitality-projects__heading h2 { max-width: none; margin-bottom: 45px; }
  .hospitality-production { gap: 50px; }
  .hospitality-features { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .hospitality-shell { width: min(100% - 40px, 1490px); }
  .hospitality-hero { min-height: 490px; }
  .hospitality-hero::after { height: 55px; }
  .hospitality-intro { min-height: auto; padding: 50px 0 80px; }
  .hospitality-intro__copy { margin-top: 32px; font-size: 18px; }
  .hospitality-scroll { margin-top: 45px; }
  .hospitality-process__image { height: 440px; }
  .hospitality-process__content { width: calc(100% - 40px); padding: 65px 0; }
  .hospitality-steps { margin-top: 45px; }
  .hospitality-steps li { grid-template-columns: 52px 1fr; }
  .hospitality-capabilities { padding-top: 90px; }
  .hospitality-capabilities__tabs { gap: 28px; margin: 38px 0; }
  .hospitality-capabilities__panel { grid-template-columns: 1fr; min-height: auto; padding: 70px 30px; }
  .hospitality-capabilities__copy p { margin: 50px 0 42px; line-height: 1.7; }
  .hospitality-capabilities__panel > img { margin-top: 65px; }
  .hospitality-projects { min-height: auto; padding: 85px 0; }
  .hospitality-projects__gallery { grid-template-columns: 1fr; gap: 22px; }
  .hospitality-projects__gallery img, .hospitality-projects__gallery img:first-child { height: 440px; margin-top: 0 !important; }
  .hospitality-production { grid-template-columns: 1fr; padding-top: 70px; padding-bottom: 80px; }
  .hospitality-workshop { height: 520px; min-height: 0; }
  .hospitality-features { grid-template-columns: 1fr; gap: 58px; padding: 75px 0 100px; }
}

/* Figma 1488:148: white canvas, explicit text colours and original image crops. */
.hospitality-page {background:#fff;color:#000;font-family:Inter,Arial,sans-serif}
.hospitality-eyebrow {color:#000;font-weight:300}
.hospitality-hero {background:linear-gradient(rgb(0 0 0 / 63%),rgb(0 0 0 / 63%)),var(--hospitality-hero) center / cover no-repeat}
.hospitality-hero::after {left:0;right:0;height:88px;border-radius:84px 84px 0 0}
.hospitality-hero h1 {font-family:Inter,Arial,sans-serif;font-size:40px;font-weight:700;margin:-28px 0 0}
.hospitality-intro {padding-top:55px}
.hospitality-intro>.hospitality-eyebrow {font-size:14px}
.hospitality-intro__copy {max-width:860px;color:#000;font-size:24px;line-height:1.22;margin-top:52px}
.hospitality-intro__copy::first-line {color:inherit}
.hospitality-intro__copy span {color:#7c7c7c}
.hospitality-scroll {margin-top:38px}
.hospitality-process {background:#fff;max-width:1454px;margin:auto;grid-template-columns:1fr 1fr;gap:0}
.hospitality-process__content {width:calc(100% - 164px);padding-top:36px}
.hospitality-steps {margin-top:127px}
.hospitality-steps li {grid-template-columns:22px 1fr;min-height:78px;padding:0;border:0}
.hospitality-steps li:last-child {border:0}
.hospitality-steps li.is-open {min-height:152px}
.hospitality-steps span {color:#000;font-size:12px;padding-top:5px}
.hospitality-steps h2 {font-size:26px;font-weight:300;letter-spacing:0}
.hospitality-steps p {max-width:227px;color:#000;font-weight:300;font-size:14px;line-height:1.22;margin-top:24px}
.hospitality-capabilities {padding-top:155px}
.hospitality-capabilities>h2 {font-size:40px;text-transform:uppercase}
.hospitality-capabilities__tabs {margin:26px 0 40px;color:#000;font-size:20px;font-weight:300}
.hospitality-capabilities__tabs .is-active {font-weight:700}
.hospitality-capabilities__panel {background:#121212;grid-template-columns:1fr 1fr;padding:100px max(32px,calc((100% - 1456px)/2));gap:80px}
.hospitality-capabilities__copy {text-align:center}
.hospitality-capabilities__copy h3 {font-size:36px;max-width:488px;margin:auto}
.hospitality-capabilities__copy p {color:#fff;font-weight:300;margin:40px 0 120px;line-height:1.6}
.hospitality-capabilities__copy strong {font-weight:700}
.hospitality-button {font-size:22px}
.hospitality-chair {width:348px;height:346px;position:relative;overflow:hidden;justify-self:center}
.hospitality-chair img {position:absolute;max-width:none;width:188%;height:125.2%;left:-44%;top:-9.8%;object-fit:cover}
.hospitality-projects__heading .hospitality-eyebrow {font-style:italic}
.hospitality-projects__heading h2 {max-width:188px;font-size:36px;margin:10px 0 39px}
.hospitality-link {border:1px solid #000;padding:11px 24px;font-size:14px;gap:15px}
.hospitality-link img {width:25px}
.hospitality-production {grid-template-columns:628fr 510fr;gap:clamp(50px,15vw,300px)}
.hospitality-production h2 {max-width:272px;font-weight:600;margin-bottom:32px}
.hospitality-production div>p {color:#000;line-height:1.22}
.hospitality-production__statement {align-self:end;font-size:clamp(28px,2.12vw,41px)}
.hospitality-workshop-frame {position:relative;overflow:hidden;height:min(46vw,883px)}
.hospitality-workshop {position:absolute;max-width:none;width:108.08%;height:156.61%;min-height:0;left:-2.97%;top:-34.5%}
.hospitality-features {max-width:1200px;gap:45px;padding-top:76px;padding-bottom:150px;color:#192537}
.hospitality-features h2 {font-family:Judson,serif;font-size:24px;font-weight:400;margin:14px 0 8px}
.hospitality-features p {color:#192537;font-size:12px;line-height:1.22;max-width:214px}
.hospitality-features__icon img {max-height:none}
.hospitality-features article:nth-child(1) img {width:81px;height:76px}
.hospitality-features article:nth-child(2) img {width:78px;height:40px}
.hospitality-features article:nth-child(3) img {width:77px;height:71px}
.hospitality-features article:nth-child(4) img {width:120px;height:58px}
@media(max-width:1000px){.hospitality-process{grid-template-columns:1fr}.hospitality-process__content{width:calc(100% - 80px);padding:50px 0}.hospitality-steps{margin-top:60px}.hospitality-capabilities__panel{gap:30px}.hospitality-chair{width:280px;height:278px}}
@media(max-width:700px){.hospitality-hero h1{font-size:34px}.hospitality-hero::after{height:55px;border-radius:45px 45px 0 0}.hospitality-intro__copy{font-size:18px;line-height:1.4}.hospitality-process__content{width:calc(100% - 40px)}.hospitality-capabilities>h2{font-size:30px}.hospitality-capabilities__tabs{font-size:17px}.hospitality-capabilities__panel{grid-template-columns:1fr;padding:65px 24px;gap:55px}.hospitality-capabilities__copy h3{font-size:30px}.hospitality-capabilities__copy p{margin:35px 0 45px}.hospitality-production{grid-template-columns:1fr;gap:40px}.hospitality-workshop-frame{height:360px}.hospitality-features{padding-bottom:90px}}

/* One expandable step at a time; the last selected photograph stays when collapsed. */
.hospitality-steps li {padding-bottom:36px;min-height:78px}
.hospitality-steps summary {font:300 26px/1.25 Inter,Arial,sans-serif;text-transform:uppercase;cursor:pointer;list-style:none}
.hospitality-steps summary::-webkit-details-marker {display:none}
.hospitality-steps summary:focus-visible {outline:2px solid #7c8d59;outline-offset:6px}
.hospitality-steps details[open] p {margin-bottom:10px}
.hospitality-process__photos {position:relative;height:912px;overflow:hidden}
.hospitality-steps details {min-width:0;align-self:start;display:flow-root}
.hospitality-process__photo {position:absolute;inset:0;overflow:hidden;opacity:1;visibility:visible;transition:opacity 420ms ease,visibility 420ms}
.hospitality-process__photo[hidden] {display:block;opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){.hospitality-process__photo{transition:none}}
.hospitality-process__photo img {position:absolute;width:100%;height:100%;max-width:none;object-fit:cover}
[data-process-photo="enquiry"] img {height:119.24%;top:-13.74%}
[data-process-photo="delivery"] img {width:246%;height:130.37%;left:-70.79%;top:-8%}
@media(max-width:1000px){.hospitality-process__photos{height:680px}}
@media(max-width:700px){
  .hospitality-process { min-height: 0; }
  .hospitality-process__content { padding-bottom: 0; }
  .hospitality-process__photos { display: none; }
  .hospitality-steps summary { font-size: 24px; }
  .hospitality-steps li:last-child { min-height: 0; padding-bottom: 0; }
  .hospitality-capabilities { padding-top: 48px; }
}

.hospitality-product-options {margin:40px 0 120px;color:white;line-height:1.8}
.hospitality-product-options button {font:300 16px Inter,Arial,sans-serif;color:inherit;background:none;border:0;padding:0 3px;cursor:pointer}
.hospitality-product-options button+button::before {content:'·';display:inline-block;margin-right:8px;font-weight:300}
.hospitality-product-options button[aria-pressed="true"] {font-weight:700;text-decoration:underline;text-underline-offset:7px}
.hospitality-product-options button:focus-visible {outline:2px solid white;outline-offset:4px}
.hospitality-chair[data-capability-preview] {background:#f0f0f0}
.hospitality-chair img[hidden] {display:none}
.hospitality-chair [data-capability-photo="344"] {width:100%;height:100%;left:0;top:0}
.hospitality-chair [data-capability-photo="388"] {width:153%;height:101.89%;left:-27.99%;top:0}
.hospitality-chair [data-capability-photo="389"],.hospitality-chair [data-capability-photo="390"] {width:126%;height:83.91%;left:-13%;top:8.05%}
@media(max-width:700px){
  .hospitality-capabilities__copy { display: contents; }
  .hospitality-capabilities__copy h3,
  .hospitality-product-options { text-align: center; }
  .hospitality-product-options { margin: 0; }
  .hospitality-capabilities__panel > .hospitality-chair { order: 1; }
  .hospitality-capabilities__copy > .hospitality-button { order: 2; justify-self: center; }
}

.hospitality-capabilities__panel[hidden] {display:none}
.hospitality-capabilities__tabs button {font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid transparent;padding:0 0 12px;cursor:pointer}
.hospitality-capabilities__tabs button[aria-selected="true"] {font-weight:700;border-bottom-color:#111}
.hospitality-capabilities__tabs button:focus-visible {outline:2px solid #7c8d59;outline-offset:5px}
[data-capability-group="hotel"] .hospitality-chair img {width:100%;height:100%;left:0;top:0;object-fit:contain}

/* Contact action only within the three capability sections. */
.hospitality-page :is(.hospitality-capabilities__panel, .shops-capabilities) .hospitality-button--light {
  border-color: #fff;
  background: #000;
  color: #fff;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.hospitality-page :is(.hospitality-capabilities__panel, .shops-capabilities) .hospitality-button--light:is(:hover, :focus-visible) {
  border-color: #111;
  background: #fff;
  color: #111;
}
