/* ============================================
 MONLIS — Geo Hub Page
 Beauty Salon München hub linking to services
 ============================================ */
/* ==========================================
 HERO
 ========================================== */
.geo-hub-hero{
 position:relative;
 width:100%;
 height:80vh;
 min-height:650px;
 max-height:950px;
 overflow:hidden;
}
.geo-hub-hero__bg{
 position:absolute;
 inset:0;
 z-index:1;
}
.geo-hub-hero__img{
 width:100%;
 height:100%;
 object-fit:cover;
}
.geo-hub-hero__overlay{
 position:absolute;
 inset:0;
 background:linear-gradient(
 180deg,
 rgba(0, 0, 0, 0.25) 0%,
 rgba(0, 0, 0, 0.15) 40%,
 rgba(0, 0, 0, 0.45) 100%
 );
 z-index:2;
}
.geo-hub-hero__content{
 position:absolute;
 top:50%;
 left:50%;
 transform:translate(-50%, -50%);
 width:100%;
 max-width:960px;
 padding:0 24px;
 z-index:10;
 display:flex;
 flex-direction:column;
 align-items:center;
 text-align:center;
}
.geo-hub-hero__subtitle{
 font-family:var(--font-secondary);
 font-weight:500;
 font-size:12px;
 letter-spacing:4px;
 text-transform:uppercase;
 color:rgba(255, 255, 255, 0.75);
 margin:0 0 24px;
}
.geo-hub-hero__title{
 font-family:var(--font-secondary);
 font-weight:700;
 font-size:60px;
 line-height:1.15;
 letter-spacing:-1.5px;
 color:#fff;
 margin:0 0 32px;
}
.geo-hub-hero__divider{
 width:80px;
 height:2px;
 background:rgba(255, 255, 255, 0.35);
 margin:0 0 32px;
}
.geo-hub-hero__desc{
 font-family:var(--font-secondary);
 font-weight:400;
 font-size:18px;
 line-height:1.7;
 color:rgba(255, 255, 255, 0.88);
 max-width:700px;
 margin:0 0 48px;
}
.geo-hub-hero__cta{
 display:flex;
 gap:16px;
}
.geo-hub-hero__btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 height:60px;
 padding:0 40px;
 border-radius:9999px;
 font-family:var(--font-secondary);
 font-weight:600;
 font-size:13px;
 letter-spacing:1.5px;
 text-transform:uppercase;
 transition:all 0.3s ease;
 min-width:200px;
}
.geo-hub-hero__btn--primary{
 background:#fff;
 color:#232323;
 box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1);
}
.geo-hub-hero__btn--primary:hover{
 background:rgba(255, 255, 255, 0.92);
 transform:translateY(-2px);
 color:#232323;
}
.geo-hub-hero__btn--secondary{
 background:rgba(255, 255, 255, 0.08);
 color:#fff;
 border:1px solid rgba(255, 255, 255, 0.3);
}
.geo-hub-hero__btn--secondary:hover{
 background:rgba(255, 255, 255, 0.14);
 border-color:rgba(255, 255, 255, 0.5);
 color:#fff;
}
.geo-hub-hero__scroll{
 position:absolute;
 bottom:24px;
 left:50%;
 transform:translateX(-50%);
 display:flex;
 flex-direction:column;
 align-items:center;
 gap:12px;
 z-index:5;
}
@media (max-height:900px){
 .geo-hub-hero__scroll{display:none}
}
.geo-hub-hero__scroll-text{
 font-family:var(--font-secondary);
 font-weight:500;
 font-size:11px;
 letter-spacing:1px;
 text-transform:uppercase;
 color:rgba(255, 255, 255, 0.55);
}
.geo-hub-hero__scroll-line{
 width:1px;
 height:56px;
 background:linear-gradient(to bottom, rgba(255, 255, 255, 0.55), transparent);
}
/* ==========================================
 SERVICES GRID
 ========================================== */
