/* ======================================================
   Küçük Raketler Tenis Akademisi — styles.css
   ====================================================== */

/* --- Reset & Base --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;interpolate-size:allow-keywords;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden;max-width:100vw}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{font-family:'DM Sans',sans-serif;font-weight:400;color:var(--ink);background:var(--bg);line-height:1.65;overflow-x:hidden;max-width:100vw;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;font:inherit;border:none;background:none}
input,select,textarea{font:inherit;color:inherit}
table{border-collapse:collapse;border-spacing:0}

/* --- CSS Variables --- */
:root{
  --bg:#FFFFFF;
  --surface:#E8F5E0;
  --surface-2:#F0F8E8;
  --surface-3:#FFF5F5;
  --ink:#1A2B1A;
  --ink-soft:#3D5A3D;
  --ink-muted:#6B8A6B;
  --accent:#34C759;
  --accent-hover:#2AAE4A;
  --accent-2:#FF6B6B;
  --accent-2-hover:#E85555;
  --accent-3:#4A90D9;
  --line:rgba(26,43,26,0.12);
  --line-strong:rgba(26,43,26,0.24);
  --header-h:72px;
  --radius:1rem;
  --radius-sm:0.5rem;
  --radius-lg:1.5rem;
  --shadow-sm:0 2px 8px rgba(26,43,26,0.06);
  --shadow-md:0 4px 20px rgba(26,43,26,0.08);
  --shadow-lg:0 8px 32px rgba(26,43,26,0.12);
  --shadow-accent:0 8px 24px rgba(52,199,89,0.18);
  --shadow-coral:0 8px 24px rgba(255,107,107,0.18);
  --shadow-blue:0 8px 24px rgba(74,144,217,0.18);
  --program-mini:#34C759;
  --program-mini-bg:#E8F5E0;
  --program-midi:#FF6B6B;
  --program-midi-bg:#FFE8E8;
  --program-full:#4A90D9;
  --program-full-bg:#E0EDFF;
  --container-max:1320px;
  --container-pad:clamp(16px,4vw,32px);
}

/* --- Typography --- */
h1,h2,h3,h4,h5,h6{font-family:'Nunito',sans-serif;font-weight:800;line-height:1.2;color:var(--ink);letter-spacing:-0.012em}
h1{font-size:clamp(2.4rem, 6vw, 4.2rem)}
h2{font-size:clamp(1.8rem,4vw,2.8rem)}
h3{font-size:clamp(1.3rem,2.5vw,1.7rem)}
h4{font-size:clamp(1.1rem,2vw,1.35rem)}
.eyebrow{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.82rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent)}
p{max-width:68ch}
.text-center{text-align:center}
.text-center p{margin-left:auto;margin-right:auto}

/* --- Layout --- */
.container{width:100%;max-width:var(--container-max);margin:0 auto;padding-left:var(--container-pad);padding-right:var(--container-pad)}
main{padding-top:var(--header-h)}
section{padding:clamp(3rem,8vw,6rem) 0}
section[id]{scroll-margin-top:calc(var(--header-h) + 16px)}

/* --- Skip Link --- */
.skip-link{position:absolute;top:-100%;left:16px;background:var(--accent);color:#fff;padding:8px 18px;border-radius:var(--radius-sm);font-weight:700;z-index:10000;transition:top 200ms}
.skip-link:focus{top:8px}

/* --- Buttons --- */
.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--ink);color:var(--surface);font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;border-radius:50px;transition:background 280ms cubic-bezier(.16,1,.3,1),color 280ms,transform 280ms cubic-bezier(.16,1,.3,1),box-shadow 280ms;border:2px solid transparent}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent);color:#fff;transform:translateY(-3px);box-shadow:var(--shadow-accent)}
.btn-primary svg{transition:transform 280ms cubic-bezier(.16,1,.3,1)}
.btn-primary:hover svg{transform:translateX(3px)}
.btn-primary:active{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.btn-primary:hover,.btn-primary:focus-visible,.btn-ghost:hover,.btn-ghost:focus-visible{transform:none}.btn-primary:hover svg{transform:none}}
.btn-primary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:transparent;color:var(--ink);font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;border-radius:50px;border:2px solid var(--line-strong);transition:background 280ms cubic-bezier(.16,1,.3,1),color 280ms,border-color 280ms,transform 280ms cubic-bezier(.16,1,.3,1)}
.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--surface);color:var(--ink);border-color:var(--accent);transform:translateY(-2px)}
.btn-ghost:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* --- Header --- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1080;background:rgba(255, 255, 255, 0.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background 240ms ease,box-shadow 240ms ease,padding 240ms ease;padding:0}
.site-header.scrolled{background:rgba(255,255,255,0.98);box-shadow:0 8px 24px -16px rgba(0,0,0,0.18);backdrop-filter:none;-webkit-backdrop-filter:none}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);max-width:var(--container-max);margin:0 auto;padding:0 var(--container-pad)}
.logo{display:flex;align-items:center;gap:10px;font-family:'Nunito',sans-serif;font-weight:800;font-size:1.15rem;color:var(--ink);white-space:nowrap;z-index:2}
.logo svg{width:36px;height:36px;flex-shrink:0}
.logo span{color:var(--accent)}

/* Desktop Nav */
.nav-desktop{display:none;align-items:center;gap:6px}
@media(min-width:1024px){.nav-desktop{display:flex}}
.nav-desktop a{position:relative;padding:8px 14px;font-family:'DM Sans',sans-serif;font-weight:500;font-size:0.92rem;color:var(--ink-soft);border-radius:var(--radius-sm);transition:color 200ms,background 200ms}
.nav-desktop a:hover{color:var(--ink);background:var(--surface)}
.nav-desktop a.is-active{color:var(--accent)}
.nav-desktop a.is-active::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%);width:6px;height:6px;background:var(--accent);border-radius:50%}
.nav-cta{padding:10px 24px !important;background:var(--ink) !important;color:var(--surface) !important;border-radius:50px !important;font-weight:700 !important;transition:background 240ms,color 240ms,transform 200ms,box-shadow 240ms !important}
.nav-cta:hover{background:var(--accent) !important;color:#fff !important;transform:translateY(-2px);box-shadow:var(--shadow-accent)}
.nav-cta.is-active::after,.nav-desktop .nav-cta::after{display:none !important}

/* Mobile Toggle */
.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;width:48px;height:48px;gap:6px;z-index:1100;cursor:pointer;background:none;border:none;padding:0;border-radius:var(--radius-sm);transition:background 200ms}
.nav-toggle:hover,.nav-toggle:focus-visible{background:var(--surface)}
@media(min-width:1024px){.nav-toggle{display:none}}
.nav-toggle span{display:block;width:26px;height:3px;background:var(--ink);border-radius:2px;transition:transform 320ms cubic-bezier(.2,.7,.2,1),opacity 200ms;flex-shrink:0}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}

