:root {
  --golf-mint: #4cc9ad;
  --golf-mint-deep: #237f6d;
  --golf-forest: #0d2e26;
  --golf-forest-soft: #193d34;
  --golf-fog: #dff0eb;
  --golf-cream: #f7f4ed;
  --golf-sand: #dfc58a;
  --golf-ink: #202827;
  --golf-line: rgba(13, 46, 38, 0.16);
}

.golfturen-case-page h1,
.golfturen-case-page h2,
.golfturen-case-page h3 { font-weight: 430; }
.golfturen-case-page h1 em,
.golfturen-case-page h2 em { font-weight: 370; }

.golf-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--header-height) + var(--hero-space-top)) 0 var(--hero-space-bottom);
  background:
    radial-gradient(circle at 13% 25%, rgba(76, 201, 173, 0.2), transparent 24rem),
    radial-gradient(circle at 89% 73%, rgba(223, 197, 138, 0.2), transparent 26rem),
    linear-gradient(118deg, var(--golf-cream) 0 63%, var(--golf-fog) 63% 100%);
}
.golf-hero::before {
  position: absolute;
  top: -21rem;
  left: 29%;
  width: 48rem;
  aspect-ratio: 1;
  border: 1px solid rgba(35, 127, 109, 0.1);
  border-radius: 50%;
  box-shadow: 0 0 0 5rem rgba(76, 201, 173, 0.025), 0 0 0 10rem rgba(76, 201, 173, 0.018);
  content: "";
  pointer-events: none;
}
.golf-hero .section-shell { position: relative; z-index: 1; }
.golf-hero-grid {
  display: grid;
  min-height: 45rem;
  align-items: center;
  grid-template-columns: minmax(31rem, 0.92fr) minmax(0, 1.08fr);
  gap: clamp(3rem, 7vw, 8rem);
}
.golf-hero-copy { order: 2; }
.golf-project-tags { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-bottom: 1.5rem; }
.golf-project-tags span {
  padding: 0.62rem 0.95rem;
  border: 1px solid rgba(35, 127, 109, 0.25);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.55);
  color: var(--golf-mint-deep);
  font-size: var(--text-label);
  font-weight: 500;
}
.golf-hero-copy h1 {
  max-width: 13ch;
  margin: 0;
  font-size: var(--type-page-title);
  line-height: 1.04;
  letter-spacing: -0.055em;
}
.golf-hero-copy h1 em { color: var(--golf-mint-deep); }
.golf-hero-copy > p {
  max-width: 45rem;
  margin: 1.5rem 0 0;
  color: var(--slate);
  font-size: var(--text-lead);
  line-height: 1.7;
}
.golf-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.golf-hero-actions .button { border-color: var(--golf-mint-deep); background: var(--golf-mint-deep); color: #fff; }
.golf-hero-actions .button:hover,
.golf-hero-actions .button:focus-visible { border-color: var(--golf-forest); background: var(--golf-forest); color: #fff; }
.golf-hero-actions .button-ghost { border-color: rgba(35, 127, 109, 0.58); background: transparent; color: var(--golf-forest); }
.golf-hero-actions .button-ghost:hover,
.golf-hero-actions .button-ghost:focus-visible { border-color: var(--golf-mint-deep); background: var(--golf-mint-deep); color: #fff; }

.golf-hero-atlas { position: relative; min-height: clamp(38rem, 48vw, 46rem); order: 1; }
.golf-hero-atlas figure {
  position: absolute;
  overflow: hidden;
  margin: 0;
  padding: 0.48rem;
  border: 1px solid rgba(13, 46, 38, 0.12);
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 1.7rem 4rem rgba(13, 46, 38, 0.16);
}
.golf-hero-atlas img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; object-position: top; }
.golf-atlas-main { z-index: 2; top: 3%; left: 4%; width: 64%; height: 83%; border-radius: 1.8rem; transform: rotate(-2deg); }
.golf-atlas-menu { z-index: 4; right: 0; bottom: 8%; width: 62%; aspect-ratio: 1.81; border-radius: 1.45rem; transform: rotate(2.4deg); }
.golf-atlas-destination { z-index: 3; top: 0; right: 3%; width: 34%; height: 56%; border-radius: 1.45rem; transform: rotate(3.5deg); }
.golf-route { position: absolute; z-index: 1; border: 1px dashed rgba(35, 127, 109, 0.38); border-radius: 50%; pointer-events: none; }
.golf-route::after { position: absolute; width: 0.8rem; aspect-ratio: 1; border: 0.22rem solid var(--golf-cream); border-radius: 50%; background: var(--golf-mint); content: ""; }
.golf-route-one { inset: 9% 6% 16% 1%; transform: rotate(-12deg); animation: golf-route-drift 9s ease-in-out infinite alternate; }
.golf-route-one::after { top: 17%; right: -0.4rem; }
.golf-route-two { inset: 23% 14% 2% 17%; transform: rotate(16deg); animation: golf-route-drift 12s ease-in-out infinite alternate-reverse; }
.golf-route-two::after { bottom: 8%; left: 11%; }

.golf-content-ribbon { overflow: hidden; border-block: 1px solid rgba(255, 255, 255, 0.12); background: var(--golf-forest); color: #fff; }
.golf-ribbon-track {
  display: flex;
  width: max-content;
  min-width: 200%;
  padding: 1.2rem 0;
  align-items: center;
  gap: 1.4rem;
  animation: golf-ribbon 34s linear infinite;
  white-space: nowrap;
}
.golf-ribbon-track span { font-size: var(--type-card-title-small); font-weight: 430; }
.golf-ribbon-track i { color: var(--golf-mint); font-size: 1.5rem; font-style: normal; }

.golf-proof { position: relative; overflow: hidden; padding: var(--section-space) 0; background: linear-gradient(138deg, #0a251f, var(--golf-forest-soft)); color: #fff; }
.golf-proof::after {
  position: absolute;
  right: -15rem;
  bottom: -21rem;
  width: 47rem;
  aspect-ratio: 1;
  border: 1px solid rgba(76, 201, 173, 0.18);
  border-radius: 50%;
  box-shadow: 0 0 0 5rem rgba(76, 201, 173, 0.025), 0 0 0 10rem rgba(76, 201, 173, 0.02);
  content: "";
}
.golf-proof-grid { position: relative; z-index: 1; display: grid; align-items: start; grid-template-columns: 0.34fr minmax(0, 1.05fr) minmax(20rem, 0.72fr); gap: clamp(2rem, 5vw, 6rem); }
.golf-proof-index { margin: -0.12em 0 0; color: var(--golf-mint); font-size: clamp(4.2rem, 7vw, 7rem); font-weight: 430; letter-spacing: -0.08em; line-height: 0.8; writing-mode: vertical-rl; transform: rotate(180deg); }
.golf-proof-copy h2 { max-width: 13ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-proof-copy h2 em { color: var(--golf-mint); }
.golf-proof-copy p { max-width: 46rem; margin: 1.5rem 0 0; color: rgba(255,255,255,.7); font-size: var(--text-lead); line-height: 1.7; }
.golf-proof-notes { border-top: 1px solid rgba(255,255,255,.18); }
.golf-proof-notes p { display: flex; margin: 0; padding: 1.35rem 0; flex-direction: column; border-bottom: 1px solid rgba(255,255,255,.18); }
.golf-proof-notes strong { font-size: 1.08rem; font-weight: 500; }
.golf-proof-notes span { margin-top: 0.35rem; color: rgba(255,255,255,.58); font-size: var(--text-support); line-height: 1.55; }

.golf-journey { padding: var(--section-space) 0; background: #f8f6f1; }
.golf-journey-grid { display: grid; align-items: start; grid-template-columns: minmax(20rem, .68fr) minmax(0, 1.32fr); gap: clamp(3rem, 7vw, 8rem); }
.golf-journey-intro { position: sticky; top: calc(var(--header-height) + 2rem); }
.golf-journey-intro h2 { max-width: 12ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-journey-intro h2 em { color: var(--golf-mint-deep); }
.golf-journey-intro > p { margin: 1.4rem 0 0; color: var(--slate); font-size: var(--text-lead); line-height: 1.7; }
.golf-journey-key { display: flex; margin-top: 2rem; flex-direction: column; border-top: 1px solid var(--golf-line); }
.golf-journey-key span { padding: 0.9rem 0; border-bottom: 1px solid var(--golf-line); color: var(--golf-mint-deep); font-family: var(--font-mono); font-size: var(--text-label); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.golf-journey-stops { display: flex; flex-direction: column; gap: clamp(2rem, 5vw, 4rem); }
.golf-stop { overflow: hidden; border: 1px solid var(--golf-line); border-radius: 2rem; background: #fff; box-shadow: 0 1.4rem 3.5rem rgba(13, 46, 38, 0.08); }
.golf-stop-copy { padding: clamp(1.6rem, 3.2vw, 3rem); }
.golf-stop-copy > span { color: var(--golf-mint-deep); font-family: var(--font-mono); font-size: var(--text-label); font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.golf-stop-copy h3 { max-width: 22ch; margin: 0.65rem 0 0; font-size: var(--type-card-title-large); line-height: 1.2; }
.golf-stop-copy p { max-width: 48rem; margin: 0.9rem 0 0; color: var(--slate); font-size: var(--text-body); line-height: 1.7; }
.golf-stop figure { position: relative; overflow: hidden; margin: 0; border-top: 1px solid var(--golf-line); background: var(--golf-fog); }
.golf-stop figure::after { position: absolute; inset: auto 0 0; height: 20%; background: linear-gradient(transparent, rgba(13,46,38,.14)); content: ""; pointer-events: none; }
.golf-stop figure img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.golf-stop:hover figure img { transform: scale(1.018); }
.golf-stop-mobile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, .44fr); }
.golf-stop-mobile .golf-stop-copy { align-self: end; }
.golf-stop-mobile figure { height: 37rem; border-top: 0; border-left: 1px solid var(--golf-line); }
.golf-stop-mobile figure img { object-fit: cover; object-position: top; }
.golf-stop-destination figure { height: clamp(25rem, 38vw, 36rem); }
.golf-stop-hotel figure { height: clamp(27rem, 43vw, 40rem); }

.golf-navigation { overflow: hidden; padding: var(--section-space) 0; background: var(--golf-fog); }
.golf-navigation-heading { display: grid; align-items: end; grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .72fr); gap: clamp(3rem, 8vw, 9rem); }
.golf-navigation-heading h2 { max-width: 13ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-navigation-heading h2 em { color: var(--golf-mint-deep); }
.golf-navigation-heading p { margin: 0; color: var(--slate); font-size: var(--text-lead); line-height: 1.7; }
.golf-menu-board { width: min(94vw, 108rem); margin: var(--content-space) 0 0 auto; padding: 0.75rem 0 0.75rem 0.75rem; border: 1px solid rgba(13,46,38,.16); border-right: 0; border-radius: 2.2rem 0 0 2.2rem; background: rgba(255,255,255,.58); box-shadow: 0 2rem 5rem rgba(13,46,38,.13); }
.golf-menu-board img { width: 100%; height: auto; border-radius: 1.5rem 0 0 1.5rem; }
.golf-menu-board figcaption { display: flex; padding: 1.2rem clamp(1rem, 3vw, 2.5rem) 0.45rem; align-items: center; justify-content: space-between; gap: 2rem; }
.golf-menu-board strong { font-size: 1.08rem; font-weight: 500; }
.golf-menu-board span { color: var(--slate); font-size: var(--text-support); }

.golf-admin { position: relative; overflow: hidden; padding: var(--section-space) 0; background: var(--golf-forest); color: #fff; }
.golf-admin::before { position: absolute; inset: 0; opacity: 0.18; background-image: radial-gradient(circle at center, rgba(76,201,173,.3) 1px, transparent 1.4px); background-size: 2.5rem 2.5rem; content: ""; }
.golf-admin-grid { position: relative; z-index: 1; display: grid; align-items: start; grid-template-columns: minmax(0, .86fr) minmax(32rem, 1.14fr); gap: clamp(3rem, 8vw, 9rem); }
.golf-admin-copy { position: sticky; top: calc(var(--header-height) + 2rem); }
.golf-admin-copy h2 { max-width: 13ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-admin-copy h2 em { color: var(--golf-mint); }
.golf-admin-copy > p { margin: 1.45rem 0 0; color: rgba(255,255,255,.7); font-size: var(--text-lead); line-height: 1.7; }
.golf-admin-principles { margin-top: 2rem; border-top: 1px solid rgba(255,255,255,.17); }
.golf-admin-principles p { display: grid; margin: 0; padding: 1.1rem 0; grid-template-columns: 2.8rem 1fr; align-items: start; gap: .65rem; border-bottom: 1px solid rgba(255,255,255,.17); }
.golf-admin-principles span { color: var(--golf-mint); font-family: var(--font-mono); font-size: var(--text-label); }
.golf-admin-principles strong { font-weight: 430; line-height: 1.5; }
.golf-file-system { display: grid; padding-top: 3rem; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.golf-file-system article { position: relative; min-height: 13rem; padding: 2rem; border: 1px solid rgba(255,255,255,.16); border-radius: 0 1.5rem 1.5rem 1.5rem; background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.045)); box-shadow: 0 1.5rem 3rem rgba(0,0,0,.14); transform: translateY(calc(var(--file-delay) * .65rem)); transition: border-color 220ms ease, transform 220ms ease, background 220ms ease; }
.golf-file-system article::before { position: absolute; top: -1.1rem; left: -1px; width: 45%; height: 1.15rem; border: 1px solid rgba(255,255,255,.16); border-bottom: 0; border-radius: .8rem .8rem 0 0; background: #27483f; content: ""; }
.golf-file-system article:hover { border-color: rgba(76,201,173,.55); background: linear-gradient(145deg, rgba(76,201,173,.17), rgba(255,255,255,.05)); transform: translateY(calc(var(--file-delay) * .65rem - .35rem)); }
.golf-file-system span { color: var(--golf-mint); font-family: var(--font-mono); font-size: var(--text-label); }
.golf-file-system h3 { margin: 1rem 0 0; font-size: var(--type-card-title); line-height: 1.2; }
.golf-file-system p { margin: .65rem 0 0; color: rgba(255,255,255,.6); font-size: var(--text-support); line-height: 1.55; }

.golf-delivery { padding: var(--section-space) 0; background: var(--golf-cream); }
.golf-delivery-heading { display: grid; align-items: end; grid-template-columns: minmax(0, 1.08fr) minmax(20rem, .72fr); gap: clamp(3rem, 8vw, 9rem); }
.golf-delivery-heading h2 { max-width: 13ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-delivery-heading h2 em { color: var(--golf-mint-deep); }
.golf-delivery-heading p { margin: 0; color: var(--slate); font-size: var(--text-lead); line-height: 1.7; }
.golf-delivery-grid { display: grid; margin-top: var(--content-space); grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--golf-line); border-bottom: 1px solid var(--golf-line); }
.golf-delivery-grid article { min-height: 17rem; padding: clamp(1.7rem, 3vw, 3rem); border-left: 1px solid var(--golf-line); }
.golf-delivery-grid article:last-child { border-right: 1px solid var(--golf-line); }
.golf-delivery-grid span { color: var(--golf-mint-deep); font-family: var(--font-mono); font-size: var(--text-label); }
.golf-delivery-grid h3 { margin: 3.5rem 0 0; font-size: var(--type-card-title); line-height: 1.2; }
.golf-delivery-grid p { margin: .8rem 0 0; color: var(--slate); font-size: var(--text-support); line-height: 1.6; }

.golf-outcomes { padding: var(--section-space-compact) 0; background: linear-gradient(130deg, #bde3d9, var(--golf-fog) 55%, #e9dfc7); }
.golf-outcomes-grid { display: grid; align-items: start; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr); gap: clamp(3rem, 8vw, 9rem); }
.golf-outcomes h2 { max-width: 9ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; letter-spacing: -0.045em; }
.golf-outcomes h2 em { color: var(--golf-mint-deep); }
.golf-outcome-list { border-top: 1px solid rgba(13,46,38,.2); }
.golf-outcome-list p { display: grid; margin: 0; padding: 1.5rem 0; grid-template-columns: minmax(14rem, .9fr) minmax(0, 1.1fr); gap: 2rem; border-bottom: 1px solid rgba(13,46,38,.2); }
.golf-outcome-list strong { font-size: 1.08rem; font-weight: 500; line-height: 1.5; }
.golf-outcome-list span { color: var(--slate); line-height: 1.6; }

.golf-next-step { padding: var(--section-space-cta) 0; background: #eef2ed; }
.golf-next-step-grid { display: grid; align-items: start; grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .72fr); gap: clamp(3rem, 8vw, 9rem); }
.golf-next-step h2 { max-width: 13ch; margin: 0; font-size: var(--type-section-title-compact); line-height: 1.08; letter-spacing: -0.045em; }
.golf-next-step h2 em { color: var(--golf-mint-deep); }
.golf-next-step p { max-width: 44rem; margin: 1.35rem 0 1.8rem; color: var(--slate); font-size: var(--text-lead); line-height: 1.7; }
.golf-next-step .button { border-color: var(--golf-forest); background: var(--golf-forest); }
.golf-service-links { display: flex; flex-direction: column; border-top: 1px solid var(--golf-line); }
.golf-service-links a { display: flex; min-height: 5.2rem; padding: 1.1rem 0; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--golf-line); font-size: 1.08rem; font-weight: 500; transition: padding 180ms ease, color 180ms ease; }
.golf-service-links a:hover { padding-left: .7rem; color: var(--golf-mint-deep); }
.golf-service-links i { color: var(--golf-mint-deep); font-style: normal; }
.golf-project-nav { --project-accent: var(--golf-mint); }

@keyframes golf-route-drift {
  from { translate: -.25rem .15rem; rotate: -1deg; }
  to { translate: .45rem -.3rem; rotate: 1.5deg; }
}
@keyframes golf-ribbon { to { transform: translateX(-50%); } }

@media (max-width: 1180px) {
  .golf-hero-grid { grid-template-columns: minmax(27rem, .88fr) minmax(0, 1.12fr); gap: 3rem; }
  .golf-hero-atlas { min-height: 38rem; }
  .golf-proof-grid { grid-template-columns: .24fr minmax(0, 1fr) minmax(18rem, .7fr); gap: 2.5rem; }
  .golf-delivery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .golf-delivery-grid article:nth-child(3), .golf-delivery-grid article:nth-child(4) { border-top: 1px solid var(--golf-line); }
}

@media (max-width: 960px) {
  .golf-hero-grid,
  .golf-proof-grid,
  .golf-journey-grid,
  .golf-navigation-heading,
  .golf-admin-grid,
  .golf-delivery-heading,
  .golf-outcomes-grid,
  .golf-next-step-grid { grid-template-columns: 1fr; }
  .golf-hero-grid { min-height: 0; }
  .golf-hero-copy { order: 1; }
  .golf-hero-atlas { width: min(100%, 46rem); margin-inline: auto; order: 2; }
  .golf-proof-index { font-size: 6rem; writing-mode: initial; transform: none; }
  .golf-proof-copy { margin-top: -7rem; margin-left: 8rem; }
  .golf-proof-notes { margin-left: 8rem; }
  .golf-journey-intro,
  .golf-admin-copy { position: static; }
  .golf-journey-intro { max-width: 48rem; }
  .golf-journey-key { max-width: 32rem; }
  .golf-navigation-heading p,
  .golf-delivery-heading p { max-width: 48rem; }
  .golf-menu-board { width: calc(100% - var(--page-padding)); }
  .golf-file-system { padding-top: 2rem; }
  .golf-outcomes h2 { max-width: 12ch; }
}

@media (max-width: 700px) {
  .golf-hero {
    padding-top: calc(var(--header-height) + 1.5rem);
    background: linear-gradient(160deg, var(--golf-cream) 0 72%, var(--golf-fog) 72% 100%);
  }
  .golf-hero-copy h1 { max-width: 14ch; }
  .golf-hero-atlas { min-height: 29rem; }
  .golf-atlas-main { left: 0; width: 62%; }
  .golf-atlas-destination { right: 0; width: 37%; }
  .golf-atlas-menu { right: 0; bottom: 5%; width: 70%; }
  .golf-proof-grid { gap: 1.5rem; }
  .golf-proof-index { font-size: 4.5rem; }
  .golf-proof-copy { margin-top: -5.5rem; margin-left: 6rem; }
  .golf-proof-notes { margin-left: 0; }
  .golf-stop-mobile { grid-template-columns: 1fr; }
  .golf-stop-mobile figure { height: 31rem; border-top: 1px solid var(--golf-line); border-left: 0; }
  .golf-stop-destination figure,
  .golf-stop-hotel figure { height: 27rem; }
  .golf-menu-board { width: calc(100% - 1rem); padding: .45rem 0 .45rem .45rem; border-radius: 1.5rem 0 0 1.5rem; }
  .golf-menu-board img { border-radius: 1rem 0 0 1rem; }
  .golf-menu-board figcaption { align-items: flex-start; flex-direction: column; gap: .3rem; }
  .golf-file-system { grid-template-columns: 1fr; }
  .golf-file-system article { min-height: 0; transform: none; }
  .golf-file-system article:hover { transform: translateY(-.25rem); }
  .golf-delivery-grid { grid-template-columns: 1fr; }
  .golf-delivery-grid article { min-height: 0; border-right: 1px solid var(--golf-line); border-bottom: 1px solid var(--golf-line); }
  .golf-delivery-grid article + article { border-top: 0; }
  .golf-delivery-grid h3 { margin-top: 2rem; }
  .golf-outcome-list p { grid-template-columns: 1fr; gap: .6rem; }
}

@media (max-width: 480px) {
  .golf-project-tags span { padding: .55rem .75rem; }
  .golf-hero-atlas { min-height: 24rem; }
  .golf-atlas-main { height: 78%; }
  .golf-atlas-menu { width: 74%; }
  .golf-proof-copy { margin: 0; }
  .golf-proof-index { margin-bottom: 0; }
  .golf-stop-mobile figure,
  .golf-stop-destination figure,
  .golf-stop-hotel figure { height: 24rem; }
}

@media (prefers-reduced-motion: reduce) {
  .golf-route,
  .golf-ribbon-track { animation: none; }
  .golf-ribbon-track { flex-wrap: wrap; width: auto; min-width: 0; justify-content: center; white-space: normal; }
  .golf-ribbon-track [aria-hidden="true"] { display: none; }
  .golf-stop figure img,
  .golf-file-system article { transition: none; }
}
