:root{--purple:#3b174f;--purple2:#2a103b;--gold:#b88819;--gold2:#d0a23c;--cream:#fbf7ef;--paper:#f6efe3;--ink:#2b2430;--muted:#6b6570;--line:#e4d8c5;--card:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif;line-height:1.55}a{color:inherit}img{max-width:100%;display:block}.gg-header{display:flex;align-items:center;justify-content:space-between;padding:16px 5vw 12px;background:linear-gradient(180deg,#fffdf8,var(--cream));gap:24px;position:sticky;top:0;z-index:10;border-bottom:1px solid rgba(228,216,197,.6)}.gg-logo img{width:min(230px,30vw);height:auto}.gg-nav{display:flex;align-items:center;gap:28px;font-size:16px}.gg-nav a{text-decoration:none;color:#2f2735;font-weight:500;position:relative}.gg-nav a.active{color:var(--gold)}.gg-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--gold)}.nav-subscribe{background:var(--purple);color:#fff!important;border-radius:8px;padding:12px 26px;box-shadow:0 8px 20px rgba(59,23,79,.12)}.mail-icon{font-size:24px;color:var(--purple)!important}.gg-hero{display:grid;grid-template-columns:1fr 1.05fr;gap:28px;align-items:center;min-height:450px;padding:32px 5.5vw 38px;background:radial-gradient(circle at 70% 25%,rgba(208,162,60,.08),transparent 32%),var(--cream)}.gg-hero-copy h1{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:clamp(46px,6vw,86px);line-height:1.02;font-weight:400;margin:0 0 20px;letter-spacing:.01em}.gg-hero-copy h1:after{content:"";display:inline-block;width:.18em;height:.18em;background:var(--gold);border-radius:50%;margin-left:.08em;vertical-align:baseline}.gg-hero-copy p{font-size:clamp(18px,1.8vw,26px);color:#4f4b54;max-width:650px;margin:0 0 30px;line-height:1.45}.gg-hero-actions{display:flex;gap:22px;flex-wrap:wrap;align-items:center}.gg-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:7px;padding:15px 28px;text-decoration:none;font-size:18px;font-weight:700;min-height:56px}.gg-btn-primary{background:var(--purple);color:#fff;box-shadow:0 8px 20px rgba(59,23,79,.14)}.gg-btn-secondary{border:2px solid var(--gold);color:var(--gold);background:transparent}.gg-hero-art{display:grid;place-items:center}.gg-hero-art img{max-height:360px;object-fit:contain;filter:drop-shadow(0 18px 30px rgba(59,23,79,.08))}.gg-how{background:linear-gradient(135deg,var(--purple2),var(--purple));color:#fff;padding:52px 7vw 62px}.gg-how h2{font-family:Georgia,'Times New Roman',serif;font-size:38px;font-weight:400;text-align:center;margin:0 auto 40px;display:flex;align-items:center;justify-content:center;gap:22px}.gg-how h2 span{width:52px;height:2px;background:var(--gold)}.gg-how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1180px;margin:0 auto 42px}.gg-how-grid article{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:start}.gg-how-icon{font-size:40px;color:var(--gold);line-height:1}.gg-how-grid h3{font-family:Georgia,'Times New Roman',serif;font-size:22px;margin:0 0 8px;font-weight:700}.gg-how-grid p{margin:0;color:#eee6f1;font-size:18px;line-height:1.45}.gg-subscribe-bar{max-width:1120px;margin:0 auto;background:#fffaf5;color:var(--purple);border-radius:8px;display:grid;grid-template-columns:260px 1fr 200px;gap:18px;align-items:center;padding:20px 28px;box-shadow:0 22px 60px rgba(0,0,0,.18)}.gg-subscribe-bar strong{font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:400}.gg-subscribe-bar input{height:54px;border:1px solid var(--line);border-radius:8px;padding:0 18px;font-size:17px;background:#fff}.gg-subscribe-bar button{height:54px;border:0;border-radius:8px;background:var(--purple);color:#fff;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:12px}.gg-events,.gg-month,.gg-map-section{padding:64px 5.5vw;background:var(--paper)}.gg-month{background:var(--cream)}.gg-map-section{background:#fffaf5}.gg-section-head{text-align:center;margin-bottom:26px}.gg-section-head p,.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);font-size:12px;font-weight:800;margin:0 0 8px}.gg-section-head h2,.gg-about h2,.gg-report h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(36px,4vw,58px);font-weight:400;color:var(--purple);line-height:1;margin:0}.gg-section-head span{display:block;max-width:700px;margin:12px auto 0;color:var(--muted);font-size:18px}.gg-event-tools,.month-controls{display:flex;gap:14px;justify-content:center;max-width:980px;margin:0 auto 14px}.gg-event-tools input,.gg-event-tools select,.month-controls input{height:48px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 14px;font:inherit;flex:1}.gg-range{max-width:980px;margin:0 auto 18px;background:#fffaf5;border:1px solid var(--line);border-radius:10px;padding:12px 16px;color:var(--muted);font-weight:700}.events-list{max-width:1080px;margin:20px auto 0;display:grid;gap:16px}.event-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 12px 36px rgba(59,23,79,.07)}.event-card h3{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:28px;line-height:1.1;margin:0 0 8px;font-weight:600}.meta{font-weight:700;color:var(--muted);margin:0 0 4px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.tag{background:#f0e4d0;color:#6d481a;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:800}.age-tag{background:#eadff0;color:var(--purple)}.card-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.button,.event-card .button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--purple);border-radius:999px;padding:10px 16px;text-decoration:none;background:#fff;color:var(--purple);font-weight:800;cursor:pointer}.button.primary{background:var(--purple);color:#fff}.button.danger{background:#8a2d2d;color:#fff;border-color:#8a2d2d}.button.small{padding:8px 12px;font-size:13px}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:1120px;margin:24px auto}.cal-head{text-align:center;font-weight:800;color:var(--muted);font-size:13px}.cal-cell{min-height:104px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;padding:10px;display:flex;flex-direction:column;gap:8px}.cal-cell.has-events{cursor:pointer;box-shadow:0 10px 25px rgba(59,23,79,.07)}.cal-cell.empty{background:transparent;border:0}.cal-cell span{font-size:19px;color:var(--purple)}.cal-cell em{font-style:normal;font-size:12px;color:var(--gold);font-weight:800;margin-top:auto}.location-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;max-width:1180px;margin:0 auto}.location-summary{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px;color:var(--purple)}.location-list{display:grid;gap:10px}.location-pill{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px 16px;cursor:pointer;font:inherit;font-weight:800;color:var(--purple)}.location-pill strong{font-size:12px;background:#f0e4d0;border-radius:999px;padding:4px 9px}.location-pill.active{border-color:var(--purple);box-shadow:0 10px 25px rgba(59,23,79,.13)}.location-detail{margin-top:0}.gg-about{padding:70px 5.5vw;text-align:center;background:var(--cream)}.gg-about p{max-width:850px;margin:22px auto 28px;font-size:21px;color:#4f4b54}.gg-report{display:grid;grid-template-columns:minmax(260px,420px) minmax(320px,600px);gap:42px;align-items:start;padding:70px 5.5vw;background:#fffaf5;max-width:1220px;margin:0 auto}.report-copy{padding-top:18px}.form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;display:grid;gap:14px;box-shadow:0 12px 36px rgba(59,23,79,.07)}label{font-weight:800;display:grid;gap:6px}.form input,.form select,.form textarea,.admin-nav input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gg-footer{text-align:center;padding:34px 5vw;background:var(--purple2);color:#fff}.gg-footer a{color:#fff}.notice{max-width:760px;margin:80px auto;padding:30px;background:#fff;border-radius:22px;border:1px solid var(--line);text-align:center}.notice-small{max-width:1100px;margin:0 auto 18px;padding:12px 16px;border-radius:12px;background:#fff;border:1px solid var(--line)}.admin-wrap{max-width:1180px;margin:30px auto;padding:0 20px}.admin-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.admin-nav{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.admin-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:18px;overflow:hidden}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}.badge{display:inline-block;padding:3px 8px;border-radius:999px;background:#eee;font-size:12px;font-weight:800}.badge.warn{background:#fff1c2}.badge.good{background:#d7f5df}.admin-content-form{max-width:900px}.admin-fieldset{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px}.admin-fieldset legend{font-weight:800;color:var(--purple)}
@media(max-width:980px){.gg-header{align-items:flex-start;position:static;padding:14px 22px}.gg-logo img{width:170px}.gg-nav{gap:18px;flex-wrap:wrap;font-size:15px}.nav-subscribe{padding:10px 20px}.mail-icon{display:none}.gg-hero{grid-template-columns:1fr;min-height:auto;padding:26px 28px 38px}.gg-hero-copy h1{font-size:clamp(40px,12vw,60px)}.gg-hero-copy p{font-size:19px}.gg-hero-art img{max-height:240px}.gg-how-grid{grid-template-columns:1fr}.gg-subscribe-bar{grid-template-columns:1fr}.gg-event-tools,.month-controls,.grid-2{display:grid;grid-template-columns:1fr}.location-layout,.gg-report{grid-template-columns:1fr}.month-calendar{grid-template-columns:repeat(2,1fr)}.cal-head{display:none}}
@media(max-width:520px){.gg-header{gap:12px}.gg-logo img{width:145px}.gg-nav{gap:12px}.gg-nav a{font-size:15px}.nav-subscribe{padding:9px 16px}.gg-btn{width:100%;font-size:17px}.gg-hero-actions{gap:12px}.gg-how{padding:44px 24px}.gg-events,.gg-month,.gg-map-section,.gg-about,.gg-report{padding-left:24px;padding-right:24px}.event-card h3{font-size:24px}}

/* v8 */
.gg-header{padding:14px 5.5vw 10px}.gg-logo img{width:min(220px,34vw)}.gg-nav{gap:24px}.nav-subscribe{padding:12px 24px}.gg-hero{min-height:390px;padding:28px 5.5vw 30px}.gg-hero-copy h1{font-size:clamp(42px,5.8vw,78px)}.gg-hero-copy p{font-size:clamp(18px,1.8vw,25px)}.gg-hero-art img{max-height:310px}.gg-how{padding:46px 7vw 56px}.gg-events{padding-top:58px}.gg-view-panel{display:none}.gg-view-panel.active{display:block}.weekday-filter{max-width:1080px;margin:18px auto 26px;display:flex;gap:9px;flex-wrap:wrap;justify-content:center}.weekday-chip{border:1px solid var(--gold);background:#fffaf5;color:var(--gold);border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer;min-width:92px}.weekday-chip.active{background:var(--gold);color:#fff}.weekday-chip .short{display:none}.month-controls{max-width:760px;margin:0 auto 22px;display:flex;gap:12px;justify-content:center;align-items:center}.month-controls input{height:48px;border:1px solid var(--line);border-radius:8px;padding:0 14px;background:#fff;font:inherit}.gg-small-btn{height:48px;border:1px solid var(--purple);border-radius:999px;background:#fff;color:var(--purple);font-weight:800;padding:0 18px;cursor:pointer}.month-calendar{max-width:1180px;margin:20px auto;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cal-head{text-align:center;font-weight:800;color:var(--purple);padding:8px}.cal-cell{min-height:110px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:8px;color:var(--ink)}.cal-cell.has-events{cursor:pointer;box-shadow:0 12px 36px rgba(59,23,79,.07)}.cal-cell.empty{background:transparent;border:0;box-shadow:none}.cal-cell span{font-size:18px;color:var(--purple)}.cal-cell em{font-style:normal;font-size:12px;color:var(--gold);font-weight:800;margin-top:auto}.map-shell{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:stretch}.map-sidebar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 12px 36px rgba(59,23,79,.07);max-height:620px;overflow:auto}.map-sidebar h3{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:30px;margin:0 0 8px}.map-sidebar p{color:var(--muted);margin:0 0 16px}.map-place-list{display:grid;gap:12px}.town-group{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fffaf5}.town-button{width:100%;display:flex;justify-content:space-between;gap:12px;align-items:center;border:0;background:transparent;padding:13px 14px;font:inherit;font-weight:900;color:var(--purple);cursor:pointer;text-align:left}.town-button strong{background:#eadcc7;color:#6d481a;border-radius:999px;padding:3px 8px;font-size:12px}.venue-list{display:none;border-top:1px solid var(--line);padding:8px;background:#fff}.town-group.open .venue-list{display:grid;gap:6px}.venue-button{border:0;background:#fff;color:var(--ink);padding:10px;border-radius:10px;text-align:left;cursor:pointer;font-weight:700;display:flex;justify-content:space-between;gap:10px}.venue-button:hover,.venue-button.active{background:#f1e7d8;color:var(--purple)}.map-area{min-height:620px;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 36px rgba(59,23,79,.07)}#wexfordMap{height:620px;width:100%;background:#e8e0d2}.age-tag{background:#eadff0;color:var(--purple)}@media(max-width:920px){.gg-header{padding:12px 22px}.gg-logo img{width:165px}.gg-nav{gap:14px;flex-direction:row;align-items:center}.gg-nav a{font-size:15px}.nav-subscribe{padding:10px 14px}.map-shell{grid-template-columns:1fr}.map-sidebar{max-height:none}.map-area,#wexfordMap{height:420px;min-height:420px}.month-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}.cal-head{display:none}.weekday-chip{min-width:44px;padding:9px 12px}.weekday-chip .full{display:none}.weekday-chip .short{display:inline}}@media(max-width:520px){.gg-logo img{width:135px}.gg-nav{width:100%;justify-content:space-between}.gg-hero-art img{max-height:220px}}


/* v9 refinements */
.gg-nav .nav-subscribe,.gg-nav .mail-icon{display:none!important}
.gg-header{padding:10px 5.5vw 8px}
.gg-logo img{width:min(185px,28vw)}
.gg-nav{gap:28px}
.gg-hero{position:relative;display:block;min-height:520px;padding:76px 5.5vw 70px;overflow:hidden;background-image:linear-gradient(90deg,rgba(251,247,239,.98) 0%,rgba(251,247,239,.92) 34%,rgba(251,247,239,.58) 62%,rgba(251,247,239,.18) 100%),var(--hero-bg);background-repeat:no-repeat;background-size:cover;background-position:center right}
.gg-hero-copy{max-width:720px;position:relative;z-index:1}
.gg-hero-art{display:none!important}
.gg-hero-copy h1{font-size:clamp(48px,6.2vw,92px)}
.gg-hero-copy p{max-width:620px}
.weekday-filter{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.weekday-chip{min-width:0;width:100%;white-space:nowrap}
.month-calendar{grid-template-columns:repeat(7,minmax(0,1fr))}
.cal-cell.selected{outline:3px solid var(--gold);background:#fff8e7}
@media(max-width:920px){
  .gg-header{padding:8px 22px 10px;gap:10px}
  .gg-logo img{width:135px}
  .gg-nav{width:100%;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;text-align:center}
  .gg-nav a{font-size:16px;padding:8px 2px}
  .gg-nav a.active:after{bottom:1px}
  .gg-hero{min-height:auto;padding:42px 36px 34px;background-image:linear-gradient(180deg,rgba(251,247,239,.98) 0%,rgba(251,247,239,.9) 58%,rgba(251,247,239,.56) 100%),var(--hero-bg);background-position:center bottom;background-size:contain;background-repeat:no-repeat}
  .gg-hero-copy h1{font-size:clamp(46px,12vw,70px)}
  .gg-hero-copy p{font-size:22px}
  .gg-hero-actions{display:grid;grid-template-columns:1fr;gap:14px}
  .weekday-filter{display:grid!important;grid-template-columns:repeat(7,1fr);gap:6px;overflow:visible;margin-left:0;margin-right:0}
  .weekday-chip{width:100%;height:48px;min-width:0;padding:0;border-radius:999px}
  .weekday-chip .full{display:none!important}.weekday-chip .short{display:inline!important}
  .month-controls{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:8px}
  .month-controls input,.gg-small-btn{width:100%;padding-left:8px;padding-right:8px}
  .month-calendar{display:grid;grid-template-columns:repeat(7,1fr)!important;gap:5px}
  .cal-head{display:block!important;font-size:12px;padding:4px;color:var(--gold)}
  .cal-cell{min-height:54px;border-radius:10px;padding:6px;font-size:13px;gap:2px}
  .cal-cell span{font-size:12px;white-space:nowrap;overflow:hidden;line-height:1}
  .cal-cell em{font-size:10px}
  .cal-cell.empty{display:block}
  #monthDayList{margin-top:18px}
}
@media(max-width:520px){
  .gg-header{align-items:flex-start}
  .gg-logo img{width:120px}
  .gg-nav a{font-size:15px}
  .gg-events{padding-left:24px;padding-right:24px}
  .gg-section-head h2{font-size:48px}
  .map-shell{gap:14px}
}


/* v10 location, today and filter refinements */
.tag.location-low{background:#fff1c2;color:#6d481a}
.weekday-chip.past:not(.active){opacity:.42}
.weekday-chip.today{box-shadow:0 0 0 3px rgba(184,136,25,.22)}
.cal-cell.today{border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,136,25,.18)}
.map-weekdays{margin-top:0;margin-bottom:18px}
@media(max-width:920px){
  .weekday-filter{display:flex!important;flex-wrap:nowrap!important;gap:6px;overflow:visible;justify-content:space-between}
  .weekday-chip{flex:1 1 0;min-width:0;width:auto;height:44px;padding:0 2px;font-size:14px}
  .month-calendar{grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:4px}
  .cal-cell{min-height:50px;padding:5px;border-radius:9px}
  .cal-cell span{font-size:11px;max-height:12px}
}
@media(max-width:420px){
  .weekday-chip{height:40px;font-size:13px}
  .cal-cell{min-height:46px;font-size:12px}
}


/* v11 Places and coordinate map fixes */
.places-list{max-width:1220px;margin:24px auto 0;display:grid;gap:28px}.places-group h3{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:34px;margin:0 0 14px}.places-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.place-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 12px 36px rgba(59,23,79,.07)}.place-card h4{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:26px;line-height:1.05;margin:0 0 8px}.place-card p{margin:8px 0}@media(max-width:920px){.gg-nav{grid-template-columns:repeat(5,1fr)!important;gap:2px}.gg-nav a{font-size:14px}.places-grid{grid-template-columns:1fr}}@media(max-width:420px){.gg-nav a{font-size:13px}}

/* v12 Places panel fix */
.places-list{max-width:1220px;margin:24px auto 0;display:grid;gap:28px}
.places-group h3{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:34px;margin:0 0 14px}
.places-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.place-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 12px 36px rgba(59,23,79,.07)}
.place-card h4{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:26px;line-height:1.05;margin:0 0 8px}
.place-card p{margin:8px 0}
@media(max-width:920px){.places-grid{grid-template-columns:1fr}}

/* Centered map marker: Leaflet circleMarker is rendered at the exact lat/lng, avoiding icon-anchor visual drift. */
.leaflet-interactive.gg-map-dot{stroke:#4f1d5a;fill:#d9467f;}

/* v13.4: exact centred purple Leaflet map dots */
.gg-map-dot{stroke:#3b174f;stroke-width:2px;fill:#7b1fa2;fill-opacity:.95;filter:drop-shadow(0 2px 3px rgba(59,23,79,.35));}
.leaflet-interactive.gg-map-dot{cursor:pointer;}
.map-pin-popup small{display:block;margin-top:4px;color:#6b6570;font-weight:700;}


/* Garman purple map pin: exact coordinate is the lower tip of the pin. */
.gg-purple-location-pin-icon{background:transparent;border:0;}
.gg-purple-location-pin{position:relative;display:block;width:30px;height:38px;filter:drop-shadow(0 4px 8px rgba(59,23,79,.28));}
.gg-purple-location-pin:before{content:"";position:absolute;left:4px;top:0;width:22px;height:22px;background:#3b174f;border:2px solid #b88819;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 0 0 2px rgba(255,255,255,.82);}
.gg-purple-location-pin span{position:absolute;left:11px;top:7px;width:8px;height:8px;background:#fff;border-radius:50%;z-index:1;box-shadow:inset 0 0 0 1px rgba(59,23,79,.15);}
.map-pin-popup strong{color:#3b174f;}

/* v14.6 public event submission wizard */
.gg-report-wizard{align-items:start}.gg-report-intro{position:sticky;top:118px}.gg-wizard-progress{display:flex;gap:10px;margin-top:28px;max-width:340px}.gg-wizard-progress span{display:block;height:8px;flex:1;border-radius:999px;background:rgba(59,23,79,.14);overflow:hidden}.gg-wizard-progress span.active{background:linear-gradient(90deg,var(--purple),var(--gold))}.gg-event-wizard{position:relative;overflow:hidden}.gg-wizard-step{display:none;animation:ggStepIn .22s ease-out}.gg-wizard-step.active{display:block}.gg-step-kicker{margin:0 0 8px;color:var(--gold);font-size:13px;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.gg-wizard-step h3{margin:0 0 8px;color:var(--purple);font-family:Georgia,serif;font-size:clamp(30px,4vw,46px);line-height:1.05}.gg-step-help{margin:0 0 22px;color:var(--muted);font-size:17px}.gg-wizard-actions{display:flex;gap:14px;align-items:center;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}.button.secondary{background:#fff;color:var(--purple);border:1px solid var(--purple);box-shadow:none}.gg-wizard-review{display:flex;gap:10px;align-items:flex-start;margin-top:18px;padding:16px 18px;border-radius:18px;background:#fbf3df;border:1px solid var(--line);color:var(--ink)}.gg-wizard-review strong{color:var(--purple)}.gg-wizard-review span{color:var(--muted)}.gg-event-wizard input:invalid,.gg-event-wizard textarea:invalid,.gg-event-wizard select:invalid{box-shadow:none}.gg-event-wizard .gg-field-error{outline:3px solid rgba(184,136,25,.25);border-color:var(--gold)!important}.gg-event-wizard .gg-field-nudge{margin-top:8px;color:#8b2b2b;font-weight:800;font-size:14px}.gg-event-wizard label{position:relative}@keyframes ggStepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:900px){.gg-report-wizard{grid-template-columns:1fr}.gg-report-intro{position:static}.gg-wizard-progress{max-width:none}.gg-wizard-actions{justify-content:stretch}.gg-wizard-actions .button{width:100%;text-align:center}.gg-wizard-step h3{font-size:32px}.gg-step-help{font-size:16px}}

/* v14.7 Event Suggestion Concierge */
.gg-concierge{
  position:relative;
  display:grid;
  grid-template-columns:minmax(260px,0.8fr) minmax(320px,1.2fr);
  gap:48px;
  align-items:start;
  overflow:hidden;
}
.gg-concierge-intro{position:sticky;top:110px;z-index:1;}
.gg-concierge-intro h2{max-width:560px;}
.gg-concierge-card{
  position:relative;
  min-height:560px;
  border:1px solid var(--border,#eadcc7);
  border-radius:32px;
  padding:34px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,249,238,.93));
  box-shadow:0 28px 80px rgba(64,21,79,.13);
  overflow:hidden;
}
.gg-hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;}
.gg-concierge-bg{position:absolute;inset:-120px -80px auto auto;width:520px;height:520px;opacity:.12;pointer-events:none;animation:ggFloatBg 16s ease-in-out infinite alternate;}
.gg-orbit-lines{width:100%;height:100%;fill:none;stroke:#431452;stroke-width:2;}
@keyframes ggFloatBg{from{transform:translate3d(0,0,0) rotate(0deg)}to{transform:translate3d(-28px,18px,0) rotate(8deg)}}
.gg-concierge-progress{display:flex;gap:10px;margin-bottom:26px;position:relative;z-index:2;}
.gg-concierge-progress span{height:8px;flex:1;border-radius:999px;background:#eadcc7;overflow:hidden;}
.gg-concierge-progress span.active{background:linear-gradient(90deg,#431452,#c18b0b);}
.gg-concierge-step{display:none;position:relative;z-index:2;animation:ggStepIn .45s ease both;}
.gg-concierge-step.active{display:block;}
@keyframes ggStepIn{from{opacity:0;transform:translateY(18px) scale(.99)}to{opacity:1;transform:none}}
.gg-concierge-step h3{font-family:Georgia,serif;color:#431452;font-size:clamp(2rem,4vw,3.8rem);line-height:.95;margin:6px 0 10px;}
.gg-concierge-step .gg-step-help{font-size:1.05rem;color:#696171;margin-bottom:24px;}
.gg-concierge-visual{height:180px;margin:-8px 0 8px;display:flex;align-items:center;justify-content:center;position:relative;}
.gg-earth{width:190px;height:190px;overflow:visible;}
.earth-rim,.earth-lat,.earth-long{fill:none;stroke:#431452;stroke-width:4;opacity:.45;}
.earth-lat,.earth-long{stroke-width:2.2;opacity:.28;transform-origin:110px 110px;animation:ggSpinEarth 9s linear infinite;}
.earth-long:nth-of-type(5){animation-duration:12s;}
@keyframes ggSpinEarth{to{transform:rotate(360deg)}}
.gg-ireland-map-img{position:absolute;left:50%;top:50%;width:82px;height:82px;object-fit:contain;transform:translate(-56%,-47%) scale(.82) rotate(-5deg);opacity:.42;filter:drop-shadow(0 8px 16px rgba(67,20,82,.10));transition:opacity .38s ease,transform .5s cubic-bezier(.2,1.25,.32,1),filter .38s ease;z-index:1;}
.gg-map-pin-svg{opacity:0;transform:translateY(-28px) scale(.8);transform-origin:111px 136px;transition:opacity .35s ease,transform .45s cubic-bezier(.2,1.4,.32,1);}
.gg-map-pin-svg path{fill:#431452;stroke:#fff;stroke-width:4;}.gg-map-pin-svg circle{fill:#c18b0b;}
.gg-earth-stage .gg-earth{position:relative;z-index:0;}
.gg-concierge-card.has-place .gg-ireland-map-img{opacity:1;transform:translate(-56%,-47%) scale(1) rotate(0deg);filter:drop-shadow(0 12px 22px rgba(67,20,82,.18));}
.gg-concierge-card.has-place .gg-map-pin-svg{opacity:1;transform:translateY(0) scale(1);}
.gg-sunmoon{position:absolute;right:14%;top:18%;width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:#fff7e7;border:1px solid #eadcc7;box-shadow:0 12px 36px rgba(64,21,79,.11);font-size:38px;transition:transform .3s ease,opacity .3s ease;opacity:.35;}
.gg-sunmoon .moon{display:none}.gg-sunmoon.night{background:#431452;color:#fff;}.gg-sunmoon.night .sun{display:none}.gg-sunmoon.night .moon{display:inline}.gg-sunmoon.day{opacity:1;transform:scale(1.08)}.gg-sunmoon.night{opacity:1;transform:scale(1.08)}
.gg-big-prompt{display:block;margin:0 0 18px;font-weight:800;color:#111427;}
.gg-big-prompt span{display:block;margin-bottom:10px;color:#665f70;font-weight:700;}
.gg-big-prompt textarea,.gg-big-prompt input{width:100%;box-sizing:border-box;border:2px solid #eadcc7;border-radius:22px;background:#fff;padding:22px 24px;font-size:1.22rem;line-height:1.45;color:#111427;outline:none;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;}
.gg-big-prompt textarea:focus,.gg-big-prompt input:focus{border-color:#431452;box-shadow:0 0 0 6px rgba(67,20,82,.1);transform:translateY(-1px);}
.gg-detected-chips{display:flex;flex-wrap:wrap;gap:10px;min-height:42px;margin:10px 0 22px;}
.gg-detected-chips span,.gg-concierge-review span{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:9px 13px;background:#f4ead8;color:#5c3b08;font-weight:800;font-size:.95rem;}
.gg-concierge-next[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.3);}
.gg-concierge-step .button{margin:6px 8px 0 0;}
.gg-spark-stage span{position:absolute;border-radius:50%;background:rgba(193,139,11,.22);animation:ggBubble 4s ease-in-out infinite;}.gg-spark-stage span:nth-child(1){width:120px;height:120px;left:18%;top:18%;}.gg-spark-stage span:nth-child(2){width:70px;height:70px;right:22%;top:28%;animation-delay:.8s}.gg-spark-stage span:nth-child(3){width:48px;height:48px;left:45%;bottom:12%;animation-delay:1.5s}.gg-spark-stage strong{font-size:58px;animation:ggPulse 2.4s ease-in-out infinite;}
@keyframes ggBubble{50%{transform:translateY(-18px) scale(1.08)}}@keyframes ggPulse{50%{transform:scale(1.12);opacity:.75}}
.gg-link-stage .gg-link-orb{width:122px;height:122px;border-radius:50%;display:grid;place-items:center;font-size:54px;background:radial-gradient(circle,#fff,#f4ead8);border:1px solid #eadcc7;box-shadow:0 18px 52px rgba(64,21,79,.14);animation:ggPulse 2.8s ease-in-out infinite;}
.gg-concierge-review{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 18px;min-height:40px;}
.gg-concierge-smallprint{font-size:.95rem;color:#665f70;max-width:560px;margin-top:16px;}
.gg-concierge-card.is-complete{animation:ggSuccessPop .5s ease both;}
@keyframes ggSuccessPop{50%{transform:scale(1.015)}}
@media (max-width:900px){
  .gg-concierge{grid-template-columns:1fr;gap:24px;padding-left:24px;padding-right:24px;}
  .gg-concierge-intro{position:relative;top:auto;}
  .gg-concierge-card{min-height:0;padding:24px 20px;border-radius:28px;}
  .gg-concierge-visual{height:145px;}.gg-earth{width:150px;height:150px}.gg-ireland-map-img{width:66px;height:66px}.gg-sunmoon{right:4%;top:8%;width:58px;height:58px;font-size:30px;}
  .gg-concierge-step h3{font-size:2.35rem;}
  .gg-big-prompt textarea,.gg-big-prompt input{font-size:1.05rem;padding:18px 18px;border-radius:18px;}
}

/* v14.7.3 AI enrichment admin polish */
.notice.danger{border-color:#8a2d2d;background:#fff5f5;color:#5f1717}.notice.warn{border-color:#e6c979;background:#fff9e7;text-align:left}.notice.warn ul{margin:.5rem 0 0 1.25rem}.badge.ok,.badge.good{background:#d7f5df;color:#18502a}.badge.danger{background:#ffd7d7;color:#751d1d}.external-submission-card details{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.external-submission-card summary{cursor:pointer;font-weight:900;color:var(--purple)}.external-submission-card .danger{color:#8a2d2d}.button[disabled]{opacity:.48;cursor:not-allowed;filter:grayscale(.35)}.external-submission-card code,.notice code{background:#f4ead8;border-radius:6px;padding:2px 5px}

/* v14.7.4 admin cleanup: dashboard filters + external suggestions polish */
.admin-grid-dashboard,
.admin-wrap .admin-grid{
  margin:14px 0 18px;
}

.admin-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin:18px 0 12px;
}

.admin-actions .button{
  margin:0;
}

.admin-filter-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  box-shadow:0 12px 36px rgba(59,23,79,.05);
  margin:14px 0 24px;
}

.admin-filter-card h3,
.admin-filter-card strong{
  display:block;
  margin:0 0 10px;
  color:var(--ink);
}

.admin-filter-form{
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(180px,2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(130px,1fr) auto auto;
  gap:10px;
  align-items:end;
}

.admin-filter-form label{
  display:grid;
  gap:4px;
  margin:0;
  font-size:13px;
  font-weight:800;
  color:var(--ink);
}

.admin-filter-form select,
.admin-filter-form input{
  width:100%;
  height:42px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:0 12px;
  font:inherit;
}

.admin-filter-form .button{
  min-height:42px;
  height:42px;
  white-space:nowrap;
}

.external-submission-list{
  display:grid;
  gap:16px;
  margin-top:16px;
}

.external-submission-card{
  padding:22px;
  box-shadow:0 12px 36px rgba(59,23,79,.06);
}

.external-submission-card h2{
  margin-top:0;
  color:var(--ink);
  font-size:clamp(22px,2vw,30px);
  line-height:1.15;
}

.external-submission-card .grid-2{
  margin:18px 0;
  align-items:start;
}

.external-submission-card .grid-2 h3{
  margin:0 0 8px;
  font-size:16px;
  color:var(--ink);
}

.external-submission-card .grid-2 p{
  margin:0;
}

.external-submission-card details{
  border:1px solid var(--line);
  border-radius:14px;
  padding:0;
  background:#fffaf5;
  overflow:hidden;
}

.external-submission-card summary{
  display:flex;
  align-items:center;
  gap:8px;
  padding:13px 16px;
  background:#fffdf8;
  border-bottom:1px solid transparent;
  list-style-position:inside;
}

.external-submission-card details[open] summary{
  border-bottom-color:var(--line);
}

.external-submission-card details .form{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:#fff;
  margin-top:0!important;
}

.external-submission-card form:not(.form){
  margin-top:16px!important;
  display:flex!important;
  gap:10px!important;
  flex-wrap:wrap!important;
  align-items:center;
}

.external-submission-card .button.danger,
.external-submission-card button.button.danger,
.button.danger{
  color:#fff!important;
}

.external-submission-card .button.primary,
.external-submission-card button.button.primary{
  color:#fff!important;
}

.external-submission-card .button[disabled]{
  background:#b6adba!important;
  border-color:#b6adba!important;
  color:#fff!important;
  opacity:.85;
}

.external-submission-card small{
  color:var(--muted);
}

@media(max-width:980px){
  .admin-filter-form{
    grid-template-columns:1fr 1fr;
  }
  .admin-filter-form .button{
    width:100%;
  }
}

@media(max-width:640px){
  .admin-filter-form{
    grid-template-columns:1fr;
  }
  .admin-wrap{
    padding:0 14px;
  }
  .external-submission-card{
    padding:16px;
  }
  .external-submission-card .grid-2{
    grid-template-columns:1fr;
  }
}
/* v14.9 crawler-source admin fields */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.muted{color:var(--muted);font-size:14px;margin-top:0}@media(max-width:760px){.grid-3{grid-template-columns:1fr}}

/* v14.10 newsletter template override */
.newsletter-template-control { border-left: 4px solid var(--gg-purple, #4b1351); }
.inline-admin-form { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
.inline-admin-form label { min-width:240px; margin:0; }
.inline-admin-form select { width:100%; }

/* v14.11 crawler hub */
.crawler-step-card { margin: 18px 0; }
.crawler-step-card code { background: #f7f0f8; padding: 2px 6px; border-radius: 6px; }
.crawler-step-card textarea { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 13px; }

/* v14.12 crawler source manager */
.table-scroll { overflow-x: auto; }
.source-batch-table input[type="text"],
.source-batch-table input:not([type]),
.source-batch-table textarea,
.source-batch-table select { min-width: 180px; }
.source-batch-table td { vertical-align: top; }
.source-batch-table details { margin-top: .4rem; }
.crawler-source-manager .global-source-form { margin-top: 1rem; }


/* v14.27 seasonal Summer Camps view */
.gg-nav a.nav-summer{white-space:nowrap;}
.gg-camps-view .gg-section-head span{max-width:860px;}
.gg-camps-mode{max-width:760px;margin:0 auto 18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.gg-camps-mode button{border:1px solid var(--purple);background:#fff;color:var(--purple);border-radius:999px;padding:11px 18px;font:inherit;font-weight:900;cursor:pointer;box-shadow:0 8px 22px rgba(59,23,79,.06);}
.gg-camps-mode button.active{background:var(--purple);color:#fff;border-color:var(--purple);}
.gg-camps-tools{max-width:1080px;}
.gg-camps-summary{max-width:1080px;margin:0 auto 18px;padding:12px 16px;background:#fffaf5;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-weight:800;text-align:center;}
.gg-camps-summary strong{color:var(--purple);}
.gg-camps-list{max-width:1180px;}
.camp-group{margin:0 auto 30px;}
.camp-group-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:24px 0 12px;border-bottom:2px solid rgba(184,136,25,.28);padding-bottom:10px;}
.camp-group-head p{margin:0;color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:12px;}
.camp-group-head h3{margin:0;font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:clamp(28px,3vw,42px);font-weight:500;}
.camp-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;}
.camp-card{display:flex;flex-direction:column;min-height:100%;}
.camp-card h3{font-size:25px;}
.camp-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.camp-kicker,.camp-source{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;}
.camp-kicker{background:#eadff0;color:var(--purple);}
.camp-source{background:#f4ead8;color:#6d481a;}
.camp-card .card-actions{margin-top:auto;padding-top:12px;}
.gg-camps-submit{max-width:1080px;margin:28px auto 0;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,#fff,#fbf3df);border:1px solid var(--line);border-radius:16px;padding:18px 20px;box-shadow:0 12px 36px rgba(59,23,79,.06);}
.gg-camps-submit strong{font-family:Georgia,'Times New Roman',serif;color:var(--purple);font-size:24px;}
.gg-camps-submit span{color:var(--muted);font-weight:700;flex:1;min-width:220px;}
@media(max-width:980px){.gg-header{gap:14px}.gg-logo img{width:150px}.gg-nav{gap:12px;font-size:14px}.gg-nav a{line-height:1.15}.gg-nav a.nav-summer{max-width:92px;text-align:center}.camp-group-head{align-items:start;flex-direction:column;gap:4px}.gg-camps-tools{flex-direction:column}.gg-camps-tools input,.gg-camps-tools select{width:100%;}}
@media(max-width:560px){.gg-logo img{width:122px}.gg-nav{gap:10px;font-size:13px}.gg-nav a.nav-summer{max-width:78px}.gg-camps-mode button{flex:1;min-width:120px}.camp-group-grid{grid-template-columns:1fr}.gg-camps-submit{align-items:stretch}.gg-camps-submit .button{width:100%;}}

/* v14.28 Summer Camps polish */
.gg-camps-view .gg-section-head span{max-width:900px;}
.gg-camps-summary{font-size:15px;letter-spacing:.01em;background:rgba(255,253,248,.84);}
.camp-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:22px;align-items:stretch;}
.camp-card{height:100%;min-height:430px;display:flex;flex-direction:column;padding:26px 28px;border-radius:18px;background:linear-gradient(180deg,#fff 0%,#fffdf8 100%);box-shadow:0 18px 48px rgba(59,23,79,.08);}
.camp-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.camp-kicker{background:#eadff0;color:var(--purple);}
.camp-price{display:inline-flex;align-items:center;border-radius:999px;padding:7px 12px;background:#f1e2c4;color:#68430e;font-size:12px;font-weight:950;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;}
.camp-card h3{font-size:clamp(24px,2.2vw,30px);line-height:1.04;margin-bottom:12px;min-height:2.08em;}
.camp-desc{margin:0 0 18px;color:#34303a;font-size:16px;line-height:1.52;min-height:98px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;}
.camp-facts{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:9px;}
.camp-facts li{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;align-items:start;border-top:1px solid rgba(228,216,197,.7);padding-top:9px;color:#4c4751;font-size:14px;line-height:1.35;}
.camp-facts li:first-child{border-top:0;padding-top:0;}
.camp-facts strong{color:var(--gold);text-transform:uppercase;font-size:11px;letter-spacing:.12em;line-height:1.6;}
.camp-facts span{font-weight:750;}
.camp-card .card-actions{margin-top:auto;padding-top:10px;}
.camp-card .button.small{font-size:14px;padding:10px 16px;background:var(--purple);color:#fff;border-color:var(--purple);box-shadow:0 9px 22px rgba(59,23,79,.15);}
.camp-card .button.small:hover{transform:translateY(-1px);}
.camp-source{display:none!important;}
.camp-card .tags{display:none!important;}
@media(max-width:980px){.camp-group-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.camp-card{min-height:0}.camp-card h3{min-height:0}.camp-desc{min-height:0;-webkit-line-clamp:5}.camp-facts li{grid-template-columns:64px minmax(0,1fr)}}
@media(max-width:560px){.camp-group-grid{grid-template-columns:1fr}.camp-card{padding:22px}.camp-card-top{align-items:flex-start}.camp-price{white-space:normal;text-align:center}.camp-facts li{grid-template-columns:1fr;gap:2px}.camp-card .button.small{width:100%;}}