/* Drawer */
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1040;opacity:0;visibility:hidden;transition:opacity 240ms,visibility 240ms}
.drawer-backdrop.is-open{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(360px,92vw);background:var(--bg);z-index:1050;transform:translateX(100%);transition:transform 380ms cubic-bezier(.16,1,.3,1);padding:calc(var(--header-h) + 24px) 32px 32px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.drawer.is-open{transform:translateX(0)}
.drawer a{display:block;padding:14px 0;font-family:'Nunito',sans-serif;font-weight:700;font-size:1.1rem;color:var(--ink);border-bottom:1px solid var(--line);transition:color 200ms,padding-left 200ms}
.drawer a:hover{color:var(--accent);padding-left:8px}
.drawer a.is-active{color:var(--accent)}
.drawer .drawer-cta{display:block;margin-top:24px;padding:14px 28px;background:var(--accent);color:#fff;text-align:center;border-radius:50px;border-bottom:none;font-weight:800;transition:background 240ms,color 240ms}
.drawer .drawer-cta:hover{background:var(--ink);color:var(--surface);padding-left:0}

/* ======================================================
   HERO
   ====================================================== */
.hero{background:var(--surface);padding:clamp(4rem,10vw,7rem) 0 clamp(3rem,8vw,5rem);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;top:-120px;right:-80px;width:360px;height:360px;background:radial-gradient(circle,rgba(52,199,89,0.12) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.hero::after{content:'';position:absolute;bottom:-60px;left:-60px;width:240px;height:240px;background:radial-gradient(circle,rgba(255,107,107,0.1) 0%,transparent 70%);border-radius:50%;pointer-events:none}
.hero .container{position:relative;z-index:1}
.hero__icons{font-size:clamp(1.6rem,3vw,2.2rem);letter-spacing:0.3em;margin-bottom:16px;animation:icons-fade 0.9s cubic-bezier(.16,1,.3,1) 0.1s both}
@keyframes icons-fade{from{opacity:0;transform:translateY(16px) scale(0.9)}to{opacity:1;transform:none}}
.hero__eyebrow{margin-bottom:12px;animation:hero-up 0.8s cubic-bezier(.16,1,.3,1) 0.2s both}
.hero__title{margin-bottom:20px;animation:hero-up 0.9s cubic-bezier(.16,1,.3,1) 0.35s both}
.hero__title span{color:var(--accent)}
.hero__sub{font-size:clamp(1.05rem,2vw,1.25rem);color:var(--ink-soft);max-width:540px;margin-bottom:28px;animation:hero-up 0.9s cubic-bezier(.16,1,.3,1) 0.5s both}
@keyframes hero-up{from{opacity:0;transform:translateY(36px) scale(0.98);clip-path:inset(100% 0 0 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:24px;animation:hero-up 0.8s cubic-bezier(.16,1,.3,1) 0.65s both}
.hero__trust{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(32px,5vw,48px);animation:hero-up 0.8s cubic-bezier(.16,1,.3,1) 0.8s both}
.hero__trust span{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:rgba(52,199,89,0.1);border:1px solid rgba(52,199,89,0.2);border-radius:50px;font-size:0.82rem;font-weight:500;color:var(--ink-soft)}
.hero__trust span::before{content:'';width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}

/* Hero Mini Cards */
.hero__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,24px);position:relative}
.hero-card{position:relative;background:var(--bg);border-radius:var(--radius);padding:clamp(16px,2.5vw,28px);text-align:center;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1);animation:card-enter 0.7s cubic-bezier(.16,1,.3,1) both;overflow:hidden}
.hero-card:nth-child(1){animation-delay:0.9s}
.hero-card:nth-child(2){animation-delay:1.05s}
.hero-card:nth-child(3){animation-delay:1.2s}
@keyframes card-enter{from{opacity:0;transform:translateY(28px) scale(0.94)}50%{opacity:1}to{opacity:1;transform:none}}
.hero-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:var(--shadow-lg)}
.hero-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px}
.hero-card--mini::before{background:var(--program-mini)}
.hero-card--midi::before{background:var(--program-midi)}
.hero-card--full::before{background:var(--program-full)}
.hero-card__icon{width:48px;height:48px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.hero-card--mini .hero-card__icon{background:var(--program-mini-bg)}
.hero-card--midi .hero-card__icon{background:var(--program-midi-bg)}
.hero-card--full .hero-card__icon{background:var(--program-full-bg)}
.hero-card__icon svg{width:24px;height:24px}
.hero-card__age{display:block;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.82rem;color:var(--ink-muted);letter-spacing:0.08em;text-transform:uppercase;margin-bottom:4px}
.hero-card__name{display:block;font-family:'Nunito',sans-serif;font-weight:800;font-size:1.05rem;color:var(--ink)}

/* Bouncing Tennis Ball */
.hero-ball{position:absolute;width:32px;height:32px;top:-18px;left:calc(16.67% - 16px);z-index:3;pointer-events:none;animation:ball-jump 4.5s cubic-bezier(.2,.7,.2,1) 1.4s both}
.hero-ball__inner{width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#E8F048,#C8D640);box-shadow:inset -2px -2px 5px rgba(0,0,0,0.12),0 3px 10px rgba(200,214,64,0.35);position:relative}
.hero-ball__inner::after{content:'';position:absolute;inset:4px;border:1.5px solid rgba(255,255,255,0.5);border-radius:50%;clip-path:polygon(0 40%,30% 30%,60% 50%,100% 35%,100% 55%,70% 60%,40% 45%,0 55%)}
@keyframes ball-jump{
  0%{left:calc(16.67% - 16px);top:-60px;opacity:0}
  3%{opacity:1}
  10%{left:calc(16.67% - 16px);top:-8px}
  14%{left:calc(16.67% - 16px);top:-32px}
  18%,28%{left:calc(16.67% - 16px);top:-8px}
  36%{left:calc(50% - 16px);top:-60px}
  44%{left:calc(50% - 16px);top:-8px}
  48%{left:calc(50% - 16px);top:-32px}
  52%,62%{left:calc(50% - 16px);top:-8px}
  70%{left:calc(83.33% - 16px);top:-60px}
  78%{left:calc(83.33% - 16px);top:-8px}
  82%{left:calc(83.33% - 16px);top:-28px}
  86%,100%{left:calc(83.33% - 16px);top:-8px}
}
@media(max-width:640px){
  .hero__cards{grid-template-columns:1fr}
  .hero-ball{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-ball{display:none}
  .hero__icons,.hero__eyebrow,.hero__title,.hero__sub,.hero__actions,.hero__trust,.hero-card{animation:none !important;opacity:1 !important;transform:none !important}
}

/* ======================================================
   SECTION — Programs (#programlar)
   ====================================================== */
.programs{background:var(--bg)}
.programs .section-head{text-align:center;margin-bottom:clamp(32px,5vw,56px)}
.programs .section-head h2{margin-bottom:12px}
.programs .section-head p{color:var(--ink-soft);margin:0 auto}
.program-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,28px)}
.program-card{background:var(--bg);border-radius:var(--radius-lg);padding:clamp(24px,3vw,36px);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1),border-color 300ms}
.program-card:hover{transform:translateY(-8px)}
.program-card--mini:hover{box-shadow:var(--shadow-accent);border-color:var(--program-mini)}
.program-card--midi:hover{box-shadow:var(--shadow-coral);border-color:var(--program-midi)}
.program-card--full:hover{box-shadow:var(--shadow-blue);border-color:var(--program-full)}
.program-card__badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:16px}
.program-card--mini .program-card__badge{background:var(--program-mini-bg);color:#1B6E2E}
.program-card--midi .program-card__badge{background:var(--program-midi-bg);color:#B33B3B}
.program-card--full .program-card__badge{background:var(--program-full-bg);color:#2A5E94}
.program-card__icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.program-card--mini .program-card__icon{background:var(--program-mini-bg)}
.program-card--midi .program-card__icon{background:var(--program-midi-bg)}
.program-card--full .program-card__icon{background:var(--program-full-bg)}
.program-card__icon svg{width:28px;height:28px}
.program-card h3{margin-bottom:8px}
.program-card__age{font-weight:700;color:var(--ink-soft);margin-bottom:12px}
.program-card p{color:var(--ink-soft);font-size:0.95rem;margin-bottom:18px}
.program-card ul{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.program-card li{display:flex;align-items:flex-start;gap:8px;font-size:0.92rem;color:var(--ink-soft)}
.program-card li svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.program-card--mini li svg{color:var(--program-mini)}
.program-card--midi li svg{color:var(--program-midi)}
.program-card--full li svg{color:var(--program-full)}
.program-card__cta{display:inline-flex;align-items:center;gap:6px;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.92rem;padding:10px 22px;border-radius:50px;transition:background 280ms cubic-bezier(.16,1,.3,1),color 280ms,transform 280ms cubic-bezier(.16,1,.3,1),box-shadow 280ms}
.program-card--mini .program-card__cta{color:var(--program-mini);border:2px solid var(--program-mini)}
.program-card--mini .program-card__cta:hover{background:var(--program-mini);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-accent)}
.program-card--midi .program-card__cta{color:var(--program-midi);border:2px solid var(--program-midi)}
.program-card--midi .program-card__cta:hover{background:var(--program-midi);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-coral)}
.program-card--full .program-card__cta{color:var(--program-full);border:2px solid var(--program-full)}
.program-card--full .program-card__cta:hover{background:var(--program-full);color:#fff;transform:translateY(-2px);box-shadow:var(--shadow-blue)}
@media(max-width:768px){.program-grid{grid-template-columns:1fr}}

/* court line decoration */
.program-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:left;transition:transform 700ms cubic-bezier(.16,1,.3,1)}
.program-card:hover::after{transform:scaleX(1)}
.program-card--mini::after{background:var(--program-mini)}
.program-card--midi::after{background:var(--program-midi)}
.program-card--full::after{background:var(--program-full)}

/* ======================================================
   SECTION — Weekly Schedule (#haftaplan)
   ====================================================== */
.schedule{background:var(--surface)}
.schedule .section-head{text-align:center;margin-bottom:clamp(28px,5vw,48px)}
.schedule .section-head h2{margin-bottom:12px}
.table-scroll{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:18px 0;border:1px solid var(--line);border-radius:var(--radius)}
.table-scroll>table{margin:0 !important;min-width:680px;width:100%}
:where(*:has(>.table-scroll),*:has(>*>.table-scroll),*:has(>*>*>.table-scroll)){min-width:0}
.schedule table{background:var(--bg)}
.schedule th{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.85rem;letter-spacing:0.04em;padding:14px 16px;text-align:center;background:var(--ink);color:var(--surface);white-space:nowrap}
.schedule th:first-child{text-align:left}
.schedule td{padding:12px 16px;text-align:center;border-bottom:1px solid var(--line);font-size:0.9rem;font-weight:500;vertical-align:middle}
.schedule td:first-child{text-align:left;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.sched-mini{background:var(--program-mini-bg);color:#1B6E2E;border-radius:var(--radius-sm);padding:6px 10px !important;font-weight:700;font-size:0.82rem}
.sched-midi{background:var(--program-midi-bg);color:#B33B3B;border-radius:var(--radius-sm);padding:6px 10px !important;font-weight:700;font-size:0.82rem}
.sched-full{background:var(--program-full-bg);color:#2A5E94;border-radius:var(--radius-sm);padding:6px 10px !important;font-weight:700;font-size:0.82rem}
.sched-empty{color:var(--ink-muted);font-size:0.82rem}
.schedule .legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:20px}
.schedule .legend span{display:inline-flex;align-items:center;gap:6px;font-size:0.85rem;font-weight:600}
.schedule .legend span::before{content:'';width:14px;height:14px;border-radius:4px}
.legend--mini::before{background:var(--program-mini) !important}
.legend--midi::before{background:var(--program-midi) !important}
.legend--full::before{background:var(--program-full) !important}

/* ======================================================
   SECTION — Process (#surec)
   ====================================================== */
.process{background:var(--bg)}
.process .section-head{text-align:center;margin-bottom:clamp(32px,5vw,56px)}
.process-timeline{position:relative;max-width:720px;margin:0 auto}
.process-timeline::before{content:'';position:absolute;left:28px;top:0;bottom:0;width:3px;background:var(--line);border-radius:2px}
.process-step{position:relative;padding-left:72px;padding-bottom:clamp(28px,4vw,44px)}
.process-step:last-child{padding-bottom:0}
.process-step__number{position:absolute;left:8px;top:0;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(52,199,89,0.25);z-index:1}
.process-step__time{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.process-step h4{margin-bottom:6px}
.process-step p{color:var(--ink-soft);font-size:0.95rem}
@media(max-width:480px){
  .process-timeline::before{left:18px}
  .process-step{padding-left:52px}
  .process-step__number{left:0;width:38px;height:38px;font-size:0.9rem}
}

/* racket swing on step hover */
.process-step:hover .process-step__number{animation:racket-swing 400ms ease}
@keyframes racket-swing{0%{transform:rotate(0)}25%{transform:rotate(-12deg)}75%{transform:rotate(8deg)}100%{transform:rotate(0)}}
@media(prefers-reduced-motion:reduce){.process-step:hover .process-step__number{animation:none}}

/* ======================================================
   SECTION — Coaches (#egitmenler)
   ====================================================== */
.coaches{background:var(--surface)}
.coaches .section-head{text-align:center;margin-bottom:clamp(28px,5vw,48px)}
.coach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(16px,2.5vw,24px)}
.coach-card{background:var(--bg);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1)}
.coach-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.coach-card__photo{aspect-ratio:4/3;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.coach-card__photo svg{width:56px;height:56px;color:var(--ink-muted);opacity:0.4}
.coach-card__photo::after{content:'';position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(transparent,rgba(255,255,255,0.6))}
.coach-card__body{padding:clamp(16px,2.5vw,24px)}
.coach-card h4{margin-bottom:4px}
.coach-card__role{font-size:0.85rem;font-weight:600;color:var(--accent);margin-bottom:10px}
.coach-card p{font-size:0.9rem;color:var(--ink-soft)}

/* ball spin on coach card hover */
.coach-card:hover .coach-card__photo svg{animation:ball-spin 600ms ease}
@keyframes ball-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.coach-card:hover .coach-card__photo svg{animation:none}}

/* ======================================================
   SECTION — Achievements (#basarilar)
   ====================================================== */
.achievements{background:var(--ink);color:var(--surface);padding:clamp(2.5rem,6vw,4.5rem) 0;position:relative;overflow:hidden}
.achievements::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(255,255,255,0.06)'/%3E%3C/svg%3E") repeat;pointer-events:none}
.achievements .container{position:relative;z-index:1}
.achievements .section-head{text-align:center;margin-bottom:clamp(24px,4vw,40px)}
.achievements .section-head h2{color:var(--surface)}
.achievements .section-head .eyebrow{color:var(--accent)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,3vw,32px)}
.stat-card{text-align:center;padding:16px}
.stat-card__number{font-family:'Nunito',sans-serif;font-weight:800;font-size:clamp(2.2rem,5vw,3.4rem);color:var(--accent);line-height:1;margin-bottom:6px;font-variant-numeric:tabular-nums}
.stat-card__label{font-size:0.88rem;color:rgba(232,245,224,0.75);font-weight:500}
@media(max-width:640px){.stat-grid{grid-template-columns:repeat(2,1fr)}}

/* ======================================================
   SECTION — Testimonials (#yorumlar)
   ====================================================== */
.testimonials{background:var(--bg)}
.testimonials .section-head{text-align:center;margin-bottom:clamp(28px,5vw,48px)}
.testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.5vw,24px)}
.testimonial-grid .testimonial-card:first-child{grid-row:span 2}
.testimonial-card{background:var(--surface);border-radius:var(--radius-lg);padding:clamp(20px,3vw,32px);border:1px solid var(--line);transition:transform 240ms cubic-bezier(.2,.7,.2,1),box-shadow 240ms}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.testimonial-card__quote{position:relative;margin-bottom:16px;padding-left:20px}
.testimonial-card__quote::before{content:'\201C';position:absolute;left:-4px;top:-12px;font-family:'Nunito',sans-serif;font-size:3.5rem;font-weight:800;color:var(--accent);opacity:0.35;line-height:1}
.testimonial-card__quote p{font-size:0.95rem;color:var(--ink-soft);font-style:italic;line-height:1.7}
.testimonial-card__author{display:flex;align-items:center;gap:12px}
.testimonial-card__avatar{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.95rem;flex-shrink:0}
.testimonial-card__info strong{display:block;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.92rem}
.testimonial-card__info span{font-size:0.82rem;color:var(--ink-muted)}
@media(max-width:768px){.testimonial-grid{grid-template-columns:1fr}.testimonial-grid .testimonial-card:first-child{grid-row:auto}}

/* ======================================================
   SECTION — Pricing (#fiyatlar)
   ====================================================== */
.pricing{background:var(--surface)}
.pricing .section-head{text-align:center;margin-bottom:clamp(28px,5vw,48px)}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,24px)}
.price-card{background:var(--bg);border-radius:var(--radius-lg);padding:clamp(24px,3vw,36px);border:1px solid var(--line);text-align:center;position:relative;overflow:hidden;transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1),border-color 300ms}
.price-card:hover{transform:translateY(-8px)}
.price-card--mini:hover{box-shadow:var(--shadow-accent);border-color:var(--program-mini)}
.price-card--midi:hover{box-shadow:var(--shadow-coral);border-color:var(--program-midi)}
.price-card--full:hover{box-shadow:var(--shadow-blue);border-color:var(--program-full)}
.price-card__badge{display:inline-block;padding:4px 16px;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:800;font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:16px}
.price-card--mini .price-card__badge{background:var(--program-mini-bg);color:#1B6E2E}
.price-card--midi .price-card__badge{background:var(--program-midi-bg);color:#B33B3B}
.price-card--full .price-card__badge{background:var(--program-full-bg);color:#2A5E94}
.price-card h3{margin-bottom:6px}
.price-card__age{font-size:0.88rem;color:var(--ink-muted);margin-bottom:20px}
.price-card__amount{font-family:'Nunito',sans-serif;font-weight:800;font-size:clamp(2rem,4vw,2.8rem);color:var(--ink);margin-bottom:4px;line-height:1.1}
.price-card__amount small{font-size:0.45em;font-weight:600;color:var(--ink-muted)}
.price-card__period{font-size:0.82rem;color:var(--ink-muted);margin-bottom:20px}
.price-card__includes{text-align:left;margin-bottom:20px}
.price-card__includes h5{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.82rem;color:var(--ink);margin-bottom:8px;text-transform:uppercase;letter-spacing:0.06em}
.price-card__includes li{display:flex;align-items:flex-start;gap:8px;font-size:0.88rem;color:var(--ink-soft);padding:4px 0}
.price-card__includes li svg{width:16px;height:16px;flex-shrink:0;margin-top:3px}
.includes-yes svg{color:var(--accent)}
.includes-no svg{color:var(--accent-2);opacity:0.6}
.includes-no{opacity:0.55;text-decoration:line-through}
.price-card__cta{width:100%}
.pricing-disclaimer{text-align:center;margin-top:20px;font-size:0.82rem;color:var(--ink-muted);font-style:italic}
@media(max-width:768px){.pricing-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

/* ======================================================
   SECTION — FAQ (#sss)
   ====================================================== */
.faq{background:var(--bg)}
.faq .section-head{text-align:center;margin-bottom:clamp(28px,5vw,48px)}
.faq-list{max-width:780px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;cursor:pointer;font-family:'Nunito',sans-serif;font-weight:700;font-size:1.02rem;color:var(--ink);list-style:none;transition:color 200ms,padding-left 200ms cubic-bezier(.16,1,.3,1)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{display:none}
.faq-item summary:hover{color:var(--accent);padding-left:6px}
.faq-item summary::after{content:'';width:24px;height:24px;flex-shrink:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%231A2B1A' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform 320ms cubic-bezier(.4,0,.2,1)}
.faq-item[open] summary::after{transform:rotate(45deg)}
.faq-item .faq-body{height:0;padding:0 0;overflow:hidden;transition:height 360ms cubic-bezier(.4,0,.2,1),padding-block-end 360ms cubic-bezier(.4,0,.2,1)}
.faq-item[open] .faq-body{height:auto;padding-block-end:22px}
.faq-body p{color:var(--ink-soft);font-size:0.95rem;line-height:1.7}
@media(prefers-reduced-motion:reduce){.faq-item .faq-body{transition:none}}

/* ======================================================
   SECTION — Registration (#kayit)
   ====================================================== */
.registration{background:var(--surface)}
.registration .container{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start}
.reg-info h2{margin-bottom:16px}
.reg-info p{color:var(--ink-soft);margin-bottom:20px}
.reg-info__season{background:var(--bg);border-radius:var(--radius);padding:20px 24px;border:1px solid var(--line)}
.reg-info__season h4{margin-bottom:8px;color:var(--accent)}
.reg-info__season p{font-size:0.92rem;color:var(--ink-soft);margin-bottom:0}
.reg-form{background:var(--bg);border-radius:var(--radius-lg);padding:clamp(24px,4vw,40px);box-shadow:var(--shadow-md);border:1px solid var(--line)}
.reg-form h3{margin-bottom:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{margin-bottom:16px}
.field label{display:block;font-family:'Nunito',sans-serif;font-weight:700;font-size:0.88rem;color:var(--ink);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;padding:12px 16px;border:2px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);font-size:0.95rem;transition:border-color 240ms,box-shadow 240ms;outline:none}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(52,199,89,0.12)}
.field textarea{min-height:100px;resize:vertical}
.field input[type="checkbox"]{appearance:auto;-webkit-appearance:auto;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border:0;margin:2px 0 0;accent-color:var(--accent)}
.field-check{display:flex;align-items:flex-start;gap:10px}
.field-check label{font-size:0.85rem;color:var(--ink-soft);font-weight:400;margin-bottom:0}
.form-submit{width:100%;padding:14px 32px;margin-top:8px}
.honeypot{position:absolute;left:-9999px;opacity:0}
@media(max-width:768px){
  .registration .container{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
}

/* ======================================================
   SECTION — News (#haberler)
   ====================================================== */
.news{background:var(--bg);padding:clamp(2rem,5vw,3.5rem) 0}
.news .container{display:flex;align-items:flex-start;gap:clamp(20px,3vw,40px);flex-wrap:wrap}
.news h3{white-space:nowrap}
.news-list{display:flex;flex-wrap:wrap;gap:12px;flex:1}
.news-item{display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--surface);border-radius:50px;font-size:0.88rem}
.news-item time{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.78rem;color:var(--accent);white-space:nowrap}
.news-item span{color:var(--ink-soft)}

/* ======================================================
   FOOTER
   ====================================================== */
.site-footer{background:var(--ink);color:rgba(232,245,224,0.8);padding:clamp(3rem,6vw,5rem) 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:clamp(24px,4vw,48px);margin-bottom:clamp(32px,5vw,48px)}
.footer-col h4{color:var(--surface);font-size:1rem;margin-bottom:16px}
.footer-brand{font-family:'Nunito',sans-serif;font-weight:800;font-size:1.2rem;color:var(--surface);margin-bottom:12px}
.footer-brand span{color:var(--accent)}
.site-footer p{font-size:0.88rem;line-height:1.7;max-width:320px}
.site-footer a{transition:color 200ms}
.site-footer a:hover{color:var(--accent)}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{font-size:0.88rem;display:inline-flex;align-items:center;gap:6px}
.footer-contact-list{display:flex;flex-direction:column;gap:10px}
.footer-contact-list li{display:flex;align-items:flex-start;gap:8px;font-size:0.88rem}
.footer-contact-list svg{width:18px;height:18px;flex-shrink:0;margin-top:2px;color:var(--accent)}
.footer-contact-list a{word-break:break-all}
.footer-hours{margin-top:12px}
.footer-hours table{width:100%;font-size:0.84rem}
.footer-hours td{padding:3px 0}
.footer-hours td:first-child{font-weight:700;color:var(--surface);padding-right:12px;white-space:nowrap}
.footer-bottom{border-top:1px solid rgba(232,245,224,0.1);padding:20px 0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:0.82rem}
.footer-legal{display:flex;flex-wrap:wrap;gap:16px}
.footer-legal a{opacity:0.7}
.footer-legal a:hover{opacity:1;color:var(--accent)}
@media(max-width:768px){
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
}

/* ======================================================
   COOKIE BANNER
   ====================================================== */
.cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;max-width:520px;margin:0 auto;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;box-shadow:var(--shadow-lg);z-index:9999;transform:translateY(140%);opacity:0;transition:transform 400ms cubic-bezier(.16,1,.3,1),opacity 300ms}
.cookie-banner.is-visible{transform:translateY(0);opacity:1}
.cookie-banner h4{font-size:0.95rem;margin-bottom:8px}
.cookie-banner p{font-size:0.84rem;color:var(--ink-soft);margin-bottom:14px;line-height:1.6}
.cookie-banner p a{color:var(--accent);text-decoration:underline}
.cookie-btns{display:flex;gap:8px;flex-wrap:wrap}
.cookie-btns button{flex:1;min-width:100px;padding:10px 16px;border-radius:50px;font-family:'Nunito',sans-serif;font-weight:700;font-size:0.85rem;transition:background 200ms,color 200ms;min-height:44px;cursor:pointer;border:2px solid var(--line)}
.cookie-btns .cookie-accept{background:var(--accent);color:#fff;border-color:var(--accent);transition:background 200ms,border-color 200ms,transform 200ms cubic-bezier(.16,1,.3,1)}
.cookie-btns .cookie-accept:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;transform:translateY(-1px)}
.cookie-btns .cookie-reject{background:var(--surface);color:var(--ink);border-color:var(--line-strong);font-weight:800}
.cookie-btns .cookie-reject:hover{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.cookie-btns .cookie-settings{background:transparent;color:var(--ink-soft);border-color:var(--line)}
.cookie-btns .cookie-settings:hover{background:var(--surface);color:var(--ink)}
@media(max-width:639px){
  .cookie-banner{bottom:0;left:0;right:0;border-radius:var(--radius) var(--radius) 0 0;max-width:100%}
}
@media(min-width:640px){.cookie-banner{left:24px;right:auto;max-width:420px}}

/* ======================================================
   REVEAL ANIMATIONS
   ====================================================== */
.reveal{opacity:0;transform:translateY(32px) scale(0.98);transition:opacity 700ms cubic-bezier(.16,1,.3,1),transform 700ms cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0) * 100ms)}
.reveal.is-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1 !important;transform:none !important;transition:none !important}}
html.no-js .reveal{opacity:1;transform:none}

/* counter animate */
.counter-num{font-variant-numeric:tabular-nums}

/* ======================================================
   CONTACT PAGE
   ====================================================== */
.contact-hero{background:var(--surface);padding:clamp(4rem,8vw,6rem) 0 clamp(3rem,6vw,4.5rem)}
.contact-hero h1{margin-bottom:12px}
.contact-hero p{color:var(--ink-soft);max-width:540px}
.contact-channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(12px,2vw,20px)}
.contact-card{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:clamp(16px,2.5vw,24px);transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1),border-color 300ms}
.contact-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}
.contact-card__icon{width:48px;height:48px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;margin-bottom:12px;transition:background 240ms}
.contact-card:hover .contact-card__icon{background:var(--accent);color:#fff}
.contact-card__icon svg{width:22px;height:22px;transition:color 240ms}
.contact-card:hover .contact-card__icon svg{color:#fff}
.contact-card h4{font-size:0.95rem;margin-bottom:4px}
.contact-card__value{font-size:0.92rem;color:var(--accent);font-weight:600;word-break:break-all}
.contact-card__value a{color:var(--accent)}
.contact-card__value a:hover{text-decoration:underline}
.contact-card__sub{font-size:0.82rem;color:var(--ink-muted);margin-top:4px}
.contact-hours-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-top:8px}
.contact-day{padding:8px 12px;background:var(--surface);border-radius:var(--radius-sm);text-align:center;font-variant-numeric:tabular-nums;font-size:0.85rem}
.contact-day strong{display:block;font-size:0.78rem;font-family:'Nunito',sans-serif;font-weight:800;color:var(--ink);margin-bottom:2px}
.contact-day span{color:var(--ink-soft)}
.contact-form-wrap{background:var(--bg);border-radius:var(--radius-lg);padding:clamp(24px,4vw,40px);box-shadow:var(--shadow-md);border:1px solid var(--line);margin-top:clamp(24px,4vw,40px)}

/* ======================================================
   THANK YOU PAGE
   ====================================================== */
.thankyou{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(3rem,8vw,6rem) 0}
.thankyou__icon{width:80px;height:80px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}
.thankyou__icon svg{width:40px;height:40px;color:var(--accent)}
.thankyou h1{font-size:clamp(1.8rem, 4vw, 2.6rem);margin-bottom:12px}
.thankyou p{color:var(--ink-soft);margin:0 auto 24px;max-width:480px}

/* ======================================================
   LEGAL PAGES
   ====================================================== */
.legal-hero{background:var(--surface);padding:clamp(3rem,6vw,5rem) 0}
.legal-hero h1{margin-bottom:8px}
.legal-hero p{color:var(--ink-muted);font-size:0.92rem}
.legal-content{padding:clamp(2rem,5vw,4rem) 0}
.legal-content .container{max-width:760px}
.legal-content h2{font-size:clamp(1.3rem,2.5vw,1.6rem);margin:clamp(28px,4vw,40px) 0 12px;padding-top:8px}
.legal-content h3{font-size:1.15rem;margin:20px 0 8px}
.legal-content p{color:var(--ink-soft);margin-bottom:14px;line-height:1.75}
.legal-content ul{margin-bottom:14px;padding-left:20px}
.legal-content li{color:var(--ink-soft);margin-bottom:6px;position:relative;padding-left:16px;line-height:1.65}
.legal-content li::before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;background:var(--accent);border-radius:50%}
.legal-content strong{color:var(--ink)}

