/* =========================================================
   AAAF Sports Village — /{lang}/sport
   Charcoal, forest green and sand. Serious, no playful colour.
   Tokens live in style.css, shared components in pages.css.
   ========================================================= */

/* The header is fixed, so every in-page anchor needs a landing offset. */
#facilities,#camps,#camp-request{scroll-margin-top:110px}

/* Hero ---------------------------------------------------- */
.page-hero.sport-hero{padding:186px 0 88px}
.sport-hero .page-hero-img{object-position:center 40%;filter:saturate(.45) contrast(1.12) brightness(.82)}
.sport-hero .page-hero-shade{background:linear-gradient(180deg,rgba(9,12,10,.86) 0%,rgba(9,12,10,.58) 46%,rgba(9,12,10,.92) 100%)}
.sport-title{max-width:15ch;font-size:clamp(46px,7.2vw,104px);line-height:.94;letter-spacing:-.05em}
.sport-hero-line{display:inline-flex;align-items:center;gap:10px;margin-top:24px;padding:9px 16px;border-radius:999px;border:1px solid rgba(217,200,169,.38);color:var(--sand);font-size:13.5px;font-weight:800;letter-spacing:.07em}
.sport-hero-line .i{width:16px;height:16px}
.sport-hero .lead{margin-top:24px;max-width:660px}
.sport-hero-chips{margin-top:34px}

/* Facilities ---------------------------------------------- */
.fac-grid{gap:22px}
.fac-card{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;background:#fff;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.fac-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.fac-media{aspect-ratio:4/3;overflow:hidden;background:var(--ink)}
.fac-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.06);transition:transform .8s ease}
.fac-card:hover .fac-media img{transform:scale(1.04)}
.fac-body{display:flex;flex:1;flex-direction:column;padding:24px 24px 26px}
.fac-spec{display:flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.fac-spec .i{width:17px;height:17px;color:var(--green)}
.fac-body h3{margin:10px 0 8px;font-size:23px;font-weight:800;letter-spacing:-.03em}
.fac-body p:last-child{font-size:15px;line-height:1.6;color:var(--muted)}

/* Camp packages ------------------------------------------- */
.camp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.camp-card{display:flex;flex-direction:column;padding:34px 32px 32px;border-radius:22px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.13)}
.camp-tag{font-size:11.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--sand)}
.camp-card h3{margin-top:10px;font-size:30px;font-weight:800;letter-spacing:-.035em}
.camp-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:20px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.12)}
.camp-price strong{font-size:44px;font-weight:800;line-height:1;letter-spacing:-.045em}
.camp-price span{font-size:13.5px;color:rgba(255,255,255,.6)}
/* Qiymət yerinə sorğu / Enquiry instead of a rate */
.camp-price--request{gap:6px 12px}
.camp-price--request strong{font-size:30px;letter-spacing:-.03em}
.camp-price--request span{flex:1 1 100%;line-height:1.5}
.camp-lead{margin-top:22px;font-size:15.5px;line-height:1.6;color:rgba(255,255,255,.78)}
.camp-plus{margin-top:20px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sand)}
.camp-list{margin-top:14px}
.camp-list li{align-items:center}
.camp-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#fff;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:rgba(255,255,255,.35)}
.camp-link .i{width:15px;height:15px;color:var(--sand)}
.camp-link:hover{text-decoration-color:var(--sand)}
/* auto, so the two camp cards end with their button on the same line */
.camp-cta{align-self:flex-start;margin-top:auto;padding-top:28px}

