/* Contact page only: hero art, contact info card and map, message form, other channels */
.contact-hero__visual{display:grid;place-items:center;}
.contact-hero__visual img{width:min(380px,82%);height:auto;filter:drop-shadow(0 24px 40px rgba(37,99,235,.25));animation:courseFloat 6s ease-in-out infinite;}
.contact-hero__badge{gap:8px;margin:22px 0 0;}
.contact-hero__badge .icon{color:var(--primary);font-size:16px;}

.location,.message{display:grid;grid-template-columns:1.6fr 1fr;gap:20px;}
/* Info card first in the markup: on wide screens it sits on the right, the wider map on the left. */
@media (min-width:901px){.location{grid-template-columns:1fr 1.6fr;}}
.location__map{position:relative;display:grid;grid-template-rows:minmax(180px,1fr) auto;min-height:340px;overflow:hidden;isolation:isolate;border-radius:var(--course-radius-lg);border:1px solid var(--glass-border);box-shadow:0 12px 30px -12px rgba(30,64,175,.22),inset 0 0 0 1px rgba(255,255,255,.5);background:var(--course-soft-blue);}
.location__map::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(15,23,42,.18),transparent 65%),radial-gradient(ellipse at center,rgba(219,234,254,.13),transparent 65%);pointer-events:none;}
.location__map::after{content:"";position:absolute;inset:7px;z-index:4;border:1px solid rgba(255,255,255,.55);border-radius:calc(var(--course-radius-lg) - 7px);pointer-events:none;}
.location__map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1);}
.location__map:hover img{transform:scale(1.03);}
.location__map:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.location__pin{position:absolute;top:95px;left:50%;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;z-index:2;background:linear-gradient(145deg,#fff,#eff6ff);color:var(--primary);font-size:22px;transform:translate(-50%,-50%);border:1px solid rgba(37,99,235,.1);box-shadow:0 0 0 6px rgba(255,255,255,.4),0 8px 24px rgba(30,64,175,.18);}
.location__external{position:absolute;top:16px;left:16px;z-index:3;width:32px;height:32px;display:grid;place-items:center;border-radius:11px;background:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.7);box-shadow:0 4px 12px rgba(15,23,42,.08);color:#2563eb;font-size:17px;}
.location__info{position:relative;grid-row:2;z-index:3;display:grid;gap:3px;margin:12px;padding:14px 16px;border:1px solid var(--course-line);border-radius:16px;background:var(--course-card-solid);box-shadow:0 7px 18px -12px rgba(15,23,42,.2);color:var(--text-2);font-size:12px;line-height:1.9;}
.location__info strong{color:var(--text-1);font-size:14px;font-weight:700;}
.location__info>span:not(.location__address){color:var(--text-3);}
.location__address{display:flex;align-items:flex-start;gap:6px;}
.location__address .icon{flex-shrink:0;margin-top:5px;color:var(--primary);}

.hours,.message__form,.channels{padding:26px;border-radius:var(--course-radius-lg);background:var(--course-card-solid);border:1px solid var(--course-line);box-shadow:var(--shadow-sm);}
.hours{display:flex;flex-direction:column;align-self:start;gap:12px;padding:22px;border-radius:22px;box-shadow:0 10px 25px -18px rgba(15,23,42,.18);}
.hours__title,.message__title,.channels__title{display:flex;align-items:center;gap:8px;color:var(--text-1);font-size:18px;font-weight:800;}
.hours__title .icon,.message__title .icon,.channels__title .icon{color:var(--primary);}
.hours__title{font-size:16px;font-weight:700;}
.hours__title .icon{width:30px;height:30px;padding:6px;border-radius:10px;background:var(--course-soft-blue);}
/* Hours rows split by a hairline that fades out at both ends */
.hours__list{display:grid;margin-top:4px;}
.hours__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;color:var(--text-2);font-size:13px;}
.hours__row+.hours__row{background:linear-gradient(90deg,transparent,var(--course-line) 20%,var(--course-line) 80%,transparent) top/100% 1px no-repeat;}
.hours__list strong{padding:3px 10px;border-radius:8px;background:var(--course-soft-blue);color:var(--course-tile-text);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(37,99,235,.12);}
.hours__row:last-child strong{background:transparent;color:var(--text-3);font-weight:600;box-shadow:inset 0 0 0 1px var(--course-line);}
.hours__note{position:relative;margin-top:auto;padding:10px 13px 0 0;border-top:1px solid var(--course-line);color:var(--text-3);font-size:12px;}

/* Address, phone and hours in one card, as tall as the map beside it */
.contact-info{align-self:stretch;}
.contact-info__list{display:grid;margin:0;padding:0;list-style:none;}
.contact-info__item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--course-line);}
.contact-info__item:first-child{padding-top:4px;}
.contact-info__item:last-child{border-bottom:0;}
.contact-info__icon{flex-shrink:0;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--course-tile);color:var(--course-tile-text);font-size:18px;}
.contact-info__body{flex:1;min-width:0;display:grid;gap:2px;}
.contact-info__label{color:var(--text-3);font-size:12px;}
.contact-info__value{color:var(--text-1);font-size:14px;font-weight:700;line-height:1.9;}
.contact-info__phone{justify-self:start;font-size:16px;text-decoration:none;}
.contact-info__phone:hover{color:var(--primary);}
.contact-info__action{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:34px;margin-top:4px;padding:4px 13px;border:1px solid var(--course-line);border-radius:100px;background:var(--course-soft-blue);color:var(--primary);font-size:12px;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s;}
.contact-info__action:hover{border-color:var(--primary);background:var(--course-tile);}
/* Directions button sits on the "آدرس" label row; the address itself spans the full width below */
.contact-info__body--address{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;}
.contact-info__body--address .contact-info__label{grid-row:1;grid-column:1;}
.contact-info__body--address .contact-info__action{grid-row:1;grid-column:2;margin-top:0;}
.contact-info__body--address .contact-info__value{grid-row:2;grid-column:1/-1;}
.contact-info__action .icon{transition:transform .2s;}
.contact-info__action:hover .icon{transform:translateX(-3px);}
[data-theme="dark"] .contact-info__action{color:var(--accent);}
.contact-info__action:focus-visible,.contact-info__phone:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.hours__note::before{content:"";position:absolute;right:0;top:19px;width:5px;height:5px;border-radius:50%;background:var(--primary);opacity:.6;}