/* ======================================================
   404 PAGE
   ====================================================== */
.error-page{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(3rem,8vw,6rem) 0}
.error-page__code{font-family:'Nunito',sans-serif;font-weight:800;font-size:clamp(5rem,15vw,10rem);color:var(--surface);line-height:1;-webkit-text-stroke:2px var(--accent)}
.error-page h1{margin-bottom:12px}
.error-page p{color:var(--ink-soft);margin:0 auto 24px;max-width:440px}

/* ======================================================
   SITEMAP PAGE
   ====================================================== */
.sitemap-content{padding:clamp(2rem,5vw,4rem) 0}
.sitemap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(24px,3vw,40px)}
.sitemap-group h3{margin-bottom:12px;color:var(--accent)}
.sitemap-group a{display:block;padding:6px 0;color:var(--ink-soft);font-size:0.92rem;transition:color 200ms,padding-left 200ms}
.sitemap-group a:hover{color:var(--accent);padding-left:8px}

/* ======================================================
   NICHE ANIMATIONS — Tennis-specific
   ====================================================== */

/* 1. Court line draw */
.court-line{position:relative}
.court-line::after{content:'';position:absolute;bottom:-4px;left:0;width:100%;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform 800ms cubic-bezier(.16,1,.3,1)}
.court-line.is-in::after{transform:scaleX(1)}

