/* ==========================================================================
   Hausarztpraxis Dr. med. Claudia Härtel — Bento Grid Theme
   Stil: Apple-style modular cards · ruhige medizinisch-warme Palette
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Libre+Bodoni:wght@400;500;600;700&family=Public+Sans:wght@300;400;500;600;700&display=swap');

:root{
  /* Farbwelt aus Customizer (mit Fallbacks) — medizinisches, gedämpftes Teal */
  --accent:        var(--hgp-accent, #2C7A70);
  --accent-dark:   #22635A;
  --accent-soft:   #E7F0EE;
  --accent-tint:   #F1F6F4;

  --page-bg:  #F3F5F4;
  --card-bg:  #FFFFFF;
  --fg:       #1C2522;
  --muted:    #5C6B66;
  --line:     rgba(28, 37, 34, .08);

  /* Bento-System */
  --grid-gap:   20px;
  --card-radius: 24px;
  --card-pad:   clamp(1.4rem, 3vw, 2.2rem);
  --shadow-sm:  0 1px 2px rgba(28,37,34,.04), 0 1px 3px rgba(28,37,34,.03);
  --shadow:     0 2px 6px rgba(28,37,34,.05), 0 10px 30px rgba(28,37,34,.06);
  --shadow-lg:  0 8px 24px rgba(28,37,34,.08), 0 24px 60px rgba(28,37,34,.09);

  --maxw: 1200px;
  --ease: cubic-bezier(.22,.61,.36,1);

  --font-head: 'Libre Bodoni', Georgia, 'Times New Roman', serif;
  --font-body: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* --- Reset / Base ------------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  font-weight:400;
  color:var(--fg);
  background:var(--page-bg);
  line-height:1.65;
  font-size:1.0625rem;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent-dark); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--accent); }

h1,h2,h3,h4{ font-family:var(--font-head); font-weight:600; line-height:1.15; color:var(--fg); margin:0 0 .5em; letter-spacing:-.01em; }
h1{ font-size:clamp(2.2rem,5vw,3.5rem); font-weight:700; }
h2{ font-size:clamp(1.7rem,3.4vw,2.5rem); }
h3{ font-size:clamp(1.2rem,2vw,1.5rem); }
p{ margin:0 0 1rem; }

.hgp-container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:clamp(1.1rem,4vw,2rem); }
.hgp-section{ padding-block:clamp(3.5rem,8vw,6rem); }
.hgp-eyebrow{
  display:inline-block; font-family:var(--font-body); font-weight:600; font-size:.8rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-dark);
  background:var(--accent-soft); padding:.35rem .8rem; border-radius:999px; margin-bottom:1rem;
}
.hgp-section__head{ max-width:46rem; margin:0 auto clamp(2rem,4vw,3rem); text-align:center; }
.hgp-section__head p{ color:var(--muted); font-size:1.1rem; }
.hgp-lead{ color:var(--muted); font-size:1.15rem; }

