@font-face {
  font-family: "Instrument Sans";
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
  src: url("../fonts/instrument-sans-latin-variable.woff2") format("woff2");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("../fonts/inter-latin-variable.woff2") format("woff2");
}

:root {
  --gr-charcoal: #171a1f;
  --gr-black: #0e1013;
  --gr-off-white: #f1ece2;
  --gr-brass: #b8925e;
  --gr-brass-deep: #80623d;
  --gr-warm-gray: #6e6a64;
  --gr-muted-dark: rgba(241, 236, 226, 0.72);
  --gr-border-dark: rgba(241, 236, 226, 0.16);
  --gr-border-dark-strong: rgba(241, 236, 226, 0.24);
  --gr-border-light: rgba(23, 26, 31, 0.18);
  --gr-border-light-strong: rgba(23, 26, 31, 0.24);
  --gr-uke-teal: #009e8c;
  --gr-uke-teal-deep: #007d70;
  --gr-uke-surface: #19201e;
  --gr-font-display: "Instrument Sans", Arial, sans-serif;
  --gr-font-body: "Inter", Arial, sans-serif;
  --gr-header-height: 76px;
  --gr-content-wide: 1480px;
  --gr-gutter: clamp(1.25rem, 4vw, 4.5rem);
  --gr-transition: 180ms ease;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
}

html.nav-open {
  overscroll-behavior: none;
  scroll-behavior: auto;
}

html.nav-scroll-restore {
  min-height: var(--gr-nav-document-height, 100%);
}

html.nav-open body {
  position: fixed;
  top: var(--gr-nav-lock-offset, 0px);
  right: 0;
  left: 0;
  width: 100%;
  overflow: hidden;
  overscroll-behavior: none;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--gr-charcoal);
  color: var(--gr-off-white);
  font-family: var(--gr-font-body);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

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

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

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--gr-brass);
  outline-offset: 4px;
}

::selection {
  background: var(--gr-brass);
  color: var(--gr-charcoal);
}

.screen-reader-text,
.skip-link:not(:focus) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-weight: 650;
}

.button {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  border: 1px solid transparent;
  border-radius: 0;
  padding: 0.78rem 1.25rem;
  font-family: var(--gr-font-display);
  font-size: 0.86rem;
  font-weight: 650;
  letter-spacing: 0.035em;
  line-height: 1;
  text-decoration: none;
  transition: background-color var(--gr-transition), border-color var(--gr-transition), color var(--gr-transition), transform var(--gr-transition);
}

.button--primary {
  background: var(--gr-brass);
  color: var(--gr-charcoal);
}

.button--primary:hover {
  background: var(--gr-brass-deep);
  color: var(--gr-off-white);
}

.button--text {
  min-height: 44px;
  border-color: var(--gr-border-dark);
  background: transparent;
  color: var(--gr-off-white);
}

.button--text:hover {
  border-color: var(--gr-brass);
  background: var(--gr-black);
}

.button__arrow {
  color: var(--gr-brass);
  font-size: 1rem;
  transition: transform var(--gr-transition);
}

.button--text:hover .button__arrow {
  transform: translate(2px, -2px);
}

.site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  height: var(--gr-header-height);
  border-bottom: 1px solid var(--gr-border-dark);
  background: var(--gr-charcoal);
}

.admin-bar .site-header {
  top: 32px;
}

.site-header__inner {
  display: grid;
  width: min(100%, var(--gr-content-wide));
  height: 100%;
  margin-inline: auto;
  padding-inline: var(--gr-gutter);
  grid-template-columns: minmax(170px, 1fr) auto auto;
  align-items: center;
  gap: clamp(1rem, 2.4vw, 2.8rem);
}

.site-branding {
  position: relative;
  z-index: 2;
  justify-self: start;
}

.custom-logo-link {
  display: inline-flex;
  align-items: center;
}

.custom-logo {
  width: auto;
  max-width: 220px;
  height: 42px;
  object-fit: contain;
  object-position: left center;
}

.wordmark {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.wordmark__accent {
  width: 4px;
  height: 27px;
  background: var(--gr-brass);
}

.primary-navigation {
	display: flex;
	align-items: center;
	gap: 1rem;
  justify-self: center;
}

.site-language-switch {
	display: inline-flex;
	align-items: center;
	gap: 0.1rem;
	padding-left: 0.9rem;
	border-left: 1px solid var(--gr-border-dark);
}

.site-language-switch a {
	padding: 0.35rem;
	color: var(--gr-muted-dark);
	font-family: var(--gr-font-display);
	font-size: 0.7rem;
	font-weight: 650;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.site-language-switch a:hover,
.site-language-switch a.is-current {
	color: var(--gr-off-white);
}

.primary-menu {
  display: flex;
  align-items: center;
  gap: clamp(1.2rem, 2.2vw, 2.2rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-menu a {
  position: relative;
  display: block;
  padding-block: 0.5rem;
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.84rem;
  font-weight: 550;
  letter-spacing: 0.035em;
  text-decoration: none;
  transition: color var(--gr-transition);
}

.primary-menu a::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: var(--gr-brass);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--gr-transition);
}

.primary-menu a:hover {
  color: var(--gr-off-white);
}

.primary-menu a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.primary-menu .menu-item--student a {
  color: var(--gr-off-white);
  font-size: 0.78rem;
  font-weight: 620;
}

.site-header__cta {
  min-width: 106px;
  justify-self: end;
}

.mobile-nav-cta,
.nav-toggle {
  display: none;
}

.hero {
  position: relative;
  overflow: clip;
  background: var(--gr-charcoal);
}

.hero__inner {
  display: grid;
  width: min(100%, 1600px);
  min-height: calc(100svh - var(--gr-header-height));
  margin-inline: auto;
  grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
}

.hero__content {
  position: relative;
  display: flex;
  min-width: 0;
  padding: clamp(4.2rem, 8vh, 6.75rem) clamp(2rem, 5vw, 5.5rem) clamp(3rem, 6vh, 5rem) var(--gr-gutter);
  flex-direction: column;
  justify-content: center;
}

.hero__content::before {
  width: 42px;
  height: 3px;
  margin-bottom: clamp(1.35rem, 3vh, 2.25rem);
  background: var(--gr-brass);
  content: "";
}

.hero__title {
  max-width: 12ch;
  margin: 0;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: clamp(3.1rem, 4.55vw, 4.55rem);
  font-weight: 620;
  letter-spacing: -0.048em;
  line-height: 0.93;
  text-transform: uppercase;
  text-wrap: balance;
}

.hero__title-line {
  display: block;
}

.hero__title-line--secondary {
  margin-top: 0.18em;
  font-size: 0.76em;
  letter-spacing: -0.035em;
  line-height: 1.02;
}

html[lang^="en"] .hero__title {
  max-width: 14ch;
  font-size: clamp(2.8rem, 4.1vw, 4.15rem);
}

html[lang^="en"] .hero__title-line--secondary {
  font-size: 0.72em;
}

.hero__subtitle {
  max-width: 31rem;
  margin: clamp(1.7rem, 3.2vh, 2.4rem) 0 0;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: clamp(1.2rem, 1.65vw, 1.48rem);
  font-weight: 520;
  letter-spacing: -0.018em;
  line-height: 1.35;
}

.hero__body {
  max-width: 36rem;
  margin: 1.25rem 0 0;
  color: var(--gr-muted-dark);
  font-size: clamp(0.96rem, 1.15vw, 1.06rem);
  line-height: 1.72;
}

.hero__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: clamp(1.75rem, 3.8vh, 2.7rem);
  flex-wrap: wrap;
}

.hero__actions .button {
  padding-inline: 1.35rem;
}

.hero__session-note {
	margin: 0.75rem 0 0;
	color: var(--gr-brass);
	font-family: var(--gr-font-display);
	font-size: 0.72rem;
	font-weight: 650;
	letter-spacing: 0.06em;
	line-height: 1.5;
	text-transform: uppercase;
}

.hero__microcopy {
  max-width: 39rem;
  margin: clamp(2.1rem, 5vh, 3.8rem) 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--gr-border-dark);
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.73rem;
  font-weight: 520;
  letter-spacing: 0.055em;
  line-height: 1.6;
  text-transform: uppercase;
}

.hero__media {
  position: relative;
  min-width: 0;
  min-height: calc(100svh - var(--gr-header-height));
  margin: 0;
  overflow: hidden;
  border-left: 1px solid var(--gr-border-dark);
  background: var(--gr-black);
}

.hero__media::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(0, 0, 0, 0.16);
  box-shadow: inset 42px 0 70px rgba(23, 26, 31, 0.2);
  content: "";
  pointer-events: none;
}

.hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 42%;
  filter: saturate(0.84) contrast(1.03);
  transform: scale(1.002);
}

.hero__media-label {
  position: absolute;
  z-index: 1;
  right: 1.15rem;
  bottom: 1.15rem;
  padding: 0.4rem 0.55rem;
  border: 1px solid rgba(241, 236, 226, 0.3);
  background: rgba(14, 16, 19, 0.78);
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.11em;
  line-height: 1;
  text-transform: uppercase;
}

.content-shell {
  min-height: calc(100svh - var(--gr-header-height));
  padding: clamp(4rem, 9vw, 8rem) var(--gr-gutter);
  background: var(--gr-charcoal);
}

.content-shell__inner {
  width: min(100%, 760px);
  margin-inline: auto;
}

.entry + .entry {
  margin-top: 4rem;
  padding-top: 4rem;
  border-top: 1px solid var(--gr-border-dark);
}

.entry__title {
  margin: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 1.05;
}

.entry__title a {
  text-decoration: none;
}

.entry__content {
  margin-top: 1.25rem;
  color: var(--gr-muted-dark);
}

/* Home — editable editorial sections (phase 2). */
.home-content,
.home-content > * {
  margin: 0;
}

.home-content .gr-section {
  position: relative;
  margin: 0;
  padding: clamp(5rem, 8vw, 7.5rem) var(--gr-gutter);
  scroll-margin-top: var(--gr-header-height);
}

.home-content .gr-section__inner {
  width: min(100%, 1320px);
  margin: 0 auto;
}

/* Neutralize the vertical margins injected by Gutenberg's flow layouts
   when the same blocks become CSS grid children on the front end. */
.home-content .gr-intro--split > *,
.home-content .gr-principles > .gr-principle,
.home-content .gr-method__grid > *,
.home-content .gr-steps > .gr-step,
.home-content .gr-format-list > .gr-format,
.home-content .gr-about__grid > *,
.home-content .gr-uke__grid > *,
.home-content .gr-testimonials__intro > *,
.home-content .gr-testimonial-grid > *,
.home-content .gr-resource-grid > *,
.home-content .gr-final-cta__inner > * {
  margin-block-start: 0;
}

.home-content .gr-section p,
.home-content .gr-section h2,
.home-content .gr-section h3,
.home-content .gr-section figure {
  margin-top: 0;
}

.home-content .gr-section figure {
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
}

.home-content .gr-kicker {
  margin-bottom: 1.25rem;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-transform: uppercase;
}

.home-content .gr-heading {
  max-width: 16ch;
  margin-bottom: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(2.7rem, 5vw, 5rem);
  font-weight: 610;
  letter-spacing: -0.048em;
  line-height: 0.98;
  text-wrap: balance;
}

.home-content .gr-lead {
  max-width: 37rem;
  margin-bottom: 0;
  font-size: clamp(1.08rem, 1.55vw, 1.32rem);
  line-height: 1.6;
}