/* 2. Net wave background pattern */
.net-pattern{position:relative}
.net-pattern::before{content:'';position:absolute;inset:0;opacity:0.04;background:repeating-linear-gradient(90deg,var(--ink) 0,var(--ink) 1px,transparent 1px,transparent 24px),repeating-linear-gradient(0deg,var(--ink) 0,var(--ink) 1px,transparent 1px,transparent 24px);pointer-events:none;animation:net-slide 15s linear infinite}
@keyframes net-slide{from{background-position:0 0,0 0}to{background-position:24px 0,0 24px}}
@media(prefers-reduced-motion:reduce){.net-pattern::before{animation:none}}

/* 3. Ball spin accent on numbers */
.stat-card__number{position:relative;display:inline-block}
.stat-card{transition:transform 300ms cubic-bezier(.16,1,.3,1)}
.stat-card:hover{transform:scale(1.06)}
.stat-card:hover .stat-card__number{animation:ball-pop 500ms cubic-bezier(.16,1,.3,1)}
@keyframes ball-pop{0%{transform:scale(1)}30%{transform:scale(1.15)}60%{transform:scale(0.95)}100%{transform:scale(1)}}

/* 4. Racket SVG icon swing on hover */
.icon-racket{transition:transform 240ms cubic-bezier(.16,1,.3,1)}
.icon-racket:hover{transform:rotate(-15deg)}
@media(prefers-reduced-motion:reduce){.icon-racket:hover{transform:none}.stat-card:hover{transform:none}.stat-card:hover .stat-card__number{animation:none}}

