:root{
    --navy:#002b5c;
    --navy-dark:#001d3d;
    --green:#2f7d32;
    --green-dark:#246227;
    --green-soft:#edf6ed;
    --gold:#c8a44d;
    --ink:#17324d;
    --muted:#657382;
    --line:#dce5df;
    --surface:#ffffff;
    --page:#f3f6f2;
    --shadow:0 18px 50px rgba(0,43,92,.10);
}

*{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{
    min-height:100vh;
    background:
        radial-gradient(circle at top right, rgba(47,125,50,.10), transparent 32rem),
        linear-gradient(180deg,#f8faf7 0%,var(--page) 100%);
    font-family:Arial,Helvetica,sans-serif;
    color:var(--ink);
}

button,input,select,textarea{font:inherit}
button{touch-action:manipulation}

.container{max-width:1440px;margin:auto;padding:28px 34px 60px}

.brandBar{
    display:flex;
    justify-content:center;
    align-items:center;

    margin-bottom:28px;
    padding:14px 18px;

    background:rgba(255,255,255,.82);
    border:1px solid rgba(0,43,92,.10);
    border-radius:16px;

    backdrop-filter:blur(10px);
    box-shadow:0 8px 28px rgba(0,43,92,.06);
}

.pscLogo{
    height:84px;
    width:auto;
    display:block;
}

.hero{
    position:relative;
    overflow:hidden;
    text-align:center;
    margin:0 auto 34px;
    padding:70px 36px 66px;
    border-radius:28px;
    background:
        linear-gradient(135deg,rgba(0,43,92,.98),rgba(0,43,92,.88)),
        linear-gradient(135deg,var(--navy),var(--green));
    box-shadow:var(--shadow);
}

.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.hero::before{width:380px;height:380px;right:-140px;top:-180px;background:rgba(47,125,50,.28)}
.hero::after{width:260px;height:260px;left:-100px;bottom:-150px;background:rgba(255,255,255,.06)}

.hero>*{position:relative;z-index:1}
.hero .eyebrow{display:inline-block;margin-bottom:16px;color:#b9dfbb;font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hero h1{font-family:Georgia,serif;font-size:clamp(46px,6vw,72px);color:#fff;line-height:1.05;margin-bottom:18px}
.tagline{font-family:Georgia,serif;color:#d8efda;font-size:clamp(24px,3vw,34px);line-height:1.35;margin-bottom:22px}
.intro{max-width:860px;margin:auto;font-size:18px;line-height:1.75;color:rgba(255,255,255,.82)}

#startButton,.primaryButton,.quoteButton,#recommendationBox button{
    border:0;border-radius:999px;cursor:pointer;font-weight:800;letter-spacing:.02em;transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
#startButton{margin-top:34px;background:#fff;color:var(--navy);padding:17px 34px;font-size:16px;box-shadow:0 10px 26px rgba(0,0,0,.18)}
#startButton:hover,.primaryButton:hover,.quoteButton:hover,#recommendationBox button:hover{transform:translateY(-2px)}
#startButton:hover{background:#edf6ed;box-shadow:0 14px 32px rgba(0,0,0,.22)}

#builder{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:28px;align-items:start}

.builderLeft{background:var(--surface);border:1px solid rgba(0,43,92,.08);border-radius:24px;padding:38px;box-shadow:var(--shadow);min-height:640px}
.builderRight{background:linear-gradient(180deg,var(--navy),var(--navy-dark));color:#fff;border-radius:24px;padding:30px;position:sticky;top:20px;height:fit-content;box-shadow:0 20px 46px rgba(0,43,92,.20);overflow:hidden}
.builderRight::after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-100px;bottom:-110px;background:rgba(47,125,50,.22);pointer-events:none}
.builderRight>*{position:relative;z-index:1}
.builderRight h2{font-family:Georgia,serif;font-size:34px;margin-bottom:8px}
.summaryIntro{color:rgba(255,255,255,.68);font-size:14px;line-height:1.5;margin-bottom:26px}

.summarySection{margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14)}
.summaryTitle{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#b8d9ba;margin-bottom:7px;font-weight:800}
.summarySection div:last-child{font-size:17px;font-weight:700;line-height:1.4}
#summaryServices{display:flex;flex-direction:column;gap:8px}
.emptyEstimate{font-size:14px!important;font-weight:400!important;color:rgba(255,255,255,.62)}

.progressBar{width:100%;height:10px;background:#e6ece7;border-radius:999px;overflow:hidden;margin-bottom:36px;box-shadow:inset 0 1px 2px rgba(0,0,0,.08)}
#progressFill{width:0;height:100%;background:linear-gradient(90deg,var(--green),#59a95d);border-radius:999px;transition:width .35s ease}

.estimateBox{margin-top:26px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.12);padding:24px;border-radius:18px}
.estimateLabel{text-transform:uppercase;font-size:11px;letter-spacing:.12em;color:#c7dec8;font-weight:800}
#estimateTotal{font-family:Georgia,serif;font-size:48px;font-weight:700;margin:10px 0 5px;line-height:1}
#estimatePerPlayer{font-size:15px;color:rgba(255,255,255,.74)}
.estimateLineItem{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;padding:8px 0;border-bottom:1px dashed rgba(255,255,255,.12)}
.estimateLineItem:last-child{border-bottom:0}
.estimateItemName{font-size:13px!important;font-weight:500!important;color:rgba(255,255,255,.82);line-height:1.35}
.estimateItemPrice{font-size:13px!important;color:#d6ecd7;white-space:nowrap}

.stepTitle{font-family:Georgia,serif;text-align:center;font-size:clamp(34px,4vw,46px);color:var(--navy);line-height:1.15;margin-bottom:12px}
.stepDescription{text-align:center;color:var(--muted);margin:0 auto 34px;line-height:1.65;max-width:720px;font-size:16px}

.cardGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.optionCard{
    position:relative;
    min-height:175px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg,#fff,#fafcf9);
    border:1.5px solid var(--line);
    border-radius:18px;
    padding:34px 24px;
    text-align:center;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
    box-shadow:0 8px 22px rgba(0,43,92,.05);
}

.optionCard:hover{
    transform:translateY(-7px) scale(1.02);
    border-color:var(--green);
    box-shadow:0 18px 36px rgba(0,43,92,.14);
}

.optionCard.selected{
    transform:translateY(-5px);
    border:2px solid var(--green);
    background:linear-gradient(180deg,#ffffff,#f1f9f1);
    box-shadow:
        0 0 0 4px rgba(47,125,50,.10),
        0 16px 32px rgba(47,125,50,.18);
}

.optionCard.selected::after{
    content:"✓";
    position:absolute;
    top:14px;
    right:14px;
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--green);
    color:#fff;
    font-size:18px;
    font-weight:900;
    box-shadow:0 5px 12px rgba(47,125,50,.28);
}

.optionCard h3{
    margin:16px 0 8px;
    font-size:23px;
    color:var(--navy);
}

.optionCard p{
    color:var(--muted);
    line-height:1.55;
    font-size:15px;
}

.optionIcon{
    font-size:72px;
    line-height:1;
}

#recommendationBox{margin-top:28px;display:none;background:linear-gradient(135deg,#eff8ef,#f8fbf7);border:1px solid #cfe3d0;border-left:6px solid var(--green);border-radius:16px;padding:24px}
#recommendationBox h3{color:var(--green-dark);font-size:26px;margin-bottom:10px;font-family:Georgia,serif}
#recommendationBox p{line-height:1.65;color:#43525d;margin-bottom:14px}
#recommendationBox ul{margin-left:22px;line-height:1.8;color:#43525d}
#recommendationBox button{margin-top:16px;background:var(--green);color:#fff;padding:13px 24px;font-size:15px}

.pairingsList{display:flex;flex-direction:column;gap:12px}
.serviceOption{
    display:flex;
    align-items:center;
    gap:16px;
    padding:18px 20px;
    background:#ffffff;
    border:1.5px solid var(--line);
    border-radius:14px;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.serviceOption:hover{
    transform:translateY(-2px);
    border-color:var(--green);
    box-shadow:0 10px 24px rgba(0,43,92,.09);
}

.serviceOption:has(input:checked){
    border:2px solid var(--green);
    background:linear-gradient(180deg,#ffffff,#eef8ef);
    box-shadow:
    0 0 0 3px rgba(47,125,50,.12),
    0 12px 24px rgba(47,125,50,.12);
}

.serviceOption input{
    width:22px;
    height:22px;
    accent-color:var(--green);
    flex:0 0 auto;
}

.serviceOptionText{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:4px;
}

.serviceOptionText strong{
    font-size:16px;
    color:var(--navy);
}

.serviceOptionText span{
    color:var(--muted);
    font-size:14px;
    line-height:1.4;
}

.servicePrice{
    color:var(--green-dark);
    font-weight:800;
    white-space:nowrap;
    font-size:16px;
}
.builderButtons,.reviewButtons{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:30px}
.primaryButton,.quoteButton,.secondaryButton,.startOverButton,.builderButtons button{padding:13px 22px;border-radius:999px;font-weight:800;cursor:pointer;transition:.2s ease}
.primaryButton,.builderButtons button{background:var(--navy);color:#fff;border:1px solid var(--navy)}
.primaryButton:hover,.builderButtons button:hover{background:var(--green);border-color:var(--green);transform:translateY(-2px)}
.secondaryButton{background:#fff;color:var(--navy);border:1px solid #c8d2d9}
.secondaryButton:hover{border-color:var(--navy);transform:translateY(-2px)}
.quoteButton{background:var(--green);color:#fff;border:1px solid var(--green);box-shadow:0 8px 18px rgba(47,125,50,.20)}
.startOverButton{background:transparent;color:#6c7680;border:1px solid #ccd4d9}

.reviewHeader{text-align:center;margin-bottom:26px}
.reviewEyebrow{color:var(--green);font-size:12px;font-weight:900;letter-spacing:.15em;margin-bottom:10px}
.reviewSummaryGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:24px 0}
.reviewSummaryCard{background:#f7f9f7;border:1px solid var(--line);border-radius:14px;padding:18px;text-align:center}
.reviewCardTitle{font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:800;margin-bottom:8px}
.reviewCardValue{font-size:18px;font-weight:800;color:var(--navy)}
.reviewServicesBox{border:1px solid var(--line);border-radius:16px;padding:24px;margin:20px 0;background:#fff}
.reviewServicesBox h3{font-family:Georgia,serif;color:var(--navy);font-size:24px;margin-bottom:15px}
.reviewServicesList{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.reviewServiceItem{display:flex;gap:9px;align-items:flex-start;color:#43525d;line-height:1.45}
.reviewCheck{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:900;flex:0 0 auto}
.reviewInvestmentBox{display:flex;justify-content:space-between;gap:25px;align-items:end;background:linear-gradient(135deg,var(--navy),var(--navy-dark));color:#fff;border-radius:18px;padding:26px}
.reviewInvestmentLabel,.reviewPerPlayer span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.11em;color:#c9dfca;font-weight:800}
.reviewTotal{font-family:Georgia,serif;font-size:48px;margin-top:7px}
.reviewPerPlayer{text-align:right}.reviewPerPlayer strong{display:block;font-size:26px;margin-top:7px}
.reviewDisclaimer{margin-top:18px;color:var(--muted);font-size:13px;line-height:1.6;text-align:center}
.reviewDiscount{
    display:inline-block;
    background:#eaf8ef;
    color:var(--green);
    border:2px solid var(--green);
    border-radius:8px;
    padding:8px 14px;
    font-weight:900;
    font-size:20px;
    margin:10px 0;
}
@media(max-width:1050px){#builder{grid-template-columns:1fr}.builderRight{position:relative;top:0}.builderLeft{min-height:auto}}
@media(max-width:720px){.container{padding:16px}.brandBar{align-items:flex-start;flex-direction:column}.hero{padding:52px 22px;border-radius:20px}.intro{font-size:16px}.builderLeft,.builderRight{padding:24px;border-radius:18px}.cardGrid,.reviewServicesList,.reviewSummaryGrid{grid-template-columns:1fr}.reviewInvestmentBox{align-items:flex-start;flex-direction:column}.reviewPerPlayer{text-align:left}.serviceOption{align-items:flex-start;flex-wrap:wrap}.servicePrice{margin-left:35px}}
.sideGameChoices{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-bottom:24px;
}

.sideGamePackage{
    display:flex;
    align-items:center;
    gap:14px;
    padding:18px 20px;
    background:#ffffff;
    border:1.5px solid var(--line);
    border-radius:14px;
    cursor:pointer;
    transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.sideGamePackage:hover{
    transform:translateY(-2px);
    border-color:var(--green);
    box-shadow:0 10px 24px rgba(0,43,92,.09);
}

.sideGamePackage:has(input:checked){
    border:2px solid var(--green);
    background:linear-gradient(180deg,#ffffff,#eef8ef);
    box-shadow:
        0 0 0 3px rgba(47,125,50,.12),
        0 12px 24px rgba(47,125,50,.12);
}

.sideGamePackage input{
    width:22px;
    height:22px;
    accent-color:var(--green);
    flex:0 0 auto;
}

.sideGamePackage > div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.sideGamePackage strong{
    color:var(--navy);
    font-size:16px;
}

.sideGamePackage span{
    color:var(--muted);
    font-size:14px;
    line-height:1.4;
}
@media print{
    body{background:#fff}.brandBar,.builderRight,.progressBar,.reviewButtons{display:none!important}.container{max-width:none;padding:0}.builderLeft{box-shadow:none;border:0;padding:0}#builder{display:block!important}.reviewInvestmentBox{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}


.eventInfoForm {
    width: 100%;
    max-width: 620px;
    margin: 30px auto;
    display: grid;
    gap: 22px;
}

.formGroup {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.formGroup label {
    color: #002b5c;
    font-size: 16px;
    font-weight: 700;
}

.formGroup input {
    width: 100%;
    padding: 16px 18px;
    border: 2px solid #d7e2db;
    border-radius: 14px;
    background: #ffffff;
    color: #002b5c;
    font-size: 18px;
    box-sizing: border-box;
}

.formGroup input:focus {
    border-color: #2f7d32;
    outline: none;
    box-shadow: 0 0 0 4px rgba(47, 125, 50, 0.12);
}