.geo-hub-services{
 padding:120px 0;
 background:var(--color-white, #fff);
}
.geo-hub-services__container{
 max-width:1440px;
 margin:0 auto;
 padding:0 100px;
}
/* Header with decoration */
.geo-hub-services__header{
 text-align:center;
 margin-bottom:72px;
}
.geo-hub-services__header-deco{
 display:flex;
 align-items:center;
 justify-content:center;
 gap:12px;
 margin-bottom:24px;
}
.geo-hub-services__line{
 width:48px;
 height:1px;
 background:rgba(0, 0, 0, 0.15);
}
.geo-hub-services__dot{
 width:6px;
 height:6px;
 border-radius:50%;
 background:#232323;
}
.geo-hub-services__subtitle{
 font-family:var(--font-secondary);
 font-weight:500;
 font-size:13px;
 letter-spacing:3px;
 text-transform:uppercase;
 color:#999;
 margin:0 0 16px;
}
.geo-hub-services__title{
 font-family:var(--font-secondary);
 font-weight:700;
 font-size:46px;
 line-height:1.2;
 letter-spacing:-1px;
 color:var(--color-mine-shaft, #232323);
 margin:0;
}
/* Card grid — 2 top + 3 bottom (or flexible) */
.geo-hub-services__grid{
 display:grid;
 grid-template-columns:repeat(2, 1fr);
 gap:28px;
}
/* Third+ cards:switch to 3-column */
.geo-hub-card:nth-child(n+3){
 /* handled by media query below */
}
@media (min-width:1025px){
 .geo-hub-services__grid{
 display:grid;
 grid-template-columns:repeat(6, 1fr);
 gap:28px;
}
 /* First 2 cards:each spans 3 cols (50%) */
 .geo-hub-card:nth-child(1),
 .geo-hub-card:nth-child(2){
 grid-column:span 3;
}
 /* Cards 3-5:each spans 2 cols (33%) */
 .geo-hub-card:nth-child(n+3){
 grid-column:span 2;
}
}
/* Card */
.geo-hub-card{
 display:block;
 border-radius:16px;
 overflow:hidden;
 background:#fff;
 border:1px solid rgba(0, 0, 0, 0.06);
 transition:all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
 text-decoration:none;
 color:inherit;
}
.geo-hub-card:hover{
 transform:translateY(-8px);
 box-shadow:0 32px 64px rgba(0, 0, 0, 0.12);
 border-color:transparent;
 color:inherit;
}
/* Card image */
.geo-hub-card__img-wrap{
 position:relative;
 width:100%;
 overflow:hidden;
}
/* Featured (top row) cards taller */
.geo-hub-card:nth-child(1) .geo-hub-card__img-wrap,
.geo-hub-card:nth-child(2) .geo-hub-card__img-wrap{
 height:320px;
}
.geo-hub-card:nth-child(n+3) .geo-hub-card__img-wrap{
 height:240px;
}
.geo-hub-card__img{
 width:100%;
 height:100%;
 object-fit:cover;
 transition:transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.geo-hub-card:hover .geo-hub-card__img{
 transform:scale(1.06);
}
.geo-hub-card__img-overlay{
 position:absolute;
 inset:0;
 background:linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.04) 100%);
 pointer-events:none;
}
.geo-hub-card__icon{
 position:absolute;
 top:20px;
 right:20px;
 width:44px;
 height:44px;
 display:flex;
 align-items:center;
 justify-content:center;
 background:rgba(255, 255, 255, 0.95);
 border-radius:50%;
 font-size:20px;
 box-shadow:0 4px 12px rgba(0, 0, 0, 0.1);
 backdrop-filter:blur(8px);
}
/* Card body */
.geo-hub-card__body{
 padding:28px 28px 32px;
 position:relative;
}
.geo-hub-card__num{
 font-family:var(--font-secondary);
 font-weight:700;
 font-size:48px;
 line-height:1;
 color:rgba(0, 0, 0, 0.04);
 position:absolute;
 top:16px;
 right:24px;
 pointer-events:none;
 transition:color 0.3s ease;
}
.geo-hub-card:hover .geo-hub-card__num{
 color:rgba(0, 0, 0, 0.08);
}
.geo-hub-card__title{
 font-family:var(--font-secondary);
 font-weight:700;
 font-size:22px;
 line-height:1.3;
 letter-spacing:-0.3px;
 color:var(--color-mine-shaft, #232323);
 margin:0 0 12px;
}
.geo-hub-card__desc{
 font-family:var(--font-secondary);
 font-weight:400;
 font-size:14px;
 line-height:1.65;
 color:#777;
 margin:0 0 20px;
}
.geo-hub-card__link{
 display:inline-flex;
 align-items:center;
 gap:8px;
 font-family:var(--font-secondary);
 font-weight:600;
 font-size:12px;
 letter-spacing:1.5px;
 text-transform:uppercase;
 color:var(--color-mine-shaft, #232323);
 transition:gap 0.3s ease;
}
.geo-hub-card:hover .geo-hub-card__link{
 gap:14px;
}
.geo-hub-card__link svg{
 transition:transform 0.3s ease;
}
.geo-hub-card:hover .geo-hub-card__link svg{
 transform:translateX(4px);
}
/* ==========================================
 RESPONSIVE — TABLET
 ========================================== */
@media (max-width:1200px){
 .geo-hub-services__container{
 padding:0 48px;
}
 .geo-hub-hero__title{
 font-size:50px;
}
 .geo-hub-services__title{
 font-size:38px;
}
}
@media (max-width:1024px){
 .geo-hub-services__grid{
 grid-template-columns:repeat(2, 1fr);
 gap:20px;
}
 .geo-hub-card:nth-child(1) .geo-hub-card__img-wrap,
 .geo-hub-card:nth-child(2) .geo-hub-card__img-wrap{
 height:260px;
}
 .geo-hub-card:nth-child(n+3) .geo-hub-card__img-wrap{
 height:220px;
}
 /* Last card (5th, odd) — full width centered */
 .geo-hub-card:last-child:nth-child(odd){
 grid-column:1 / -1;
 max-width:50%;
 margin:0 auto;
}
}
/* ==========================================
 RESPONSIVE — MOBILE
 ========================================== */
@media (max-width:768px){
 .geo-hub-hero{
 min-height:550px;
 height:70vh;
}
 .geo-hub-hero__subtitle{
 font-size:10px;
 letter-spacing:2.5px;
}
 .geo-hub-hero__title{
 font-size:36px;
 line-height:1.2;
}
 .geo-hub-hero__desc{
 font-size:15px;
 line-height:1.6;
 margin-bottom:36px;
}
 .geo-hub-hero__cta{
 flex-direction:column;
 width:100%;
 max-width:280px;
}
 .geo-hub-hero__btn{
 width:100%;
 height:52px;
 font-size:12px;
 padding:0 24px;
 min-width:auto;
}
 .geo-hub-hero__scroll{
 display:none;
}
 .geo-hub-services{
 padding:72px 0;
}
 .geo-hub-services__container{
 padding:0 20px;
}
 .geo-hub-services__header{
 margin-bottom:48px;
}
 .geo-hub-services__title{
 font-size:30px;
}
 .geo-hub-services__subtitle{
 font-size:11px;
 letter-spacing:2px;
}
 .geo-hub-services__grid{
 grid-template-columns:1fr;
 gap:20px;
}
 .geo-hub-card:nth-child(1) .geo-hub-card__img-wrap,
 .geo-hub-card:nth-child(2) .geo-hub-card__img-wrap,
 .geo-hub-card:nth-child(n+3) .geo-hub-card__img-wrap{
 height:220px;
}
 .geo-hub-card:last-child:nth-child(odd){
 max-width:100%;
}
 .geo-hub-card__body{
 padding:24px 20px 28px;
}
 .geo-hub-card__title{
 font-size:19px;
}
 .geo-hub-card__num{
 font-size:40px;
 top:12px;
 right:16px;
}
}
@media (max-width:480px){
 .geo-hub-hero__title{
 font-size:28px;
}
 .geo-hub-services__title{
 font-size:26px;
}
}
