
:root{
    --gn-magenta:#c2185b;
    --gn-magenta-dark:#8f1042;
    --gn-charcoal:#414141;
    --gn-charcoal-soft:#555;
    --gn-cream:#f5f0eb;
    --gn-paper:#fffdfa;
    --gn-grey:#ebe8e5;
    --gn-muted:#6c6865;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:#333;
    background:var(--gn-paper);
    line-height:1.55;
}
a{color:inherit}
.gn-hidden-toggle{position:absolute;opacity:0;pointer-events:none}

/* Navigation */
.gn-topbar{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:12px 6%;
    background:rgba(255,255,255,.90);
    backdrop-filter:blur(10px);
    box-shadow:0 4px 18px rgba(0,0,0,.07);
}
.gn-brand{
    text-decoration:none;
    font-weight:900;
    color:var(--gn-charcoal);
    white-space:nowrap;
}
.gn-brand span{color:var(--gn-magenta)}
.gn-nav ul{
    display:flex;
    gap:18px;
    align-items:center;
    list-style:none;
    margin:0;
    padding:0;
}
.gn-nav a{
    text-decoration:none;
    font-size:.93rem;
    font-weight:700;
    color:#4b4b4b;
}
.gn-nav a:hover{color:var(--gn-magenta)}

/* Hero */
.gn-hero{
    position:relative;
    min-height:108vh;
    background-color:#ece8e4;
    background-image:
        linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.12)),
        url('assets/hero-panorama.png');
    background-repeat:no-repeat;
    background-position:center center;
    background-size:contain;
    overflow:hidden;
}
.gn-info-panel{
    position:absolute;
    z-index:5;
    top:112px;
    left:6%;
    width:min(505px,88vw);
    padding:28px;
    border-radius:24px;
    background:rgba(255,255,255,.88);
    backdrop-filter:blur(9px);
    box-shadow:0 20px 62px rgba(0,0,0,.22);
    transition:transform .42s ease,opacity .32s ease;
}
.gn-logo{
    display:block;
    width:100%;
    max-height:205px;
    object-fit:contain;
    margin:0 auto 12px;
}
.gn-info-panel h1{
    margin:0 0 12px;
    color:var(--gn-charcoal);
    font-size:clamp(2rem,4.3vw,3.45rem);
    line-height:1.05;
}
.gn-info-panel h1 span{color:var(--gn-magenta)}
.gn-info-panel p{margin:0;color:#555}
.gn-quote{
    margin-top:18px;
    padding:14px 16px;
    border-left:4px solid var(--gn-magenta);
    border-radius:12px;
    background:#f0ebe7;
}
.gn-quote strong{color:var(--gn-magenta)}
.gn-button{
    display:inline-block;
    margin-top:20px;
    padding:11px 21px;
    border-radius:999px;
    background:var(--gn-magenta);
    color:#fff;
    font-weight:800;
    text-decoration:none;
}
.gn-button:hover{background:var(--gn-magenta-dark)}
.gn-panel-close{
    position:absolute;
    top:13px;
    right:13px;
    width:32px;
    height:32px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--gn-magenta);
    color:#fff;
    cursor:pointer;
    font-size:1.25rem;
}
.gn-info-tab{
    position:absolute;
    z-index:6;
    top:205px;
    left:0;
    width:30px;
    min-height:96px;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:0 9px 9px 0;
    background:rgba(194,24,91,.80);
    color:#fff;
    cursor:pointer;
    writing-mode:vertical-rl;
    font-size:.72rem;
    font-weight:900;
    transform:translateX(-10px);
    transition:.25s ease;
}
.gn-info-tab:hover{transform:translateX(0);background:var(--gn-magenta-dark)}
#gn-info-toggle:checked ~ .gn-info-panel{
    transform:translateX(calc(-100% - 10vw));
    opacity:0;
    pointer-events:none;
}

