/* ============================================================
   CONTACT PAGE
   ============================================================ */
.chero{ padding:clamp(140px,18vh,210px) 0 clamp(26px,3.5vw,50px); background:var(--bg); }
.chero__title{ font-family:var(--display); font-weight:400; font-size:clamp(2.4rem,5.4vw,4.6rem);
  line-height:1.04; letter-spacing:-.02em; color:var(--bark); margin:.5rem 0 1.2rem; }
.chero__title em{ font-style:italic; color:var(--gold-deep); }
.chero__lead{ max-width:56ch; color:var(--text-soft); font-size:clamp(1.04rem,1.4vw,1.2rem); }

/* Layout */
.contact{ padding:clamp(26px,3.5vw,54px) 0 clamp(34px,4vw,56px); background:var(--bg); }
.contact__grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(36px,5vw,84px); align-items:start; }

/* Details */
.cinfo{ display:flex; flex-direction:column; gap:clamp(22px,2.6vw,34px); }
.cinfo__item{ display:flex; gap:18px; }
.cinfo__ico{ flex:none; width:50px; height:50px; border-radius:15px; display:grid; place-items:center;
  background:var(--cream); border:1px solid var(--line); color:var(--gold-deep);
  transition:background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .35s var(--ease); }
.cinfo__ico svg{ width:22px; height:22px; }
.cinfo__item:hover .cinfo__ico{ background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;
  transform:translateY(-3px); box-shadow:0 14px 26px -14px rgba(138,111,69,.7); }
.cinfo__label{ font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-soft); margin-bottom:.45rem; }
.cinfo__value{ display:inline-block; font-family:var(--display); font-weight:500;
  font-size:clamp(1.2rem,1.7vw,1.5rem); line-height:1.2; color:var(--bark); transition:color .3s var(--ease); }
a.cinfo__value:hover{ color:var(--gold-deep); }
.cinfo__sub{ color:var(--text-soft); font-size:.95rem; margin-top:.4rem; max-width:34ch; }

/* Opening hours */
.chours{ list-style:none; margin:.7rem 0 0; max-width:280px; }
.chours li{ display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:7px 0; border-bottom:1px solid var(--line); font-size:.96rem; }
.chours li:last-child{ border-bottom:0; }
.chours span{ color:var(--text-soft); }
.chours b{ color:var(--bark); font-weight:600; }

/* Form */
.cform{ background:var(--cream-3); border:1px solid var(--line); border-radius:var(--radius-lg);
  padding:clamp(24px,3vw,46px); }
.cform__row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.field label{ font-size:.84rem; font-weight:600; color:var(--bark); letter-spacing:.01em; }
.field__opt{ color:var(--text-soft); font-weight:400; }
.field input, .field select, .field textarea{ width:100%; padding:14px 16px; font:inherit; font-size:.98rem;
  color:var(--text); background:var(--bg); border:1.5px solid var(--line); border-radius:14px;
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease); }
.field input::placeholder, .field textarea::placeholder{ color:#a59a88; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(169,140,93,.12); }
.field select{ appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A6F45' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:42px; }
.field textarea{ resize:vertical; min-height:140px; }
.cform .btn{ width:100%; margin-top:4px; }
.cform__note{ margin-top:16px; font-size:.82rem; color:var(--text-soft); text-align:center; }

/* FAQ (same component as visit/animals) */
.faq{ padding:var(--section) 0; background:var(--bg); }
.faq__inner{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,6vw,90px); align-items:start; }
.faq__head .h2{ margin-top:.4rem; }
.faq__sub{ color:var(--text-soft); font-size:1.02rem; margin-top:1.1rem; max-width:34ch; }
.faq__call{ margin-top:1.6rem; }
.faq__call span{ display:inline-flex; align-items:center; gap:.6em; }
.faq__call svg{ width:18px; height:18px; }
.faq__item{ border-top:1px solid var(--line); padding:6px 0; }
.faq__item:last-child{ border-bottom:1px solid var(--line); }
.faq__item summary{ list-style:none; cursor:pointer; padding:22px 40px 22px 0; position:relative; font-family:var(--display); font-size:clamp(1.15rem,1.7vw,1.4rem); color:var(--bark); font-weight:440; }
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{ content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); font-size:1.6rem; color:var(--gold-deep); transition:transform .4s var(--ease); font-family:var(--sans); font-weight:300; }
.faq__item[open] summary::after{ transform:translateY(-50%) rotate(45deg); }
.faq__item p{ color:var(--text-soft); font-size:1.02rem; line-height:1.7; padding:0 40px 22px 0; max-width:60ch; }

/* Location / Map */
.cmap{ padding:var(--section) 0; background:var(--bg); }
.cmap__head{ display:grid; grid-template-columns:1.1fr 1fr; align-items:end; gap:clamp(24px,4vw,60px);
  margin-bottom:clamp(30px,3.5vw,48px); }
.cmap__lead{ color:var(--text-soft); font-size:clamp(1rem,1.3vw,1.14rem); max-width:46ch; }
.cmap__frame{ height:clamp(360px,46vh,540px); border-radius:var(--radius-lg); overflow:hidden;
  border:1px solid var(--line); box-shadow:0 40px 80px -50px rgba(44,39,31,.5); }
.cmap__frame iframe{ width:100%; height:100%; border:0; display:block; }

@media (max-width:880px){
  .cmap__head{ grid-template-columns:1fr; align-items:start; }
}

@media (max-width:880px){
  .contact__grid{ grid-template-columns:1fr; gap:clamp(34px,6vw,48px); }
  .faq__inner{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .cform__row{ grid-template-columns:1fr; gap:0; }
}
