/* RAMOS PUBLIC HOMEPAGE – REVIEW CANDIDATE. No backend changes. */
:root{--ramos-sage-soft:rgba(78,127,107,.095);--ramos-ink:#072a3f;--ramos-copper:#ac6639}
html{scroll-padding-top:5.5rem}
.site-header{transition:box-shadow .24s ease,background-color .24s ease}
.site-header.ramos-scrolled{box-shadow:0 7px 28px rgba(21,42,58,.085)}
#main-nav a{border-radius:12px;transition:background-color .2s ease,box-shadow .2s ease,color .2s ease}
#main-nav a:hover,#main-nav a:focus-visible{background:var(--ramos-sage-soft)!important;box-shadow:none!important}
#main-nav a[aria-current=location]{box-shadow:inset 0 -2px 0 rgba(78,127,107,.7)!important}
.site-header a:focus-visible,.site-header button:focus-visible,.site-header select:focus-visible,.ramos-journey button:focus-visible,.ramos-journey a:focus-visible{outline:3px solid #246b59;outline-offset:3px}
.ramos-scroll-progress{position:fixed;top:0;left:0;right:0;height:2px;background:#ac6639;transform:scaleX(0);transform-origin:left;z-index:10000;pointer-events:none}
.hero .hero-photo{transition:filter .6s ease,transform 1.2s ease}
@media(hover:hover){.hero:hover .hero-photo{filter:brightness(1.06)}}
.hero .actions .button,.header-actions .button{transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
@media(hover:hover){.hero .actions .button:hover,.header-actions .button:hover{transform:translateY(-2px)}}
/* Approved Cappy: keep the existing character controller and SVG rig in the DOM for fallback. */
#cappy-image.ramos-cappy-selected{position:relative;display:inline-flex;align-items:center;justify-content:center}
#cappy-image.ramos-cappy-selected .cappy-rig{position:absolute;inset:0;opacity:0;pointer-events:none}
.ramos-cappy-art{width:100%;height:100%;object-fit:contain;object-position:center;display:block;filter:none;animation:ramos-cappy-breathe 5.8s ease-in-out infinite;transform-origin:50% 82%}
.ramos-cappy-art[data-load=error]{display:none}
#cappy-image.ramos-cappy-selected:has(.ramos-cappy-art[data-load=error]) .cappy-rig{opacity:1}
@keyframes ramos-cappy-breathe{0%,100%{transform:translateY(0) rotate(0deg)}45%{transform:translateY(-2px) rotate(-1deg)}70%{transform:translateY(-1px) rotate(.5deg)}}
/* Genuine guided navigation to existing features; no fabricated AI responses. */
.ramos-journey{max-width:1160px;margin:clamp(3rem,7vw,6rem) auto;padding:clamp(1.25rem,3vw,2.8rem);border:1px solid rgba(78,127,107,.18);border-radius:26px;background:linear-gradient(135deg,#fbfaf7 0%,#f5f8f6 100%);color:#072a3f;box-shadow:0 16px 40px rgba(21,42,58,.04)}
.ramos-journey .kicker{color:#4e7f6b;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:700}
.ramos-journey h2{font-size:clamp(1.6rem,3.2vw,2.65rem);line-height:1.15;margin:.5rem 0 1rem;color:#072a3f}
.ramos-journey>p:not(.kicker){max-width:66ch;line-height:1.6}
.ramos-journey-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.8rem}
.ramos-journey-step{background:#fff;border:1px solid #dbe7df;border-radius:18px;padding:1.2rem;display:flex;flex-direction:column;gap:.6rem;min-width:0}
.ramos-journey-step .number{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:#e3eee6;color:#365e4b;font-weight:700}
.ramos-journey-step h3{font-size:1.15rem;color:#072a3f;margin:0}
.ramos-journey-step p{line-height:1.5;margin:0 0 .35rem;color:#3d5060;flex:1}
.ramos-journey-step a{color:#215b4c;font-weight:700;text-decoration:underline;text-underline-offset:4px;align-self:flex-start}
.ramos-journey-note{font-size:.85rem;color:#596976;margin-top:1.2rem}
@media(max-width:760px){.ramos-journey{margin:2.5rem 1rem;padding:1.2rem;border-radius:20px}.ramos-journey-steps{grid-template-columns:1fr}.ramos-journey-step{padding:1rem}.ramos-scroll-progress{height:2px}}
@media(prefers-reduced-motion:reduce){.ramos-cappy-art{animation:none!important}.site-header,#main-nav a,.hero .hero-photo,.hero .actions .button,.header-actions .button{transition:none!important}.hero .actions .button:hover,.header-actions .button:hover{transform:none!important}}
html.ramos-reduce-motion .ramos-cappy-art,body.ramos-reduce-motion .ramos-cappy-art{animation:none!important}

/* Cappy correction: approved transparent ORIGINAL; no sprite crop, no recolouring.
   Only the parent moves. Existing Pause and Reduced Motion controls own the state. */
body.home-entry-reference #cappy-image.ramos-cappy-selected{
  overflow:visible!important;
  animation:ramos-cappy-breathe 6s ease-in-out infinite!important;
  transform-origin:50% 85%;
}
body.home-entry-reference #cappy-image img.ramos-cappy-art{
  position:absolute!important;
  top:0!important;left:50%!important;right:auto!important;bottom:auto!important;
  height:100%!important;width:auto!important;max-width:none!important;
  object-fit:contain!important;object-position:center!important;
  transform:translateX(-50%)!important;
  animation:none!important;filter:none!important;
  pointer-events:none;border-radius:0!important;
}
body.home-entry-reference #cappy[data-paused=true] #cappy-image.ramos-cappy-selected{
  animation-play-state:paused!important;
}
html[data-motion=reduce] body.home-entry-reference #cappy-image.ramos-cappy-selected,
html.ramos-reduce-motion body.home-entry-reference #cappy-image.ramos-cappy-selected{
  animation:none!important;
}
@media(prefers-reduced-motion:reduce){
 body.home-entry-reference #cappy-image.ramos-cappy-selected{animation:none!important}
}
/* Position Pause beside the feet, not underneath the welcome cue. */
body.home-entry-reference #cappy #cappy-pause{
  position:absolute!important;top:auto!important;bottom:-4px!important;
  right:-12px!important;left:auto!important;margin:0!important;
  display:grid;place-items:center;width:28px!important;height:28px!important;
  min-width:28px;min-height:28px;z-index:3;
  background:#fff!important;color:#072a3f!important;
  border:1px solid #dce4e3;border-radius:50%;font-size:14px;
}
/* A viewport-bounded help box at every breakpoint. */
body.home-entry-reference #cappy #cappy-bubble{
  position:fixed!important;inset:auto!important;
  left:var(--ramos-help-left,12px)!important;
  top:var(--ramos-help-top,110px)!important;
  width:min(340px,calc(100vw - 24px))!important;
  max-width:calc(100vw - 24px)!important;
  max-height:var(--ramos-help-max-height,calc(100dvh - 130px))!important;
  overflow-y:auto;overscroll-behavior:contain;transform:none!important;
  z-index:120;
}

/* Approved artwork animation: no limb/eye deformation; independent gesture wrapper. */
body.home-entry-reference #cappy-image .ramos-cappy-action{
  position:absolute;inset:0;display:block;transform-origin:50% 86%;
  pointer-events:none;overflow:visible;
}
body.home-entry-reference #cappy-image.ramos-cappy-selected .cappy-rig{
  visibility:hidden!important;
}
body.home-entry-reference #cappy-image.ramos-cappy-selected[data-motion-state=paused]{
  animation-play-state:paused!important;
}
body.home-entry-reference #cappy-image.ramos-cappy-selected[data-motion-state=reduced]{
  animation:none!important;
}
/* Parent celebration previously moved the entire help control; move only the art. */
body.home-entry-reference #cappy.celebrate{animation:none!important}
/* Increase pause hit area without moving or distorting the character. */
body.home-entry-reference #cappy #cappy-pause{
  width:32px!important;height:32px!important;min-width:32px;min-height:32px;
  bottom:-4px!important;right:-14px!important;
}
body.home-entry-reference #cappy #cappy-pause::before{
  content:"";position:absolute;inset:-6px;
}
/* Override the old dark hover rules only on this public homepage. */
body.home-entry-reference .site-header #main-nav a:hover,
body.home-entry-reference .site-header #main-nav a:focus-visible,
body.home-entry-reference .site-header .popover>summary:hover,
body.home-entry-reference .site-header .popover>summary:focus-visible{
  background:rgba(78,127,107,.095)!important;color:#072a3f!important;
  box-shadow:none!important;border-color:rgba(78,127,107,.2)!important;
}
body.home-entry-reference .site-header #main-nav a:hover svg,
body.home-entry-reference .site-header #main-nav a:focus-visible svg,
body.home-entry-reference .site-header .popover>summary:hover svg{
  color:#4e7f6b!important;stroke:currentColor!important;
}

/* One measured header offset, not two independently added anchor offsets. */
html[data-ramos-landing-enhanced=true]{scroll-padding-top:var(--ramos-header-offset,130px)}
body.home-entry-reference main [id]{scroll-margin-top:0!important}
/* Controls sit below the feet, never over the feathers. Cue and pause are siblings. */
body.home-entry-reference #cappy #cappy-pause{
  top:84px!important;bottom:auto!important;right:0!important;
}
body.home-entry-reference #cappy .cappy-cue{
  top:84px!important;right:44px!important;
}