/* 5. Court surface texture on cards */
.surface-court{background:linear-gradient(135deg,var(--surface) 25%,transparent 25%) -10px 0/20px 20px,linear-gradient(225deg,var(--surface) 25%,transparent 25%) -10px 0/20px 20px,linear-gradient(315deg,var(--surface) 25%,transparent 25%)/20px 20px,linear-gradient(45deg,var(--surface) 25%,transparent 25%)/20px 20px;background-color:var(--surface-2)}

/* 6. Tennis ball trail on hero cards */
.hero-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,transparent,var(--accent),transparent);transform:scaleX(0);transition:transform 500ms cubic-bezier(.16,1,.3,1)}
.hero-card:hover::after{transform:scaleX(1)}
.hero-card--mini::after{background:linear-gradient(90deg,transparent,var(--program-mini),transparent)}
.hero-card--midi::after{background:linear-gradient(90deg,transparent,var(--program-midi),transparent)}
.hero-card--full::after{background:linear-gradient(90deg,transparent,var(--program-full),transparent)}

/* 7. Testimonial card lift with warm glow */
.testimonial-card{transition:transform 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1)}
.testimonial-card:hover{transform:translateY(-6px);box-shadow:0 12px 32px rgba(52,199,89,0.12)}

/* 8. FAQ summary arrow rotation smoothing */
.faq-item summary::after{transition:transform 400ms cubic-bezier(.16,1,.3,1)}

