/*
Theme Name: Dingo Ranch
Theme URI: https://dingoranch.it
Author: Dingo Ranch
Description: Tema custom per Dingo Ranch — pensione, addestramento e area sgambo per cani a San Vincenzo. Costruito senza page builder: un template PHP dedicato per ogni pagina.
Version: 1.4.1
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: dingoranch
*/

/* =========================================================
   DESIGN TOKENS
   ========================================================= */
:root{
  --purple:#950179;
  --purple-dark:#6e0159;
  --brown:#392119;
  --terracotta:#C2722F;
  --orange:#E6A153;
  --cream:#F6DCB9;
  --cream-soft:#FBF3E7;
  --white:#ffffff;
  --radius-lg:18px;
  --radius-md:14px;
  --radius-sm:10px;
  --shadow-soft:0 8px 22px rgba(57,33,25,.08);
  --shadow-strong:0 14px 34px rgba(57,33,25,.18);
  --maxw:1180px;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*,*:before,*:after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family:'Segoe UI', system-ui, -apple-system, sans-serif;
  color:var(--brown);
  background:var(--cream-soft);
  line-height:1.5;
}
h1,h2,h3,h4{ font-family:Georgia,'Times New Roman',serif; margin:0 0 .5em; line-height:1.2; }
p{ margin:0 0 1em; }
a{ text-decoration:none; color:inherit; }
img{ max-width:100%; display:block; height:auto; }
ul{ margin:0; padding:0; }
.screen-reader-text{ position:absolute; left:-9999px; }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
section{ padding:70px 24px; }
.eyebrow{ color:var(--purple); font-size:.75rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; }
.section-title{ font-size:1.9rem; margin:8px 0 14px; }
.section-lead{ color:#6b5647; max-width:100%; line-height:1.6; font-size:.95rem; }

.btn{ display:inline-block; padding:13px 28px; border-radius:999px; font-weight:700; font-size:.88rem; border:none; cursor:pointer; }
.btn.primary{ background:var(--orange); color:var(--brown); }
.btn.primary:hover{ background:#dd9640; }
.btn.ghost{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.7); }
.btn.ghost:hover{ background:rgba(255,255,255,.15); }
.btn.solid-purple{ background:var(--purple); color:#fff; }
.btn.solid-purple:hover{ background:var(--purple-dark); }

/* =========================================================
   TOPBAR
   ========================================================= */
.topbar{ background:var(--brown); color:var(--cream); font-size:.75rem; padding:6px 0; }
.topbar .container{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px; }
.topbar a{ color:var(--cream); margin-left:14px; }

/* =========================================================
   HEADER
   ========================================================= */
header.site-header{
  background:var(--purple);
  padding:14px 0;
  box-shadow:0 2px 14px rgba(0,0,0,.18);
  position:sticky; top:0; z-index:50;
}
header.site-header .container{ display:flex; align-items:center; justify-content:space-between; }
.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height:58px; width:58px; border-radius:50%; }
.brand .word{ line-height:1.1; color:#fff; }
.brand .word strong{ display:block; font-family:Georgia,serif; font-size:1.25rem; letter-spacing:.3px; }
.brand .word span{ font-size:.68rem; color:var(--cream); opacity:.9; }

nav.main-nav{ display:flex; align-items:center; gap:26px; }
nav.main-nav ul{ display:flex; align-items:center; gap:26px; list-style:none; }
nav.main-nav a{ color:#fff; font-size:.9rem; font-weight:500; }
nav.main-nav .menu-item-has-children{ position:relative; }
nav.main-nav .sub-menu{
  display:none; position:absolute; top:100%; left:0; background:#fff; min-width:210px;
  border-radius:10px; box-shadow:var(--shadow-strong); padding:8px; list-style:none;
}
nav.main-nav .menu-item-has-children:hover .sub-menu{ display:block; }
nav.main-nav .sub-menu a{ color:var(--brown); display:block; padding:9px 12px; border-radius:6px; font-size:.85rem; }
nav.main-nav .sub-menu a:hover{ background:var(--cream-soft); color:var(--purple); }
.header-cta{ background:var(--orange); color:var(--brown)!important; font-weight:700; padding:10px 22px; border-radius:999px; font-size:.82rem; }
.menu-toggle{ display:none; }

@media (max-width:980px){
  nav.main-nav{ gap:14px; }
  nav.main-nav ul{
    display:none;
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:2px;
    background:var(--purple); padding:10px 24px 20px;
    box-shadow:0 16px 26px rgba(0,0,0,.2);
  }
  nav.main-nav.nav-open ul{ display:flex; }
  nav.main-nav li{ width:100%; }
  nav.main-nav ul a{ display:block; padding:10px 0; }
  nav.main-nav .menu-item-has-children:hover .sub-menu{ display:none; }
  nav.main-nav .sub-menu{
    display:block; position:static; background:none; box-shadow:none;
    min-width:0; padding:0 0 4px 14px; margin:0;
  }
  nav.main-nav .sub-menu a{ color:rgba(255,255,255,.85); padding:7px 0; }
  nav.main-nav .sub-menu a:hover{ background:none; color:#fff; }
  .menu-toggle{ display:block; background:none; border:none; color:#fff; font-size:1.4rem; line-height:1; padding:4px 6px; cursor:pointer; }
  .header-cta{ display:none; }
}

/* =========================================================
   PAGE HERO (interior pages)
   ========================================================= */
.page-hero{
  background:linear-gradient(120deg, rgba(149,1,121,.9), rgba(194,114,47,.6)),
    repeating-linear-gradient(135deg, #d98a3f 0 40px, #cf7f33 40px 80px);
  color:#fff; padding:70px 24px; text-align:center;
}
.page-hero .kicker{
  display:inline-block; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.4);
  padding:5px 16px; border-radius:999px; font-size:.72rem; letter-spacing:1.5px; margin-bottom:16px;
}
.page-hero h1{ font-size:2.2rem; margin-bottom:10px; }
.page-hero p{ max-width:560px; margin:0 auto; opacity:.95; }
.breadcrumb{ font-size:.78rem; opacity:.85; margin-top:14px; }
.breadcrumb a{ color:#fff; text-decoration:underline; }

/* =========================================================
   HOME HERO
   ========================================================= */
.home-hero{
  position:relative;
  background:linear-gradient(120deg, rgba(149,1,121,.86), rgba(194,114,47,.55)),
    repeating-linear-gradient(135deg, #d98a3f 0 40px, #cf7f33 40px 80px);
  color:#fff; padding:90px 24px 110px; text-align:center; overflow:hidden;
}
.home-hero h1{ font-size:2.6rem; margin-bottom:16px; text-shadow:0 2px 10px rgba(0,0,0,.25); }
.home-hero p{ max-width:560px; margin:0 auto 30px; font-size:1.02rem; line-height:1.6; opacity:.96; }
.home-hero .actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

.stats{
  max-width:1000px; margin:-46px auto 0; position:relative; z-index:5;
  background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-strong);
  display:grid; grid-template-columns:repeat(4,1fr); padding:26px 10px;
}
.stats .item{ text-align:center; padding:6px 10px; border-right:1px solid #f0e2cd; }
.stats .item:last-child{ border-right:none; }
.stats .num{ font-family:Georgia,serif; font-size:1.7rem; color:var(--purple); font-weight:bold; }
.stats .lbl{ font-size:.72rem; color:#8a6f5f; margin-top:2px; }

/* =========================================================
   PHOTO PLACEHOLDER
   ========================================================= */
.ph-photo{
  border-radius:var(--radius-lg); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.85); font-size:.78rem; text-align:center; padding:16px;
  background:linear-gradient(135deg, var(--terracotta), var(--orange));
  box-shadow:0 12px 28px rgba(194,114,47,.35); overflow:hidden;
}
.ph-photo img{ width:100%; height:100%; object-fit:cover; border-radius:var(--radius-lg); }

/* =========================================================
   ABOUT / GENERIC TWO-COL
   ========================================================= */
.two-col{ background:#fff; }
.two-col .grid{ display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; }
.two-col.reverse .grid{ direction:rtl; }
.two-col.reverse .grid > *{ direction:ltr; }
.feature-list{ list-style:none; padding:0; margin:20px 0 0; display:grid; gap:12px; }
.feature-list li{ display:flex; gap:10px; font-size:.9rem; align-items:flex-start; }
.feature-list li .dot{
  width:22px; height:22px; border-radius:50%; background:var(--cream); color:var(--terracotta);
  display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:.75rem; font-weight:bold;
}

/* =========================================================
   SERVIZI CARDS
   ========================================================= */
.servizi-cards{ background:var(--cream-soft); padding:70px 24px; }
.servizi-cards .cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:36px; }
.s-card{
  background:#fff; border-radius:16px; padding:30px 26px; box-shadow:var(--shadow-soft);
  border-top:4px solid var(--terracotta); position:relative;
}
.s-card.highlight{ border-top-color:var(--purple); }
.s-card .icn{
  width:52px; height:52px; border-radius:14px; background:var(--cream); color:var(--terracotta);
  display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:16px;
}
.s-card.highlight .icn{ background:#f7d8ee; color:var(--purple); }
.s-card h3{ font-size:1.15rem; margin-bottom:8px; }
.s-card p{ font-size:.86rem; color:#6b5647; line-height:1.55; margin:0 0 14px; }
.s-card .tag{
  display:inline-block; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:999px;
  background:var(--cream); color:var(--terracotta); margin-bottom:10px;
}
.s-card.highlight .tag{ background:#f7d8ee; color:var(--purple); }
.s-card .price{ font-size:.8rem; color:var(--brown); font-weight:600; }
.s-card a.more{ display:inline-block; margin-top:14px; font-size:.82rem; font-weight:700; color:var(--purple); }

/* =========================================================
   PRICING TABLE (Orario e Tariffe)
   ========================================================= */
.price-table{ width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft); }
.price-table th,.price-table td{ padding:16px 20px; text-align:left; font-size:.9rem; }
.price-table thead th{ background:var(--purple); color:#fff; font-family:Georgia,serif; font-weight:normal; }
.price-table tbody tr:nth-child(even){ background:var(--cream-soft); }
.price-table td.amount{ font-weight:700; color:var(--terracotta); }
.hours-box{ background:var(--cream); border-radius:var(--radius-md); padding:22px 26px; margin-top:22px; }
.hours-box h4{ font-size:1rem; margin-bottom:10px; color:var(--purple); }
.hours-box p{ margin:0; }
.two-col.bg-crema{ background:var(--cream-soft); }
.two-col .btn-row{ margin-top:20px; }
.wp-block-dingoranch-pricing-table.bg-crema{ background:var(--cream-soft); }
/* Quando un riquadro note (info-box) segue subito una tabella tariffe,
   li ravviciniamo come se fossero nella stessa sezione */
.wp-block-dingoranch-pricing-table + .wp-block-dingoranch-info-box{ padding-top:0; }

/* =========================================================
   STAFF
   ========================================================= */
.staff-section{ background:#fff; }
.staff-grid{ display:grid; grid-template-columns:repeat(var(--staff-cols,3),1fr); gap:26px; margin-top:36px; }
.staff-card{ text-align:center; background:var(--cream-soft); border-radius:var(--radius-md); padding:26px 18px; }
.staff-avatar{
  width:96px; height:96px; border-radius:50%; margin:0 auto 14px; overflow:hidden;
  background:linear-gradient(135deg, var(--purple), var(--terracotta));
  display:flex; align-items:center; justify-content:center; color:#fff; font-family:Georgia,serif; font-size:1.4rem;
  box-shadow:0 8px 18px rgba(149,1,121,.25);
}
.staff-avatar img{ width:100%; height:100%; object-fit:cover; }
.staff-card h4{ font-size:.95rem; margin:0 0 4px; }
.staff-card .role{ font-size:.74rem; color:var(--purple); font-weight:600; margin-bottom:8px; }
.staff-card .bio{ font-size:.78rem; color:#7a5c46; line-height:1.5; }
.staff-card a.staff-link{ display:inline-block; margin-top:10px; font-size:.76rem; font-weight:700; color:var(--terracotta); }

/* Single staff member */
.single-staff-hero{ background:var(--purple); color:#fff; padding:60px 24px; text-align:center; }
.single-staff-hero .avatar{
  width:140px; height:140px; border-radius:50%; margin:0 auto 18px; overflow:hidden; border:4px solid rgba(255,255,255,.4);
}
.single-staff-hero .avatar img{ width:100%; height:100%; object-fit:cover; }
.single-staff-body{ max-width:var(--maxw); margin:0 auto; padding:60px 24px; }
.single-staff-body .entry-content{ background:none; }
.cert-list{ list-style:none; padding:0; margin:20px 0; display:grid; gap:10px; }
.cert-list li{ background:var(--cream-soft); border-radius:10px; padding:0 14px; font-size:.88rem; display:flex; gap:10px; align-items:center; }
.cert-list li:before{ content:"🎓"; }
.social-links{ display:flex; gap:10px; margin-top:20px; }
.social-links a{ width:38px; height:38px; border-radius:50%; background:var(--cream); color:var(--terracotta); display:flex; align-items:center; justify-content:center; }
.social-links a svg, .social-row a svg{ display:block; }

/* =========================================================
   GALLERY
   ========================================================= */
.gallery-section{ background:var(--cream-soft); }
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:30px; }
.g-tile{
  border-radius:12px; aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  font-size:1.6rem; color:rgba(255,255,255,.85); overflow:hidden; position:relative;
}
.g-tile img{ width:100%; height:100%; object-fit:cover; }
.g-tile.c1{ background:linear-gradient(135deg,#c2722f,#e6a153); }
.g-tile.c2{ background:linear-gradient(135deg,#950179,#c2722f); }
.g-tile.c3{ background:linear-gradient(135deg,#392119,#950179); }
.g-tile.c4{ background:linear-gradient(135deg,#e6a153,#f6dcb9); color:#a5773f; }

/* =========================================================
   EVENTI
   ========================================================= */
.eventi-section{ background:var(--cream-soft); }
.eventi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; margin-top:36px; }
.event-card{
  background:#fff; border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
}
.event-card .cover{
  aspect-ratio:16/10; position:relative; overflow:hidden;
  background:linear-gradient(135deg, var(--purple), var(--terracotta));
}
.event-card .cover img{ width:100%; height:100%; object-fit:cover; }
.event-card .cover .date-badge{
  position:absolute; top:14px; left:14px; background:#fff; color:var(--purple);
  border-radius:10px; padding:6px 12px; font-size:.72rem; font-weight:700; text-align:center; line-height:1.2;
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}
.event-card .cover .date-badge .day{ font-size:1.1rem; display:block; font-family:Georgia,serif; }
.event-card .body{ padding:20px; flex:1; display:flex; flex-direction:column; }
.event-card h3{ font-size:1.05rem; margin-bottom:6px; }
.event-card .event-date{ font-size:.76rem; color:var(--terracotta); font-weight:700; margin-bottom:8px; }
.event-card p{ font-size:.85rem; color:#6b5647; line-height:1.5; flex:1; margin:0 0 14px; }
.event-card .past-tag{
  display:inline-block; font-size:.68rem; font-weight:700; padding:4px 10px; border-radius:999px;
  background:#eee; color:#888; margin-bottom:8px; align-self:flex-start;
}
.btn.whatsapp{
  background:#25D366; color:#fff; display:inline-flex; align-items:center; gap:8px; justify-content:center;
}
.btn.whatsapp:hover{ background:#1ebe5b; }

/* Single evento */
.single-event-hero{ position:relative; color:#fff; }
.single-event-hero .cover-img{ width:100%; aspect-ratio:21/9; object-fit:cover; }
.single-event-hero .cover-img.ph{
  background:linear-gradient(135deg, var(--purple), var(--terracotta));
  display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.85); font-size:.9rem;
}
.single-event-hero .overlay{
  position:absolute; left:0; right:0; bottom:0; padding:36px 24px;
  background:linear-gradient(0deg, rgba(57,33,25,.88), rgba(57,33,25,0));
}
.single-event-hero .overlay .inner{ max-width:820px; margin:0 auto; }
.single-event-hero .event-date-lg{
  display:inline-block; background:var(--purple); padding:6px 16px; border-radius:999px; font-size:.78rem; font-weight:700; margin-bottom:10px;
}
.single-event-body{ max-width:820px; margin:0 auto; padding:50px 24px; }
.event-cta-box{
  background:var(--cream); border-radius:var(--radius-md); padding:26px; text-align:center; margin-top:30px;
}
.event-cta-box p{ font-size:.86rem; color:#6b5647; margin-bottom:16px; }

/* =========================================================
   PRENOTAZIONE PENSIONE (bottone WhatsApp)
   ========================================================= */
.availability-section{ background:#fff; }

/* =========================================================
   CONTATTI
   ========================================================= */
.contact-wrap{ display:grid; grid-template-columns:.85fr 1fr; gap:48px; align-items:start; }
.contact-card{
  background:var(--cream); border-radius:var(--radius-md); padding:32px;
  box-shadow:var(--shadow-soft);
}
.contact-card .row{ display:flex; gap:14px; align-items:flex-start; margin-bottom:20px; font-size:1rem; }
.contact-card .row .ic{
  width:38px; height:38px; border-radius:50%; background:var(--purple); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.come-arrivare-title{ padding-top:16px; border-top:1px solid rgba(57,33,25,.1); }
.contact-form-col{
  background:#fff; border-radius:var(--radius-md); padding:32px; box-shadow:var(--shadow-soft);
}
.contact-form{ display:grid; gap:16px; }
.contact-form input, .contact-form textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid #e6d3ba; font-family:inherit; font-size:1rem; background:#fff;
  transition:border-color .15s, box-shadow .15s;
}
.contact-form label{ font-size:1rem; font-weight:600; margin-bottom:4px; display:block; }
.contact-form select{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid #e6d3ba; font-family:inherit; font-size:1rem; background:#fff;
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{
  outline:none; border-color:var(--purple); box-shadow:0 0 0 3px rgba(149,1,121,.15);
}
.contact-form .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.field-group-label{ font-size:1rem; font-weight:600; margin-bottom:4px; display:block; color:var(--brown); }
.contact-form hr.field-sep{ border:0; border-top:1px solid #e6d3ba; margin:2px 0; }
.privacy-field{ display:flex; background:var(--cream-soft); border-radius:10px; padding:14px 16px; }
.privacy-field label{ display:flex; align-items:flex-start; gap:10px; font-size:1rem; font-weight:400; }
.privacy-field input[type="checkbox"]{ width:auto; flex-shrink:0; margin-top:3px; accent-color:var(--purple); }
.privacy-field a{ color:var(--purple); font-weight:600; text-decoration:underline; }
.hp-field{ position:absolute; left:-9999px; top:-9999px; height:0; width:0; overflow:hidden; }
.form-feedback{ padding:12px 16px; border-radius:10px; margin-bottom:16px; font-size:1rem; font-weight:600; }
.form-feedback--ok{ background:#e5f3e6; color:#2c6b2f; }
.form-feedback--errore{ background:#fbe7e5; color:#a4342a; }
.map-embed{ border-radius:var(--radius-md); overflow:hidden; margin-top:40px; border:0; width:100%; height:380px; }
.map-embed iframe{ width:100%; height:100%; display:block; border:0; }
.map-embed--placeholder{ display:flex; align-items:center; justify-content:center; background:var(--cream-soft); color:#8a6f5f; font-size:1rem; text-align:center; padding:20px; }
@media (min-width:981px){
  .contact-card{ position:sticky; top:24px; }
}
.come-arrivare-title{ color:var(--purple); margin-top:24px; }
.come-arrivare-text{ font-size:1rem; color:#6b5647; }
.contact-form-title{ color:var(--brown); margin-bottom:16px; }
.form-note{ font-size:1rem; color:#8a6f5f; }

/* =========================================================
   CTA BANNER
   ========================================================= */
.cta-banner{ background:var(--purple); color:#fff; text-align:center; padding:60px 24px; }
.cta-banner h2{ font-size:1.8rem; margin-bottom:10px; }
.cta-banner p{ opacity:.92; margin-bottom:24px; font-size:.95rem; }

/* =========================================================
   ENTRY CONTENT (editor content on generic pages)
   ========================================================= */
.entry-content{ background:#fff; padding:60px 24px; }
.entry-content .container{ max-width:820px; }
.entry-content h2{ font-size:1.5rem; color:var(--purple); margin-top:1.4em; }
.entry-content h3{ font-size:1.2rem; color:var(--terracotta); }
.entry-content ul{ padding-left:1.3em; margin-bottom:1em; }
.entry-content li{ margin-bottom:.4em; }

/* =========================================================
   FOOTER
   ========================================================= */
footer.site-footer{ background:var(--brown); color:#d8c3ae; padding:54px 24px 20px; font-size:.85rem; }
footer.site-footer .footer-grid{ max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:30px; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-brand{ display:flex; gap:12px; align-items:center; margin-bottom:14px; }
.footer-brand img{ height:46px; width:46px; border-radius:50%; }
.footer-brand strong{ color:#fff; font-family:Georgia,serif; font-size:1.05rem; }
footer.site-footer h5{ color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:1px; margin-bottom:14px; }
footer.site-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:9px; }
footer.site-footer a{ color:#d8c3ae; }
footer.site-footer a:hover{ color:#fff; }
.footer-bottom{ max-width:var(--maxw); margin:18px auto 0; display:flex; justify-content:space-between; font-size:.75rem; opacity:.75; flex-wrap:wrap; gap:8px; padding:0 24px 0; }
.social-row{ display:flex; gap:10px; margin-top:14px; }
.social-row a{ width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:.75rem; text-transform:lowercase; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:980px){
  .two-col .grid{ grid-template-columns:1fr; }
  .servizi-cards .cards{ grid-template-columns:1fr; }
  .staff-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  footer.site-footer .footer-grid{ grid-template-columns:1fr 1fr; }
  .contact-wrap{ grid-template-columns:1fr; }
}

@media (max-width:640px){
  .staff-grid{ grid-template-columns:1fr; }
  .contact-form .field-row{ grid-template-columns:1fr; }
}