.home-content .gr-intro--split {
  display: grid;
  grid-template-columns: minmax(95px, 0.32fr) minmax(300px, 1.1fr) minmax(280px, 0.85fr);
  align-items: start;
  gap: clamp(2rem, 5vw, 5.5rem);
}

.home-content .gr-intro--split .gr-kicker {
  padding-top: 0.55rem;
}

.gr-positioning {
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.gr-positioning .gr-lead,
.gr-positioning .gr-principle p:last-child {
  color: var(--gr-warm-gray);
}

.gr-principles {
  display: grid;
  margin-top: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--gr-border-light-strong);
  grid-template-columns: repeat(3, 1fr);
}

.gr-principle {
  min-width: 0;
  padding: 2rem clamp(1.5rem, 3.5vw, 3.5rem) 0 0;
}

.gr-principle + .gr-principle {
  padding-left: clamp(1.5rem, 3.5vw, 3.5rem);
  border-left: 1px solid var(--gr-border-light);
}

.home-content .gr-index {
  margin-bottom: 2.5rem;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.08em;
}

.gr-positioning .gr-kicker,
.gr-about .gr-kicker,
.gr-testimonials .gr-kicker,
.gr-positioning .gr-index,
.gr-testimonials .gr-index {
  color: var(--gr-brass-deep);
}

.home-content .gr-principle h3,
.home-content .gr-step h3,
.home-content .gr-format h3 {
  margin-bottom: 0.75rem;
  font-family: var(--gr-font-display);
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  font-weight: 600;
  letter-spacing: -0.025em;
  line-height: 1.2;
}

.home-content .gr-principle p:last-child,
.home-content .gr-step p:last-child,
.home-content .gr-format > p {
  margin-bottom: 0;
  font-size: 0.94rem;
  line-height: 1.72;
}

.gr-method {
  overflow: hidden;
  background: var(--gr-black);
  color: var(--gr-off-white);
}

.gr-method__grid {
  display: grid;
  grid-template-columns: minmax(300px, 0.82fr) minmax(380px, 1.18fr);
  align-items: stretch;
  gap: clamp(3.5rem, 8vw, 8rem);
}

.gr-method__image {
  min-height: 620px;
  margin-bottom: 0;
  overflow: hidden;
}

.gr-method__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.68) contrast(1.05);
}

.gr-method__content {
  align-self: center;
  padding-block: 1rem;
}

.gr-method .gr-lead,
.gr-method .gr-step p:last-child {
  color: var(--gr-muted-dark);
}

.gr-steps {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  border-top: 1px solid var(--gr-border-dark);
}

.gr-step {
  display: grid;
  padding: 1.55rem 0;
  border-bottom: 1px solid var(--gr-border-dark);
  grid-template-columns: 4rem 1fr;
  gap: 1.25rem;
}

.gr-step .gr-index {
  margin: 0.2rem 0 0;
}

.gr-steps--inline {
  display: grid;
  border-bottom: 1px solid var(--gr-border-dark);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gr-steps--inline .gr-step {
  display: block;
  min-width: 0;
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 3rem) clamp(2rem, 3.5vw, 3rem) 0;
  border-bottom: 0;
}

.gr-steps--inline .gr-step + .gr-step {
  padding-left: clamp(1.5rem, 3vw, 3rem);
  border-left: 1px solid var(--gr-border-dark);
}

.gr-steps--inline .gr-index {
  margin-bottom: 1.75rem;
}

.home-content .gr-method__cta {
  margin: 2rem 0 0;
  font-family: var(--gr-font-display);
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.gr-method__cta a {
  text-decoration: none;
}

.gr-method__cta span {
  color: var(--gr-brass);
}

.gr-formats {
  background: var(--gr-charcoal);
  color: var(--gr-off-white);
}

.gr-formats .gr-lead,
.gr-format > p {
  color: var(--gr-muted-dark);
}

.gr-format-list {
  display: grid;
  margin-top: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--gr-border-dark);
  border-bottom: 1px solid var(--gr-border-dark);
  grid-template-columns: repeat(2, 1fr);
}

.gr-format {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 4rem) clamp(2.2rem, 4vw, 3.75rem) 0;
}

.gr-format + .gr-format {
  padding-right: 0;
  padding-left: clamp(1.5rem, 4vw, 4rem);
  border-left: 1px solid var(--gr-border-dark);
}

.home-content .gr-format__meta {
  margin-top: 1.75rem;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  line-height: 1.6;
  text-transform: uppercase;
}

.home-content .gr-format__link,
.home-content .gr-about__link {
  margin: 1.15rem 0 0;
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 680;
  letter-spacing: 0.025em;
}

.home-content .gr-format__link a,
.home-content .gr-about__link a {
  color: var(--gr-off-white);
  text-decoration: none;
}

.home-content .gr-about__link a {
  color: var(--gr-brass-deep);
}

.home-content .gr-format__link a:hover,
.home-content .gr-about__link a:hover {
  text-decoration: underline;
  text-underline-offset: 0.25em;
}

.home-content .gr-format__international {
  display: inline-block;
  margin: 1.5rem 0 0;
  padding-left: 1rem;
  border-left: 2px solid var(--gr-brass);
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.76rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.home-content .gr-format-summary {
  margin: 1.4rem 0 0;
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.055em;
  line-height: 1.6;
  text-align: center;
  text-transform: uppercase;
}

.gr-about {
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.gr-about__grid {
  display: grid;
  grid-template-columns: minmax(340px, 1.05fr) minmax(310px, 0.75fr);
  align-items: center;
  gap: clamp(4rem, 10vw, 10rem);
}

.gr-method__grid > *,
.gr-about__grid > *,
.gr-uke__grid > * {
  min-width: 0;
}

.gr-about__content > p:not(.gr-kicker, .gr-lead, .gr-signature) {
  max-width: 37rem;
  margin: 1.6rem 0 0;
  color: var(--gr-warm-gray);
}

.gr-about .gr-lead {
  margin-top: 2rem;
}

.home-content .gr-signature {
  margin: 2.5rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gr-border-light);
  color: var(--gr-warm-gray);
  font-family: var(--gr-font-display);
  font-size: 0.73rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.gr-about__image {
  min-height: 620px;
  margin-bottom: 0;
  overflow: hidden;
}

.gr-about--compact .gr-about__image {
  min-height: 520px;
}

.gr-authority {
  display: flex;
  margin-top: 2rem;
  padding: 1.35rem 0;
  border-top: 1px solid var(--gr-border-light);
  border-bottom: 1px solid var(--gr-border-light);
  align-items: baseline;
  gap: 1rem;
}

.home-content .gr-authority p {
  margin: 0;
}

.home-content .gr-authority__value {
  color: var(--gr-brass-deep);
  font-family: var(--gr-font-display);
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  font-weight: 650;
  letter-spacing: -0.04em;
  line-height: 1;
  white-space: nowrap;
}

.home-content .gr-authority__label {
  max-width: 25rem;
  color: var(--gr-warm-gray);
  font-size: 0.82rem;
  line-height: 1.5;
}

.gr-about__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 54% 30%;
  filter: saturate(0.72) contrast(1.02);
}

.gr-uke {
  overflow: hidden;
  border-top: 5px solid var(--gr-uke-teal);
  padding-bottom: clamp(5.5rem, 9vw, 9rem);
  background: var(--gr-uke-surface);
  color: var(--gr-off-white);
}

.gr-uke__grid {
  display: grid;
  grid-template-columns: minmax(310px, 0.82fr) minmax(380px, 1.18fr);
  align-items: center;
  gap: clamp(3.5rem, 8vw, 8rem);
}

.gr-uke .gr-lead {
  margin-top: 2rem;
  color: var(--gr-muted-dark);
}

.gr-uke .gr-kicker {
  width: clamp(145px, 14vw, 178px);
  height: clamp(52px, 5vw, 64px);
  margin-bottom: 2.5rem;
  overflow: hidden;
  background: url("../images/ukeriff-logo.png") no-repeat left center / contain;
  color: transparent;
  text-indent: -999em;
  white-space: nowrap;
}

.gr-uke .gr-heading {
  max-width: 10.5ch;
}

.gr-uke .wp-block-buttons {
  margin-top: 2.25rem;
}

.gr-uke .gr-button-primary .wp-block-button__link {
  border-radius: 0;
  padding: 0.95rem 1.35rem;
  background: var(--gr-uke-teal);
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.86rem;
  font-weight: 650;
  letter-spacing: 0.035em;
  line-height: 1;
  text-decoration: none;
  transition: background-color var(--gr-transition), color var(--gr-transition);
}

.gr-uke .gr-button-primary .wp-block-button__link:hover {
  background: var(--gr-uke-teal-deep);
  color: var(--gr-off-white);
}

.gr-uke__image {
  position: relative;
  min-height: 0;
  margin-bottom: 0;
  aspect-ratio: 16 / 10;
}

.gr-uke__image::before {
  position: absolute;
  z-index: 0;
  inset: clamp(0.75rem, 2vw, 1.25rem) clamp(-1.25rem, -2vw, -0.75rem) clamp(-1.25rem, -2vw, -0.75rem) clamp(0.75rem, 2vw, 1.25rem);
  background: var(--gr-uke-teal);
  content: "";
}

.gr-uke__image img {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.82) contrast(1.03);
}

