/* Hopson design system: components and micro-interactions. Tokens come from theme.json. */
:root{
  --hop-ink:var(--wp--preset--color--ink,#463B3E);
  --hop-paper:var(--wp--preset--color--paper,#FAF6F5);
  --hop-line:var(--wp--preset--color--line,#E6DEDF);
  --hop-blue:var(--wp--preset--color--blueprint,#D42423);
  --hop-clear:var(--wp--preset--color--clear,#148A5B);
  --hop-flag:var(--wp--preset--color--flag,#C9780F);
  --hop-muted:var(--wp--preset--color--muted,#6B5F62);
  --hop-ease:cubic-bezier(.16,1,.3,1);
  --hop-r:20px;
  --hop-header-h:88px;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
::selection{background:var(--hop-blue);color:#fff}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--hop-blue);outline-offset:3px;border-radius:6px}
img{height:auto}

/* Headline accent: <em> inside headings switches to the serif italic */
:where(h1,h2,h3,.hop-display) em{font-family:var(--wp--preset--font-family--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.hop-eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--hop-blue);margin:0}
.hop-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 18%,transparent)}
.hop-lede{font-size:var(--wp--preset--font-size--medium);color:var(--hop-muted);max-width:62ch}
.hop-muted{color:var(--hop-muted)}

/* ---------- Header (floating pill) ---------- */
.hop-header-wrap{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:100;height:0;overflow:visible}
.hop-header{padding-top:12px;transition:transform .5s var(--hop-ease),opacity .3s}
.hop-header-wrap.is-hidden .hop-header{transform:translateY(-130%)}
.hop-header__bar{background:rgba(255,255,255,.8);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border:1px solid rgba(70,59,62,.08);border-radius:999px;padding:8px 8px 8px 20px;box-shadow:0 1px 2px rgba(70,59,62,.04),0 10px 30px rgba(70,59,62,.08);gap:1rem;transition:box-shadow .3s,background .3s}
.hop-header-wrap.is-scrolled .hop-header__bar{background:rgba(255,255,255,.92);box-shadow:0 2px 4px rgba(70,59,62,.05),0 18px 40px rgba(70,59,62,.12)}
.hop-header__cta{gap:.75rem}
.hop-nav .wp-block-navigation-item__content{padding:.5rem .75rem;border-radius:999px;text-decoration:none;color:var(--hop-ink);transition:background .2s}
.hop-nav .wp-block-navigation-item__content:hover{background:rgba(70,59,62,.06)}
.hop-btn-sm .wp-block-button__link{padding:.65rem 1.1rem;font-size:.93rem}
.hop-main{min-height:60vh}
.hop-main > .wp-block-post-content{margin-top:0}
.hop-main > .wp-block-post-content > :first-child:not(.hop-si){padding-top:max(var(--hop-pt,0px),8.5rem)!important}
@media (max-width:781px){
  .hop-header__bar{padding:6px 6px 6px 14px}
  .hop-header__cta .hop-call{display:none}
  .hop-header__cta .wp-block-buttons{display:none}
}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--hop-paper)!important;padding:5rem 1.5rem 2rem}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{font-size:1.6rem;font-weight:600;letter-spacing:-.02em}

/* ---------- Logo ---------- */
.hop-logo{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--hop-ink);line-height:1}
.hop-logo svg{width:34px;height:34px;flex:none}
.hop-logo__name{display:flex;flex-direction:column;gap:2px}
.hop-logo__img{display:block;height:64px;width:auto;max-width:none}
.hop-logo--inverse{display:inline-block;background:#fff;border-radius:14px;padding:8px 14px}
.hop-logo--inverse .hop-logo__img{height:56px}
@media(max-width:781px){.hop-logo__img{height:50px}.hop-logo--inverse .hop-logo__img{height:48px}}
.hop-logo__name b{font-size:1.06rem;font-weight:700;letter-spacing:-.02em}
.hop-logo__name small{font-size:.68rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.hop-logo--inverse{color:#fff}

/* ---------- Buttons & call links ---------- */
.wp-block-button__link{transition:background .25s var(--hop-ease),color .25s,transform .18s var(--hop-ease),box-shadow .25s;will-change:transform}
.wp-block-button__link:active{transform:scale(.97)}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--hop-ink);border:1.5px solid rgba(70,59,62,.18)}
.wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--hop-ink);background:var(--hop-ink);color:#fff}
.hop-arrow .wp-block-button__link::after{content:"→";display:inline-block;margin-left:.5rem;transition:transform .3s var(--hop-ease)}
.hop-arrow .wp-block-button__link:hover::after{transform:translateX(4px)}
.hop-call{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:600;white-space:nowrap;transition:transform .18s var(--hop-ease),background .25s,color .25s}
.hop-call svg{width:1.05em;height:1.05em;flex:none}
.hop-call:active{transform:scale(.97)}
.hop-call--link{color:var(--hop-ink);padding:.55rem .4rem}
.hop-call--link:hover{color:var(--hop-blue)}
.hop-call--button{background:var(--hop-blue);color:#fff;padding:.9rem 1.4rem;border-radius:999px}
.hop-call--button:hover{background:#A91A19;color:#fff}
.hop-call--ghost{border:1.5px solid currentColor;padding:.85rem 1.35rem;border-radius:999px;color:inherit}
.hop-call--ghost:hover{background:#fff;color:var(--hop-ink);border-color:#fff}
.hop-call--big{font-size:clamp(1.6rem,4vw,2.6rem);letter-spacing:-.03em;color:inherit}
.hop-call--big:hover{color:var(--hop-blue)}
.hop-call .hop-ring{position:relative;display:grid;place-items:center}
.hop-call--button .hop-ring::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid rgba(255,255,255,.5);animation:hop-ring 2.4s var(--hop-ease) infinite}
@keyframes hop-ring{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:0}}
.hop-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* ---------- Sections ---------- */
.hop-section{position:relative}
.hop-dark{color:#fff}
.hop-dark :where(h1,h2,h3,h4){color:#fff}
.hop-dark .hop-lede,.hop-dark .hop-muted{color:rgba(255,255,255,.72)}
.hop-dark .hop-eyebrow{color:#FF5A59}
.hop-dark a:not(.wp-block-button__link):not(.hop-call){color:#FFC9C8}
.hop-blueprint{background-image:linear-gradient(rgba(212,36,35,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(212,36,35,.07) 1px,transparent 1px);background-size:32px 32px;background-position:-1px -1px}
.hop-dark.hop-blueprint{background-image:linear-gradient(rgba(255,90,89,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,90,89,.08) 1px,transparent 1px)}
.hop-grain{position:relative;isolation:isolate}
.hop-grain::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- Cards & bento ---------- */
.hop-card{position:relative;background:#fff;border:1px solid var(--hop-line);border-radius:var(--hop-r);padding:clamp(1.25rem,2.5vw,2rem);overflow:hidden;isolation:isolate;transition:transform .45s var(--hop-ease),box-shadow .45s var(--hop-ease),border-color .3s}
.hop-card::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(212,36,35,.10),transparent 45%)}
.hop-card:hover{transform:translateY(-4px);box-shadow:0 2px 4px rgba(70,59,62,.05),0 24px 48px rgba(70,59,62,.10);border-color:rgba(212,36,35,.28)}
.hop-card:hover::before{opacity:1}
.hop-card .wp-block-image,.hop-card figure{margin:0}
.hop-card .wp-block-image img{border-radius:14px;width:100%;object-fit:cover;transition:transform .8s var(--hop-ease)}
.hop-card:hover .wp-block-image img{transform:scale(1.03)}
.hop-card .wp-block-image{overflow:hidden;border-radius:14px}
.hop-card h3{margin-top:1rem}
.hop-card p{color:var(--hop-muted)}
.hop-card a.hop-stretch::after{content:"";position:absolute;inset:0}
.hop-card--ink{background:var(--hop-ink);color:#fff;border-color:transparent}
.hop-card--ink h3,.hop-card--ink p{color:#fff}
.hop-card--ink p{opacity:.78}
.hop-card--blue{background:var(--hop-blue);color:#fff;border-color:transparent}
.hop-card--blue :where(h3,p,a){color:#fff}
.hop-bento{gap:1rem!important}
@media (min-width:960px){.hop-bento .hop-span-2{grid-column:span 2}.hop-bento .hop-tall{grid-row:span 2}}
.hop-link{font-weight:600;text-decoration:none;color:var(--hop-ink)}
.hop-link::after{content:" →";display:inline-block;transition:transform .3s var(--hop-ease)}
.hop-card:hover .hop-link::after,.hop-link:hover::after{transform:translateX(4px)}
.hop-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--wp--preset--color--sky,#FBE3E2);color:var(--hop-blue)}
.hop-icon svg{width:24px;height:24px}

/* ---------- Trust bar ---------- */
.hop-trust{gap:0!important;border-block:1px solid var(--hop-line)}
.hop-trust > *{padding:1.25rem 1.5rem;border-right:1px solid var(--hop-line);margin:0!important;display:flex;gap:.65rem;align-items:center;font-weight:600;font-size:.95rem}
.hop-trust > *:last-child{border-right:0}
.hop-trust > *::before{content:"";flex:none;width:22px;height:22px;border-radius:50%;background:var(--hop-clear) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat}
@media (max-width:781px){.hop-trust > *{border-right:0;border-bottom:1px solid var(--hop-line)}.hop-trust > *:last-child{border-bottom:0}}

/* ---------- Process steps ---------- */
.hop-steps{counter-reset:step;gap:1rem!important}
.hop-steps > .hop-card{counter-increment:step;padding-top:4.25rem}
.hop-steps > .hop-card::after{content:counter(step,decimal-leading-zero);position:absolute;top:1.25rem;left:clamp(1.25rem,2.5vw,2rem);font-family:var(--wp--preset--font-family--serif);font-style:italic;font-size:2.25rem;line-height:1;color:var(--hop-blue)}
.hop-steps > .hop-card h3{margin-top:0}

/* ---------- Marquee ---------- */
.hop-marquee{overflow:hidden;white-space:nowrap;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.hop-marquee__track{display:inline-flex;gap:3rem;padding-right:3rem;animation:hop-marquee 38s linear infinite}
.hop-marquee:hover .hop-marquee__track,.hop-marquee:focus-within .hop-marquee__track{animation-play-state:paused}
.hop-marquee__track span{font-size:clamp(1.75rem,5vw,3.5rem);font-weight:600;letter-spacing:-.03em}
.hop-marquee__track span:nth-child(even){font-family:var(--wp--preset--font-family--serif);font-style:italic;font-weight:400;color:var(--hop-blue)}
@keyframes hop-marquee{to{transform:translateX(-50%)}}

/* ---------- FAQ (core/details) ---------- */
.hop-faq .wp-block-details{border-bottom:1px solid var(--hop-line);padding:0}
.hop-faq .wp-block-details summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.25rem 0;font-weight:600;font-size:1.12rem;letter-spacing:-.01em}
.hop-faq .wp-block-details summary::-webkit-details-marker{display:none}
.hop-faq .wp-block-details summary::after{content:"";flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--hop-line);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1A2B' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/16px no-repeat;transition:transform .4s var(--hop-ease),background-color .3s}
.hop-faq .wp-block-details[open] summary::after{transform:rotate(45deg);background-color:var(--wp--preset--color--sky,#FBE3E2)}
.hop-faq .wp-block-details > :not(summary){color:var(--hop-muted);margin:0 0 1.25rem;max-width:68ch}
.hop-faq .wp-block-details[open] > :not(summary){animation:hop-fade .5s var(--hop-ease)}
@keyframes hop-fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- Checklists ---------- */
.hop-check{list-style:none;padding-left:0}
.hop-check li{position:relative;padding-left:2rem;margin:.6rem 0}
.hop-check li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--hop-clear) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/13px no-repeat}
.hop-x li::before{background:#EDE4E5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23566174' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M7 7l10 10M17 7L7 17'/%3E%3C/svg%3E") center/11px no-repeat}

/* ---------- Example report card ---------- */
.hop-report{background:#fff;border:1px solid var(--hop-line);border-radius:var(--hop-r);box-shadow:0 2px 4px rgba(70,59,62,.05),0 30px 60px rgba(70,59,62,.14);padding:1.25rem;max-width:460px;color:var(--hop-ink)}
.hop-report__head{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--hop-muted);padding-bottom:.75rem;border-bottom:1px solid var(--hop-line)}
.hop-report__row{display:grid;grid-template-columns:56px 1fr auto;gap:.85rem;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--hop-line)}
.hop-report__row:last-child{border-bottom:0}
.hop-report__row img{width:56px;height:56px;border-radius:10px;object-fit:cover}
.hop-report__row b{display:block;font-size:.95rem}
.hop-report__row small{color:var(--hop-muted);font-size:.82rem;line-height:1.35;display:block}
.hop-tag{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.3rem .6rem;white-space:nowrap}
.hop-tag--ok{background:#E2F4EC;color:#0E6B47}
.hop-tag--flag{background:#FBEBD3;color:#8A5208}
.hop-tag--info{background:#FBE3E2;color:#A91A19}

/* ---------- Reveal & split text (only when JS is running) ---------- */
.hop-js .hop-reveal{opacity:0;transform:translateY(16px);transition:opacity .8s var(--hop-ease),transform .8s var(--hop-ease);transition-delay:calc(var(--i,0) * 70ms)}
.hop-js .hop-reveal.is-in{opacity:1;transform:none}
.hop-split .hop-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.hop-split .hop-w > span{display:inline-block}
.hop-js .hop-split .hop-w > span{transform:translateY(105%);transition:transform 1s var(--hop-ease);transition-delay:calc(var(--i,0) * 45ms)}
.hop-js .hop-split.is-in .hop-w > span{transform:none}

/* ---------- Media frames ---------- */
.hop-frame img{border-radius:var(--hop-r);box-shadow:0 30px 60px rgba(70,59,62,.14)}
.hop-frame{position:relative}
.hop-badge{position:absolute;display:flex;gap:.6rem;align-items:center;background:#fff;border-radius:14px;padding:.7rem .9rem;box-shadow:0 18px 40px rgba(70,59,62,.16);font-size:.88rem;font-weight:600;line-height:1.2}
.hop-badge small{display:block;font-weight:500;color:var(--hop-muted)}
.hop-float{animation:hop-float 6s ease-in-out infinite}
@keyframes hop-float{50%{transform:translateY(-8px)}}

/* ---------- Footer ---------- */
.hop-footer a{color:rgba(255,255,255,.82);text-decoration:none}
.hop-footer a:hover{color:#fff;text-decoration:underline}
.hop-footer__h{font-size:.8rem!important;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)!important;font-weight:600}
.hop-footer__list{list-style:none;padding:0;display:grid;gap:.55rem}
.hop-footer__blurb{color:rgba(255,255,255,.72);max-width:38ch}
.hop-footer__rule{opacity:.4;margin-block:var(--wp--preset--spacing--50) var(--wp--preset--spacing--30)!important}
.hop-footer__bottom{color:rgba(255,255,255,.55);font-size:.875rem}
.hop-footer .hop-call--button{margin-top:.5rem}
.hop-info{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.hop-info li{display:flex;gap:.6rem;align-items:flex-start}
.hop-info svg{width:18px;height:18px;flex:none;margin-top:.2em;opacity:.7}

/* ---------- Mobile action bar ---------- */
.hop-mbar{display:none}
@media (max-width:781px){
  .hop-mbar{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:120;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(250,246,245,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid rgba(70,59,62,.08);transition:transform .35s var(--hop-ease)}
  .hop-mbar a{display:flex;justify-content:center;align-items:center;gap:.5rem;padding:.9rem;border-radius:14px;font-weight:700;text-decoration:none}
  .hop-mbar .hop-mbar__call{background:var(--hop-blue);color:#fff}
  .hop-mbar .hop-mbar__book{background:var(--hop-ink);color:#fff}
  .hop-mbar svg{width:18px;height:18px}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .hop-mbar.is-hidden{transform:translateY(110%)}
}

/* ---------- Forms (SureForms) ---------- */
.hop-form-card{background:#fff;border-radius:var(--hop-r);padding:clamp(1.25rem,3vw,2.25rem);border:1px solid var(--hop-line);box-shadow:0 30px 60px rgba(70,59,62,.12);color:var(--hop-ink)}
.hop-form-card :where(input,select,textarea){border-radius:12px!important}
.hop-form-card .srfm-submit-button,.hop-form-card button[type=submit]{border-radius:999px!important;font-weight:700!important;transition:transform .18s var(--hop-ease),background .25s!important}
.hop-form-card .srfm-submit-button:active{transform:scale(.97)}

/* Editor helpers */
.editor-styles-wrapper .hop-header-wrap{position:relative;height:auto}
.editor-styles-wrapper .hop-js .hop-reveal,.editor-styles-wrapper .hop-reveal{opacity:1!important;transform:none!important}
.editor-styles-wrapper .hop-call,.editor-styles-wrapper .hop-mbar a{pointer-events:none}
.hop-placeholder{border:1.5px dashed var(--hop-blue);border-radius:16px;padding:1.5rem;background:#fff;font-family:var(--wp--preset--font-family--sans)}
.hop-placeholder strong{display:block;font-size:1.1rem;margin-bottom:.25rem}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hop-js .hop-reveal,.hop-js .hop-split .hop-w > span{opacity:1;transform:none}
  .hop-marquee__track{animation:none}
}
