:root {
  --ink: #121518;
  --paper: #f3f0e9;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: #fff;
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

.demo-bar {
  position: relative;
  z-index: 20;
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 7px clamp(18px, 4vw, 64px);
  border-bottom: 1px solid rgba(23, 28, 25, 0.12);
  background: #e7ebe4;
  color: #46504a;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.demo-bar strong {
  color: #1c2921;
}

.demo-bar a {
  font-weight: 700;
}

.demo-bar.dark {
  border-color: rgba(255, 255, 255, 0.12);
  background: #131515;
  color: rgba(255, 255, 255, 0.64);
}

.demo-bar.dark strong,
.demo-bar.dark a {
  color: #fff;
}

/* Showcase */
.showcase {
  min-height: 100vh;
  overflow: hidden;
  background: #111315;
  color: #f6f2e8;
}

.showcase-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 84px;
  padding: 0 clamp(22px, 5vw, 78px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.showcase-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  letter-spacing: -0.03em;
}

.showcase-brand span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #e6ff63;
  color: #111315;
  font-size: 11px;
  font-weight: 900;
}

.showcase-brand strong {
  font-size: 18px;
}

.showcase-nav-note {
  color: rgba(255, 255, 255, 0.5);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.showcase-contact {
  justify-self: end;
  border-bottom: 1px solid rgba(255, 255, 255, 0.45);
  padding: 5px 0;
  font-size: 13px;
}

.showcase-hero {
  padding: clamp(90px, 13vw, 170px) clamp(22px, 8vw, 120px) clamp(80px, 10vw, 130px);
}

.showcase-kicker {
  margin: 0 0 28px;
  color: #e6ff63;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}

.showcase-hero h1 {
  max-width: 1140px;
  margin: 0;
  font-size: clamp(48px, 7.7vw, 116px);
  font-weight: 600;
  letter-spacing: -0.075em;
  line-height: 0.93;
}

.showcase-hero h1 em {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
}

.showcase-intro {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-top: 65px;
  padding-top: 25px;
  border-top: 1px solid rgba(255, 255, 255, 0.13);
}

.showcase-intro p {
  max-width: 600px;
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: clamp(17px, 2vw, 24px);
  line-height: 1.55;
}

.showcase-intro span {
  color: rgba(255, 255, 255, 0.46);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.showcase-list {
  padding: 0 clamp(22px, 5vw, 78px);
}

.showcase-card {
  display: grid;
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.28fr);
  min-height: 700px;
  margin-bottom: 36px;
  overflow: hidden;
  border-radius: 4px;
  color: #172019;
}

.showcase-card.sage {
  background: #ccd8c8;
}

.showcase-card.ink {
  background: #d7d0c3;
}

.showcase-card.terracotta {
  background: #d69b75;
}

.showcase-card.olive {
  background: #c8c7a9;
}

.showcase-card.aqua {
  background: #c9e1e5;
}

.showcase-card.clay {
  background: #dfb9a5;
}

.showcase-card.concrete {
  background: #c8c6bf;
}

.showcase-card.botanical {
  background: #ced9c9;
}

.showcase-card.cobalt {
  background: #b9cbd5;
}

.showcase-card-copy {
  display: flex;
  flex-direction: column;
  padding: clamp(36px, 5vw, 74px);
}

.showcase-card-meta {
  display: flex;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(18, 25, 21, 0.2);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.showcase-card-type {
  margin: 64px 0 12px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  font-style: italic;
}

.showcase-card h2 {
  margin: 0;
  font-size: clamp(44px, 5vw, 74px);
  letter-spacing: -0.065em;
  line-height: 0.95;
}

.showcase-card-description {
  max-width: 490px;
  margin: 27px 0 0;
  font-size: 16px;
  line-height: 1.65;
}

.showcase-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 32px;
}

.showcase-tags span {
  padding: 8px 12px;
  border: 1px solid rgba(18, 25, 21, 0.25);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.showcase-open {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding: 19px 0 9px;
  border-bottom: 1px solid currentColor;
  font-size: 14px;
  font-weight: 800;
}

.showcase-open span {
  font-size: 21px;
  transition: transform 0.2s ease;
}

.showcase-open:hover span {
  transform: translate(3px, -3px);
}

.showcase-browser {
  position: relative;
  min-height: 630px;
  margin: 34px 34px 34px 0;
  overflow: hidden;
  border-radius: 12px;
  background: #222;
  box-shadow: 0 30px 80px rgba(20, 20, 18, 0.28);
}

.showcase-browser-bar {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 0;
  left: 0;
  display: flex;
  height: 36px;
  align-items: center;
  gap: 7px;
  padding: 0 15px;
  background: rgba(17, 19, 21, 0.88);
  backdrop-filter: blur(8px);
}

.showcase-browser-bar i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.38);
}

.showcase-browser-bar span {
  margin-left: auto;
  color: rgba(255, 255, 255, 0.58);
  font-size: 8px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.showcase-browser > img {
  width: 100%;
  height: 100%;
  min-height: 630px;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.showcase-browser:hover > img {
  transform: scale(1.025);
}

.locker-browser { background: #071821; }
.locker-browser-preview { position: absolute; inset: 36px 0 0; overflow: hidden; color: #fff; }
.locker-preview-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px); background-size: 90px 90px; }
.locker-preview-nav { height: 64px; padding: 0 26px; position: relative; z-index: 2; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid rgba(255,255,255,.17); }
.locker-preview-nav > b { width: 25px; height: 25px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; transform: skewY(-8deg); }
.locker-preview-nav > b i { display: block; background: #d9ff43; }
.locker-preview-nav > strong { font-size: 13px; letter-spacing: .2em; }
.locker-preview-nav > span { margin-left: auto; padding: 12px 15px; background: #fff; color: #071821; font-size: 7px; font-weight: 900; letter-spacing: .1em; }
.locker-preview-copy { width: 58%; position: absolute; z-index: 2; left: 7%; top: 22%; }
.locker-preview-copy small { color: rgba(255,255,255,.6); font-size: 7px; font-weight: 800; letter-spacing: .16em; }
.locker-preview-copy h3 { margin: 22px 0 18px; font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif; font-size: clamp(50px, 5.2vw, 84px); font-weight: 900; line-height: .86; letter-spacing: -.025em; }
.locker-preview-copy h3 em { color: #d9ff43; font-style: normal; }
.locker-preview-copy p { max-width: 330px; color: rgba(255,255,255,.55); font-size: 11px; line-height: 1.55; }
.locker-preview-copy > b { margin-top: 18px; padding: 15px 18px; display: inline-block; background: #d9ff43; color: #071821; font-size: 7px; letter-spacing: .1em; }
.locker-preview-product { width: 215px; height: 328px; padding: 7px; position: absolute; z-index: 2; right: 6%; top: 23%; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(2, 1fr); gap: 4px; background: linear-gradient(140deg, #afbec4, #526d77); box-shadow: 24px 32px 60px rgba(0,0,0,.45); transform: rotateY(-11deg); }
.lp-door { position: relative; background: linear-gradient(135deg, #6c8792, #9caeb5 50%, #607b86); border: 1px solid #3e5964; }
.lp-door i { width: 23px; height: 10px; position: absolute; top: 14px; left: 50%; transform: translateX(-50%); border-top: 1px solid #2c4751; border-bottom: 1px solid #2c4751; }
.lp-door b { width: 5px; height: 14px; position: absolute; right: 6px; top: 48%; background: #263e48; }

/* Anteprima configuratore: digital showroom scuro con accento lime. */
.showcase-card.cobalt { background: #dfe7ea; }
.locker-browser { background: #080d12; }
.locker-preview-grid { opacity: .75; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); }
.locker-preview-nav { border-bottom-color: rgba(255,255,255,.14); color: #eef3f5; background: rgba(8,13,18,.86); }
.locker-preview-nav > b i { background: #78aeca; }
.locker-preview-nav > span { background: #dfe7ea; color: #081014; }
.locker-preview-copy { top: 18%; color: #eef3f5; }
.locker-preview-copy small { color: #8dbbd1; }
.locker-preview-copy h3 { max-width: 500px; font-family: "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif; font-size: clamp(44px, 4.7vw, 72px); font-weight: 650; line-height: .9; letter-spacing: -.06em; }
.locker-preview-copy h3 em { color: #82929b; font-family: inherit; font-weight: 350; font-style: normal; }
.locker-preview-copy p { color: #87949a; }
.locker-preview-copy > b { background: #dfe7ea; color: #081014; }
.locker-preview-product { width: 225px; height: 340px; background: linear-gradient(140deg, #586d79, #263841); box-shadow: 25px 35px 65px rgba(0,0,0,.48); }
.lp-door { background: linear-gradient(135deg, #4b606c, #607681 50%, #334751); border-color: #22343d; }
.lp-door i { border-color: #172a33; }
.lp-door b { background: #111b20; }
.locker-browser .showcase-browser-overlay { background: linear-gradient(transparent, rgba(13,19,21,.88)); }

.showcase-browser-overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  padding: 80px 28px 26px;
  background: linear-gradient(transparent, rgba(8, 10, 9, 0.76));
  color: #fff;
}

.showcase-browser-overlay span {
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.showcase-browser-overlay strong {
  font-size: 17px;
}

.showcase-value {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 80px;
  padding: clamp(100px, 13vw, 170px) clamp(22px, 8vw, 120px);
}

.showcase-value > div > h2 {
  max-width: 620px;
  margin: 0;
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1;
}

.showcase-value-grid article {
  display: grid;
  grid-template-columns: 46px 0.8fr 1.2fr;
  gap: 16px;
  padding: 26px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.showcase-value-grid span {
  color: #e6ff63;
  font-size: 10px;
}

.showcase-value-grid h3 {
  margin: 0;
  font-size: 17px;
}

.showcase-value-grid p {
  margin: 0;
  color: rgba(255, 255, 255, 0.56);
  font-size: 14px;
  line-height: 1.6;
}

.showcase-cta {
  margin: 0 clamp(22px, 5vw, 78px);
  padding: clamp(60px, 8vw, 100px);
  background: #e6ff63;
  color: #111315;
}

.showcase-cta .showcase-kicker {
  color: #111315;
}

.showcase-cta h2 {
  max-width: 940px;
  margin: 0 0 48px;
  font-size: clamp(48px, 7vw, 100px);
  font-weight: 600;
  letter-spacing: -0.07em;
  line-height: 0.95;
}

.showcase-cta a {
  display: inline-flex;
  min-width: min(100%, 410px);
  justify-content: space-between;
  padding: 17px 0;
  border-bottom: 2px solid currentColor;
  font-weight: 800;
}

.showcase-footer {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding: 36px clamp(22px, 5vw, 78px);
  color: rgba(255, 255, 255, 0.45);
  font-size: 11px;
}

/* Psychology */
.psychology-site {
  --psych-ink: #243029;
  --psych-sage: #7e9284;
  --psych-soft: #e8ede6;
  overflow: hidden;
  background: #f8f5ee;
  color: var(--psych-ink);
}

.psychology-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 88px;
  align-items: center;
  gap: 32px;
  padding: 0 clamp(20px, 5vw, 72px);
}

.psychology-brand {
  display: flex;
  align-items: center;
  gap: 13px;
}

.psychology-brand > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid #8ea094;
  border-radius: 50%;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
}

.psychology-brand div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.psychology-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  font-weight: 500;
}

.psychology-brand small {
  color: #718077;
  font-size: 8px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.psychology-nav nav {
  display: flex;
  gap: clamp(18px, 2.4vw, 36px);
}

.psychology-nav nav a {
  font-size: 12px;
}

.psychology-nav-cta {
  justify-self: end;
  padding: 13px 18px;
  border-radius: 999px;
  background: var(--psych-ink);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
}

.psychology-hero {
  display: grid;
  grid-template-columns: 1.02fr 0.98fr;
  min-height: calc(100vh - 122px);
}

.psychology-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 80px clamp(28px, 7vw, 110px);
}

.psychology-eyebrow {
  margin: 0 0 24px;
  color: #6a7e70;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.19em;
  text-transform: uppercase;
}

.psychology-hero h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(50px, 6vw, 92px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.99;
}

.psychology-hero h1 em {
  color: var(--psych-sage);
  font-weight: 400;
}

.psychology-lead {
  max-width: 590px;
  margin: 31px 0 0;
  color: #526158;
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.7;
}

.psychology-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 28px;
  margin-top: 34px;
}

.psychology-actions a:first-child {
  padding: 15px 20px;
  border-radius: 999px;
  background: var(--psych-ink);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.psychology-actions a:last-child {
  padding-bottom: 5px;
  border-bottom: 1px solid #87958c;
  font-size: 12px;
}

.psychology-proof {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 13px;
  margin-top: 56px;
  color: #6f7e75;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.psychology-proof i {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #8fa195;
}

.psychology-hero-image {
  position: relative;
  min-height: 670px;
  overflow: hidden;
}

.psychology-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.psychology-image-note {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 23px 26px;
  background: rgba(248, 245, 238, 0.88);
  backdrop-filter: blur(12px);
}

.psychology-image-note span {
  color: #708075;
  font-size: 9px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.psychology-image-note strong {
  max-width: 280px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 16px;
  font-weight: 400;
}

.psychology-section {
  padding: clamp(90px, 11vw, 150px) clamp(25px, 8vw, 120px);
}

.psychology-section-head {
  display: grid;
  grid-template-columns: 0.8fr 1.1fr 0.8fr;
  gap: 50px;
  align-items: start;
}

.psychology-section-head h2,
.psychology-profile h2,
.psychology-faq h2,
.psychology-contact h2,
.psychology-method-copy h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 1.05;
}

.psychology-section-head > p:last-child {
  margin: 5px 0 0;
  color: #66766c;
  font-size: 15px;
  line-height: 1.7;
}

.psychology-card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 72px;
  border-top: 1px solid #cfd7ce;
  border-left: 1px solid #cfd7ce;
}

.psychology-card-grid article {
  min-height: 315px;
  padding: 29px;
  border-right: 1px solid #cfd7ce;
  border-bottom: 1px solid #cfd7ce;
}

.psychology-card-grid span {
  color: #8a9b90;
  font-size: 10px;
}

.psychology-card-grid h3 {
  margin: 80px 0 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
}

.psychology-card-grid p {
  margin: 0;
  color: #68766e;
  font-size: 14px;
  line-height: 1.65;
}

.psychology-method {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  background: var(--psych-soft);
}

.psychology-method-quote {
  display: flex;
  min-height: 720px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(45px, 8vw, 120px);
  background:
    radial-gradient(circle at 25% 20%, rgba(255,255,255,.85), transparent 40%),
    #91a195;
  color: #fff;
}

.psychology-method-quote > span {
  font-family: Georgia, serif;
  font-size: 100px;
  line-height: 0.5;
  opacity: 0.6;
}

.psychology-method-quote blockquote {
  max-width: 560px;
  margin: 45px 0 28px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4.5vw, 64px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}

.psychology-method-quote p {
  max-width: 420px;
  margin: 0;
  color: rgba(255,255,255,.76);
  line-height: 1.6;
}

.psychology-method-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(60px, 8vw, 120px);
}

.psychology-method-copy > p:not(.psychology-eyebrow) {
  max-width: 610px;
  margin: 28px 0 45px;
  color: #617067;
  line-height: 1.75;
}

.psychology-method-copy ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.psychology-method-copy li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 18px;
  padding: 22px 0;
  border-top: 1px solid #c6d0c7;
}

.psychology-method-copy li > span {
  color: #83968a;
  font-size: 10px;
}

.psychology-method-copy li strong {
  font-family: Georgia, serif;
  font-size: 19px;
  font-weight: 400;
}

.psychology-method-copy li p {
  margin: 6px 0 0;
  color: #68776d;
  font-size: 13px;
}

.psychology-profile {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: clamp(50px, 10vw, 160px);
}

.psychology-profile-copy > p {
  margin: 0 0 21px;
  color: #58675e;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(20px, 2.2vw, 29px);
  line-height: 1.55;
}

.psychology-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 35px;
}

.psychology-credentials span {
  padding: 9px 12px;
  border: 1px solid #cbd4cc;
  border-radius: 999px;
  color: #65736a;
  font-size: 10px;
}

.psychology-faq {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(50px, 10vw, 160px);
  background: #f0eee7;
}

.psychology-faq details {
  border-top: 1px solid #c8cec7;
  padding: 24px 0;
}

.psychology-faq details:last-child {
  border-bottom: 1px solid #c8cec7;
}

.psychology-faq summary {
  cursor: pointer;
  font-family: Georgia, serif;
  font-size: 20px;
}

.psychology-faq details p {
  max-width: 650px;
  margin: 15px 0 0;
  color: #637168;
  font-size: 14px;
  line-height: 1.7;
}

.psychology-contact {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: clamp(50px, 9vw, 140px);
  padding: clamp(80px, 11vw, 150px) clamp(25px, 8vw, 120px);
  background: #28342d;
  color: #fff;
}

.psychology-contact > div > p:not(.psychology-eyebrow) {
  max-width: 520px;
  color: rgba(255,255,255,.64);
  font-size: 16px;
  line-height: 1.7;
}

.psychology-contact .psychology-eyebrow {
  color: #a9b9ae;
}

.psychology-contact-data {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  margin-top: 40px;
  color: rgba(255,255,255,.78);
  font-size: 13px;
}

.psychology-contact-data a {
  border-bottom: 1px solid rgba(255,255,255,.35);
}

.psychology-contact form,
.law-contact form,
.restaurant-reservation form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.psychology-contact label,
.law-contact label,
.restaurant-reservation label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: rgba(255,255,255,.72);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.psychology-contact label:nth-child(4),
.law-contact label:nth-child(4) {
  grid-column: 1 / -1;
}

.psychology-contact input,
.psychology-contact select,
.psychology-contact textarea,
.law-contact input,
.law-contact select,
.law-contact textarea,
.restaurant-reservation input,
.restaurant-reservation select {
  width: 100%;
  border: 1px solid rgba(255,255,255,.23);
  border-radius: 0;
  outline: none;
  background: rgba(255,255,255,.04);
  color: #fff;
  padding: 14px;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

.psychology-contact option,
.law-contact option,
.restaurant-reservation option {
  color: #111;
}

.psychology-contact form button,
.law-contact form button,
.restaurant-reservation form button {
  grid-column: 1 / -1;
  cursor: pointer;
  border: 0;
  padding: 16px 20px;
  background: #e7eee8;
  color: #243029;
  font-size: 12px;
  font-weight: 800;
}

.psychology-contact form small,
.law-contact form small,
.restaurant-reservation form small {
  grid-column: 1 / -1;
  color: rgba(255,255,255,.4);
  font-size: 9px;
  letter-spacing: .04em;
}

.psychology-footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 30px;
  padding: 45px clamp(25px, 8vw, 120px);
  background: #1d2621;
  color: rgba(255,255,255,.52);
}

.psychology-footer > div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.psychology-footer strong {
  color: #fff;
  font-family: Georgia, serif;
  font-weight: 400;
}

.psychology-footer span,
.psychology-footer p {
  margin: 0;
  font-size: 10px;
}

.psychology-footer a {
  color: #fff;
}

/* Law */
.law-site {
  --law-cream: #e8e0d2;
  --law-gold: #b99a64;
  overflow: hidden;
  background: #0f1111;
  color: #eee9df;
}

.law-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 96px;
  align-items: center;
  gap: 30px;
  padding: 0 clamp(22px, 5vw, 72px);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

.law-brand {
  display: grid;
  grid-template-columns: auto auto;
  width: max-content;
  align-items: baseline;
  column-gap: 6px;
  font-family: Georgia, serif;
}

.law-brand strong {
  font-size: 20px;
  letter-spacing: .08em;
}

.law-brand > span {
  color: var(--law-gold);
  font-size: 11px;
  letter-spacing: .1em;
}

.law-brand small {
  grid-column: 1 / -1;
  margin-top: 4px;
  color: rgba(255,255,255,.45);
  font-family: Arial, sans-serif;
  font-size: 7px;
  letter-spacing: .28em;
  text-transform: uppercase;
}

.law-nav nav {
  display: flex;
  gap: clamp(20px, 2.7vw, 40px);
}

.law-nav nav a {
  color: rgba(255,255,255,.68);
  font-size: 11px;
}

.law-nav-cta {
  justify-self: end;
  padding: 13px 16px;
  border: 1px solid rgba(255,255,255,.38);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.law-hero {
  position: relative;
  min-height: calc(100vh - 130px);
  overflow: hidden;
}

.law-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.law-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(7,9,9,.95) 0%, rgba(7,9,9,.76) 48%, rgba(7,9,9,.2) 100%),
    linear-gradient(0deg, rgba(7,9,9,.72), transparent 52%);
}

.law-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: calc(100vh - 130px);
  flex-direction: column;
  justify-content: center;
  padding: 80px clamp(25px, 8vw, 120px);
}

.law-hero-copy > p {
  margin: 0 0 30px;
  color: var(--law-gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.law-hero h1 {
  max-width: 1020px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(55px, 7.3vw, 108px);
  font-weight: 400;
  letter-spacing: -.06em;
  line-height: .98;
}

.law-hero h1 em {
  color: var(--law-gold);
  font-weight: 400;
}

.law-hero-copy > div {
  display: flex;
  max-width: 950px;
  align-items: end;
  justify-content: space-between;
  gap: 45px;
  margin-top: 46px;
  padding-top: 25px;
  border-top: 1px solid rgba(255,255,255,.2);
}

.law-hero-copy > div p {
  max-width: 530px;
  margin: 0;
  color: rgba(255,255,255,.66);
  font-size: 17px;
  line-height: 1.65;
}

.law-hero-copy > div a {
  white-space: nowrap;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--law-gold);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.law-hero-index {
  position: absolute;
  z-index: 2;
  right: 40px;
  bottom: 32px;
  display: flex;
  align-items: baseline;
  gap: 9px;
}

.law-hero-index span {
  color: rgba(255,255,255,.18);
  font-family: Georgia, serif;
  font-size: 72px;
}

.law-hero-index small {
  color: rgba(255,255,255,.5);
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.law-kicker {
  margin: 0 0 25px;
  color: #9d7e4f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.law-intro {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(60px, 11vw, 175px);
  padding: clamp(95px, 12vw, 170px) clamp(25px, 8vw, 120px);
  background: var(--law-cream);
  color: #202322;
}

.law-intro h2,
.law-section-title h2,
.law-approach h2,
.law-contact h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 400;
  letter-spacing: -.05em;
  line-height: 1.04;
}

.law-intro > div:last-child > p {
  max-width: 720px;
  margin: 0 0 24px;
  color: #555851;
  font-family: Georgia, serif;
  font-size: clamp(19px, 2vw, 26px);
  line-height: 1.55;
}

.law-numbers {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 55px;
  padding-top: 24px;
  border-top: 1px solid #c7bdae;
}

.law-numbers div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.law-numbers strong {
  font-family: Georgia, serif;
  font-size: 37px;
  font-weight: 400;
}

.law-numbers span {
  color: #6c6c63;
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.law-practice {
  padding: clamp(95px, 12vw, 170px) clamp(25px, 8vw, 120px);
}

.law-section-title {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 50px;
  margin-bottom: 70px;
}

.law-practice-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(255,255,255,.18);
  border-left: 1px solid rgba(255,255,255,.18);
}

.law-practice-grid article {
  display: flex;
  min-height: 390px;
  flex-direction: column;
  padding: 29px;
  border-right: 1px solid rgba(255,255,255,.18);
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.law-practice-grid article > span {
  color: var(--law-gold);
  font-size: 9px;
}

.law-practice-grid h3 {
  margin: 85px 0 18px;
  font-family: Georgia, serif;
  font-size: 27px;
  font-weight: 400;
}

.law-practice-grid p {
  margin: 0;
  color: rgba(255,255,255,.54);
  font-size: 13px;
  line-height: 1.65;
}

.law-practice-grid a {
  margin-top: auto;
  color: var(--law-gold);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.law-approach {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(60px, 10vw, 160px);
  padding: clamp(90px, 11vw, 150px) clamp(25px, 8vw, 120px);
  background: #ded7cc;
  color: #222523;
}

.law-approach ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.law-approach li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 20px;
  padding: 27px 0;
  border-top: 1px solid #b9afa0;
}

.law-approach li:last-child {
  border-bottom: 1px solid #b9afa0;
}

.law-approach li > span {
  color: #9d7e4f;
  font-size: 9px;
}

.law-approach h3 {
  margin: 0 0 8px;
  font-family: Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}

.law-approach li p {
  margin: 0;
  color: #65645d;
  font-size: 14px;
  line-height: 1.6;
}

.law-team {
  padding: clamp(95px, 12vw, 170px) clamp(25px, 8vw, 120px);
}

.law-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.law-team-grid article {
  padding: 30px;
  border: 1px solid rgba(255,255,255,.16);
}

.law-team-grid article > div {
  display: grid;
  height: 240px;
  place-items: center;
  margin-bottom: 25px;
  background:
    linear-gradient(135deg, rgba(185,154,100,.25), transparent),
    #1a1d1c;
  color: rgba(255,255,255,.14);
  font-family: Georgia, serif;
  font-size: 80px;
}

.law-team-grid p {
  margin: 0 0 10px;
  color: var(--law-gold);
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.law-team-grid h3 {
  margin: 0 0 7px;
  font-family: Georgia, serif;
  font-size: 23px;
  font-weight: 400;
}

.law-team-grid span {
  color: rgba(255,255,255,.48);
  font-size: 12px;
}

.law-contact {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: clamp(50px, 9vw, 140px);
  padding: clamp(90px, 11vw, 150px) clamp(25px, 8vw, 120px);
  background: #252825;
}

.law-contact > div > p:not(.law-kicker) {
  max-width: 520px;
  color: rgba(255,255,255,.56);
  line-height: 1.7;
}

.law-contact-data {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 9px;
  margin-top: 35px;
  color: rgba(255,255,255,.72);
  font-size: 12px;
}

.law-contact-data a {
  border-bottom: 1px solid rgba(255,255,255,.25);
}

.law-contact form button {
  background: var(--law-gold);
  color: #151717;
}

.law-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 42px clamp(25px, 8vw, 120px);
  color: rgba(255,255,255,.42);
  font-size: 10px;
}

.law-footer p {
  margin: 0;
}

.law-footer p a {
  color: #fff;
}

/* Restaurant */
.restaurant-site {
  --food-cream: #efe7d7;
  --food-olive: #4d5437;
  --food-red: #a4492e;
  overflow: hidden;
  background: #171812;
  color: var(--food-cream);
}

.restaurant-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 92px;
  align-items: center;
  gap: 28px;
  padding: 0 clamp(20px, 5vw, 70px);
  background: #151610;
}

.restaurant-brand {
  display: flex;
  width: max-content;
  flex-direction: column;
  gap: 3px;
}

.restaurant-brand strong {
  font-family: Georgia, serif;
  font-size: 25px;
  font-weight: 400;
  letter-spacing: .17em;
}

.restaurant-brand small {
  color: #a69d84;
  font-size: 7px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.restaurant-nav nav {
  display: flex;
  gap: clamp(20px, 3vw, 44px);
}

.restaurant-nav nav a {
  color: rgba(239,231,215,.68);
  font-size: 11px;
}

.restaurant-book {
  justify-self: end;
  padding: 13px 22px;
  background: var(--food-red);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.restaurant-hero {
  position: relative;
  min-height: calc(100vh - 126px);
  overflow: hidden;
}

.restaurant-hero > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.restaurant-hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(17,17,12,.78), transparent 70%),
    linear-gradient(0deg, rgba(15,16,11,.7), transparent 55%);
}

.restaurant-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: calc(100vh - 126px);
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: 70px clamp(25px, 8vw, 120px);
}

.restaurant-hero-copy > p,
.restaurant-kicker {
  margin: 0 0 26px;
  color: #d29a70;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.restaurant-hero h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(62px, 8.5vw, 126px);
  font-weight: 400;
  letter-spacing: -.07em;
  line-height: .88;
}

.restaurant-hero h1 em {
  font-weight: 400;
}

.restaurant-hero-copy > a {
  margin-top: 50px;
  padding: 15px 20px;
  background: var(--food-cream);
  color: #1a1b15;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.restaurant-hero-info {
  position: absolute;
  z-index: 2;
  right: clamp(25px, 5vw, 70px);
  bottom: 30px;
  display: flex;
  gap: 30px;
  color: rgba(255,255,255,.66);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.restaurant-story {
  position: relative;
  padding: clamp(100px, 14vw, 190px) clamp(25px, 12vw, 180px);
  background: var(--food-cream);
  color: #29291f;
}

.restaurant-story .restaurant-kicker {
  color: var(--food-red);
}

.restaurant-story h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: clamp(52px, 7.4vw, 105px);
  font-weight: 400;
  letter-spacing: -.065em;
  line-height: .92;
}

.restaurant-story h2 em {
  color: var(--food-olive);
  font-weight: 400;
}

.restaurant-story-copy {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  max-width: 880px;
  margin: 70px 0 0 auto;
}

.restaurant-story-copy p {
  margin: 0;
  color: #5e5b4e;
  font-family: Georgia, serif;
  font-size: clamp(18px, 2vw, 25px);
  line-height: 1.55;
}

.restaurant-signature {
  position: absolute;
  right: 7vw;
  top: 12vw;
  color: rgba(76,84,55,.12);
  font-family: Georgia, serif;
  font-size: clamp(80px, 12vw, 180px);
}

.restaurant-menu {
  padding: clamp(90px, 12vw, 160px) clamp(25px, 8vw, 120px);
  background: #23241a;
}

.restaurant-menu-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 50px;
  margin-bottom: 70px;
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.restaurant-menu h2,
.restaurant-experience h2,
.restaurant-reservation h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: clamp(50px, 6vw, 86px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .98;
}

.restaurant-menu-head > p {
  max-width: 420px;
  margin: 0;
  color: rgba(239,231,215,.5);
  font-size: 13px;
  line-height: 1.65;
}

.restaurant-menu-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(25px, 5vw, 70px);
}

.restaurant-menu-columns article > h3 {
  margin: 0 0 40px;
  color: #d29a70;
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.restaurant-dish {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  min-height: 125px;
  padding: 22px 0;
  border-top: 1px solid rgba(255,255,255,.14);
}

.restaurant-dish strong {
  font-family: Georgia, serif;
  font-size: 19px;
  font-weight: 400;
}

.restaurant-dish p {
  max-width: 270px;
  margin: 8px 0 0;
  color: rgba(239,231,215,.47);
  font-size: 12px;
  line-height: 1.55;
}

.restaurant-dish > span {
  color: #d29a70;
  font-size: 11px;
}

.restaurant-tasting {
  display: grid;
  grid-template-columns: .7fr 1fr auto;
  gap: 40px;
  align-items: center;
  margin-top: 65px;
  padding: 35px;
  border: 1px solid rgba(210,154,112,.45);
}

.restaurant-tasting > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.restaurant-tasting span {
  color: #d29a70;
  font-size: 8px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.restaurant-tasting strong {
  font-family: Georgia, serif;
  font-size: 24px;
  font-weight: 400;
}

.restaurant-tasting p {
  margin: 0;
  color: rgba(239,231,215,.5);
  font-size: 13px;
}

.restaurant-experience {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--food-cream);
  color: #29291f;
}

.restaurant-experience-image {
  min-height: 720px;
  overflow: hidden;
}

.restaurant-experience-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.12);
  filter: saturate(.78);
}

.restaurant-experience > div:last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(65px, 8vw, 120px);
}

.restaurant-experience .restaurant-kicker,
.restaurant-reservation .restaurant-kicker {
  color: var(--food-red);
}

.restaurant-experience > div:last-child > p:not(.restaurant-kicker) {
  max-width: 570px;
  margin: 30px 0 50px;
  color: #626052;
  font-family: Georgia, serif;
  font-size: 20px;
  line-height: 1.6;
}

.restaurant-experience dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding-top: 20px;
  border-top: 1px solid #c8bdac;
}

.restaurant-experience dl div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.restaurant-experience dt {
  color: #918874;
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.restaurant-experience dd {
  margin: 0;
  font-family: Georgia, serif;
  font-size: 18px;
}

.restaurant-reservation {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(60px, 10vw, 160px);
  padding: clamp(90px, 12vw, 160px) clamp(25px, 8vw, 120px);
  background: #ad4e32;
  color: #fff4e5;
}

.restaurant-reservation > div > p:not(.restaurant-kicker) {
  max-width: 510px;
  margin: 28px 0;
  color: rgba(255,244,229,.7);
  line-height: 1.7;
}

.restaurant-reservation > div > a {
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(255,255,255,.5);
  font-family: Georgia, serif;
  font-size: 21px;
}

.restaurant-reservation form > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.restaurant-reservation form > label:first-child,
.restaurant-reservation form > div,
.restaurant-reservation form button,
.restaurant-reservation form small {
  grid-column: 1 / -1;
}

.restaurant-reservation form button {
  background: #fff2df;
  color: #8f3d27;
}

.restaurant-contact {
  display: grid;
  grid-template-columns: 1.1fr repeat(3, .7fr);
  gap: 40px;
  padding: 70px clamp(25px, 8vw, 120px);
}

.restaurant-contact > div:not(.restaurant-brand) {
  padding-top: 5px;
  border-top: 1px solid rgba(255,255,255,.2);
}

.restaurant-contact > div > span {
  color: #d29a70;
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.restaurant-contact > div > p {
  color: rgba(239,231,215,.62);
  font-size: 12px;
  line-height: 1.7;
}

.restaurant-footer {
  display: flex;
  justify-content: space-between;
  gap: 30px;
  padding: 25px clamp(25px, 8vw, 120px);
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(239,231,215,.36);
  font-size: 9px;
}

.restaurant-footer a {
  color: #fff;
}

/* Hotel & B&B */
.hotel-site {
  overflow: hidden;
  background: #eee8da;
  color: #24271f;
  font-family: Arial, Helvetica, sans-serif;
}

.hotel-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 88px;
  padding: 0 clamp(22px, 5vw, 76px);
  border-bottom: 1px solid rgba(36, 39, 31, .18);
}

.hotel-brand {
  display: flex;
  flex-direction: column;
  width: max-content;
}

.hotel-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: .16em;
}

.hotel-brand small {
  margin-top: 4px;
  color: #737561;
  font-size: 8px;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.hotel-nav nav {
  display: flex;
  gap: 30px;
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.hotel-book-link {
  justify-self: end;
  padding-bottom: 5px;
  border-bottom: 1px solid #24271f;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.hotel-hero {
  position: relative;
  min-height: 850px;
  color: #fff;
}

.hotel-hero > img,
.hotel-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hotel-hero > img {
  object-fit: cover;
}

.hotel-hero-shade {
  background: linear-gradient(90deg, rgba(20, 23, 17, .66), rgba(20, 23, 17, .08) 72%),
    linear-gradient(0deg, rgba(20, 23, 17, .52), transparent 55%);
}

.hotel-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 700px;
  flex-direction: column;
  justify-content: flex-end;
  padding: 110px clamp(25px, 8vw, 120px) 95px;
}

.hotel-hero-copy > p {
  margin: 0 0 28px;
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.hotel-hero-copy h1 {
  max-width: 980px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(63px, 8vw, 122px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .91;
}

.hotel-hero-copy h1 em {
  color: #cdd0a9;
  font-weight: 400;
}

.hotel-hero-copy > div {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 50px;
  margin-top: 45px;
}

.hotel-hero-copy > div p {
  max-width: 470px;
  margin: 0;
  color: rgba(255,255,255,.74);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.55;
}

.hotel-hero-copy > div a {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,.65);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hotel-booking-strip {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.2fr;
  max-width: 1180px;
  margin: 0 auto;
  background: #f5f1e7;
  color: #24271f;
  box-shadow: 0 24px 60px rgba(20, 23, 17, .2);
}

.hotel-booking-strip label {
  display: flex;
  min-height: 104px;
  flex-direction: column;
  justify-content: center;
  padding: 20px 28px;
  border-right: 1px solid rgba(36,39,31,.15);
  color: #72745f;
  font-size: 8px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.hotel-booking-strip input,
.hotel-booking-strip select {
  width: 100%;
  margin-top: 10px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #24271f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
}

.hotel-booking-strip button {
  border: 0;
  background: #8b8e69;
  color: #fff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.hotel-kicker {
  margin: 0 0 22px;
  color: #777a5d;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.hotel-story {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(60px, 10vw, 160px);
  padding: 170px clamp(25px, 8vw, 120px) 140px;
}

.hotel-story h2,
.hotel-section-head h2,
.hotel-experience-title h2,
.hotel-direct-card h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(46px, 5vw, 76px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .98;
}

.hotel-story > div:last-child {
  padding-top: 45px;
}

.hotel-story > div:last-child > p {
  color: #67695c;
  font-size: 14px;
  line-height: 1.8;
}

.hotel-story .hotel-story-lead {
  color: #24271f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 23px;
  line-height: 1.55;
}

.hotel-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 45px;
  padding-top: 24px;
  border-top: 1px solid rgba(36,39,31,.18);
  color: #555849;
  font-size: 10px;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.hotel-rooms {
  padding: 130px clamp(25px, 6vw, 94px);
  background: #22261e;
  color: #f2eddf;
}

.hotel-section-head {
  display: grid;
  grid-template-columns: 1.4fr .6fr;
  align-items: end;
  gap: 50px;
}

.hotel-section-head > p {
  max-width: 360px;
  margin: 0 0 8px auto;
  color: rgba(242,237,223,.56);
  font-size: 13px;
  line-height: 1.7;
}

.hotel-room-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 70px;
}

.hotel-room-grid article {
  padding-bottom: 26px;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

.hotel-room-image {
  position: relative;
  height: 360px;
  overflow: hidden;
}

.hotel-room-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hotel-room-grid article:nth-child(2) img {
  object-position: 70% center;
}

.hotel-room-grid article:nth-child(3) img {
  object-position: 28% center;
}

.hotel-room-image span {
  position: absolute;
  top: 14px;
  left: 14px;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  background: #eee8da;
  color: #24271f;
  font-size: 9px;
}

.hotel-room-grid article > div:nth-child(2) {
  position: relative;
  padding: 25px 0 18px;
}

.hotel-room-grid article p {
  margin: 0 0 8px;
  color: rgba(242,237,223,.52);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.hotel-room-grid h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 38px;
  font-weight: 400;
}

.hotel-room-grid article > div:nth-child(2) > span {
  position: absolute;
  right: 0;
  bottom: 23px;
  font-size: 10px;
}

.hotel-room-grid article > a {
  color: #cdd0a9;
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.hotel-experiences {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(60px, 10vw, 150px);
  padding: 140px clamp(25px, 8vw, 120px);
}

.hotel-experience-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.hotel-experience-grid article {
  min-height: 240px;
  padding: 28px;
  border-top: 1px solid rgba(36,39,31,.18);
}

.hotel-experience-grid article:nth-child(odd) {
  border-right: 1px solid rgba(36,39,31,.18);
}

.hotel-experience-grid span {
  color: #8b8e69;
  font-size: 9px;
}

.hotel-experience-grid h3 {
  margin: 60px 0 12px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 400;
}

.hotel-experience-grid p {
  margin: 0;
  color: #6a6c5e;
  font-size: 12px;
  line-height: 1.65;
}

.hotel-direct {
  position: relative;
  min-height: 680px;
}

.hotel-direct > img {
  width: 100%;
  height: 680px;
  object-fit: cover;
}

.hotel-direct-card {
  position: absolute;
  top: 50%;
  right: clamp(24px, 8vw, 120px);
  width: min(520px, calc(100% - 48px));
  padding: clamp(40px, 5vw, 75px);
  transform: translateY(-50%);
  background: #eee8da;
}

.hotel-direct-card h2 {
  font-size: clamp(42px, 4vw, 62px);
}

.hotel-direct-card > p:not(.hotel-kicker) {
  margin: 28px 0;
  color: #66685b;
  font-size: 13px;
  line-height: 1.7;
}

.hotel-direct-card a {
  display: inline-block;
  padding-bottom: 7px;
  border-bottom: 1px solid #24271f;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.hotel-contact {
  display: grid;
  grid-template-columns: 1.3fr repeat(3, 1fr);
  gap: 40px;
  padding: 80px clamp(25px, 8vw, 120px);
}

.hotel-contact > div:not(.hotel-brand) > span {
  color: #777a5d;
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.hotel-contact > div:not(.hotel-brand) > p {
  margin: 14px 0 0;
  color: #5d6052;
  font-size: 11px;
  line-height: 1.7;
}

.hotel-footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 25px clamp(25px, 8vw, 120px);
  border-top: 1px solid rgba(36,39,31,.18);
  color: #818373;
  font-size: 9px;
}

.hotel-footer a {
  color: #24271f;
}

/* Studio dentistico */
.dentist-site {
  overflow: hidden;
  background: #f7faf9;
  color: #17323a;
  font-family: Arial, Helvetica, sans-serif;
}

.dentist-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 88px;
  padding: 0 clamp(20px, 5vw, 72px);
  border-bottom: 1px solid #d8e6e8;
  background: #fff;
}

.dentist-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  width: max-content;
}

.dentist-brand > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 50%;
  background: #5f909a;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
}

.dentist-brand > div {
  display: flex;
  flex-direction: column;
}

.dentist-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 500;
}

.dentist-brand small {
  margin-top: 3px;
  color: #6e878c;
  font-size: 7px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.dentist-nav nav {
  display: flex;
  gap: 28px;
  font-size: 10px;
}

.dentist-nav-cta {
  justify-self: end;
  padding: 13px 20px;
  border-radius: 999px;
  background: #17323a;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}

.dentist-hero {
  display: grid;
  grid-template-columns: .92fr 1.08fr;
  min-height: 720px;
}

.dentist-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px clamp(28px, 6vw, 90px);
  background: #eaf4f5;
}

.dentist-kicker {
  margin: 0 0 23px;
  color: #5f909a;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.dentist-hero h1 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(51px, 5.6vw, 86px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .98;
}

.dentist-hero h1 em {
  color: #5f909a;
  font-weight: 400;
}

.dentist-hero-copy > p:not(.dentist-kicker) {
  max-width: 560px;
  margin: 28px 0 0;
  color: #587078;
  font-size: 15px;
  line-height: 1.7;
}

.dentist-actions {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 34px;
}

.dentist-actions a:first-child {
  padding: 15px 22px;
  border-radius: 999px;
  background: #17323a;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
}

.dentist-actions a:last-child {
  padding-bottom: 4px;
  border-bottom: 1px solid #91a9ae;
  font-size: 10px;
}

.dentist-mini-proof {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 55px;
}

.dentist-mini-proof span {
  padding-left: 15px;
  border-left: 2px solid #91bdc4;
  color: #587078;
  font-size: 9px;
}

.dentist-hero-image {
  position: relative;
  min-height: 720px;
}

.dentist-hero-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dentist-hero-image > div {
  position: absolute;
  right: 24px;
  bottom: 24px;
  left: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  padding: 22px 25px;
  border-radius: 5px;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(12px);
}

.dentist-hero-image > div span {
  color: #5f909a;
  font-size: 8px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.dentist-hero-image > div strong {
  max-width: 320px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 15px;
  font-weight: 400;
}

.dentist-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.4fr;
  align-items: center;
  padding: 45px clamp(25px, 6vw, 90px);
  background: #17323a;
  color: #fff;
}

.dentist-trust > div {
  display: flex;
  flex-direction: column;
  padding-right: 35px;
  border-right: 1px solid rgba(255,255,255,.16);
}

.dentist-trust strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 33px;
  font-weight: 400;
}

.dentist-trust span,
.dentist-trust > p {
  color: rgba(255,255,255,.55);
  font-size: 9px;
}

.dentist-trust > p {
  margin: 0 0 0 35px;
  line-height: 1.55;
}

.dentist-intro,
.dentist-faq {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(50px, 10vw, 160px);
  padding: 135px clamp(25px, 8vw, 120px);
}

.dentist-intro h2,
.dentist-section-head h2,
.dentist-method h2,
.dentist-team h2,
.dentist-faq h2,
.dentist-contact h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(45px, 5vw, 75px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1;
}

.dentist-intro > div:last-child {
  padding-top: 40px;
}

.dentist-intro > div:last-child p {
  margin: 0 0 22px;
  color: #587078;
  font-size: 15px;
  line-height: 1.75;
}

.dentist-treatments {
  padding: 125px clamp(25px, 6vw, 90px);
  background: #deedef;
}

.dentist-section-head {
  max-width: 850px;
}

.dentist-treatment-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 65px;
  border-top: 1px solid #afcdd2;
  border-left: 1px solid #afcdd2;
}

.dentist-treatment-grid article {
  display: flex;
  min-height: 360px;
  flex-direction: column;
  padding: 28px;
  border-right: 1px solid #afcdd2;
  border-bottom: 1px solid #afcdd2;
}

.dentist-treatment-grid article > span {
  color: #5f909a;
  font-size: 9px;
}

.dentist-treatment-grid h3 {
  margin: 72px 0 16px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 26px;
  font-weight: 400;
}

.dentist-treatment-grid p {
  margin: 0;
  color: #587078;
  font-size: 12px;
  line-height: 1.65;
}

.dentist-treatment-grid a {
  margin-top: auto;
  color: #315d67;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.dentist-method {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 720px;
}

.dentist-method-image {
  min-height: 720px;
  overflow: hidden;
}

.dentist-method-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dentist-method > div:last-child {
  padding: 110px clamp(28px, 7vw, 105px);
  background: #17323a;
  color: #fff;
}

.dentist-method h2 {
  font-size: clamp(42px, 4.8vw, 68px);
}

.dentist-method ol {
  margin: 55px 0 0;
  padding: 0;
  list-style: none;
}

.dentist-method li {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 15px;
  padding: 23px 0;
  border-top: 1px solid rgba(255,255,255,.15);
}

.dentist-method li > span {
  color: #8ec0c9;
  font-size: 9px;
}

.dentist-method li strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 19px;
  font-weight: 400;
}

.dentist-method li p {
  margin: 8px 0 0;
  color: rgba(255,255,255,.56);
  font-size: 11px;
  line-height: 1.6;
}

.dentist-team {
  padding: 130px clamp(25px, 8vw, 120px);
}

.dentist-team > div:first-child {
  max-width: 750px;
}

.dentist-team-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 65px;
}

.dentist-team-grid article {
  padding: 30px;
  border: 1px solid #d8e6e8;
  background: #fff;
}

.dentist-team-grid article > span {
  display: grid;
  width: 72px;
  height: 72px;
  place-items: center;
  border-radius: 50%;
  background: #eaf4f5;
  color: #5f909a;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
}

.dentist-team-grid p {
  margin: 55px 0 8px;
  color: #5f909a;
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dentist-team-grid h3 {
  margin: 0 0 8px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 400;
}

.dentist-team-grid small {
  color: #6f858a;
}

.dentist-faq {
  background: #eaf4f5;
}

.dentist-faq details {
  border-top: 1px solid #bdd2d6;
}

.dentist-faq details:last-child {
  border-bottom: 1px solid #bdd2d6;
}

.dentist-faq summary {
  padding: 26px 0;
  cursor: pointer;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 20px;
}

.dentist-faq details p {
  margin: -5px 0 25px;
  color: #587078;
  font-size: 12px;
  line-height: 1.7;
}

.dentist-contact {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(55px, 10vw, 150px);
  padding: 130px clamp(25px, 8vw, 120px);
  background: #fff;
}

.dentist-contact > div > p:not(.dentist-kicker) {
  max-width: 480px;
  margin: 26px 0;
  color: #587078;
  font-size: 14px;
  line-height: 1.7;
}

.dentist-contact > div > a {
  display: block;
  margin: 25px 0 9px;
  color: #315d67;
  font-size: 22px;
}

.dentist-contact > div > span {
  color: #6f858a;
  font-size: 10px;
}

.dentist-contact form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.dentist-contact label {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: #5f7479;
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.dentist-contact input,
.dentist-contact select {
  min-height: 50px;
  border: 0;
  border-bottom: 1px solid #bad0d4;
  outline: 0;
  background: transparent;
  color: #17323a;
  text-transform: none;
}

.dentist-contact button {
  grid-column: 1 / -1;
  min-height: 55px;
  border: 0;
  border-radius: 999px;
  background: #17323a;
  color: #fff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
}

.dentist-contact form small {
  grid-column: 1 / -1;
  color: #829498;
  font-size: 9px;
}

.dentist-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  padding: 35px clamp(25px, 6vw, 90px);
  border-top: 1px solid #d8e6e8;
  background: #fff;
}

.dentist-footer p {
  max-width: 520px;
  color: #84969a;
  font-size: 9px;
  line-height: 1.6;
  text-align: right;
}

.dentist-footer a {
  color: #17323a;
}

/* Centro estetico */
.beauty-site {
  overflow: hidden;
  background: #eee3d4;
  color: #332a24;
  font-family: Arial, Helvetica, sans-serif;
}

.beauty-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 88px;
  padding: 0 clamp(20px, 5vw, 76px);
  border-bottom: 1px solid rgba(51,42,36,.16);
}

.beauty-brand {
  display: flex;
  flex-direction: column;
  width: max-content;
}

.beauty-brand strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: .26em;
}

.beauty-brand small {
  margin-top: 4px;
  color: #9a624e;
  font-size: 7px;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.beauty-nav nav {
  display: flex;
  gap: 30px;
  font-size: 10px;
}

.beauty-book {
  justify-self: end;
  padding-bottom: 5px;
  border-bottom: 1px solid #332a24;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.beauty-hero {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 760px;
}

.beauty-hero-image {
  position: relative;
  min-height: 760px;
}

.beauty-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.beauty-hero-image > span {
  position: absolute;
  bottom: 25px;
  left: 25px;
  padding: 12px 16px;
  background: rgba(238,227,212,.9);
  color: #7e5142;
  font-size: 8px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.beauty-hero-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 90px clamp(28px, 7vw, 105px);
}

.beauty-kicker {
  margin: 0 0 24px;
  color: #a55f49;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.beauty-hero h1,
.beauty-manifesto h2,
.beauty-section-head h2,
.beauty-space h2,
.beauty-path h2,
.beauty-booking h2 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(50px, 6vw, 89px);
  font-weight: 400;
  letter-spacing: -.055em;
  line-height: .96;
}

.beauty-hero h1 em,
.beauty-manifesto h2 em {
  color: #a55f49;
  font-weight: 400;
}

.beauty-hero-copy > p:not(.beauty-kicker) {
  max-width: 530px;
  margin: 30px 0 0;
  color: #746158;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
  line-height: 1.6;
}

.beauty-hero-copy > div {
  display: flex;
  align-items: center;
  gap: 28px;
  margin-top: 38px;
}

.beauty-hero-copy > div a:first-child {
  padding: 15px 20px;
  background: #a55f49;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.beauty-hero-copy > div a:last-child {
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(51,42,36,.35);
  font-size: 9px;
}

.beauty-manifesto {
  display: grid;
  grid-template-columns: .45fr .85fr .7fr;
  gap: clamp(35px, 6vw, 90px);
  padding: 145px clamp(25px, 8vw, 120px);
  background: #332a24;
  color: #f1e7d9;
}

.beauty-manifesto h2 {
  font-size: clamp(55px, 6vw, 88px);
}

.beauty-manifesto > div {
  padding-top: 45px;
}

.beauty-manifesto > div p {
  margin: 0 0 24px;
  color: rgba(241,231,217,.58);
  font-size: 13px;
  line-height: 1.75;
}

.beauty-rituals {
  padding: 135px clamp(25px, 7vw, 105px);
}

.beauty-section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 50px;
}

.beauty-section-head h2 {
  font-size: clamp(47px, 5vw, 75px);
}

.beauty-section-head > p {
  max-width: 330px;
  margin: 0;
  color: #746158;
  font-size: 12px;
  line-height: 1.7;
}

.beauty-ritual-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 70px;
}

.beauty-ritual-grid article {
  min-height: 470px;
  padding: 30px;
  border: 1px solid rgba(51,42,36,.18);
  background: rgba(255,255,255,.16);
}

.beauty-ritual-number {
  color: #a55f49;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 48px;
  font-style: italic;
}

.beauty-ritual-grid article > p {
  margin: 45px 0 9px;
  color: #9a624e;
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.beauty-ritual-grid h3 {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 34px;
  font-weight: 400;
}

.beauty-ritual-grid article > span {
  display: block;
  margin-top: 12px;
  color: #6f5c53;
  font-size: 11px;
}

.beauty-ritual-grid article > div:last-child {
  margin-top: 70px;
  padding-top: 22px;
  border-top: 1px solid rgba(51,42,36,.16);
}

.beauty-ritual-grid article > div:last-child p {
  margin: 0 0 24px;
  color: #746158;
  font-size: 12px;
  line-height: 1.65;
}

.beauty-ritual-grid a {
  color: #9a4f39;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.beauty-space {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  min-height: 750px;
  background: #d8b49f;
}

.beauty-space > div:first-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 100px clamp(28px, 7vw, 105px);
}

.beauty-space h2,
.beauty-path h2,
.beauty-booking h2 {
  font-size: clamp(44px, 4.8vw, 70px);
}

.beauty-space > div:first-child > p:not(.beauty-kicker) {
  max-width: 500px;
  margin: 30px 0 45px;
  color: #705448;
  font-size: 13px;
  line-height: 1.75;
}

.beauty-space dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding-top: 25px;
  border-top: 1px solid rgba(51,42,36,.2);
}

.beauty-space dl > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.beauty-space dt {
  color: #895e4d;
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.beauty-space dd {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 17px;
}

.beauty-space-image {
  min-height: 750px;
}

.beauty-space-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.beauty-path {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(60px, 10vw, 150px);
  padding: 140px clamp(25px, 8vw, 120px);
}

.beauty-path ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.beauty-path li {
  display: grid;
  grid-template-columns: 45px 1fr;
  gap: 20px;
  padding: 28px 0;
  border-top: 1px solid rgba(51,42,36,.18);
}

.beauty-path li > span {
  color: #a55f49;
  font-size: 9px;
}

.beauty-path li strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
  font-weight: 400;
}

.beauty-path li p {
  margin: 9px 0 0;
  color: #746158;
  font-size: 12px;
  line-height: 1.65;
}

.beauty-booking {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(55px, 10vw, 150px);
  padding: 130px clamp(25px, 8vw, 120px);
  background: #332a24;
  color: #f1e7d9;
}

.beauty-booking > div > p:not(.beauty-kicker) {
  margin: 28px 0;
  color: rgba(241,231,217,.58);
  font-size: 13px;
  line-height: 1.7;
}

.beauty-booking > div > a {
  color: #d69275;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 24px;
}

.beauty-booking form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.beauty-booking label {
  display: flex;
  flex-direction: column;
  gap: 10px;
  color: rgba(241,231,217,.55);
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.beauty-booking input,
.beauty-booking select {
  min-height: 50px;
  border: 0;
  border-bottom: 1px solid rgba(241,231,217,.27);
  outline: 0;
  background: transparent;
  color: #f1e7d9;
  text-transform: none;
}

.beauty-booking select option {
  color: #332a24;
}

.beauty-booking button {
  grid-column: 1 / -1;
  min-height: 55px;
  border: 0;
  background: #a55f49;
  color: #fff;
  cursor: pointer;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.beauty-booking form small {
  grid-column: 1 / -1;
  color: rgba(241,231,217,.42);
  font-size: 9px;
}

.beauty-contact {
  display: grid;
  grid-template-columns: 1.25fr repeat(3, 1fr);
  gap: 35px;
  padding: 75px clamp(25px, 8vw, 120px);
}

.beauty-contact > div:not(.beauty-brand) > span {
  color: #a55f49;
  font-size: 8px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.beauty-contact > div:not(.beauty-brand) > p {
  margin: 12px 0 0;
  color: #746158;
  font-size: 11px;
  line-height: 1.7;
}

.beauty-footer {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  padding: 25px clamp(25px, 8vw, 120px);
  border-top: 1px solid rgba(51,42,36,.16);
  color: #8f776b;
  font-size: 9px;
}

.beauty-footer a {
  color: #332a24;
}

/* Impresa edile */
.build-site {
  overflow: hidden;
  background: #d4d1ca;
  color: #141615;
  font-family: Arial, Helvetica, sans-serif;
}

.build-nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 84px;
  padding: 0 clamp(20px, 5vw, 72px);
  border-bottom: 1px solid rgba(20,22,21,.22);
}

.build-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  width: max-content;
}

.build-brand > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  background: #ff5a24;
  color: #101211;
  font-size: 19px;
  font-weight: 900;
}

.build-brand strong {
  font-size: 15px;
  letter-spacing: .16em;
}

.build-nav nav {
  display: flex;
  gap: 28px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.build-quote-link {
  justify-self: end;
  padding-bottom: 6px;
  border-bottom: 2px solid #ff5a24;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.build-hero {
  position: relative;
  min-height: 820px;
  color: #fff;
}

.build-hero > img,
.build-hero-shade {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.build-hero > img {
  object-fit: cover;
}

.build-hero-shade {
  background: linear-gradient(90deg, rgba(10,12,11,.78), rgba(10,12,11,.08) 74%),
    linear-gradient(0deg, rgba(10,12,11,.42), transparent 58%);
}

.build-hero-copy {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 820px;
  flex-direction: column;
  justify-content: flex-end;
  padding: 100px clamp(25px, 7vw, 105px) 90px;
}

.build-hero-copy > p {
  margin: 0 0 22px;
  color: #ff7b4f;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.build-hero h1 {
  margin: 0;
  font-size: clamp(72px, 10vw, 150px);
  font-weight: 900;
  letter-spacing: -.075em;
  line-height: .83;
  text-transform: uppercase;
}

.build-hero h1 em {
  color: #ff5a24;
  font-style: normal;
}

.build-hero-copy > div {
  display: flex;
  align-items: end;
  gap: 55px;
  margin-top: 45px;
}

.build-hero-copy > div p {
  max-width: 470px;
  margin: 0;
  color: rgba(255,255,255,.7);
  font-size: 15px;
  line-height: 1.65;
}

.build-hero-copy > div a {
  padding: 15px 19px;
  background: #ff5a24;
  color: #121413;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.build-hero-code {
  position: absolute;
  z-index: 3;
  top: 26px;
  right: clamp(25px, 5vw, 72px);
  display: flex;
  gap: 22px;
  color: rgba(255,255,255,.55);
  font-size: 8px;
  letter-spacing: .1em;
}

.build-numbers {
  display: grid;
  grid-template-columns: repeat(3, 1fr) 1.3fr;
  align-items: center;
  padding: 48px clamp(25px, 6vw, 90px);
  background: #ff5a24;
}

.build-numbers > div {
  display: flex;
  flex-direction: column;
  padding-right: 35px;
  border-right: 1px solid rgba(20,22,21,.28);
}

.build-numbers strong {
  font-size: 42px;
  font-weight: 900;
  letter-spacing: -.05em;
}

.build-numbers span,
.build-numbers p {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.build-numbers p {
  margin: 0 0 0 35px;
  line-height: 1.6;
}

.build-kicker {
  margin: 0 0 22px;
  color: #e64919;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}

.build-services {
  padding: 135px clamp(25px, 6vw, 90px);
}

.build-section-head {
  display: grid;
  grid-template-columns: .55fr 1.45fr;
  gap: 50px;
}

.build-section-head h2,
.build-projects-title h2,
.build-process h2,
.build-company h2,
.build-quote h2 {
  max-width: 950px;
  margin: 0;
  font-size: clamp(50px, 6vw, 90px);
  font-weight: 900;
  letter-spacing: -.06em;
  line-height: .93;
  text-transform: uppercase;
}

.build-service-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 75px;
  border-top: 2px solid #141615;
}

.build-service-grid article {
  display: flex;
  min-height: 350px;
  flex-direction: column;
  padding: 28px;
  border-right: 1px solid rgba(20,22,21,.24);
  border-bottom: 1px solid rgba(20,22,21,.24);
}

.build-service-grid article:first-child {
  border-left: 1px solid rgba(20,22,21,.24);
}

.build-service-grid article > span {
  color: #e64919;
  font-size: 10px;
  font-weight: 900;
}

.build-service-grid h3 {
  margin: 70px 0 15px;
  font-size: 25px;
  font-weight: 900;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.build-service-grid p {
  margin: 0;
  color: #535753;
  font-size: 12px;
  line-height: 1.65;
}

.build-service-grid a {
  margin-top: auto;
  color: #e64919;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.build-projects {
  padding: 130px clamp(25px, 6vw, 90px);
  background: #121413;
  color: #f1efe9;
}

.build-projects-title {
  display: grid;
  grid-template-columns: .55fr 1.45fr;
  gap: 50px;
}

.build-project-feature {
  display: grid;
  grid-template-columns: 1.35fr .65fr;
  gap: 55px;
  margin-top: 75px;
}

.build-project-image {
  position: relative;
  min-height: 610px;
}

.build-project-image img {
  width: 100%;
  height: 610px;
  object-fit: cover;
}

.build-project-image span {
  position: absolute;
  top: 16px;
  left: 16px;
  padding: 11px 14px;
  background: #ff5a24;
  color: #121413;
  font-size: 8px;
  font-weight: 900;
  text-transform: uppercase;
}

.build-project-feature > div:last-child {
  padding-top: 30px;
}

.build-project-feature > div:last-child > p:first-child {
  color: #ff7041;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.build-project-feature h3 {
  margin: 14px 0 40px;
  font-size: clamp(50px, 6vw, 82px);
  font-weight: 900;
  letter-spacing: -.06em;
  text-transform: uppercase;
}

.build-project-feature dl {
  margin: 0;
  border-top: 1px solid rgba(255,255,255,.16);
}

.build-project-feature dl > div {
  display: flex;
  justify-content: space-between;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
}

.build-project-feature dt,
.build-project-feature dd {
  font-size: 9px;
}

.build-project-feature dt {
  color: rgba(255,255,255,.48);
}

.build-project-feature dd {
  margin: 0;
}

.build-project-feature > div:last-child > p:last-child {
  margin: 35px 0 0;
  color: rgba(255,255,255,.55);
  font-size: 12px;
  line-height: 1.7;
}

.build-project-list {
  margin-top: 70px;
  border-top: 2px solid #ff5a24;
}

.build-project-list article {
  display: grid;
  grid-template-columns: 60px 1fr auto;
  align-items: center;
  gap: 30px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(255,255,255,.15);
}

.build-project-list article > span {
  color: #ff5a24;
  font-size: 10px;
}

.build-project-list article p {
  margin: 0 0 5px;
  color: rgba(255,255,255,.43);
  font-size: 8px;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.build-project-list h3 {
  margin: 0;
  font-size: 25px;
  text-transform: uppercase;
}

.build-project-list article > strong {
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.build-process {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(60px, 10vw, 150px);
  padding: 140px clamp(25px, 8vw, 120px);
}

.build-process h2 {
  font-size: clamp(47px, 5vw, 72px);
}

.build-process ol {
  margin: 0;
  padding: 0;
  border-top: 2px solid #141615;
  list-style: none;
}

.build-process li {
  display: grid;
  grid-template-columns: 50px 1fr;
  gap: 20px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(20,22,21,.25);
}

.build-process li > span {
  color: #e64919;
  font-size: 10px;
  font-weight: 900;
}

.build-process h3 {
  margin: 0;
  font-size: 21px;
  text-transform: uppercase;
}

.build-process li p {
  margin: 8px 0 0;
  color: #555953;
  font-size: 12px;
  line-height: 1.65;
}

.build-company {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: clamp(60px, 10vw, 150px);
  align-items: center;
  padding: 130px clamp(25px, 8vw, 120px);
  background: #bdbbb5;
}

.build-company-mark {
  display: grid;
  aspect-ratio: 1;
  place-items: center;
  background: #ff5a24;
  font-size: clamp(80px, 10vw, 150px);
  font-weight: 900;
  letter-spacing: -.08em;
}

.build-company h2 {
  font-size: clamp(48px, 5vw, 76px);
}

.build-company > div:last-child > p:not(.build-kicker) {
  max-width: 650px;
  margin: 28px 0 38px;
  color: #4e524d;
  font-size: 14px;
  line-height: 1.75;
}

.build-company > div:last-child > div {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.build-company > div:last-child > div span {
  padding: 9px 12px;
  border: 1px solid rgba(20,22,21,.3);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
}

.build-quote {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: clamp(55px, 9vw, 140px);
  padding: 135px clamp(25px, 8vw, 120px);
  background: #ff5a24;
}

.build-quote h2 {
  font-size: clamp(48px, 5vw, 76px);
}

.build-quote > div > p:not(.build-kicker) {
  margin: 28px 0;
  font-size: 13px;
  line-height: 1.7;
}

.build-quote .build-kicker {
  color: #141615;
}

.build-quote > div > a {
  font-size: 25px;
  font-weight: 900;
}

.build-quote form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.build-quote label {
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.build-quote input,
.build-quote select,
.build-quote textarea {
  min-height: 48px;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid rgba(20,22,21,.45);
  outline: 0;
  background: transparent;
  color: #141615;
  resize: vertical;
  text-transform: none;
}

.build-quote .build-message,
.build-quote button,
.build-quote form small {
  grid-column: 1 / -1;
}

.build-quote button {
  min-height: 56px;
  border: 0;
  background: #141615;
  color: #fff;
  cursor: pointer;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.build-quote form small {
  font-size: 9px;
}

.build-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 35px clamp(25px, 6vw, 90px);
  background: #121413;
  color: #fff;
}

.build-footer p {
  max-width: 540px;
  margin: 0;
  color: rgba(255,255,255,.4);
  font-size: 9px;
  text-align: right;
}

.build-footer a {
  color: #fff;
}

@media (max-width: 1050px) {
  .showcase-card {
    grid-template-columns: 1fr;
  }

  .showcase-browser {
    min-height: 520px;
    margin: 0 28px 28px;
  }

  .showcase-browser > img {
    min-height: 520px;
  }

  .psychology-nav,
  .law-nav,
  .restaurant-nav,
  .hotel-nav,
  .dentist-nav,
  .beauty-nav,
  .build-nav {
    grid-template-columns: 1fr auto;
  }

  .psychology-nav nav,
  .law-nav nav,
  .restaurant-nav nav,
  .hotel-nav nav,
  .dentist-nav nav,
  .beauty-nav nav,
  .build-nav nav {
    display: none;
  }

  .psychology-section-head {
    grid-template-columns: .55fr 1.2fr;
  }

  .psychology-section-head > p:last-child {
    grid-column: 2;
  }

  .psychology-card-grid,
  .law-practice-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .restaurant-menu-columns {
    grid-template-columns: 1fr 1fr;
  }

  .restaurant-menu-columns article:last-child {
    grid-column: 1 / -1;
  }

  .hotel-booking-strip {
    max-width: calc(100% - 48px);
  }

  .hotel-room-grid,
  .beauty-ritual-grid {
    grid-template-columns: 1fr 1fr;
  }

  .hotel-room-grid article:last-child,
  .beauty-ritual-grid article:last-child {
    grid-column: 1 / -1;
  }

  .dentist-treatment-grid,
  .build-service-grid {
    grid-template-columns: 1fr 1fr;
  }

  .build-section-head,
  .build-projects-title {
    grid-template-columns: .4fr 1.6fr;
  }
}

@media (max-width: 760px) {
  .demo-bar {
    padding: 8px 14px;
    font-size: 8px;
  }

  .demo-bar > span {
    overflow: hidden;
    max-width: 58vw;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  .showcase-nav {
    grid-template-columns: 1fr auto;
    min-height: 72px;
    padding: 0 18px;
  }

  .showcase-nav-note {
    display: none;
  }

  .showcase-contact {
    font-size: 11px;
  }

  .showcase-hero {
    padding: 80px 20px 70px;
  }

  .showcase-hero h1 {
    font-size: clamp(48px, 15vw, 73px);
  }

  .showcase-intro {
    display: block;
    margin-top: 45px;
  }

  .showcase-intro span {
    display: block;
    margin-top: 28px;
  }

  .showcase-list {
    padding: 0 14px;
  }

  .showcase-card {
    min-height: 0;
    margin-bottom: 16px;
  }

  .showcase-card-copy {
    min-height: 530px;
    padding: 30px 25px;
  }

  .showcase-card-type {
    margin-top: 48px;
  }

  .showcase-browser {
    min-height: 400px;
    margin: 0 12px 12px;
  }

  .showcase-browser > img {
    min-height: 400px;
  }

  .showcase-value {
    grid-template-columns: 1fr;
    gap: 60px;
    padding: 90px 20px;
  }

  .showcase-value-grid article {
    grid-template-columns: 35px 1fr;
  }

  .showcase-value-grid p {
    grid-column: 2;
  }

  .showcase-cta {
    margin: 0 14px;
    padding: 60px 25px;
  }

  .showcase-footer {
    flex-direction: column;
    padding: 30px 20px;
  }

  .psychology-nav,
  .law-nav,
  .restaurant-nav,
  .hotel-nav,
  .dentist-nav,
  .beauty-nav,
  .build-nav {
    min-height: 74px;
    padding: 0 16px;
  }

  .psychology-brand small,
  .psychology-nav-cta,
  .law-nav-cta {
    display: none;
  }

  .psychology-hero,
  .psychology-method,
  .psychology-profile,
  .psychology-faq,
  .psychology-contact,
  .law-intro,
  .law-approach,
  .law-contact,
  .restaurant-experience,
  .restaurant-reservation {
    grid-template-columns: 1fr;
  }

  .psychology-hero-copy {
    order: 2;
    padding: 65px 24px 75px;
  }

  .psychology-hero-image {
    min-height: 460px;
  }

  .psychology-image-note {
    right: 13px;
    bottom: 13px;
    left: 13px;
    padding: 18px;
  }

  .psychology-image-note strong {
    max-width: 190px;
    font-size: 13px;
  }

  .psychology-section {
    padding: 80px 22px;
  }

  .psychology-section-head {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .psychology-section-head > p:last-child {
    grid-column: auto;
    margin-top: 18px;
  }

  .psychology-card-grid,
  .law-practice-grid {
    grid-template-columns: 1fr;
    margin-top: 50px;
  }

  .psychology-card-grid article {
    min-height: 250px;
  }

  .psychology-card-grid h3 {
    margin-top: 55px;
  }

  .psychology-method-quote {
    min-height: 570px;
    padding: 60px 25px;
  }

  .psychology-method-copy {
    padding: 75px 24px;
  }

  .psychology-profile,
  .psychology-faq,
  .psychology-contact {
    gap: 48px;
  }

  .psychology-contact,
  .law-contact,
  .restaurant-reservation {
    padding: 80px 22px;
  }

  .psychology-contact form,
  .law-contact form,
  .restaurant-reservation form {
    grid-template-columns: 1fr;
  }

  .psychology-contact label,
  .law-contact label,
  .restaurant-reservation form > label,
  .restaurant-reservation form > div {
    grid-column: 1 !important;
  }

  .psychology-footer,
  .law-footer {
    flex-direction: column;
    align-items: flex-start;
    padding: 40px 22px;
  }

  .law-hero,
  .law-hero-copy,
  .restaurant-hero,
  .restaurant-hero-copy {
    min-height: 720px;
  }

  .law-hero-copy,
  .restaurant-hero-copy {
    padding: 70px 22px;
  }

  .law-hero-copy > div {
    display: block;
  }

  .law-hero-copy > div p {
    margin-bottom: 30px;
  }

  .law-hero-index {
    display: none;
  }

  .law-intro,
  .law-practice,
  .law-approach,
  .law-team {
    padding: 85px 22px;
  }

  .law-section-title {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .law-numbers {
    gap: 10px;
  }

  .law-numbers strong {
    font-size: 29px;
  }

  .law-practice-grid article {
    min-height: 310px;
  }

  .law-team-grid {
    grid-template-columns: 1fr;
  }

  .restaurant-nav .restaurant-brand small {
    display: none;
  }

  .restaurant-book {
    padding: 11px 15px;
  }

  .restaurant-hero-info {
    right: 18px;
    bottom: 18px;
    left: 18px;
    justify-content: space-between;
    gap: 15px;
  }

  .restaurant-story,
  .restaurant-menu {
    padding: 90px 22px;
  }

  .restaurant-story-copy,
  .restaurant-menu-columns {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .restaurant-signature {
    display: none;
  }

  .restaurant-menu-head {
    display: block;
  }

  .restaurant-menu-head > p {
    margin-top: 30px;
  }

  .restaurant-menu-columns article:last-child {
    grid-column: auto;
  }

  .restaurant-tasting {
    grid-template-columns: 1fr;
  }

  .restaurant-experience-image {
    min-height: 460px;
  }

  .restaurant-experience > div:last-child {
    padding: 80px 22px;
  }

  .restaurant-reservation {
    gap: 55px;
  }

  .restaurant-contact {
    grid-template-columns: 1fr 1fr;
    padding: 65px 22px;
  }

  .restaurant-contact .restaurant-brand {
    grid-column: 1 / -1;
  }

  .restaurant-footer {
    flex-direction: column;
    padding: 28px 22px;
  }

  .hotel-book-link,
  .dentist-nav-cta,
  .beauty-book,
  .build-quote-link,
  .hotel-brand small,
  .dentist-brand small,
  .beauty-brand small {
    display: none;
  }

  .hotel-hero {
    min-height: 790px;
  }

  .hotel-hero-copy {
    min-height: 610px;
    padding: 80px 22px 65px;
  }

  .hotel-hero-copy h1 {
    font-size: clamp(56px, 17vw, 82px);
  }

  .hotel-hero-copy > div {
    display: block;
  }

  .hotel-hero-copy > div a {
    display: inline-block;
    margin-top: 28px;
  }

  .hotel-booking-strip {
    grid-template-columns: 1fr 1fr;
    max-width: calc(100% - 28px);
  }

  .hotel-booking-strip label {
    min-height: 88px;
    padding: 16px;
    border-bottom: 1px solid rgba(36,39,31,.15);
  }

  .hotel-booking-strip label:nth-child(3) {
    grid-column: 1 / -1;
  }

  .hotel-booking-strip button {
    grid-column: 1 / -1;
    min-height: 58px;
  }

  .hotel-story,
  .hotel-experiences,
  .hotel-section-head,
  .dentist-intro,
  .dentist-faq,
  .dentist-contact,
  .beauty-manifesto,
  .beauty-path,
  .beauty-booking,
  .build-section-head,
  .build-projects-title,
  .build-process,
  .build-company,
  .build-quote {
    grid-template-columns: 1fr;
  }

  .hotel-story,
  .hotel-experiences,
  .dentist-intro,
  .dentist-faq,
  .dentist-contact,
  .beauty-manifesto,
  .beauty-path,
  .beauty-booking,
  .build-process,
  .build-company,
  .build-quote {
    gap: 50px;
    padding: 85px 22px;
  }

  .hotel-story > div:last-child {
    padding-top: 0;
  }

  .hotel-facts {
    grid-template-columns: 1fr;
  }

  .hotel-rooms,
  .dentist-treatments,
  .dentist-team,
  .beauty-rituals,
  .build-services,
  .build-projects {
    padding: 90px 22px;
  }

  .hotel-section-head {
    align-items: start;
  }

  .hotel-section-head > p {
    margin: 0;
  }

  .hotel-room-grid,
  .beauty-ritual-grid,
  .dentist-treatment-grid,
  .dentist-team-grid,
  .build-service-grid {
    grid-template-columns: 1fr;
  }

  .hotel-room-grid article:last-child,
  .beauty-ritual-grid article:last-child {
    grid-column: auto;
  }

  .hotel-room-image {
    height: 390px;
  }

  .hotel-experience-grid {
    grid-template-columns: 1fr;
  }

  .hotel-experience-grid article:nth-child(odd) {
    border-right: 0;
  }

  .hotel-direct,
  .hotel-direct > img {
    min-height: 720px;
    height: 720px;
  }

  .hotel-direct-card {
    right: 18px;
    left: 18px;
    width: auto;
    padding: 38px 28px;
  }

  .hotel-contact,
  .beauty-contact {
    grid-template-columns: 1fr 1fr;
    padding: 70px 22px;
  }

  .hotel-contact .hotel-brand,
  .beauty-contact .beauty-brand {
    grid-column: 1 / -1;
  }

  .hotel-footer,
  .beauty-footer {
    flex-direction: column;
    padding: 28px 22px;
  }

  .dentist-hero,
  .beauty-hero,
  .dentist-method,
  .beauty-space {
    grid-template-columns: 1fr;
  }

  .dentist-hero-copy,
  .beauty-hero-copy {
    order: 2;
    padding: 75px 22px;
  }

  .dentist-hero h1,
  .beauty-hero h1 {
    font-size: clamp(52px, 15vw, 76px);
  }

  .dentist-actions,
  .beauty-hero-copy > div {
    align-items: flex-start;
    flex-direction: column;
  }

  .dentist-hero-image,
  .beauty-hero-image {
    min-height: 500px;
  }

  .dentist-trust,
  .build-numbers {
    grid-template-columns: 1fr 1fr;
    gap: 30px 15px;
    padding: 45px 22px;
  }

  .dentist-trust > div,
  .build-numbers > div {
    padding-right: 14px;
  }

  .dentist-trust > p,
  .build-numbers > p {
    grid-column: 1 / -1;
    margin: 0;
  }

  .dentist-intro > div:last-child {
    padding-top: 0;
  }

  .dentist-treatment-grid,
  .build-service-grid {
    margin-top: 50px;
  }

  .dentist-treatment-grid article,
  .build-service-grid article {
    min-height: 310px;
  }

  .dentist-method-image,
  .dentist-method {
    min-height: 500px;
  }

  .dentist-method > div:last-child {
    padding: 80px 22px;
  }

  .dentist-contact form,
  .beauty-booking form,
  .build-quote form {
    grid-template-columns: 1fr;
  }

  .dentist-contact label,
  .dentist-contact button,
  .dentist-contact form small,
  .beauty-booking label,
  .beauty-booking button,
  .beauty-booking form small,
  .build-quote label,
  .build-quote button,
  .build-quote form small {
    grid-column: 1 !important;
  }

  .dentist-footer,
  .build-footer {
    flex-direction: column;
    align-items: flex-start;
    padding: 35px 22px;
  }

  .dentist-footer p,
  .build-footer p {
    text-align: left;
  }

  .beauty-manifesto {
    padding-top: 95px;
    padding-bottom: 95px;
  }

  .beauty-manifesto > div {
    padding-top: 0;
  }

  .beauty-section-head {
    display: block;
  }

  .beauty-section-head > p {
    margin-top: 28px;
  }

  .beauty-space > div:first-child {
    padding: 85px 22px;
  }

  .beauty-space-image {
    min-height: 520px;
  }

  .beauty-ritual-grid article {
    min-height: 420px;
  }

  .beauty-path ol {
    margin-top: 10px;
  }

  .build-hero,
  .build-hero-copy {
    min-height: 730px;
  }

  .build-hero-copy {
    padding: 95px 22px 70px;
  }

  .build-hero h1 {
    font-size: clamp(64px, 20vw, 95px);
  }

  .build-hero-copy > div {
    display: block;
  }

  .build-hero-copy > div a {
    display: inline-block;
    margin-top: 28px;
  }

  .build-hero-code {
    display: none;
  }

  .build-project-feature {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .build-project-image,
  .build-project-image img {
    min-height: 470px;
    height: 470px;
  }

  .build-project-list article {
    grid-template-columns: 35px 1fr;
    gap: 15px;
  }

  .build-project-list article > strong {
    grid-column: 2;
  }

  .build-company-mark {
    width: min(100%, 380px);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  * {
    transition: none !important;
  }
}