/* Home — trust, resources and conversion (phase 3). */
.gr-testimonials {
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.gr-testimonials__intro {
  display: grid;
  grid-template-columns: minmax(320px, 1.35fr) minmax(210px, 0.45fr);
  align-items: end;
  gap: clamp(3rem, 10vw, 9rem);
}

.gr-testimonials .gr-heading {
  max-width: 12ch;
}

.gr-rating {
  padding-left: clamp(1.5rem, 3vw, 3.5rem);
  border-left: 1px solid var(--gr-border-light);
}

.home-content .gr-rating__value {
  margin-bottom: 0.15rem;
  font-family: var(--gr-font-display);
  font-size: clamp(2.8rem, 5.2vw, 5.25rem);
  font-weight: 610;
  letter-spacing: -0.055em;
  line-height: 0.95;
}

.home-content .gr-rating__label,
.home-content .gr-rating__secondary {
  margin-bottom: 0;
  color: var(--gr-warm-gray);
  font-size: 0.82rem;
}

.home-content .gr-rating__secondary {
  margin-top: 0.7rem;
  color: var(--gr-brass-deep);
  font-family: var(--gr-font-display);
  font-weight: 650;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.gr-testimonial-grid {
  display: grid;
  margin-top: clamp(3rem, 6vw, 5rem);
  border-top: 1px solid var(--gr-border-light-strong);
  border-bottom: 1px solid var(--gr-border-light-strong);
  grid-template-columns: repeat(3, 1fr);
}

.home-content .gr-testimonial {
  min-width: 0;
  margin: 0;
  padding: clamp(2rem, 4vw, 3.75rem) clamp(1.5rem, 3.6vw, 3.5rem) clamp(2.1rem, 4vw, 3.8rem) 0;
  border: 0;
}

.home-content .gr-testimonial + .gr-testimonial {
  padding-left: clamp(1.5rem, 3.6vw, 3.5rem);
  border-left: 1px solid var(--gr-border-light);
}

.home-content .gr-testimonial p {
  max-width: 22ch;
  margin-bottom: 2.25rem;
  font-family: var(--gr-font-display);
  font-size: clamp(1.35rem, 2.2vw, 1.85rem);
  font-weight: 560;
  letter-spacing: -0.028em;
  line-height: 1.25;
  text-wrap: balance;
}

.home-content .gr-testimonial cite {
  display: flex;
  color: var(--gr-warm-gray);
  font-family: var(--gr-font-display);
  font-size: 0.73rem;
  font-style: normal;
  font-weight: 650;
  letter-spacing: 0.08em;
  flex-direction: column;
  gap: 0.45rem;
  text-transform: uppercase;
}

.home-content .gr-testimonial__platform {
  color: var(--gr-brass-deep);
  font-size: 0.62rem;
  letter-spacing: 0.07em;
}

.home-content .gr-testimonials__source {
  display: flex;
  margin: 1.25rem 0 0;
  color: var(--gr-warm-gray);
  font-size: 0.72rem;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.gr-testimonials__source a {
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-weight: 650;
  text-decoration: none;
}

.gr-testimonials__source a span {
  color: var(--gr-brass-deep);
}

.gr-resources {
  background: var(--gr-black);
  color: var(--gr-off-white);
}

.gr-resources .gr-lead,
.gr-resource-card__excerpt,
.gr-resource-empty {
  color: var(--gr-muted-dark);
}

.gr-resource-query {
  margin-top: clamp(3rem, 6vw, 5rem);
}

.gr-resource-grid {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.gr-resource-grid > li {
  min-width: 0;
  margin: 0;
}

.home-content .gr-resource-card {
  height: 100%;
  margin: 0;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--gr-border-dark);
}

.gr-resource-card__image {
  margin: 0 0 1.5rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--gr-charcoal);
}

.gr-resource-card__image a {
  display: block;
  width: 100%;
  height: 100%;
}

.gr-resource-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(0.68) contrast(1.04);
  transition: filter var(--gr-transition), transform var(--gr-transition);
}

.gr-resource-card:hover .gr-resource-card__image img {
  filter: saturate(0.9) contrast(1.02);
  transform: scale(1.015);
}

.home-content .gr-resource-card__date {
  margin-bottom: 0.85rem;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.home-content .gr-resource-card__title {
  margin-bottom: 1rem;
  font-family: var(--gr-font-display);
  font-size: clamp(1.35rem, 2.1vw, 1.8rem);
  font-weight: 590;
  letter-spacing: -0.03em;
  line-height: 1.18;
}

.gr-resource-card__title a,
.gr-resource-card__excerpt a,
.gr-all-resources a {
  text-decoration: none;
}

.home-content .gr-resource-card__excerpt {
  margin-bottom: 0;
  font-size: 0.9rem;
  line-height: 1.7;
}

.gr-resource-card__excerpt .wp-block-post-excerpt__more-link {
  display: block;
  margin-top: 1.25rem;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.home-content .gr-resource-empty {
  margin: 0;
  padding: 2rem 0;
  border-top: 1px solid var(--gr-border-dark);
  border-bottom: 1px solid var(--gr-border-dark);
}

.home-content .gr-all-resources {
  margin: 2.5rem 0 0;
  font-family: var(--gr-font-display);
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.gr-all-resources a span {
  color: var(--gr-brass);
}

.gr-final-cta {
  isolation: isolate;
  overflow: hidden;
  background: var(--gr-black) url("../images/hero-mobile-placeholder.jpg") center 52% / cover no-repeat;
  color: var(--gr-off-white);
}

.gr-final-cta::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(14, 16, 19, 0.95) 0%, rgba(14, 16, 19, 0.84) 53%, rgba(14, 16, 19, 0.56) 100%);
  content: "";
}

.gr-final-cta__inner {
  min-height: clamp(430px, 52vw, 650px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.gr-final-cta--compact .gr-final-cta__inner {
  min-height: clamp(390px, 45vw, 560px);
}

.gr-final-cta .gr-heading {
  max-width: 10ch;
}

.gr-final-cta .gr-lead {
  max-width: 38rem;
  margin-top: 2rem;
  color: rgba(241, 236, 226, 0.8);
}

.gr-final-cta__inner > p:not(.gr-kicker, .gr-lead, .gr-final-cta__disclaimer, .gr-final-cta__note) {
  max-width: 38rem;
  margin: 1rem 0 0;
  color: rgba(241, 236, 226, 0.8);
}

.home-content .gr-final-cta__disclaimer {
  max-width: 38rem;
  margin: 1.1rem 0 0;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.84rem;
  font-weight: 600;
}

.gr-final-cta__actions {
  margin-top: 2.25rem;
}

.home-content .gr-final-cta__secondary {
  margin: 1rem 0 0;
  font-family: var(--gr-font-display);
  font-size: 0.82rem;
  font-weight: 640;
}

.home-content .gr-final-cta__secondary a {
  color: var(--gr-off-white);
  text-decoration-color: var(--gr-brass);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.35em;
}

.home-content .gr-final-cta__secondary a:hover {
  color: var(--gr-brass);
}

.gr-final-button .wp-block-button__link {
  border-radius: 0;
  padding: 1rem 1.4rem;
  background: var(--gr-brass);
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-size: 0.86rem;
  font-weight: 650;
  letter-spacing: 0.035em;
  text-decoration: none;
  transition: background-color var(--gr-transition), color var(--gr-transition);
}

.gr-final-button .wp-block-button__link:hover {
  background: var(--gr-brass-deep);
  color: var(--gr-off-white);
}

.home-content .gr-final-cta__note {
  margin: 2.5rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--gr-border-dark-strong);
  color: rgba(241, 236, 226, 0.78);
  font-family: var(--gr-font-display);
  font-size: 0.7rem;
  font-weight: 560;
  letter-spacing: 0.065em;
  text-transform: uppercase;
}

/* Site footer. */
.site-footer {
  padding: clamp(4.75rem, 8vw, 8rem) var(--gr-gutter) 1.5rem;
  border-top: 1px solid var(--gr-border-dark);
  background: var(--gr-black);
  color: var(--gr-off-white);
}

.site-footer__inner,
.site-footer__bottom {
  width: min(100%, 1320px);
  margin-inline: auto;
}

.site-footer__inner {
  display: grid;
  grid-template-columns: minmax(300px, 1.4fr) minmax(150px, 0.45fr) minmax(210px, 0.55fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.site-footer__eyebrow,
.site-footer__label {
  margin: 0 0 1.25rem;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.site-footer__title {
  max-width: 13ch;
  margin: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(2rem, 4vw, 3.75rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 1.02;
}

.site-footer__text {
  max-width: 36rem;
  margin: 1.5rem 0 0;
  color: var(--gr-muted-dark);
  font-size: 0.92rem;
}

.site-footer .footer-menu,
.site-footer .primary-menu {
  display: flex;
  margin: 0;
  padding: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
  list-style: none;
}

.site-footer .footer-menu a,
.site-footer .primary-menu a,
.site-footer__contact > a,
.site-footer__social a,
.site-footer__legal a {
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.84rem;
  text-decoration: none;
  transition: color var(--gr-transition);
}

.site-footer .footer-menu li,
.site-footer .primary-menu li {
  border: 0;
}

.site-footer .footer-menu a,
.site-footer .primary-menu a {
  padding: 0;
}

.site-footer .footer-menu a:hover,
.site-footer .primary-menu a:hover,
.site-footer__contact a:hover,
.site-footer__legal a:hover {
  color: var(--gr-off-white);
}

.site-footer .primary-menu a::after {
  display: none;
}

.site-footer__contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.site-footer__contact > a + a {
  margin-top: 0.5rem;
}

.site-footer__booking {
  display: flex;
  width: 100%;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gr-border-dark);
  flex-direction: column;
  align-items: flex-start;
  gap: 0.65rem;
}

.site-footer__booking a {
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.8rem;
  font-weight: 620;
  line-height: 1.45;
  text-decoration: none;
}

.site-footer__booking a span {
  color: var(--gr-brass);
}

.site-footer__booking a:hover {
  color: var(--gr-brass);
}

.site-footer__social {
  display: flex;
  margin-top: 1.5rem;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.site-footer__bottom {
  display: flex;
  margin-top: clamp(4rem, 8vw, 7rem);
  padding-top: 1.25rem;
  border-top: 1px solid var(--gr-border-dark);
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.site-footer__bottom p {
  margin: 0;
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.68rem;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.site-footer__legal {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.site-footer__legal a {
  color: var(--gr-muted-dark);
  font-size: 0.7rem;
}

@media (max-width: 1180px) {
  .site-header__inner {
    gap: 1.5rem;
  }

  .primary-menu {
    gap: 1.25rem;
  }

  .hero__inner {
    grid-template-columns: minmax(0, 48fr) minmax(0, 52fr);
  }

  .hero__content {
    padding-right: clamp(1.75rem, 4vw, 3.5rem);
  }

  .hero__title {
    font-size: clamp(2.8rem, 4.7vw, 3.75rem);
  }
}

@media (max-width: 900px) {
  :root {
    --gr-header-height: 68px;
  }

  .admin-bar .site-header {
    top: 32px;
  }

  .site-header__inner {
    grid-template-columns: 1fr auto;
  }

  .site-header__cta {
    display: none;
  }

  .site-header.is-nav-open {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    width: 100%;
  }

  .admin-bar .site-header.is-nav-open {
    top: 32px;
  }

  .js .nav-toggle {
    position: relative;
    z-index: 3;
    display: inline-flex;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 1px solid var(--gr-border-dark);
    border-radius: 0;
    background: transparent;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
  }

  .nav-toggle__line {
    width: 20px;
    height: 1px;
    background: var(--gr-off-white);
    transition: transform var(--gr-transition), opacity var(--gr-transition);
  }

  .is-nav-open .nav-toggle__line:first-of-type {
    transform: translateY(3.5px) rotate(45deg);
  }

  .is-nav-open .nav-toggle__line:last-of-type {
    transform: translateY(-3.5px) rotate(-45deg);
  }

  .primary-navigation {
    position: fixed;
    z-index: 1;
    top: var(--gr-header-height);
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 2rem var(--gr-gutter) 3rem;
    overflow-y: auto;
    background: var(--gr-charcoal);
    flex-direction: column;
    align-items: stretch;
    justify-self: stretch;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .admin-bar .primary-navigation {
    top: calc(var(--gr-header-height) + 32px);
  }

	.site-language-switch {
		width: 100%;
		margin-top: 1.25rem;
		padding: 1rem 0 0;
		border-top: 1px solid var(--gr-border-dark);
		border-left: 0;
		gap: 0.65rem;
	}

	.site-language-switch a {
		padding: 0.35rem 0;
		font-size: 0.82rem;
	}

  .js .primary-navigation {
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-10px);
    transition: opacity var(--gr-transition), transform var(--gr-transition), visibility var(--gr-transition);
  }

  .js .is-nav-open .primary-navigation {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .primary-menu {
    width: 100%;
    gap: 0;
    flex-direction: column;
    align-items: stretch;
  }

  .primary-menu li {
    border-bottom: 1px solid var(--gr-border-dark);
  }

  .primary-menu a {
    padding: 1.05rem 0;
    color: var(--gr-off-white);
    font-size: 1.15rem;
    letter-spacing: -0.01em;
  }

  .primary-menu a::after {
    display: none;
  }

  .primary-menu .menu-item--student a {
    color: var(--gr-brass);
    font-size: 1.02rem;
  }

  .mobile-nav-cta {
    display: inline-flex;
    width: 100%;
    margin-top: 1.5rem;
  }

  .hero__inner {
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .hero__content {
    min-height: auto;
    padding: clamp(4.5rem, 10vw, 6.5rem) var(--gr-gutter) clamp(3.5rem, 8vw, 5rem);
  }

  .hero__title {
    max-width: 13ch;
    font-size: clamp(3.2rem, 8.5vw, 5rem);
  }

  .hero__subtitle,
  .hero__body,
  .hero__microcopy {
    max-width: 42rem;
  }

  .hero__media {
    min-height: 0;
    aspect-ratio: 16 / 11;
    border-top: 1px solid var(--gr-border-dark);
    border-left: 0;
  }

  .hero__image {
    object-position: 50% 37%;
  }
}

@media (max-width: 782px) {
  .admin-bar .site-header.is-nav-open {
    top: 46px;
  }

  .admin-bar .primary-navigation {
    top: calc(var(--gr-header-height) + 46px);
  }
}

@media (max-width: 640px) {
  :root {
    --gr-gutter: 1.25rem;
  }

  .admin-bar .site-header {
    top: 46px;
  }

  .custom-logo {
    max-width: 190px;
    height: 37px;
  }

  .hero__content {
    position: relative;
    z-index: 2;
    min-height: calc(100svh - var(--gr-header-height));
    padding-top: 3.7rem;
    padding-bottom: 2.4rem;
    justify-content: center;
  }

  .hero__content::before {
    width: 34px;
    margin-bottom: 1.35rem;
  }

  .hero__title {
    max-width: 12ch;
    font-size: clamp(2.65rem, 13vw, 3.75rem);
    line-height: 0.95;
  }

  .hero__title-line--secondary {
    font-size: 0.78em;
  }

  html[lang^="en"] .hero__title {
    max-width: 13ch;
    font-size: clamp(2.2rem, 10.7vw, 3.15rem);
  }

  html[lang^="en"] .hero__title-line--secondary {
    font-size: 0.76em;
  }

  .hero__subtitle {
    margin-top: 1.6rem;
    font-size: 1.15rem;
  }

  .hero__body {
    margin-top: 1rem;
    color: rgba(241, 236, 226, 0.82);
    font-size: 0.95rem;
    line-height: 1.7;
  }

  .hero__actions {
    margin-top: 1.8rem;
    align-items: stretch;
    flex-direction: column;
  }

  .hero__actions .button {
    width: 100%;
  }

	.hero__session-note {
		font-size: 0.66rem;
		letter-spacing: 0.045em;
	}

  .hero__microcopy {
    margin-top: 2.25rem;
    color: rgba(241, 236, 226, 0.82);
    font-size: 0.67rem;
    letter-spacing: 0.04em;
  }

  .hero__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    border: 0;
    aspect-ratio: auto;
  }

  .hero__media::after {
    z-index: 1;
    border: 0;
    background: rgba(14, 16, 19, 0.76);
    box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.22);
  }

  .hero__image {
    filter: saturate(0.72) contrast(1.02);
    object-position: 53% 50%;
  }

  .hero__media-label {
    display: none;
  }

  .hero__actions .button--text {
    border-color: rgba(241, 236, 226, 0.28);
    background: rgba(14, 16, 19, 0.38);
  }
}

@media (max-width: 370px) {
  .wordmark {
    gap: 0.55rem;
    font-size: 0.95rem;
    letter-spacing: 0.09em;
  }

  .wordmark__accent {
    height: 24px;
  }

  .hero__title {
    font-size: 2.45rem;
  }
}

/* Visual direction 1.0.8 — real photography and deliberate light/dark rhythm. */
.home .hero__media::before,
.gr-photo-layout > .wp-block-image::after,
.home .gr-about__image::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(135deg, rgba(14, 16, 19, 0.2), transparent 54%, rgba(184, 146, 94, 0.08));
  content: "";
  pointer-events: none;
}

.home .hero__image {
  filter: saturate(0.76) contrast(1.08) brightness(0.94);
  object-position: 50% 45%;
}

.home .gr-about__image {
  position: relative;
  background: var(--gr-black);
}

.home .gr-about__image img {
  filter: saturate(0.74) contrast(1.07) brightness(0.94);
}

.home .gr-formats {
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.home .gr-formats .gr-lead,
.home .gr-formats .gr-format > p,
.home .gr-format-summary {
  color: var(--gr-warm-gray);
}

.home .gr-formats .gr-kicker {
  color: var(--gr-brass-deep);
}

.home .gr-format-list {
  border-color: var(--gr-border-light-strong);
}

.home .gr-format + .gr-format {
  border-color: var(--gr-border-light);
}

.home-content .gr-formats .gr-format__meta,
.home-content .gr-formats .gr-format__link a,
.home-content .gr-formats .gr-format__international {
  color: var(--gr-charcoal);
}

.home .gr-positioning {
  background: var(--gr-charcoal);
  color: var(--gr-off-white);
}

.home .gr-positioning .gr-lead,
.home .gr-positioning .gr-principle p:last-child {
  color: var(--gr-muted-dark);
}

.home .gr-positioning .gr-kicker,
.home .gr-positioning .gr-index {
  color: var(--gr-brass);
}

.home .gr-principles,
.home .gr-principle + .gr-principle {
  border-color: var(--gr-border-dark);
}

.home .gr-testimonials {
  background: var(--gr-black);
  color: var(--gr-off-white);
}

.home .gr-testimonials .gr-kicker,
.home .gr-testimonials .gr-index,
.home-content .gr-testimonials .gr-rating__secondary,
.home-content .gr-testimonials .gr-testimonial__platform {
  color: var(--gr-brass);
}

.home .gr-rating,
.home .gr-testimonial-grid,
.home-content .gr-testimonial + .gr-testimonial {
  border-color: var(--gr-border-dark);
}

.home-content .gr-testimonials .gr-rating__label,
.home-content .gr-testimonials .gr-testimonial cite,
.home-content .gr-testimonials .gr-testimonials__source {
  color: var(--gr-muted-dark);
}

.home .gr-testimonials__source a {
  color: var(--gr-off-white);
}

.home .gr-testimonials__source a span {
  color: var(--gr-brass);
}

.home .gr-resources {
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.home .gr-resources .gr-lead,
.home .gr-resources .gr-resource-card__excerpt,
.home .gr-resources .gr-resource-empty {
  color: var(--gr-warm-gray);
}

.home-content .gr-resources .gr-resource-card,
.home-content .gr-resources .gr-resource-empty {
  border-color: var(--gr-border-light-strong);
}

.home .gr-resources .gr-resource-card__image {
  background: var(--gr-charcoal);
}

.home .gr-resources .gr-resource-card__date,
.home .gr-resources .gr-all-resources a span {
  color: var(--gr-brass-deep);
}

.home .gr-resources .gr-resource-card__title a,
.home .gr-resources .gr-resource-card__excerpt .wp-block-post-excerpt__more-link,
.home .gr-resources .gr-all-resources a {
  color: var(--gr-charcoal);
}

.gr-photo-layout {
  display: grid;
  width: min(calc(100vw - (2 * var(--gr-gutter))), 1100px);
  max-width: none;
  margin: 0 0 0 50%;
  padding: clamp(3.5rem, 6vw, 6rem) 0;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6rem);
  transform: translateX(-50%);
}

.gr-photo-layout > .gr-page-intro {
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  transform: none;
}

.gr-photo-layout .gr-page-intro > div + div {
  margin-top: 1.5rem;
}

.gr-photo-layout > .wp-block-image,
.gr-photo-layout > .alignwide {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gr-black);
  transform: none;
}

.gr-photo-layout > .wp-block-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 48%;
  filter: saturate(0.76) contrast(1.08) brightness(0.93);
}

.gr-photo-layout--reverse > .gr-page-intro {
  order: 2;
}

.gr-photo-layout--reverse > .wp-block-image {
  order: 1;
}

.gr-page-clases-guitarra .page-surface {
  padding-top: 0;
  padding-bottom: 0;
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) {
  border-color: var(--gr-border-dark);
  background: var(--gr-charcoal);
  box-shadow: 0 0 0 100vmax var(--gr-charcoal);
  color: var(--gr-off-white);
  clip-path: inset(0 -100vmax);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-lead,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card p,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process__item p:last-child {
  color: var(--gr-muted-dark);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-grid,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card + .gr-card,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process__item {
  border-color: var(--gr-border-dark);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-kicker,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card__index {
  color: var(--gr-brass);
}

@media (max-width: 860px) {
  .gr-photo-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .gr-photo-layout--reverse > .gr-page-intro,
  .gr-photo-layout--reverse > .wp-block-image {
    order: initial;
  }
}

@media (max-width: 640px) {
  .home .hero__image {
    filter: saturate(0.7) contrast(1.07) brightness(0.72);
  }

  .gr-photo-layout {
    width: calc(100vw - (2 * var(--gr-gutter)));
    padding-block: 2.5rem;
  }

  .gr-photo-layout > .wp-block-image {
    aspect-ratio: 5 / 4;
  }
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (max-width: 1050px) {
  .home-content .gr-intro--split {
    grid-template-columns: minmax(280px, 1fr) minmax(260px, 0.8fr);
    gap: 2.5rem 4rem;
  }

  .home-content .gr-intro--split .gr-kicker {
    grid-column: 1 / -1;
    margin-bottom: -0.75rem;
  }

  .gr-method__grid,
  .gr-about__grid,
  .gr-uke__grid {
    gap: clamp(2.5rem, 6vw, 5rem);
  }

  .gr-method__image,
  .gr-about__image {
    min-height: 540px;
  }

  .gr-testimonials__intro {
    gap: 4rem;
  }

  .site-footer__inner {
    grid-template-columns: minmax(280px, 1.2fr) repeat(2, minmax(150px, 0.5fr));
    gap: 3rem;
  }
}

@media (max-width: 820px) {
  .home-content .gr-section {
    padding-top: 4.75rem;
    padding-bottom: 4.75rem;
  }

  .home-content .gr-intro--split,
  .gr-method__grid,
  .gr-about__grid,
  .gr-uke__grid {
    grid-template-columns: 1fr;
  }

  .home-content .gr-intro--split {
    gap: 1.5rem;
  }

  .home-content .gr-intro--split .gr-kicker {
    margin-bottom: 0;
  }

  .home-content .gr-heading {
    font-size: clamp(2.45rem, 11vw, 3.7rem);
  }

  .gr-principles,
  .gr-format-list,
  .gr-steps--inline {
    grid-template-columns: 1fr;
  }

  .gr-steps--inline .gr-step {
    display: grid;
    padding: 1.6rem 0;
    border-bottom: 1px solid var(--gr-border-dark);
    grid-template-columns: 3rem 1fr;
    column-gap: 1rem;
  }

  .gr-steps--inline .gr-step + .gr-step {
    padding-left: 0;
    border-left: 0;
  }

  .gr-steps--inline .gr-step:last-child {
    border-bottom: 0;
  }

  .gr-steps--inline .gr-index {
    margin: 0.25rem 0 0;
    grid-row: 1 / 3;
  }

  .gr-steps--inline .gr-step > .wp-block-group {
    grid-column: 2;
  }

  .gr-principle {
    display: grid;
    padding: 1.6rem 0;
    grid-template-columns: 3rem 1fr;
    column-gap: 1rem;
  }

  .gr-principle + .gr-principle {
    padding-left: 0;
    border-top: 1px solid var(--gr-border-light);
    border-left: 0;
  }

  .gr-principle .gr-index {
    margin: 0.25rem 0 0;
    grid-row: 1 / 3;
  }

  .gr-principle h3 {
    grid-column: 2;
  }

  .gr-principle p:last-child {
    grid-column: 2;
  }

  .gr-method__content {
    order: -1;
  }

  .gr-method__image,
  .gr-about__image,
  .gr-uke__image {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .gr-about--compact .gr-about__image {
    min-height: 0;
  }

  .gr-method__image img {
    object-position: 50% 54%;
  }

  .gr-format {
    padding: 1.8rem 0 2.2rem;
  }

  .gr-format + .gr-format {
    padding-left: 0;
    border-top: 1px solid var(--gr-border-dark);
    border-left: 0;
  }

  .gr-about__image {
    margin-top: 0.75rem;
    aspect-ratio: 5 / 4;
  }

  .gr-authority {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.65rem;
  }

  .gr-uke__image {
    margin-top: 0.75rem;
  }

  .gr-testimonials__intro,
  .gr-testimonial-grid,
  .gr-resource-grid,
  .site-footer__inner {
    grid-template-columns: 1fr;
  }

  .gr-rating {
    padding: 1.75rem 0 0;
    border-top: 1px solid var(--gr-border-light);
    border-left: 0;
  }

  .home-content .gr-testimonial {
    padding: 1.75rem 0 2rem;
  }

  .home-content .gr-testimonial + .gr-testimonial {
    padding-left: 0;
    border-top: 1px solid var(--gr-border-light);
    border-left: 0;
  }

  .home-content .gr-testimonial p {
    max-width: 28ch;
    margin-bottom: 1.25rem;
  }

  .gr-resource-grid {
    gap: 2.5rem;
  }

  .gr-final-cta::before {
    background: rgba(14, 16, 19, 0.82);
  }

  .site-footer__inner {
    gap: 3.5rem;
  }

  .site-footer__nav,
  .site-footer__contact {
    padding-top: 2rem;
    border-top: 1px solid var(--gr-border-dark);
  }
}

@media (max-width: 420px) {
  .home-content .gr-section {
    padding-top: 4rem;
    padding-bottom: 4rem;
  }

  .home-content .gr-heading {
    font-size: 2.35rem;
  }

  .home-content .gr-lead {
    font-size: 1rem;
  }

  .gr-step {
    grid-template-columns: 2.6rem 1fr;
  }

  .gr-final-cta__inner {
    min-height: 520px;
  }

  .gr-final-cta__actions,
  .gr-final-button,
  .gr-final-button .wp-block-button__link {
    width: 100%;
  }

  .home-content .gr-final-cta__note {
    line-height: 1.55;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Blog, articles and internal pages (phase 4). */
.section-kicker {
  margin: 0 0 1.25rem;
  color: var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-transform: uppercase;
}

.archive-hero,
.article-hero {
  padding: clamp(5.5rem, 10vw, 10rem) var(--gr-gutter);
  background: var(--gr-black);
}

.page-hero {
  padding: clamp(4.75rem, 7vw, 6.5rem) var(--gr-gutter);
  background: var(--gr-black);
}

.archive-hero__inner,
.article-hero__inner,
.page-hero__inner {
  width: min(100%, 1320px);
  margin-inline: auto;
}

.archive-hero__inner {
  display: grid;
  grid-template-columns: minmax(310px, 1.15fr) minmax(280px, 0.55fr);
  align-items: end;
  column-gap: clamp(3rem, 10vw, 9rem);
}

.archive-hero .section-kicker {
  grid-column: 1 / -1;
}

.archive-hero__title,
.article-hero__title,
.page-hero__title {
  max-width: 13ch;
  margin: 0;
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: clamp(3.1rem, 6.2vw, 6.4rem);
  font-weight: 610;
  letter-spacing: -0.055em;
  line-height: 0.96;
  text-wrap: balance;
}

.archive-hero__intro,
.page-hero__intro {
  max-width: 35rem;
  margin: 0 0 0.35rem;
  color: var(--gr-muted-dark);
  font-size: clamp(1.05rem, 1.6vw, 1.3rem);
  line-height: 1.65;
}

.archive-hero__intro p {
  margin: 0;
}

.archive-hero--compact {
  padding-block: clamp(4.5rem, 8vw, 7.5rem);
}

.archive-hero--compact .archive-hero__inner {
  display: block;
}

.archive-hero--compact .archive-hero__title {
  max-width: 16ch;
  font-size: clamp(2.8rem, 5vw, 5rem);
}

.archive-hero--compact .archive-hero__intro {
  margin-top: 1.5rem;
}

.post-archive {
  padding: clamp(5rem, 9vw, 9rem) var(--gr-gutter);
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.post-archive__inner {
  width: min(100%, 1320px);
  margin-inline: auto;
}

.post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(3rem, 6vw, 5.5rem) clamp(1.5rem, 3vw, 3rem);
}

.post-card {
  min-width: 0;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--gr-border-light-strong);
}

.post-card--featured {
  display: grid;
  padding-bottom: clamp(3rem, 6vw, 5rem);
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  align-items: end;
  gap: clamp(2.5rem, 7vw, 7rem);
}

.post-card__media {
  display: block;
  margin: 0 0 1.5rem;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--gr-black);
  text-decoration: none;
}

.post-card--featured .post-card__media {
  margin: 0;
}

.post-card__image,
.post-card__placeholder {
  display: block;
  width: 100%;
  height: 100%;
}

.post-card__image {
  object-fit: cover;
  filter: saturate(0.72) contrast(1.03);
  transition: filter var(--gr-transition), transform var(--gr-transition);
}

.post-card__media:hover .post-card__image {
  filter: saturate(0.92) contrast(1.02);
  transform: scale(1.015);
}

.post-card__placeholder {
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: 1.35rem;
  background: linear-gradient(145deg, var(--gr-charcoal), var(--gr-black));
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.64rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.post-card__placeholder::before {
  position: absolute;
  top: 1.35rem;
  left: 1.35rem;
  width: 42px;
  height: 3px;
  background: var(--gr-brass);
  content: "";
}

.post-card__meta,
.article-meta {
  display: flex;
  color: var(--gr-warm-gray);
  font-family: var(--gr-font-display);
  font-size: 0.68rem;
  font-weight: 620;
  letter-spacing: 0.075em;
  gap: 0.75rem;
  flex-wrap: wrap;
  text-transform: uppercase;
}

.post-card__meta > * + *::before,
.article-meta > * + *::before {
  margin-right: 0.75rem;
  color: var(--gr-warm-gray);
  content: "·";
}

.post-card__meta a,
.article-meta a {
  color: var(--gr-brass-deep);
  text-decoration: none;
}

.post-card__title {
  margin: 1.1rem 0 0;
  font-family: var(--gr-font-display);
  font-size: clamp(1.55rem, 2.4vw, 2.15rem);
  font-weight: 600;
  letter-spacing: -0.035em;
  line-height: 1.12;
  text-wrap: balance;
}

.post-card--featured .post-card__title {
  font-size: clamp(2.2rem, 4.2vw, 4.25rem);
  line-height: 1;
}

.post-card__title a,
.post-card__link {
  text-decoration: none;
}

.post-card__title a:hover,
.post-card__link:hover {
  color: var(--gr-brass-deep);
}

.post-card__excerpt {
  margin: 1.1rem 0 0;
  color: var(--gr-warm-gray);
  font-size: 0.92rem;
  line-height: 1.72;
}

.post-card__link,
.text-link {
  display: inline-block;
  margin-top: 1.4rem;
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.035em;
}

.post-card__link span,
.text-link span {
  color: var(--gr-brass-deep);
}

.navigation.pagination {
  margin-top: clamp(4rem, 8vw, 7rem);
  padding-top: 1.5rem;
  border-top: 1px solid var(--gr-border-light-strong);
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.page-numbers {
  display: inline-flex;
  min-width: 42px;
  min-height: 42px;
  padding: 0.6rem 0.8rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gr-border-light);
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 620;
  text-decoration: none;
}

.page-numbers.current,
.page-numbers:hover {
  border-color: var(--gr-brass);
  background: var(--gr-brass);
  color: var(--gr-charcoal);
}

.empty-state {
  max-width: 700px;
  padding-block: 2rem;
}

.empty-state h2,
.error-page h1 {
  margin: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 610;
  letter-spacing: -0.05em;
  line-height: 1;
}

.empty-state > p:not(.section-kicker) {
  color: var(--gr-warm-gray);
}

.article-hero__inner,
.page-hero__inner {
  max-width: 1060px;
}

.article-hero__back {
  display: inline-block;
  margin-bottom: clamp(3rem, 7vw, 6rem);
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.76rem;
  font-weight: 620;
  letter-spacing: 0.04em;
  text-decoration: none;
}

.article-hero__back:hover {
  color: var(--gr-off-white);
}

.article-meta {
  margin-bottom: 1.5rem;
  color: var(--gr-muted-dark);
}

.article-meta a {
  color: var(--gr-brass);
}

.article-meta > * + *::before {
  color: var(--gr-muted-dark);
}

.article-hero__title {
  max-width: 14ch;
}

.article-hero__excerpt {
  max-width: 760px;
  margin: 2rem 0 0;
  color: var(--gr-muted-dark);
  font-size: clamp(1.08rem, 1.7vw, 1.35rem);
  line-height: 1.65;
}

.article-featured,
.page-featured {
  width: min(calc(100% - (2 * var(--gr-gutter))), 1320px);
  margin: clamp(-3rem, -4vw, -1.5rem) auto 0;
  overflow: hidden;
  background: var(--gr-black);
}

.article-featured img,
.page-featured img {
  width: 100%;
  max-height: 760px;
  object-fit: cover;
  filter: saturate(0.78) contrast(1.02);
}

.article-surface,
.page-surface {
  padding: clamp(5rem, 9vw, 9rem) var(--gr-gutter);
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.article-content,
.page-content,
.article-footer,
.post-navigation,
.comments-area {
  width: min(100%, 760px);
  margin-inline: auto;
}

.article-content,
.page-content {
	min-width: 0;
	font-size: clamp(1rem, 1.2vw, 1.08rem);
	line-height: 1.82;
	overflow-wrap: anywhere;
}

.article-content > :first-child,
.page-content > :first-child {
  margin-top: 0;
}

.article-content > :last-child,
.page-content > :last-child {
  margin-bottom: 0;
}

.article-content p,
.article-content ul,
.article-content ol,
.page-content p,
.page-content ul,
.page-content ol {
  margin-block: 0 1.55rem;
}

.article-content h2,
.article-content h3,
.article-content h4,
.page-content h2,
.page-content h3,
.page-content h4 {
  margin: 2.8em 0 0.7em;
  font-family: var(--gr-font-display);
  font-weight: 610;
  letter-spacing: -0.035em;
  line-height: 1.12;
  text-wrap: balance;
}

.article-content h2,
.page-content h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
}

.article-content h3,
.page-content h3 {
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
}

.article-content h4,
.page-content h4 {
  font-size: 1.25rem;
}

.article-content a,
.page-content a {
  color: var(--gr-brass-deep);
  font-weight: 600;
}

.article-content img,
.page-content img {
	max-width: 100%;
	height: auto;
}

.article-content figure,
.page-content figure {
	max-width: 100%;
	margin: 2.5rem 0;
}

.article-content .wp-caption,
.page-content .wp-caption {
	width: auto !important;
	max-width: 100% !important;
}

/*
 * Safety net for the three historic Visual Composer entries. Their database
 * markup will be converted later, but it must never force horizontal scroll.
 */
.article-content .vce-row-container,
.article-content .vce-row,
.article-content .vce-row-content,
.article-content .vce-col {
	left: auto !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	transform: none !important;
}

.article-content [class*="vce-"] {
	box-sizing: border-box;
	min-width: 0 !important;
	max-width: 100% !important;
}

.article-content .vce-single-image-inner,
.article-content img.vce-single-image {
	width: 100% !important;
}

.article-content figcaption,
.page-content figcaption {
  margin-top: 0.65rem;
  color: var(--gr-warm-gray);
  font-size: 0.75rem;
  text-align: left;
}

.article-content blockquote,
.page-content blockquote {
  margin: 2.75rem 0;
  padding: 0.25rem 0 0.25rem 1.5rem;
  border-left: 3px solid var(--gr-brass);
  font-family: var(--gr-font-display);
  font-size: clamp(1.25rem, 2.4vw, 1.65rem);
  font-weight: 550;
  letter-spacing: -0.02em;
  line-height: 1.45;
}

.article-content blockquote p,
.page-content blockquote p {
  margin: 0;
}

.article-content table,
.page-content table {
  width: 100%;
  margin: 2.5rem 0;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.article-content th,
.article-content td,
.page-content th,
.page-content td {
  padding: 0.85rem;
  border: 1px solid var(--gr-border-light);
  text-align: left;
}

.article-content iframe,
.article-content video,
.page-content iframe,
.page-content video {
  max-width: 100%;
}

.article-content pre,
.page-content pre {
  overflow-x: auto;
  padding: 1.25rem;
  background: var(--gr-border-light);
}

.article-content .alignwide,
.page-content .alignwide {
  width: min(calc(100vw - (2 * var(--gr-gutter))), 1100px);
  max-width: none;
  margin-right: auto;
  margin-left: 50%;
  transform: translateX(-50%);
}

.article-content .alignfull,
.page-content .alignfull {
  width: calc(100vw - (2 * var(--gr-gutter)));
  max-width: none;
  margin-right: auto;
  margin-left: 50%;
  transform: translateX(-50%);
}

.article-footer {
  display: grid;
  margin-top: clamp(4rem, 8vw, 7rem);
  padding: 2rem 0;
  border-top: 1px solid var(--gr-border-light-strong);
  border-bottom: 1px solid var(--gr-border-light-strong);
  grid-template-columns: minmax(0, 1fr) minmax(170px, 0.45fr);
  align-items: start;
  gap: 2rem;
}

.article-footer__author p:last-child {
  max-width: 31rem;
  margin: 0;
  color: var(--gr-warm-gray);
  font-size: 0.88rem;
}

.article-tags {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.article-tags a {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--gr-border-light);
  font-family: var(--gr-font-display);
  font-size: 0.67rem;
  font-weight: 620;
  text-decoration: none;
}

.post-navigation {
  display: grid;
  margin-top: 2.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
}

.post-navigation__item {
  min-width: 0;
}

.post-navigation__item--next {
  text-align: right;
}

.post-navigation__item span {
  display: block;
  margin-bottom: 0.55rem;
  color: var(--gr-warm-gray);
  font-family: var(--gr-font-display);
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.post-navigation__item a {
  font-family: var(--gr-font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
}

.page-hero__title {
  max-width: 15ch;
}

.page-hero__intro {
  margin-top: 2rem;
}

.page-breadcrumbs {
  display: flex;
  margin: 0 0 2rem;
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.68rem;
  font-weight: 620;
  letter-spacing: 0.055em;
  gap: 0.55rem;
  text-transform: uppercase;
}

.page-breadcrumbs a {
  color: var(--gr-muted-dark);
  text-decoration: none;
}

.page-breadcrumbs a:hover {
  color: var(--gr-off-white);
}

.page-content > .gr-page-section {
  width: min(calc(100vw - (2 * var(--gr-gutter))), 1100px);
  max-width: none;
  margin: 0 0 0 50%;
  padding: clamp(3.5rem, 7vw, 6rem) 0;
  border-top: 1px solid var(--gr-border-light-strong);
  transform: translateX(-50%);
}

.page-content > .gr-page-section:first-child {
  padding-top: 0;
  border-top: 0;
}

.page-content .gr-page-intro {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(300px, 1.15fr);
  align-items: start;
  gap: clamp(2.5rem, 8vw, 8rem);
}

.page-content .gr-page-kicker,
.page-content .gr-card__index {
  margin: 0 0 1rem;
  color: var(--gr-brass-deep);
  font-family: var(--gr-font-display);
  font-size: 0.7rem;
  font-weight: 680;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.page-content .gr-page-heading {
  max-width: 16ch;
  margin: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(2.25rem, 5vw, 4.5rem);
  font-weight: 610;
  letter-spacing: -0.05em;
  line-height: 1.01;
  text-wrap: balance;
}

.page-content .gr-page-lead {
  margin: 0;
  color: var(--gr-warm-gray);
  font-size: clamp(1.08rem, 1.8vw, 1.35rem);
  line-height: 1.72;
}

.page-content .gr-page-lead + p {
  margin-top: 1.5rem;
}

.page-content .gr-page-grid {
  display: grid;
  margin-top: clamp(2.5rem, 5vw, 4rem);
  border-top: 1px solid var(--gr-border-light-strong);
  border-bottom: 1px solid var(--gr-border-light-strong);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.page-content .gr-page-grid--three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-content .gr-card {
  min-width: 0;
  padding: clamp(1.75rem, 4vw, 3rem);
}

.page-content .gr-card + .gr-card {
  border-left: 1px solid var(--gr-border-light);
}

.page-content .gr-card h3 {
  margin-top: 0;
  font-size: clamp(1.35rem, 2.5vw, 2rem);
}

.page-content .gr-card p:last-child {
  margin-bottom: 0;
}

.page-content .gr-text-link {
  display: inline-block;
  margin-top: 0.75rem;
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 680;
  letter-spacing: 0.025em;
  text-decoration: none;
}

.page-content .gr-process {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  padding: 0;
  border-top: 1px solid var(--gr-border-light-strong);
}

.page-content .gr-process__item {
  display: grid;
  margin: 0;
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--gr-border-light);
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: 1rem;
}

.page-content .gr-process__item h3 {
  margin: 0 0 0.35rem;
  font-size: 1.1rem;
}

.page-content .gr-process__item p:last-child {
  margin: 0;
  color: var(--gr-warm-gray);
}

.page-content .gr-page-cta {
  padding: clamp(2.75rem, 4.5vw, 4rem);
  border-top: 0;
  background: var(--gr-black);
  color: var(--gr-off-white);
}

.page-content .gr-page-cta .gr-page-heading {
  max-width: 13ch;
  color: var(--gr-off-white);
}

.page-content .gr-page-cta .gr-page-lead {
  max-width: 650px;
  margin-top: 1.5rem;
  color: var(--gr-muted-dark);
}

.page-content .gr-page-cta .wp-block-buttons {
  margin-top: 2rem;
}

.page-content .gr-page-cta .wp-block-button__link {
  min-height: 48px;
  padding: 0.9rem 1.35rem;
  border-radius: 0;
  background: var(--gr-brass);
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-size: 0.82rem;
  font-weight: 680;
  text-decoration: none;
}

.page-content .gr-page-note {
  margin-top: 1rem;
  color: var(--gr-muted-dark);
  font-family: var(--gr-font-display);
  font-size: 0.7rem;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.page-content .gr-page-cta__secondary {
  margin: 1rem 0 0;
  font-family: var(--gr-font-display);
  font-size: 0.8rem;
  font-weight: 650;
}

.page-content .gr-page-cta__secondary a {
  color: var(--gr-off-white);
  text-decoration-color: var(--gr-brass);
  text-underline-offset: 0.35em;
}

.page-content .gr-page-cta__secondary a:hover {
  color: var(--gr-brass);
}

.page-content .gr-pricing .gr-page-heading {
  max-width: 18ch;
}

.page-content .gr-pricing .gr-page-lead {
  max-width: 750px;
  margin-top: 1.5rem;
}

.page-content .gr-booking-plans {
  margin-top: clamp(2.5rem, 5vw, 4rem);
}

.page-content .gr-booking-plans__grid {
  display: grid;
  border-top: 1px solid var(--gr-border-light-strong);
  border-bottom: 1px solid var(--gr-border-light-strong);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.page-content .gr-booking-plan {
  position: relative;
  min-width: 0;
  padding: clamp(1.75rem, 4vw, 3rem);
}

.page-content .gr-booking-plan + .gr-booking-plan {
  border-left: 1px solid var(--gr-border-light);
}

.page-content .gr-booking-plan--featured {
  background: rgba(184, 146, 94, 0.09);
}

.page-content .gr-booking-plan__badge {
  margin: 0 0 1rem;
  color: var(--gr-brass-deep);
  font-family: var(--gr-font-display);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-content .gr-booking-plan h3 {
  margin: 0;
  font-family: var(--gr-font-display);
  font-size: clamp(1.3rem, 2.4vw, 1.85rem);
  letter-spacing: -0.035em;
}

.page-content .gr-booking-plan__price {
  margin: 1.5rem 0 0;
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-size: 1rem;
}

.page-content .gr-booking-plan__price strong {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 610;
  letter-spacing: -0.055em;
  line-height: 1;
}

.page-content .gr-booking-plan__sessions {
  margin: 0.75rem 0 0;
  color: var(--gr-warm-gray);
  font-size: 0.88rem;
}

.page-content .gr-booking-plans__actions {
  display: flex;
  margin-top: 2rem;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

.page-content .gr-booking-plans__primary {
  display: inline-flex;
  min-height: 48px;
  padding: 0.9rem 1.35rem;
  background: var(--gr-charcoal);
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.82rem;
  font-weight: 680;
  align-items: center;
  text-decoration: none;
}

.page-content .gr-booking-plans__primary span {
  margin-left: 0.5rem;
  color: var(--gr-brass);
}

.page-content .gr-booking-plans__student {
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-size: 0.8rem;
  font-weight: 650;
  text-underline-offset: 0.3em;
}

.page-content .gr-booking-plans__note {
  max-width: 760px;
  margin: 1.5rem 0 0;
  color: var(--gr-warm-gray);
  font-size: 0.76rem;
}

.comments-area {
  margin-top: clamp(4rem, 8vw, 7rem);
  padding-top: 2rem;
  border-top: 1px solid var(--gr-border-light-strong);
}

.comments-title,
.comment-reply-title {
  font-family: var(--gr-font-display);
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
}

.comment-list {
  margin: 2rem 0;
  padding: 0;
  list-style: none;
}

.comment-list .comment {
  padding: 1.5rem 0;
  border-top: 1px solid var(--gr-border-light);
}

.comment-list .children {
  list-style: none;
}

.comment-meta,
.comment-notes,
.logged-in-as {
  color: var(--gr-warm-gray);
  font-size: 0.78rem;
}

.comment-form label {
  display: block;
  margin-bottom: 0.4rem;
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 620;
}

.comment-form input:not([type="checkbox"], [type="submit"]),
.comment-form textarea {
  width: 100%;
  padding: 0.8rem;
  border: 1px solid var(--gr-border-light-strong);
  border-radius: 0;
  background: var(--gr-off-white);
  color: var(--gr-charcoal);
}

.comment-form .submit {
  min-height: 46px;
  padding: 0.8rem 1.25rem;
  border: 0;
  border-radius: 0;
  background: var(--gr-brass);
  color: var(--gr-charcoal);
  font-family: var(--gr-font-display);
  font-weight: 650;
  cursor: pointer;
}

.error-page {
  display: flex;
  min-height: calc(100svh - var(--gr-header-height));
  padding: clamp(5rem, 10vw, 10rem) var(--gr-gutter);
  align-items: center;
  background: var(--gr-black);
}

.error-page__inner {
  width: min(100%, 900px);
  margin-inline: auto;
}

.error-page h1 {
  max-width: 12ch;
}

.error-page__inner > p:not(.section-kicker) {
  max-width: 38rem;
  margin: 1.5rem 0 0;
  color: var(--gr-muted-dark);
}

.error-page__actions {
  display: flex;
  margin-top: 2.25rem;
  gap: 0.75rem;
  flex-wrap: wrap;
}

@media (max-width: 1050px) {
  .post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .post-card--featured {
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
    gap: 2.5rem;
  }
}

@media (max-width: 820px) {
  .archive-hero__inner,
  .post-card--featured {
    grid-template-columns: 1fr;
  }

  .archive-hero__inner {
    align-items: start;
    gap: 2rem;
  }

  .archive-hero__title,
  .article-hero__title,
  .page-hero__title {
    font-size: clamp(3rem, 10vw, 4.8rem);
  }

  .archive-hero__intro {
    margin: 0;
  }

  .post-card--featured .post-card__media {
    margin-bottom: 0;
  }

  .article-footer {
    grid-template-columns: 1fr;
  }

  .article-tags {
    justify-content: flex-start;
  }

  .page-content .gr-page-intro,
  .page-content .gr-page-grid,
  .page-content .gr-page-grid--three,
  .page-content .gr-booking-plans__grid {
    grid-template-columns: 1fr;
  }

  .page-content .gr-card + .gr-card {
    border-top: 1px solid var(--gr-border-light);
    border-left: 0;
  }

  .page-content .gr-booking-plan + .gr-booking-plan {
    border-top: 1px solid var(--gr-border-light);
    border-left: 0;
  }
}

@media (max-width: 640px) {
  .archive-hero,
  .article-hero,
  .page-hero {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  .archive-hero__title,
  .article-hero__title,
  .page-hero__title {
    font-size: clamp(2.65rem, 13vw, 3.75rem);
  }

  .post-grid {
    grid-template-columns: 1fr;
  }

  .post-card--featured {
    display: block;
    padding-bottom: 2rem;
  }

  .post-card--featured .post-card__media {
    margin-bottom: 1.5rem;
  }

  .post-card--featured .post-card__title {
    font-size: clamp(1.8rem, 9vw, 2.5rem);
  }

  .article-hero__back {
    margin-bottom: 3rem;
  }

  .article-meta {
    gap: 0.45rem 0.65rem;
  }

  .article-meta > * + *::before {
    margin-right: 0.65rem;
  }

  .article-featured,
  .page-featured {
    width: 100%;
    margin-top: 0;
  }

  .article-featured img,
  .page-featured img {
    min-height: 260px;
  }

  .article-content,
  .page-content {
    line-height: 1.76;
  }

  .page-content > .gr-page-section {
    width: calc(100vw - (2 * var(--gr-gutter)));
    padding-block: 3.5rem;
  }

  .page-content .gr-page-heading {
    font-size: clamp(2.15rem, 11vw, 3.15rem);
  }

  .page-content .gr-card {
    padding: 1.6rem 0;
  }

  .page-content .gr-process__item {
    grid-template-columns: 2.5rem minmax(0, 1fr);
  }

  .page-content .gr-page-cta {
    width: 100vw;
    padding: 3.5rem var(--gr-gutter);
  }

  .page-content .gr-booking-plans__actions,
  .page-content .gr-booking-plans__primary {
    width: 100%;
  }

  .page-content .gr-booking-plans__primary {
    justify-content: center;
  }

  .post-navigation {
    grid-template-columns: 1fr;
  }

  .post-navigation__item--next {
    padding-top: 1.5rem;
    border-top: 1px solid var(--gr-border-light);
    text-align: left;
  }

  .error-page__actions,
  .error-page__actions .button {
    width: 100%;
  }
}

/* Keep the editorial photo layout above the generic internal-page rules. */
.page-content > .gr-photo-layout {
  display: grid;
  width: min(calc(100vw - (2 * var(--gr-gutter))), 1100px);
  max-width: none;
  margin: 0 0 0 50%;
  padding: clamp(3.5rem, 6vw, 6rem) 0;
  grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 6rem);
  transform: translateX(-50%);
}

.page-content > .gr-photo-layout > .gr-page-intro {
  display: block;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  transform: none;
}

.page-content > .gr-photo-layout > .wp-block-image.alignwide {
  position: relative;
  left: auto;
  width: 100%;
  max-width: none;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--gr-black);
  transform: none;
}

@media (max-width: 860px) {
  .page-content > .gr-photo-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
}

@media (max-width: 640px) {
  .page-content > .gr-photo-layout {
    width: calc(100vw - (2 * var(--gr-gutter)));
    padding-block: 2.5rem;
  }

  .page-content > .gr-photo-layout > .wp-block-image.alignwide {
    aspect-ratio: 5 / 4;
  }
}

/* Visual correction 1.0.9 — readable photo layouts and conversion-first pricing. */
.gr-photo-layout > .alignwide:not(.wp-block-image) {
  position: static;
  width: auto;
  max-width: none;
  margin: 0;
  overflow: visible;
  aspect-ratio: auto;
  background: transparent;
  transform: none;
}

.page-content > .gr-photo-layout > .gr-page-intro {
  background: transparent;
  color: var(--gr-charcoal);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) {
  border-color: var(--gr-border-light-strong);
  background: transparent;
  box-shadow: none;
  color: var(--gr-charcoal);
  clip-path: none;
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-lead,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card p,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process__item p:last-child {
  color: var(--gr-warm-gray);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-grid,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card + .gr-card,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-process__item {
  border-color: var(--gr-border-light-strong);
}

.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-page-kicker,
.gr-page-clases-guitarra .page-content > .gr-page-section:nth-child(even) .gr-card__index {
  color: var(--gr-brass-deep);
}

.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section,
.gr-page-clases-guitarra .page-content > .gr-page-intro {
  border-color: var(--gr-border-dark);
  background: var(--gr-charcoal);
  box-shadow: 0 0 0 100vmax var(--gr-charcoal);
  color: var(--gr-off-white);
  clip-path: inset(0 -100vmax);
}

.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section .gr-card p,
.gr-page-clases-guitarra .page-content > .gr-page-intro .gr-page-lead {
  color: var(--gr-muted-dark);
}

.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section .gr-page-grid,
.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section .gr-card + .gr-card {
  border-color: var(--gr-border-dark);
}

.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section .gr-page-kicker,
.gr-page-clases-guitarra .page-content > .gr-pricing + .gr-page-section .gr-card__index,
.gr-page-clases-guitarra .page-content > .gr-page-intro .gr-page-kicker {
  color: var(--gr-brass);
}

.page-content .gr-pricing {
  scroll-margin-top: calc(var(--gr-header-height) + 1.5rem);
}

.page-hero__shortcut {
  display: inline-flex;
  min-height: 46px;
  margin-top: 2rem;
  padding: 0.8rem 1.1rem;
  border: 1px solid var(--gr-border-dark);
  color: var(--gr-off-white);
  font-family: var(--gr-font-display);
  font-size: 0.78rem;
  font-weight: 680;
  align-items: center;
  gap: 0.55rem;
  text-decoration: none;
}

.page-hero__shortcut:hover {
  border-color: var(--gr-brass);
  color: var(--gr-brass);
}

/* Publicación 1.0.11 — CTA legible, interiores más ágiles y navegación sin destello. */
.gr-page-clases-guitarra .page-content > .gr-page-section.gr-page-cta {
  border-color: var(--gr-border-dark);
  background: var(--gr-black);
  box-shadow: 0 0 0 100vmax var(--gr-black);
  color: var(--gr-off-white);
  clip-path: inset(0 -100vmax);
}

.gr-page-clases-guitarra .page-content > .gr-page-section.gr-page-cta .gr-page-heading,
.gr-page-clases-guitarra .page-content > .gr-page-section.gr-page-cta .gr-page-cta__secondary a {
  color: var(--gr-off-white);
}

.gr-page-clases-guitarra .page-content > .gr-page-section.gr-page-cta .gr-page-lead,
.gr-page-clases-guitarra .page-content > .gr-page-section.gr-page-cta .gr-page-note {
  color: var(--gr-muted-dark);
}

/* Retrato editorial 1.0.12 — proporción nativa y fundido inferior hacia la sección. */
@media (min-width: 821px) {
  .home .gr-about--compact .gr-about__image {
    min-height: 0;
    aspect-ratio: 4 / 5;
    align-self: center;
    background: transparent;
  }

  .home .gr-about--compact .gr-about__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 54% 30%;
  }

  .home .gr-about--compact .gr-about__image::after {
    background:
      linear-gradient(180deg, transparent 0%, transparent 66%, rgba(241, 236, 226, 0.12) 76%, rgba(241, 236, 226, 0.72) 93%, var(--gr-off-white) 100%),
      linear-gradient(90deg, rgba(241, 236, 226, 0.12), transparent 22%);
  }
}

/* Hero editorial integrado 1.0.10 — imagen amplia, fundido lateral y menor vacío superior. */
@media (min-width: 901px) {
  .home .hero {
    isolation: isolate;
    padding: clamp(1.5rem, 2.4vw, 2.5rem) 0;
  }

  .home .hero::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    background:
      radial-gradient(circle at 72% 64%, rgba(184, 146, 94, 0.08), transparent 30%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.08), transparent 28%, rgba(14, 16, 19, 0.18));
    content: "";
    pointer-events: none;
  }

  .home .hero__inner {
    position: relative;
    z-index: 1;
    width: min(100%, var(--gr-content-wide));
    min-height: 0;
    padding-inline: var(--gr-gutter);
    grid-template-columns: minmax(380px, 0.84fr) minmax(0, 1.16fr);
    align-items: center;
    gap: 0;
  }

  .home .hero__content {
    z-index: 2;
    padding: clamp(1rem, 1.8vw, 1.75rem) clamp(2rem, 4vw, 4.5rem) clamp(1rem, 1.8vw, 1.75rem) 0;
  }

  .home .hero__media {
    z-index: 1;
    width: calc(100% + clamp(3rem, 5vw, 5rem));
    max-width: none;
    min-height: 0;
    margin-left: calc(-1 * clamp(3rem, 5vw, 5rem));
    border: 0;
    aspect-ratio: 16 / 10;
    background: transparent;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.38) 7%, #000 23%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.38) 7%, #000 23%, #000 100%);
  }

  .home .hero__media::before {
    z-index: 2;
    background:
      linear-gradient(90deg, rgba(23, 26, 31, 0.96) 0%, rgba(23, 26, 31, 0.68) 12%, rgba(23, 26, 31, 0.12) 38%, transparent 58%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.18) 0%, transparent 34%, rgba(14, 16, 19, 0.34) 100%),
      radial-gradient(circle at 66% 72%, rgba(184, 146, 94, 0.13), transparent 40%);
  }

  .home .hero__media::after {
    z-index: 2;
    border: 0;
    background: linear-gradient(180deg, rgba(14, 16, 19, 0.1), transparent 24%, transparent 72%, rgba(14, 16, 19, 0.3));
    box-shadow: inset 0 0 86px rgba(14, 16, 19, 0.24);
  }

  .home .hero__image {
    object-position: 56% 48%;
    filter: saturate(0.82) contrast(1.06) brightness(0.92);
  }

  .home .hero__media-label {
    z-index: 3;
    right: 1.35rem;
    bottom: 1.2rem;
    padding: 0;
    border: 0;
    background: transparent;
    opacity: 0.68;
    text-shadow: 0 1px 14px rgba(0, 0, 0, 0.82);
  }
}

@media (max-width: 640px) {
  .page-hero__shortcut {
    width: 100%;
    justify-content: center;
  }
}

/* Hero fotográfico a sangre 1.0.13 — composición boutique, sin alterar la fotografía. */
.home .hero {
  isolation: isolate;
  min-height: clamp(680px, 82svh, 900px);
  padding: 0;
  background: var(--gr-black);
}

.home .hero::before {
  display: none;
}

.home .hero__inner {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  min-height: inherit;
  padding: 0;
}

.home .hero__content {
  position: relative;
  z-index: 3;
  display: flex;
  width: min(100%, var(--gr-content-wide));
  min-height: inherit;
  margin-inline: auto;
  padding: clamp(3.5rem, 7vh, 5.75rem) var(--gr-gutter);
  flex-direction: column;
  justify-content: center;
}

.home .hero__content::before {
  width: 42px;
  height: 3px;
  margin-bottom: clamp(1.35rem, 2.6vh, 2rem);
  background: var(--gr-brass);
}

.home .hero__title {
  max-width: 720px;
  color: var(--gr-off-white);
  font-size: clamp(3.25rem, 4.7vw, 5.1rem);
  font-weight: 620;
  letter-spacing: -0.052em;
  line-height: 0.98;
  text-transform: none;
  text-wrap: balance;
}

.home .hero__title-line {
  display: inline;
}

.home .hero__title-line--secondary {
  margin-top: 0;
  font-size: 1em;
  letter-spacing: inherit;
  line-height: inherit;
}

html[lang^="en"] .home .hero__title,
html[lang^="en"] .home .hero__title-line--secondary {
  max-width: 760px;
  font-size: clamp(3.05rem, 4.35vw, 4.8rem);
  letter-spacing: -0.048em;
  line-height: 1;
}

.home .hero__subtitle {
  max-width: 620px;
  margin-top: clamp(1.4rem, 2.6vh, 2rem);
  color: var(--gr-brass);
  font-size: clamp(1.15rem, 1.5vw, 1.4rem);
  font-weight: 600;
}

.home .hero__body {
  max-width: 610px;
  margin-top: 1rem;
  color: rgba(241, 236, 226, 0.84);
  font-size: clamp(0.96rem, 1.05vw, 1.05rem);
  line-height: 1.7;
}

.home .hero__actions {
  margin-top: clamp(1.55rem, 3vh, 2.25rem);
  gap: 0.75rem;
}

.home .hero__actions .button {
  min-height: 48px;
  padding-inline: 1.4rem;
}

.home .hero__actions .button--text {
  border-color: rgba(241, 236, 226, 0.34);
  background: rgba(14, 16, 19, 0.18);
}

.home .hero__actions .button--text:hover {
  border-color: var(--gr-brass);
  background: rgba(14, 16, 19, 0.72);
}

.home .hero__session-note {
  margin-top: 0.75rem;
  color: var(--gr-brass);
}

.home .hero__microcopy {
  max-width: 620px;
  margin-top: clamp(1.2rem, 2.8vh, 2rem);
  padding-top: 0.9rem;
  border-color: rgba(241, 236, 226, 0.22);
  color: rgba(241, 236, 226, 0.75);
}

.home .hero__media {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  border: 0;
  aspect-ratio: auto;
  background: var(--gr-black);
  -webkit-mask-image: none;
  mask-image: none;
}

.home .hero__media::before {
  z-index: 2;
  background:
    linear-gradient(90deg, rgba(14, 16, 19, 0.97) 0%, rgba(14, 16, 19, 0.9) 30%, rgba(14, 16, 19, 0.55) 56%, rgba(14, 16, 19, 0.12) 82%),
    linear-gradient(180deg, rgba(14, 16, 19, 0.08) 0%, transparent 58%, rgba(14, 16, 19, 0.4) 100%);
}

.home .hero__media::after {
  z-index: 2;
  border: 0;
  background: radial-gradient(circle at 64% 52%, transparent 32%, rgba(14, 16, 19, 0.18) 100%);
  box-shadow: inset 0 0 80px rgba(14, 16, 19, 0.18);
}

.home .hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 45%;
  filter: saturate(0.86) contrast(1.04) brightness(0.94);
  transform: none;
}

.home .hero__media-label {
  display: none;
}

@media (max-width: 1180px) {
  .home .hero__title {
    max-width: 640px;
    font-size: clamp(3.1rem, 5.5vw, 4.25rem);
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    max-width: 680px;
    font-size: clamp(2.9rem, 5.15vw, 4rem);
  }

  .home .hero__body,
  .home .hero__microcopy,
  .home .hero__subtitle {
    max-width: 560px;
  }

  .home .hero__media::before {
    background:
      linear-gradient(90deg, rgba(14, 16, 19, 0.98) 0%, rgba(14, 16, 19, 0.92) 34%, rgba(14, 16, 19, 0.62) 62%, rgba(14, 16, 19, 0.18) 90%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.1) 0%, transparent 54%, rgba(14, 16, 19, 0.46) 100%);
  }
}

@media (max-width: 900px) {
  .home .hero {
    min-height: clamp(720px, 84svh, 840px);
  }

  .home .hero__content {
    padding-block: clamp(3.2rem, 7vh, 5rem);
  }

  .home .hero__title {
    max-width: 610px;
    font-size: clamp(3rem, 8vw, 4.2rem);
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    max-width: 640px;
    font-size: clamp(2.75rem, 7.3vw, 3.8rem);
  }

  .home .hero__media::before {
    background:
      linear-gradient(90deg, rgba(14, 16, 19, 0.98) 0%, rgba(14, 16, 19, 0.92) 42%, rgba(14, 16, 19, 0.58) 100%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.16) 0%, transparent 46%, rgba(14, 16, 19, 0.58) 100%);
  }
}

@media (max-width: 640px) {
  .home .hero {
    min-height: max(760px, calc(100svh - var(--gr-header-height)));
  }

  .home .hero__content {
    min-height: inherit;
    padding: 2.5rem var(--gr-gutter) 2.25rem;
    justify-content: center;
  }

  .home .hero__content::before {
    width: 34px;
    margin-bottom: 1.15rem;
  }

  .home .hero__title {
    max-width: 10.5ch;
    font-size: clamp(2.55rem, 11.5vw, 3.2rem);
    line-height: 0.98;
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    max-width: 11.5ch;
    font-size: clamp(2.35rem, 10.5vw, 2.9rem);
    line-height: 1;
  }

  .home .hero__subtitle {
    max-width: 19rem;
    margin-top: 1.25rem;
    font-size: 1.05rem;
  }

  .home .hero__body {
    max-width: 20rem;
    margin-top: 0.8rem;
    font-size: 0.9rem;
    line-height: 1.58;
  }

  .home .hero__actions {
    max-width: 20rem;
    margin-top: 1.35rem;
  }

  .home .hero__actions .button {
    width: 100%;
    min-height: 46px;
  }

  .home .hero__session-note {
    max-width: 20rem;
    margin-top: 0.65rem;
    font-size: 0.65rem;
  }

  .home .hero__microcopy {
    max-width: 20rem;
    margin-top: 1.2rem;
    padding-top: 0.8rem;
    font-size: 0.65rem;
    line-height: 1.55;
  }

  .home .hero__media::before {
    background:
      linear-gradient(90deg, rgba(14, 16, 19, 0.97) 0%, rgba(14, 16, 19, 0.9) 52%, rgba(14, 16, 19, 0.54) 100%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.2) 0%, rgba(14, 16, 19, 0.2) 38%, rgba(14, 16, 19, 0.84) 100%);
  }

  .home .hero__media::after {
    background: radial-gradient(circle at 72% 38%, transparent 20%, rgba(14, 16, 19, 0.18) 68%, rgba(14, 16, 19, 0.48) 100%);
    box-shadow: inset 0 0 54px rgba(14, 16, 19, 0.2);
  }

  .home .hero__image {
    object-position: 34% 50%;
    filter: saturate(0.82) contrast(1.04) brightness(0.88);
  }
}

@media (max-width: 390px) {
  .home .hero__content {
    padding-top: 2.1rem;
    padding-bottom: 2rem;
  }

  .home .hero__title {
    font-size: clamp(2.35rem, 11vw, 2.7rem);
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    font-size: clamp(2.18rem, 10vw, 2.5rem);
  }
}

/* Afinado final 1.0.14 — Hero y header de la Home exclusivamente en escritorio. */
@keyframes gr-home-header-settle {
  from {
    border-bottom-color: rgba(241, 236, 226, 0.1);
    background-color: rgba(14, 16, 19, 0.62);
  }

  to {
    border-bottom-color: rgba(241, 236, 226, 0.16);
    background-color: rgba(23, 26, 31, 0.98);
  }
}

@media (min-width: 901px) {
  .home .site-header {
    border-bottom-color: rgba(241, 236, 226, 0.1);
    background-color: rgba(14, 16, 19, 0.62);
  }

  .home .hero {
    min-height: max(680px, 100svh);
    margin-top: calc(-1 * var(--gr-header-height));
  }

  .home .hero__title {
    max-width: 680px;
    font-size: clamp(3.75rem, 4.7vw, 4.25rem);
    line-height: 0.98;
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    max-width: 700px;
    font-size: clamp(3.75rem, 4.3vw, 4rem);
    line-height: 1;
  }

  .home .hero__body {
    max-width: 580px;
  }

  .home .hero__microcopy {
    max-width: 600px;
  }

  .home .hero__media::before {
    background:
      linear-gradient(90deg, rgba(14, 16, 19, 0.97) 0%, rgba(14, 16, 19, 0.91) 28%, rgba(14, 16, 19, 0.62) 44%, rgba(14, 16, 19, 0.3) 57%, rgba(14, 16, 19, 0.08) 72%, rgba(14, 16, 19, 0.03) 100%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.08) 0%, transparent 62%, rgba(14, 16, 19, 0.24) 100%);
  }

  .home .hero__media::after {
    background: radial-gradient(circle at 68% 50%, transparent 38%, rgba(14, 16, 19, 0.14) 100%);
    box-shadow: inset 0 0 64px rgba(14, 16, 19, 0.14);
  }

  .home .hero__image {
    inset: 0 auto 0 9%;
    width: 100%;
    max-width: none;
    object-position: 68% 64%;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .home .hero__image {
    inset-inline-start: 16%;
    object-position: 20% 64%;
  }

  .home .hero__title {
    max-width: 620px;
  }

  html[lang^="en"] .home .hero__title,
  html[lang^="en"] .home .hero__title-line--secondary {
    max-width: 660px;
  }

  .home .hero__body,
  .home .hero__subtitle,
  .home .hero__microcopy {
    max-width: 520px;
  }

  .home .hero__media::before {
    background:
      linear-gradient(90deg, rgba(14, 16, 19, 0.98) 0%, rgba(14, 16, 19, 0.92) 30%, rgba(14, 16, 19, 0.66) 48%, rgba(14, 16, 19, 0.34) 62%, rgba(14, 16, 19, 0.1) 82%, rgba(14, 16, 19, 0.04) 100%),
      linear-gradient(180deg, rgba(14, 16, 19, 0.1) 0%, transparent 58%, rgba(14, 16, 19, 0.28) 100%);
  }
}

@supports (animation-timeline: scroll()) {
  @media (min-width: 901px) {
    .home .site-header {
      animation-name: gr-home-header-settle;
      animation-duration: 1ms;
      animation-timing-function: linear;
      animation-fill-mode: both;
      animation-timeline: scroll(root block);
      animation-range: 0 112px;
    }
  }
}
