.contacts-page {
  --contacts-ink: #183b30;
  --contacts-sage: #dce2d8;
  --contacts-soft: #f1eee6;
  --contacts-gold: #b89a5a;
}

.contacts-page .section-shell { width: min(1240px, calc(100% - 72px)); margin-inline: auto; }
.contacts-page main h1, .contacts-page main h2, .contacts-page main h3, .contacts-page main p { margin-top: 0; }
.contacts-page main h1, .contacts-page main h2 { font: 400 clamp(42px, 5vw, 76px)/1.02 var(--serif); }
.contacts-page main h3 { font: 500 clamp(23px, 2vw, 32px)/1.1 var(--serif); }
.contacts-page main p { font-size: 16px; line-height: 1.7; }
.contacts-page main .eyebrow { margin-bottom: 18px; color: var(--contacts-gold); font-size: 10px; font-weight: 700; letter-spacing: .2em; line-height: 1.2; }
.section-intro { max-width: 650px; }
.section-intro--center { margin-inline: auto; text-align: center; }

.contacts-direct { padding-block: clamp(88px, 12vw, 160px); }
.contacts-direct .section-intro > p:last-child, .contacts-orders .section-intro > p:last-child { max-width: 620px; margin-inline: auto; }
.contact-methods { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-top: 68px; border: 1px solid rgba(24, 59, 48, .16); background: rgba(24, 59, 48, .16); }
.contact-method { min-width: 0; min-height: 226px; padding: 32px 28px; background: var(--ivory); }
.contact-icon { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 31px; border: 1px solid rgba(24, 59, 48, .4); border-radius: 50%; font-size: 19px; }
.contact-icon svg { display: block; width: 19px; height: 19px; }
.contacts-page .contact-method h2 { margin-bottom: 10px; font: 500 clamp(27px, 2.05vw, 34px)/1.08 var(--serif); overflow-wrap: break-word; text-wrap: balance; }
.contact-method p { margin: 0; color: #486158; font-size: 14px; }
.contact-method p a { color: inherit; text-underline-offset: 4px; }

.contacts-form-section { padding-block: clamp(82px, 10vw, 130px); background: var(--contacts-sage); }
.form-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(54px, 10vw, 150px); align-items: start; }
.form-layout .section-intro { padding-top: 4px; }
.contact-form { padding: clamp(25px, 4vw, 52px); background: var(--ivory); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 20px; }
.contact-form label { display: grid; gap: 9px; color: var(--contacts-ink); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.contact-form label span { color: #8a3d32; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid rgba(24, 59, 48, .35); border-radius: 0; background: transparent; padding: 12px 13px; color: var(--contacts-ink); font: 400 15px/1.45 var(--sans); letter-spacing: 0; text-transform: none; }
.contact-form textarea { min-height: 130px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus, .contact-button:focus-visible, .order-areas a:focus-visible { outline: 3px solid var(--contacts-gold); outline-offset: 3px; }
.form-full { grid-column: 1 / -1; }
.honeypot { position: absolute !important; left: -9999px !important; }
.form-privacy { margin: 22px 0; color: #52685f; font-size: 12px !important; line-height: 1.6 !important; }
.contact-button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 25px; border: 1px solid var(--contacts-ink); background: var(--contacts-ink); color: var(--ivory); font: 700 10px/1 var(--sans); letter-spacing: .15em; text-align: center; text-decoration: none; transition: background .2s, color .2s; }
.contact-button:hover { background: #285746; }
.form-status { min-height: 22px; margin: 16px 0 0; color: #37564a; font-size: 13px !important; }

.contacts-visit { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(46px, 8vw, 120px); align-items: center; padding-block: clamp(90px, 12vw, 160px); }
.visit-copy > p:not(.eyebrow) { max-width: 520px; }
.visit-details { display: grid; gap: 17px; margin: 42px 0 0; }
.visit-details div { display: grid; grid-template-columns: 110px 1fr; gap: 14px; padding-top: 16px; border-top: 1px solid rgba(24, 59, 48, .18); }
.visit-details dt { color: var(--contacts-gold); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.visit-details dd { margin: 0; font-size: 14px; }
.visit-details a { color: inherit; text-underline-offset: 4px; }
.visit-visuals { display: grid; grid-template-columns: 1.25fr .75fr; align-items: stretch; gap: 16px; }
.contact-image { display: block; overflow: hidden; background: var(--contacts-soft); }
.contact-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.contact-image--visit { height: clamp(370px, 30vw, 460px); }
.photo-placeholder { display: grid; place-items: center; min-height: 425px; border: 1px solid rgba(24, 59, 48, .38); background: linear-gradient(135deg, #e6e3da, #ced7ca); color: #37564a; text-align: center; }
.photo-placeholder span, .map-placeholder span { padding: 13px 16px; border: 1px solid currentColor; font-size: 10px; font-weight: 700; letter-spacing: .14em; line-height: 1.6; }
.map-placeholder { display: grid; place-items: center; min-height: 235px; padding: 20px; border: 1px solid rgba(24, 59, 48, .32); background: var(--contacts-soft); color: #5c685d; text-align: center; }
.map-link { padding: 13px 16px; border: 1px solid currentColor; color: inherit; font-size: 10px; font-weight: 700; letter-spacing: .14em; line-height: 1.6; text-decoration: none; transition: background .2s, color .2s; }
.map-link:hover { background: var(--contacts-ink); color: var(--ivory); }
.map-panel { position: relative; height: clamp(370px, 30vw, 460px); overflow: hidden; border: 1px solid rgba(24, 59, 48, .32); background: var(--contacts-soft); }
.contact-map { display: block; width: 100%; height: 100%; border: 0; filter: saturate(.72) contrast(.96); }
.map-consent-notice{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:18px;padding:28px;background:#edf1e8;color:var(--contacts-ink);text-align:center}.map-consent-notice p{max-width:270px;margin:0;font-size:14px;line-height:1.6}.map-consent-button{min-height:44px;border:1px solid var(--contacts-ink);background:transparent;color:var(--contacts-ink);padding:0 17px;font:700 9px/1 var(--sans);letter-spacing:.12em;cursor:pointer}.map-consent-button:hover,.map-consent-button:focus-visible{background:var(--contacts-ink);color:var(--ivory);outline:none}.map-panel.is-map-enabled .map-consent-notice{display:none}
.map-link--overlay { position: absolute; z-index: 1; right: 18px; bottom: 18px; border-color: var(--contacts-ink); background: rgba(250, 248, 243, .94); color: var(--contacts-ink); }

.contacts-orders { padding-block: clamp(90px, 12vw, 150px); background: var(--contacts-ink); color: var(--ivory); }
.contacts-orders h2, .order-areas h3 { color: var(--ivory); }
.contacts-orders .section-intro { max-width: 770px; }
.contacts-orders .section-intro > p:last-child, .order-areas p { color: #e1e8df; }
.order-areas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 67px; }
.order-areas a { display: flex; min-height: 325px; flex-direction: column; border: 1px solid rgba(250, 248, 243, .35); padding: 27px 25px; color: var(--ivory); text-decoration: none; transition: background .25s, transform .25s; }
.order-areas a:hover { transform: translateY(-5px); background: rgba(250, 248, 243, .1); }
.order-areas span { color: var(--contacts-gold); font-size: 11px; font-weight: 700; letter-spacing: .14em; }
.order-areas h3 { margin: 42px 0 15px; font-size: 28px; }
.order-areas p { margin-bottom: 25px; font-size: 14px; line-height: 1.65; }
.order-areas b { margin-top: auto; font-size: 10px; letter-spacing: .15em; }
.orders-action { margin-top: 52px; text-align: center; }
.contact-button--outline { border-color: var(--ivory); background: transparent; color: var(--ivory); }
.contact-button--outline:hover { background: var(--ivory); color: var(--contacts-ink); }

.contacts-social { padding-block: clamp(100px, 13vw, 175px); text-align: center; }
.contacts-social > p:not(.eyebrow) { max-width: 630px; margin-inline: auto; }
.social-pending { display: flex; align-items: center; justify-content: center; gap: 11px; margin-top: 42px; color: #5c685d; }
.social-pending span { color: var(--contacts-gold); font-size: 21px; }
.social-pending p { margin: 0; font-size: 13px; }
.social-pending a { color: var(--contacts-ink); font-weight: 700; text-underline-offset: 4px; }

.contacts-final { overflow: hidden; background: var(--contacts-sage); }
.contacts-final-inner { display: grid; grid-template-columns: minmax(0, .9fr) minmax(300px, .75fr); gap: clamp(45px, 8vw, 120px); align-items: center; padding-block: clamp(80px, 10vw, 130px); }
.contacts-final h2 { max-width: 680px; }
.contacts-final-inner > div:first-child > p:not(.eyebrow) { max-width: 600px; }
.final-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.contact-button--light { background: transparent; color: var(--contacts-ink); }
.contact-button--light:hover { background: var(--contacts-ink); color: var(--ivory); }
.photo-placeholder--final { min-height: 470px; }
.contact-image--final { height: clamp(420px, 35vw, 540px); }
.contacts-page main a[href^="#"] { scroll-margin-top: 108px; }
.contacts-page .site-footer .footer-cta { color: var(--green); font-size: 9px; }

@media (max-width: 980px) {
  .contact-methods, .order-areas { grid-template-columns: repeat(2, 1fr); }
  .form-layout, .contacts-visit { grid-template-columns: 1fr; gap: 54px; }
  .visit-copy { max-width: 650px; }
  .visit-visuals { width: 100%; max-width: 760px; }
  .contacts-final-inner { grid-template-columns: 1fr; }
  .photo-placeholder--final, .contact-image--final { min-height: 340px; height: 420px; max-width: 680px; }
}

@media (max-width: 780px) {
  .contacts-page .section-shell { width: calc(100% - 40px); }
  .contacts-page main h1, .contacts-page main h2 { font-size: clamp(39px, 11vw, 56px); }
  .contacts-page main p { font-size: 15px; }
  .contacts-direct { padding-block: 78px; }
  .contact-methods, .order-areas, .form-grid { grid-template-columns: 1fr; }
  .contact-method { min-height: 0; padding: 27px 24px; }
  .contact-icon { margin-bottom: 23px; }
  .contacts-page .contact-method h2 { font-size: 26px; }
  .contacts-form-section { padding-block: 70px; }
  .form-layout { gap: 40px; }
  .contact-form { padding: 25px 20px; }
  .contacts-visit { gap: 43px; padding-block: 78px; }
  .visit-visuals { grid-template-columns: 1fr; gap: 12px; }
  .photo-placeholder, .contact-image--visit { min-height: 335px; height: 335px; }
  .map-panel { height: 270px; }
  .map-placeholder { min-height: 160px; }
  .contacts-orders { padding-block: 80px; }
  .order-areas { gap: 11px; margin-top: 47px; }
  .order-areas a { min-height: 245px; padding: 24px 21px; }
  .order-areas h3 { margin-top: 30px; font-size: 27px; }
  .contacts-social { padding-block: 95px; }
  .contacts-final-inner { padding-block: 78px; }
  .photo-placeholder--final, .contact-image--final { min-height: 310px; height: 310px; }
  .final-actions { display: grid; grid-template-columns: 1fr; }
  .contact-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .order-areas a, .contact-button { transition: none; }
  .order-areas a:hover { transform: none; }
}

/* Cartão de localização: ligação direta, sem mapa externo incorporado. */
.location-card{display:flex;flex-direction:column;min-width:0;height:clamp(370px,30vw,460px);overflow:hidden;border:1px solid rgba(24,59,48,.18);background:#faf8f3;color:var(--contacts-ink)}
.location-map-art{min-height:110px;flex:1;overflow:hidden;border-bottom:1px solid rgba(24,59,48,.1)}
.location-map-art svg{display:block;width:100%;height:100%;min-height:110px}
.location-card-copy{padding:24px 18px;text-align:center}
.location-card-label{margin:0 0 12px!important;font:700 9px/1.4 var(--sans)!important;letter-spacing:.18em;color:#806b38}
.contacts-page .location-card h3{margin:0 0 14px;font:500 clamp(22px,2vw,30px)/1.1 var(--serif);color:var(--contacts-ink)}
.location-card-address{margin:0 0 20px!important;font:400 12px/1.65 var(--sans)!important}
.location-directions{display:flex;align-items:center;justify-content:center;gap:9px;min-height:46px;width:100%;border:1px solid var(--contacts-ink);background:var(--contacts-ink);color:var(--ivory);font:700 10px/1.4 var(--sans);letter-spacing:.09em;text-decoration:none;text-transform:uppercase;transition:background .2s,color .2s}
.location-directions svg{width:19px;height:19px;flex-shrink:0}
.location-directions:hover{background:#2c5344}
.location-directions:focus-visible{outline:2px solid #a68b4e;outline-offset:4px}
@media(max-width:780px){
 .location-card{height:auto}
 .location-map-art{flex:none;height:155px}
 .location-map-art svg{min-height:0}
 .location-card-copy{padding:25px 24px 28px}
 .contacts-page .location-card h3{font-size:28px}
 .location-card-address{font-size:14px!important}
 .location-directions{min-height:50px}
}

.contacts-page .special-hours-note{max-width:38em;margin:14px 0 0;font-size:12px;line-height:1.65;color:#486052}
.special-hours-note a{font-weight:600;text-underline-offset:3px}
@media(max-width:780px){.contacts-page .special-hours-note{font-size:13px}}