/* Screen-reader only */
.screen-reader-text{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--accent-dark); color:#fff; padding:.7rem 1.1rem; border-radius:0 0 8px 0; z-index:1000; }
.skip-link:focus{ left:0; color:#fff; }

/* --- Buttons ------------------------------------------------------------ */
.hgp-btn{
  display:inline-flex; align-items:center; gap:.5rem; cursor:pointer;
  font-family:var(--font-body); font-weight:600; font-size:1rem; line-height:1;
  padding:.95rem 1.6rem; border-radius:999px; border:1px solid transparent;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
}
.hgp-btn svg{ width:1.1em; height:1.1em; }
.hgp-btn--primary{ background:var(--accent-dark); color:#fff; box-shadow:var(--shadow-sm); }
.hgp-btn--primary:hover{ background:var(--accent); color:#fff; transform:translateY(-2px); box-shadow:var(--shadow); }
.hgp-btn--ghost{ background:#fff; color:var(--accent-dark); border-color:var(--line); }
.hgp-btn--ghost:hover{ border-color:var(--accent); color:var(--accent-dark); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.hgp-btn--light{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.35); backdrop-filter:blur(6px); }
.hgp-btn--light:hover{ background:rgba(255,255,255,.28); color:#fff; transform:translateY(-2px); }

/* --- Header / Navbar ---------------------------------------------------- */
.hgp-header{
  position:sticky; top:0; z-index:100;
  background:rgba(243,245,244,.82); backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.hgp-nav{ display:flex; align-items:center; justify-content:space-between; gap:2rem; min-height:76px; }
.hgp-brand{ display:flex; align-items:center; gap:.7rem; font-family:var(--font-head); font-weight:700; font-size:1.15rem; color:var(--fg); line-height:1.1; }
.hgp-brand:hover{ color:var(--fg); }
.hgp-brand__mark{ width:42px; height:42px; flex:0 0 42px; border-radius:12px; background:var(--accent-dark); display:grid; place-items:center; color:#fff; box-shadow:var(--shadow-sm); }
.hgp-brand__mark svg{ width:22px; height:22px; }
.hgp-brand small{ display:block; font-family:var(--font-body); font-weight:500; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }

.hgp-menu{ display:flex; align-items:center; gap:.35rem; list-style:none; margin:0; padding:0; }
.hgp-menu a{ display:block; padding:.55rem .9rem; border-radius:10px; font-weight:500; color:var(--fg); font-size:.98rem; transition:background .2s var(--ease), color .2s var(--ease); }
.hgp-menu a:hover, .hgp-menu .current-menu-item > a{ background:var(--accent-soft); color:var(--accent-dark); }
.hgp-nav__cta{ display:flex; align-items:center; gap:.6rem; }
.hgp-nav__phone{ display:inline-flex; align-items:center; gap:.45rem; font-weight:600; color:var(--fg); white-space:nowrap; }
.hgp-nav__phone svg{ width:1.05em; height:1.05em; color:var(--accent-dark); }

.hgp-burger{ display:none; width:46px; height:46px; border:1px solid var(--line); background:#fff; border-radius:12px; cursor:pointer; padding:0; place-items:center; }
.hgp-burger svg{ width:24px; height:24px; color:var(--fg); }

/* Mobile drawer */
.hgp-drawer{ position:fixed; inset:0; z-index:200; visibility:hidden; opacity:0; transition:opacity .25s var(--ease), visibility .25s; }
.hgp-drawer.is-open{ visibility:visible; opacity:1; }
.hgp-drawer__scrim{ position:absolute; inset:0; background:rgba(20,28,25,.42); backdrop-filter:blur(2px); }
.hgp-drawer__panel{
  position:absolute; top:0; right:0; height:100%; width:min(86vw,360px);
  background:var(--page-bg); box-shadow:var(--shadow-lg); padding:1.4rem 1.3rem 2rem;
  transform:translateX(100%); transition:transform .3s var(--ease); display:flex; flex-direction:column; gap:.3rem; overflow-y:auto;
}
.hgp-drawer.is-open .hgp-drawer__panel{ transform:none; }
.hgp-drawer__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
.hgp-drawer__close{ width:44px; height:44px; border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; display:grid; place-items:center; }
.hgp-drawer__close svg{ width:22px; height:22px; }
.hgp-drawer nav ul{ list-style:none; margin:0; padding:0; }
.hgp-drawer nav a{ display:block; padding:.85rem .7rem; border-radius:12px; font-weight:600; font-size:1.05rem; color:var(--fg); border-bottom:1px solid var(--line); }
.hgp-drawer nav a:hover{ background:var(--accent-soft); color:var(--accent-dark); }
.hgp-drawer .hgp-btn{ margin-top:1.2rem; justify-content:center; }

@media (max-width:900px){
  .hgp-menu, .hgp-nav__cta .hgp-nav__phone, .hgp-nav__cta .hgp-btn{ display:none; }
  .hgp-burger{ display:grid; }
}

/* --- Bento Grid --------------------------------------------------------- */
.hgp-bento{
  display:grid; gap:var(--grid-gap);
  grid-template-columns:repeat(12,1fr);
  grid-auto-rows:minmax(10px,auto);
}
.hgp-card{
  background:var(--card-bg); border-radius:var(--card-radius); padding:var(--card-pad);
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition:transform .28s var(--ease), box-shadow .28s var(--ease);
  position:relative; overflow:hidden;
}
.hgp-card--hover:hover{ transform:translateY(-4px) scale(1.02); box-shadow:var(--shadow-lg); }
.hgp-card__icon{ width:52px; height:52px; border-radius:14px; background:var(--accent-soft); color:var(--accent-dark); display:grid; place-items:center; margin-bottom:1.1rem; }
.hgp-card__icon svg{ width:26px; height:26px; }
.hgp-card h3{ margin-bottom:.4rem; }
.hgp-card p{ color:var(--muted); margin:0; }
.hgp-card__link{ display:inline-flex; align-items:center; gap:.35rem; margin-top:1rem; font-weight:600; color:var(--accent-dark); }
.hgp-card__link svg{ width:1em; height:1em; transition:transform .2s var(--ease); }
.hgp-card--hover:hover .hgp-card__link svg{ transform:translateX(4px); }

/* span helpers (Desktop) */
.col-3{ grid-column:span 3; } .col-4{ grid-column:span 4; } .col-5{ grid-column:span 5; }
.col-6{ grid-column:span 6; } .col-7{ grid-column:span 7; } .col-8{ grid-column:span 8; } .col-12{ grid-column:span 12; }
.row-2{ grid-row:span 2; }

/* --- Hero (Bento) ------------------------------------------------------- */
.hgp-hero{ padding-block:clamp(2rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.hgp-hero__grid{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(12,1fr); }
.hgp-hero__main{
  grid-column:span 7; background:var(--card-bg); border-radius:var(--card-radius);
  padding:clamp(1.8rem,4vw,3.2rem); border:1px solid var(--line); box-shadow:var(--shadow);
  display:flex; flex-direction:column; justify-content:center;
}
.hgp-hero__main h1{ margin-bottom:1rem; }
.hgp-hero__main .hgp-lead{ margin-bottom:1.8rem; max-width:34rem; }
.hgp-hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; }
.hgp-hero__side{ grid-column:span 5; display:grid; gap:var(--grid-gap); grid-template-rows:1.5fr 1fr; }
.hgp-hero__photo{ border-radius:var(--card-radius); overflow:hidden; box-shadow:var(--shadow); position:relative; min-height:220px; border:1px solid var(--line); }
.hgp-hero__photo img{ width:100%; height:100%; object-fit:cover; }
.hgp-hero__facts{ display:grid; gap:var(--grid-gap); grid-template-columns:1fr 1fr; }
.hgp-fact{ background:var(--card-bg); border:1px solid var(--line); border-radius:20px; padding:1.1rem 1.2rem; box-shadow:var(--shadow-sm); }
.hgp-fact strong{ display:block; font-family:var(--font-head); font-size:1.6rem; color:var(--accent-dark); line-height:1; }
.hgp-fact span{ font-size:.85rem; color:var(--muted); }
.hgp-hero__trust{ display:flex; flex-wrap:wrap; gap:1.2rem; margin-top:1.6rem; padding-top:1.4rem; border-top:1px solid var(--line); }
.hgp-hero__trust li{ list-style:none; display:flex; align-items:center; gap:.5rem; color:var(--muted); font-size:.92rem; font-weight:500; }
.hgp-hero__trust svg{ width:1.15em; height:1.15em; color:var(--accent-dark); flex:0 0 auto; }
.hgp-hero ul{ padding:0; margin:0; }

@media (max-width:860px){
  .hgp-hero__main{ grid-column:1 / -1; }
  .hgp-hero__side{ grid-column:1 / -1; grid-template-rows:auto; }
}

/* --- Slider (CPT slide) ------------------------------------------------- */
.hgp-slider{ position:relative; border-radius:var(--card-radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); background:#0d1a17; }
.hgp-slides{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; -ms-overflow-style:none; scrollbar-width:none; }
.hgp-slides::-webkit-scrollbar{ display:none; }
.hgp-slide{ position:relative; flex:0 0 100%; scroll-snap-align:center; min-height:clamp(360px,52vw,520px); }
.hgp-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hgp-slide__overlay{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(15,26,23,.82) 0%, rgba(15,26,23,.55) 45%, rgba(15,26,23,.12) 100%); }
.hgp-slide__inner{ position:relative; z-index:2; max-width:34rem; color:#fff; padding:clamp(1.8rem,5vw,3.5rem); height:100%; display:flex; flex-direction:column; justify-content:center; }
.hgp-slide__inner h3{ color:#fff; font-size:clamp(1.6rem,3.5vw,2.4rem); margin-bottom:.7rem; }
.hgp-slide__inner p{ color:rgba(255,255,255,.9); font-size:1.1rem; margin-bottom:1.3rem; }
.hgp-slider__dots{ position:absolute; bottom:1.1rem; left:50%; transform:translateX(-50%); z-index:3; display:flex; gap:.5rem; }
.hgp-slider__dots button{ width:10px; height:10px; padding:0; border-radius:999px; border:0; background:rgba(255,255,255,.5); cursor:pointer; transition:width .25s var(--ease), background .25s; }
.hgp-slider__dots button.is-active{ width:28px; background:#fff; }
.hgp-slider__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:46px; height:46px; border-radius:999px; border:0; background:rgba(255,255,255,.9); color:var(--fg); cursor:pointer; display:grid; place-items:center; box-shadow:var(--shadow); transition:background .2s; }
.hgp-slider__nav:hover{ background:#fff; }
.hgp-slider__nav svg{ width:22px; height:22px; }
.hgp-slider__nav--prev{ left:1rem; } .hgp-slider__nav--next{ right:1rem; }
@media (max-width:640px){ .hgp-slider__nav{ display:none; } }

/* --- About (Bento split) ------------------------------------------------ */
.hgp-about__grid{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(12,1fr); align-items:stretch; }
.hgp-about__media{ grid-column:span 5; border-radius:var(--card-radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); min-height:380px; }
.hgp-about__media img{ width:100%; height:100%; object-fit:cover; }
.hgp-about__body{ grid-column:span 7; background:var(--card-bg); border:1px solid var(--line); border-radius:var(--card-radius); padding:var(--card-pad); box-shadow:var(--shadow-sm); }
.hgp-about__body ul{ list-style:none; margin:1.3rem 0 0; padding:0; display:grid; gap:.7rem; }
.hgp-about__body li{ display:flex; gap:.7rem; align-items:flex-start; color:var(--fg); }
.hgp-about__body li svg{ width:1.3em; height:1.3em; color:var(--accent-dark); flex:0 0 auto; margin-top:.15rem; }
@media (max-width:860px){ .hgp-about__media,.hgp-about__body{ grid-column:1 / -1; } .hgp-about__media{ min-height:300px; } }

/* --- Services bento ----------------------------------------------------- */
.hgp-services .hgp-bento .hgp-card:nth-child(1){ grid-column:span 6; }
.hgp-services .hgp-bento .hgp-card:nth-child(2){ grid-column:span 3; }
.hgp-services .hgp-bento .hgp-card:nth-child(3){ grid-column:span 3; }
.hgp-services .hgp-bento .hgp-card:nth-child(4){ grid-column:span 4; }
.hgp-services .hgp-bento .hgp-card:nth-child(5){ grid-column:span 4; }
.hgp-services .hgp-bento .hgp-card:nth-child(6){ grid-column:span 4; }
.hgp-services .hgp-bento .hgp-card:nth-child(n+7){ grid-column:span 4; }
.hgp-card--feature{ background:linear-gradient(135deg,var(--accent-dark),var(--accent)); color:#fff; }
.hgp-card--feature h3, .hgp-card--feature p{ color:#fff; }
.hgp-card--feature p{ color:rgba(255,255,255,.9); }
.hgp-card--feature .hgp-card__icon{ background:rgba(255,255,255,.18); color:#fff; }
.hgp-card--feature .hgp-card__link{ color:#fff; }

/* --- Hours / Info bento ------------------------------------------------- */
.hgp-hours{ display:grid; gap:.1rem; margin-top:.4rem; }
.hgp-hours__row{ display:flex; justify-content:space-between; gap:1rem; padding:.6rem 0; border-bottom:1px dashed var(--line); font-size:.98rem; }
.hgp-hours__row:last-child{ border-bottom:0; }
.hgp-hours__row span:first-child{ color:var(--muted); font-weight:500; }
.hgp-hours__row span:last-child{ font-weight:600; }
.hgp-hours__row--closed span:last-child{ color:var(--muted); font-weight:500; }

.hgp-contactcard{ background:linear-gradient(135deg,var(--accent-dark),var(--accent)); color:#fff; }
.hgp-contactcard h3{ color:#fff; }
.hgp-contactcard a{ color:#fff; }
.hgp-contactcard ul{ list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:.9rem; }
.hgp-contactcard li{ display:flex; gap:.7rem; align-items:flex-start; }
.hgp-contactcard li svg{ width:1.3em; height:1.3em; flex:0 0 auto; margin-top:.2rem; opacity:.9; }
.hgp-contactcard small{ display:block; opacity:.8; font-size:.82rem; }

/* --- Contact section ---------------------------------------------------- */
.hgp-contact__grid{ display:grid; gap:var(--grid-gap); grid-template-columns:repeat(12,1fr); }
.hgp-contact__form{ grid-column:span 7; background:var(--card-bg); border:1px solid var(--line); border-radius:var(--card-radius); padding:var(--card-pad); box-shadow:var(--shadow-sm); }
.hgp-contact__aside{ grid-column:span 5; display:grid; gap:var(--grid-gap); align-content:start; }
@media (max-width:860px){ .hgp-contact__form,.hgp-contact__aside{ grid-column:1 / -1; } }

/* Contact form 7 basic styling */
.wpcf7 label{ display:block; font-weight:600; margin-bottom:.3rem; font-size:.95rem; }
.wpcf7 input:not([type=submit]), .wpcf7 textarea, .wpcf7 select{
  width:100%; padding:.8rem .9rem; border:1px solid var(--line); border-radius:12px; font:inherit; background:#fff; color:var(--fg); margin-bottom:1rem; transition:border-color .2s, box-shadow .2s;
}
.wpcf7 input:focus, .wpcf7 textarea:focus{ outline:none; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.wpcf7 input[type=submit]{ background:var(--accent-dark); color:#fff; border:0; padding:.95rem 1.8rem; border-radius:999px; font-weight:600; cursor:pointer; transition:background .2s, transform .2s; }
.wpcf7 input[type=submit]:hover{ background:var(--accent); transform:translateY(-2px); }

/* --- Map ---------------------------------------------------------------- */
.hgp-map{ border-radius:var(--card-radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.hgp-map iframe{ display:block; width:100%; height:100%; min-height:240px; border:0; filter:grayscale(.15); }

/* --- Footer ------------------------------------------------------------- */
.hgp-footer{ background:#101d1a; color:rgba(255,255,255,.72); padding-block:clamp(3rem,6vw,4.5rem) 2rem; margin-top:clamp(3rem,7vw,5rem); }
.hgp-footer__grid{ display:grid; gap:2rem; grid-template-columns:1.5fr 1fr 1fr 1.2fr; }
.hgp-footer h4{ color:#fff; font-family:var(--font-body); font-weight:600; font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; margin-bottom:1rem; }
.hgp-footer a{ color:rgba(255,255,255,.72); }
.hgp-footer a:hover{ color:#fff; }
.hgp-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.55rem; }
.hgp-footer__brand{ display:flex; align-items:center; gap:.7rem; color:#fff; font-family:var(--font-head); font-weight:700; font-size:1.15rem; margin-bottom:.9rem; }
.hgp-footer__brand .hgp-brand__mark{ background:var(--accent); }
.hgp-footer__contact li{ display:flex; gap:.6rem; align-items:flex-start; font-size:.95rem; }
.hgp-footer__contact svg{ width:1.15em; height:1.15em; flex:0 0 auto; margin-top:.2rem; color:var(--accent); }
.hgp-footer__bottom{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.12); display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; font-size:.85rem; }
.hgp-footer__bottom nav{ display:flex; flex-wrap:wrap; gap:1.2rem; }
@media (max-width:860px){ .hgp-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .hgp-footer__grid{ grid-template-columns:1fr; } }

/* --- Page (Unterseiten) ------------------------------------------------- */
.hgp-page-hero{ padding-block:clamp(2.6rem,6vw,4.5rem); text-align:center; }
.hgp-page-hero .hgp-container{ max-width:52rem; }
.hgp-page-hero p{ color:var(--muted); font-size:1.15rem; }
.hgp-breadcrumb{ font-size:.85rem; color:var(--muted); margin-bottom:1rem; }
.hgp-breadcrumb a{ color:var(--muted); } .hgp-breadcrumb a:hover{ color:var(--accent-dark); }
.hgp-article{ background:var(--card-bg); border:1px solid var(--line); border-radius:var(--card-radius); padding:clamp(1.6rem,4vw,3.2rem); box-shadow:var(--shadow-sm); max-width:820px; margin:0 auto; }
.hgp-article > *{ max-width:70ch; }
.hgp-article img{ border-radius:16px; margin-block:1.4rem; }
.hgp-article h2{ margin-top:2rem; }
.hgp-article h3{ margin-top:1.6rem; }
.hgp-article ul, .hgp-article ol{ padding-left:1.2rem; }
.hgp-article li{ margin-bottom:.5rem; }
.hgp-article .wp-block-columns{ display:flex; gap:1.6rem; flex-wrap:wrap; }
.hgp-article .wp-block-column{ flex:1 1 240px; }
.hgp-article .wp-block-group.has-background{ padding:clamp(1.2rem,3vw,2rem); border-radius:18px; }
.hgp-article .wp-block-separator{ border:0; border-top:1px solid var(--line); margin-block:2rem; }
.hgp-callout{ background:var(--accent-tint); border:1px solid var(--accent-soft); border-radius:18px; padding:1.4rem 1.6rem; }

/* --- Reveal animation --------------------------------------------------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-visible{ opacity:1; transform:none; }

/* --- Responsive bento reflow ------------------------------------------- */
@media (max-width:960px){
  .hgp-bento{ grid-template-columns:repeat(6,1fr); }
  .col-3{ grid-column:span 3; } .col-4,.col-5{ grid-column:span 3; }
  .col-6,.col-7,.col-8{ grid-column:span 6; }
  .hgp-services .hgp-bento .hgp-card{ grid-column:span 3 !important; }
  .hgp-services .hgp-bento .hgp-card:nth-child(1){ grid-column:span 6 !important; }
}
@media (max-width:640px){
  :root{ --grid-gap:16px; }
  .hgp-bento{ grid-template-columns:1fr; }
  .hgp-bento .hgp-card{ grid-column:1 / -1 !important; }
  .hgp-hero__facts{ grid-template-columns:1fr 1fr; }
  .hgp-nav{ min-height:66px; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}

:focus-visible{ outline:3px solid var(--accent); outline-offset:2px; border-radius:4px; }