/* 9. Price card shine sweep on hover */
.price-card{overflow:hidden}
.price-card::before{content:'';position:absolute;top:0;left:-75%;width:50%;height:100%;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.3) 50%,transparent 70%);transition:left 600ms cubic-bezier(.16,1,.3,1);pointer-events:none;z-index:1}
.price-card:hover::before{left:125%}

/* 10. Contact card icon bounce on hover */
.contact-card__icon{transition:background 240ms,transform 300ms cubic-bezier(.16,1,.3,1)}
.contact-card:hover .contact-card__icon{transform:scale(1.1) translateY(-2px)}

/* 11. News item slide-in feel */
.news-item{transition:transform 200ms cubic-bezier(.16,1,.3,1),box-shadow 200ms}
.news-item:hover{transform:translateX(4px);box-shadow:var(--shadow-sm)}

/* 12. Footer link arrow hint */
.footer-links a{transition:color 200ms,padding-left 200ms cubic-bezier(.16,1,.3,1)}
.footer-links a:hover{padding-left:6px}

@media(prefers-reduced-motion:reduce){
  .hero-card::after,.price-card::before{transition:none !important}
  .hero-card:hover::after,.price-card:hover::before{transform:none !important;left:auto !important}
  .testimonial-card,.contact-card__icon,.news-item,.stat-card,.footer-links a{transition:none !important}
  .testimonial-card:hover,.stat-card:hover{transform:none !important}
  .contact-card:hover .contact-card__icon{transform:none !important}
  .news-item:hover{transform:none !important}
}