/* Sections */
.gn-section{padding:72px 9%}
.gn-section-head{
    max-width:780px;
    margin:0 auto 38px;
    text-align:center;
}
.gn-section-head h2,
.gn-idea-box h2{
    margin:.2rem 0 .55rem;
    color:var(--gn-charcoal);
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.12;
}
.gn-section-head p{margin:0;color:var(--gn-muted)}
.gn-eyebrow{
    color:var(--gn-magenta);
    font-size:.75rem;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

/* Specialties */
.gn-specialties{background:#fff}
.gn-specialty-grid{
    max-width:1150px;
    margin:auto;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}
.gn-specialty-card{
    position:relative;
    min-height:215px;
    padding:24px 22px;
    border-radius:18px;
    background:linear-gradient(145deg,#fff,#f7f3f0);
    border:1px solid #ebe3de;
    box-shadow:0 9px 25px rgba(0,0,0,.06);
}
.gn-specialty-card::after{
    content:"";
    position:absolute;
    left:22px;
    right:22px;
    bottom:18px;
    height:3px;
    border-radius:99px;
    background:linear-gradient(90deg,var(--gn-magenta),transparent);
}
.gn-card-mark{
    color:#b4aaa5;
    font-weight:900;
    font-size:.8rem;
    letter-spacing:.08em;
}
.gn-specialty-card h3{
    margin:.7rem 0 .45rem;
    color:var(--gn-magenta);
    font-size:1.15rem;
}
.gn-specialty-card p{margin:0;color:#5d5956}

/* Tour */
.gn-tour-section{
    background:
        radial-gradient(circle at 85% 20%,rgba(194,24,91,.08),transparent 28%),
        linear-gradient(135deg,#f8f4f0,#ebe5e0);
}
.gn-tour-slot{max-width:1100px;margin:auto}

/* Editable content */
.gn-content-section{background:#fff}
.gn-content-slot{max-width:1080px;margin:auto}

/* Idea */
.gn-idea-section{background:#e7e4e2}
.gn-idea-box{
    max-width:900px;
    margin:auto;
    padding:34px;
    border-radius:22px;
    background:rgba(255,255,255,.72);
    border-left:5px solid var(--gn-magenta);
}
.gn-idea-box p{margin:0;color:#56514e;font-size:1.05rem}
.gn-extra-section{background:#fff}

/* Footer */
.gn-footer{
    background:#383838;
    color:#d7d7d7;
    padding:18px 6%;
    font-size:.86rem;
}
.gn-footer-inner{
    max-width:1250px;
    margin:auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
}
.gn-footer-text,
.gn-footer-links{
    display:flex;
    gap:12px;
    align-items:center;
    flex-wrap:wrap;
}
.gn-footer-links a{text-decoration:none}
.gn-footer-links a:hover{color:#fff}
.gn-staff-entry{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    opacity:.28;
    color:#ddd;
    transition:.2s ease;
}
.gn-staff-entry:hover{
    opacity:1;
    color:var(--gn-magenta);
    transform:translateY(-1px);
}
.gn-staff-entry svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.6;
    stroke-linecap:round;
    stroke-linejoin:round;
}

@media(max-width:980px){
    .gn-specialty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:760px){
    .gn-topbar{
        position:static;
        flex-direction:column;
        gap:8px;
        padding:10px 5%;
    }
    .gn-nav ul{
        flex-wrap:wrap;
        justify-content:center;
        gap:10px 15px;
    }
    .gn-hero{
        min-height:86vh;
        background-size:cover;
        background-position:center;
    }
    .gn-info-panel{
        top:30px;
        left:5%;
        width:90%;
        padding:22px;
    }
    .gn-logo{max-height:165px}
    .gn-section{padding:54px 7%}
    .gn-footer-inner{
        flex-direction:column;
        align-items:flex-start;
    }
}

@media(max-width:560px){
    .gn-specialty-grid{grid-template-columns:1fr}
    .gn-specialty-card{min-height:auto}
    .gn-info-panel h1{font-size:2rem}
}