/* Premium card sits on sand, so the dark-section defaults are reversed */
.camp-card--premium{background:linear-gradient(160deg,#E5D6B8 0%,#C9B38B 100%);border:0;color:var(--green-deep)}
.camp-card--premium .camp-tag,.camp-card--premium .camp-plus{color:var(--green)}
.camp-card--premium .camp-price{border-bottom-color:rgba(19,39,27,.18)}
.camp-card--premium .camp-price span,.camp-card--premium .camp-lead{color:rgba(19,39,27,.72)}
.section-dark .camp-card--premium .tick-list li{color:rgba(19,39,27,.88);border-bottom-color:rgba(19,39,27,.14)}
.section-dark .camp-card--premium .tick-list .i{color:var(--green)}

.camp-foot{display:flex;flex-wrap:wrap;align-items:flex-end;gap:26px 56px;margin-top:44px;padding-top:30px;border-top:1px solid rgba(255,255,255,.14)}
.camp-figures{display:flex;flex-wrap:wrap;gap:26px 56px}
.camp-figures dt{font-size:46px;font-weight:800;line-height:1;letter-spacing:-.045em}
.camp-figures dd{margin-top:8px;font-size:13.5px;color:rgba(255,255,255,.62)}
.camp-stay-note{margin-left:auto;text-align:right}
.camp-stay-note span{display:block;margin-bottom:8px;font-size:13.5px;color:rgba(255,255,255,.62)}
.camp-stay-note .link-arrow{min-height:44px}

/* Camp request ------------------------------------------- */
.req-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start}
.req-intro{position:sticky;top:110px}
.req-note{display:flex;align-items:flex-start;gap:12px;margin-top:30px;padding:18px 20px;border-radius:16px;background:#fff;border:1px solid var(--line);font-size:14.5px;font-weight:600;line-height:1.5}
.req-note .i{flex:none;margin-top:1px;width:18px;height:18px;color:var(--green)}
.req-help{margin-top:22px}
.req-help li{display:flex;align-items:flex-start;gap:11px;padding:8px 0;font-size:14.5px;color:var(--muted)}
.req-help .i{flex:none;margin-top:3px;width:16px;height:16px;color:#1C7C45;stroke-width:2.4}

/* Fieldsets inside the demo form.
   The legend floats so it stays inside the box instead of sitting on the border. */
.form-fieldset{padding:16px 20px 18px;border:1px solid var(--line);border-radius:16px;background:var(--cream)}
.form-fieldset.full{grid-column:1/-1}
.form-legend{float:left;width:100%;margin-bottom:12px;padding:0;font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.form-fieldset>.check-row,.form-fieldset>.check-grid,.form-fieldset>.form-check{clear:both}
.check-row{display:flex;flex-wrap:wrap;gap:12px 28px}
.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.form-fieldset .form-check{padding:4px 0}
.form-fieldset .form-check input{flex:none}

/* Competition calendar ------------------------------------ */
.cal-grid{gap:22px}
.cal-open{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--muted)}
.cal-open .i{width:16px;height:16px;color:#1C7C45;stroke-width:2.2}
.cal-empty{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;padding:32px 34px;border-radius:20px;background:#fff;border:1px dashed rgba(21,24,22,.22)}
.cal-empty p{display:flex;align-items:center;gap:12px;max-width:62ch;font-size:16.5px;color:var(--ink-2)}
.cal-empty .i{flex:none;width:20px;height:20px;color:var(--green)}

/* Responsive ---------------------------------------------- */
@media (max-width:1100px){
  .page-hero.sport-hero{padding:150px 0 66px}
  .req-grid{grid-template-columns:1fr;gap:40px}
  .req-intro{position:static}
}
@media (max-width:860px){
  .page-hero.sport-hero{padding:128px 0 56px}
  .sport-title{max-width:none;font-size:clamp(40px,11.5vw,60px)}
  .sport-hero-line{margin-top:18px;font-size:12.5px}
  .sport-hero-chips{margin-top:26px}
  /* minmax(0) so a long label (ro/ru) cannot push the second button out of the hero */
  .page-hero.sport-hero .page-hero-ctas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  .page-hero.sport-hero .page-hero-ctas .btn{min-width:0;padding:0 14px;font-size:15px}
  .fac-grid,.cal-grid,.camp-grid{grid-template-columns:1fr}
  .camp-card{padding:26px 22px 24px}
  .camp-card h3{font-size:26px}
  .camp-price strong{font-size:38px}
  .camp-price--request strong{font-size:26px}
  /* Full width and allowed to wrap: .btn is nowrap, and the Russian label is wider
     than the card, which stretched the whole camp grid past the viewport. */
  .camp-grid{grid-template-columns:minmax(0,1fr)}
  .camp-cta{align-self:stretch;height:auto;min-height:52px;padding:13px 20px;white-space:normal;line-height:1.3;text-align:center}
  .camp-foot{gap:22px 34px;margin-top:34px}
  .camp-figures{gap:22px 34px}
  .camp-figures dt{font-size:36px}
  .camp-stay-note{width:100%;margin-left:0;text-align:left}
  .check-grid{grid-template-columns:1fr}
  #facilities,#camps,#camp-request{scroll-margin-top:92px}
  /* 44px tap targets on the radio and checkbox rows */
  .form-fieldset .form-check{min-height:44px;padding:0}
  .check-grid{gap:4px 20px}
  .cal-grid .btn-sm{height:44px}
  .cal-empty{padding:24px 22px}
  .cal-empty p{font-size:15.5px}
}

/* Phones: .btn never wraps, so two hero buttons side by side clip the second one
   in Romanian and Russian — one per row instead. */
@media (max-width:600px){
  .page-hero.sport-hero .page-hero-ctas{grid-template-columns:minmax(0,1fr)}
  .page-hero.sport-hero .page-hero-ctas .btn{width:100%;padding:0 18px}
}