/* ======================================================
   RESPONSIVE
   ====================================================== */
@media(max-width:1024px){
  :root{--header-h:64px}
}
@media(max-width:640px){
  section{padding:clamp(2.5rem,6vw,4rem) 0}
  .hero{padding:clamp(3rem,8vw,5rem) 0 clamp(2rem,5vw,3.5rem)}
}
@media(max-width:480px){
  h1{font-size:clamp(1.8rem, 7vw, 2.4rem)}
  .hero__trust{gap:8px}
  .hero__trust span{padding:5px 10px;font-size:0.78rem}
}

/* ======================================================
   FOCUS VISIBLE
   ====================================================== */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ======================================================
   PRINT
   ====================================================== */
/* ======================================================
   ABOUT PAGE — responsive grid
   ====================================================== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:start}
@media(max-width:768px){.about-grid{grid-template-columns:1fr}}

/* ======================================================
   CTA SECTION (registration replacement)
   ====================================================== */
.cta-section{background:var(--surface);text-align:center}
.cta-section .container{max-width:680px}
.cta-section h2{margin-bottom:16px}
.cta-section p{color:var(--ink-soft);margin:0 auto 28px}
.cta-section .btn-primary{font-size:1.1rem;padding:16px 40px}

/* ======================================================
   WORD BREAK for long URLs / emails
   ====================================================== */
.footer-contact-list a,.contact-card__value,.contact-card__value a{word-break:break-word;overflow-wrap:anywhere}