.message__sub{margin:6px 0 20px;color:var(--text-2);font-size:14px;}
.contact-page-form{display:grid;gap:14px;}
.contact-page-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.field{display:grid;gap:6px;}
.field__label{color:var(--text-2);font-size:13px;font-weight:700;}
.field input,.field textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--course-line);background:var(--bg-1);color:var(--text-1);font:inherit;font-size:14px;text-align:right;transition:border-color .2s,box-shadow .2s;}
.field textarea{min-height:140px;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3);}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.16);}
.contact-page-form__submit{width:100%;justify-content:center;gap:8px;}
.contact-page-form__privacy{color:var(--text-3);font-size:12px;text-align:center;}

.channels__list{display:grid;gap:10px;margin:16px 0 0;padding:0;list-style:none;}
.channel{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;border:1px solid var(--course-line);color:inherit;text-decoration:none;transition:background .2s,border-color .2s;}
.channel:hover{background:var(--course-soft-blue);border-color:rgba(37,99,235,.25);}
.channel:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.channel__icon{flex-shrink:0;width:44px;height:44px;display:grid;place-items:center;border-radius:14px;color:#fff;font-size:20px;}
.channel__icon--whatsapp{background:#25d366;}
.channel__icon--bale{background:#e7f8f3;}
.channel__icon--bale img.icon{width:30px;height:30px;}
.channel__icon--instagram{background:linear-gradient(135deg,#f58529,#dd2a7b 55%,#8134af);}
.channel__icon--telegram{background:#229ed9;}
.channel__icon--email{background:var(--gradient-1);}
.channel__text{flex:1;min-width:0;display:grid;gap:2px;}
.channel__text strong{color:var(--text-1);font-size:14px;}
.channel__text span{overflow:hidden;color:var(--text-3);font-size:13px;text-align:right;text-overflow:ellipsis;white-space:nowrap;}
.channel__arrow{color:var(--text-3);transition:transform .2s;}
.channel:hover .channel__arrow{transform:translateX(-3px);}

@media (max-width:900px){
  .location,.message{grid-template-columns:1fr;}
  .location__map{min-height:320px;}
}
@media (max-width:560px){
  .contact-page-form__row{grid-template-columns:1fr;}
  .hours,.message__form,.channels{padding:20px;}
  .location__info{margin:12px;padding:12px 14px;}
}
@media (prefers-reduced-motion:reduce){
  .contact-hero__visual img{animation:none;}
  .location__map img,.contact-info__action,.contact-info__action .icon,.channel,.channel__arrow{transition:none;}
}

/* Supplied contact artwork with native alpha and its soft floor shadow. */
.contact-page .contact-hero__visual{width:100%;height:auto;max-width:620px;aspect-ratio:1672/941;align-self:center;}
.contact-page .contact-hero__visual img{display:block;width:100%;height:auto;filter:none;animation:none;}
@media(max-width:900px){.contact-page .contact-hero__visual{max-width:580px;}}

/* A shorter transition from contact hero to the message form. */
.contact-page .contact-hero{padding-bottom:20px;overflow:visible;}
.contact-page #message{padding-top:20px;}
@media(max-width:900px){.contact-page .contact-hero{padding-bottom:12px;}.contact-page #message{padding-top:16px;}}