@media print{
  .site-header,.drawer,.drawer-backdrop,.cookie-banner,.nav-toggle,.hero-ball{display:none !important}
  main{padding-top:0}
  body{color:#000;background:#fff}
  a{color:#000;text-decoration:underline}
  .reveal{opacity:1 !important;transform:none !important}
}

.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:9998;transition:width 80ms linear;pointer-events:none}

/* form-reveal-opacity-fix */
main form.reveal, .form-section form.reveal, .contact-form.reveal, form[id*='iletisim'].reveal, form[class*='contact'].reveal { opacity: 1 !important; transform: none !important; translate: none !important; }
main form, .form-section form, .contact-form, form[id*='iletisim'], form[class*='contact'] { opacity: 1 !important; }

/* consent-checkbox-inline-fix */
main form label.checkbox, main form .form-checkbox, main form .consent, main form .kvkk, .contact-form label.checkbox, .contact-form .checkbox-group { display: flex !important; flex-direction: row !important; align-items: flex-start !important; gap: 10px !important; font-size: 14px !important; line-height: 1.5 !important; flex-wrap: nowrap !important; }
main form label.checkbox span, main form label.checkbox a, main form .form-checkbox span, main form .form-checkbox a, .contact-form label.checkbox span, .contact-form label.checkbox a { display: inline !important; flex: 1 1 auto; }
main form label.checkbox input[type='checkbox'], main form .form-checkbox input[type='checkbox'] { flex-shrink: 0 !important; width: 18px !important; height: 18px !important; margin-top: 3px !important; }

/* iletisim-form-responsive-guard v2 */
main form, .form-section form, .contact-form, .iletisim-form, form#contact-form, form[id*="iletisim"], form[class*="iletisim"], form[class*="contact"] {
  display: block;
  max-width: 720px;
  margin: 24px auto;
  padding: clamp(20px, 4vw, 36px);
  background: var(--surface, rgba(255,255,255,0.04));
  border: 1px solid var(--line, rgba(127,127,127,0.18));
  border-radius: 16px;
  box-shadow: 0 8px 32px -12px rgba(0,0,0,0.25);
  box-sizing: border-box;
}
main form .form-grid,
main form > .grid,
.contact-form .form-grid,
form[class*="contact"] .form-grid,
form[class*="iletisim"] .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 18px;
  width: 100%;
}
@media (max-width: 640px) {
  main form .form-grid,
  main form > .grid,
  .contact-form .form-grid,
  form[class*="contact"] .form-grid,
  form[class*="iletisim"] .form-grid {
    grid-template-columns: 1fr;
  }
}
main form .form-grid > .field-full,
main form .form-grid > .col-full,
main form .form-grid > [class*="full"] {
  grid-column: 1 / -1;
}
main form .field, main form label,
.contact-form .field, .contact-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
}
main form input[type="text"],
main form input[type="email"],
main form input[type="tel"],
main form input[type="number"],
main form input[type="date"],
main form input[type="url"],
main form input[type="search"],
main form input:not([type]),
main form select,
main form textarea,
.contact-form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),
.contact-form select,
.contact-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  min-height: 44px;
  font-size: 16px;
  line-height: 1.4;
  font-family: inherit;
  border: 1px solid var(--line, rgba(127,127,127,0.22));
  border-radius: 10px;
  background: var(--input-bg, rgba(0,0,0,0.04));
  color: inherit;
  appearance: none;
  -webkit-appearance: none;
}
main form textarea, .contact-form textarea {
  min-height: 120px;
  resize: vertical;
}
main form input:focus, main form select:focus, main form textarea:focus,
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  outline: 2px solid var(--accent, #5a8dee);
  outline-offset: 1px;
  border-color: transparent;
}
main form .checkbox, main form label.checkbox,
.contact-form .checkbox {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
}
main form input[type="checkbox"], main form input[type="radio"],
.contact-form input[type="checkbox"], .contact-form input[type="radio"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--accent, #5a8dee);
}
main form button[type="submit"],
main form input[type="submit"],
main form .btn-submit,
.contact-form button[type="submit"],
.contact-form .btn-submit {
  width: 100%;
  min-height: 48px;
  padding: 14px 28px;
  background: var(--accent, #5a8dee);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  margin-top: 8px;
  transition: filter 200ms ease, transform 120ms ease;
}
@media (min-width: 640px) {
  main form button[type="submit"],
  main form input[type="submit"],
  .contact-form button[type="submit"] {
    width: auto;
    min-width: 220px;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}
main form button[type="submit"]:hover,
.contact-form button[type="submit"]:hover {
  filter: brightness(1.05);
}
main form button[type="submit"]:active,
.contact-form button[type="submit"]:active {
  transform: translateY(1px);
}


/* contacts-grid-v2 */
/* Contact cards in responsive grid */
.contact-grid, .contacts-grid, .iletisim-grid, .contact-cards, .contact-cards-grid,
.contact-list, main .contact-wrap, section[id*="iletisim"] > .container > div:has(> .contact-card) {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
  gap: 20px !important;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 8px 16px;
  box-sizing: border-box;
}
@media (min-width: 1024px) {
  .contact-grid, .contacts-grid, .iletisim-grid, .contact-cards, .contact-cards-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media (max-width: 720px) {
  .contact-grid, .contacts-grid, .iletisim-grid, .contact-cards, .contact-cards-grid {
    grid-template-columns: 1fr !important;
  }
}
.contact-card { min-height: 0; box-sizing: border-box; }

/* Checkbox row alignment — override .field-checkbox column layout */
form .field.field-checkbox,
form .field-checkbox,
form .checkbox-field,
form .form-field--checkbox,
form .form-row--checkbox,
form .kvkk-field,
form .consent-field,
.contact-form .field.field-checkbox {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  gap: 10px !important;
  width: 100%;
}
form .field.field-checkbox > input[type="checkbox"],
form .field-checkbox > input[type="checkbox"],
form .checkbox-field > input[type="checkbox"],
form .kvkk-field > input[type="checkbox"],
form .consent-field > input[type="checkbox"] {
  flex-shrink: 0 !important;
  width: 18px !important;
  height: 18px !important;
  margin: 3px 0 0 0 !important;
  accent-color: var(--accent, currentColor);
}
form .field.field-checkbox > label,
form .field-checkbox > label,
form .checkbox-field > label,
form .kvkk-field > label,
form .consent-field > label {
  flex: 1 1 auto !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  display: inline !important;
  cursor: pointer;
}
form .field.field-checkbox > label a,
form .field-checkbox > label a {
  text-decoration: underline;
}

/* field-full inside form grid spans both columns */
form .form-grid > .field-full,
form .form-grid > .field.field-full,
form .form-grid > .col-full,
form .form-grid > .full,
form .form-grid > [class*="--full"] {
  grid-column: 1 / -1;
}

