:root {
  --ivory:#f7f3ea;
  --paper:#fcfaf5;
  --wine:#671d27;
  --charcoal:#201a18;
  --muted:#665d57;
  --line:#c8bab0;
  --pink:#edccc5;
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Helvetica Neue',Arial,sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}

body {
  margin:0;
  background:var(--ivory);
  color:var(--charcoal);
  font:16px/1.65 var(--sans);
  -webkit-font-smoothing:antialiased
}

a {
  color:inherit;
  text-decoration:none
}

button,input,textarea {
  font:inherit
}

button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent
}

button,a,summary {
  touch-action:manipulation
}

button {
  cursor:pointer
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid currentColor;
  outline-offset:5px
}

::selection {
  background:var(--wine);
  color:var(--ivory)
}

h1,h2,h3,p {
  margin-top:0
}

h1,h2,h3 {
  font-family:var(--serif);
  font-weight:400;
  line-height:1.07;
  letter-spacing:-.045em
}

em {
  color:var(--wine);
  font-weight:400
}

h2 {
  font-size: clamp(2.2rem,3.5vw,3.5rem);
  margin-bottom: 28px;
}

h3 {
  font-size:2rem
}

p {
  margin-bottom:22px
}

.wrap {
  width:min(1280px,90%);
  margin-inline:auto
}

.section {
  padding-block: 88px;
}

.eyebrow {
  font: 600 .8rem/1.5 var(--sans);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--wine);
  margin-bottom: 26px;
}

.header {
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  background:var(--ivory);
  z-index:10
}

.header-inner {
  width:min(1280px,90%);
  margin:auto;
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}

.brand {
  font-size: 1.65rem;
  font-weight: 400;
  letter-spacing: .075em;
  white-space: nowrap;
  font-family: var(--serif);
  display: inline-flex;
  align-items: center;
  gap: .38em;
  line-height: 1.1;
}

.header nav {
  display: flex;
  align-items: center;
  gap: 26px;
}

.header nav>a {
  font-size: .8rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 600;
}

.header nav>a:not(.button):hover {
  color:var(--wine);
  text-decoration:underline;
  text-underline-offset:6px
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  background: var(--wine);
  color: var(--ivory);
  padding: 17px 24px;
  border: 1px solid var(--wine);
  font: 600 .875rem/1.5 var(--sans);
  letter-spacing: .055em;
  text-transform: uppercase;
  min-height: 52px;
  transition: background .2s,color .2s;
  font-size: .875rem;
  border-radius: 3px;
}

.button:hover {
  background:var(--charcoal);
  border-color:var(--charcoal);
  color:var(--ivory)
}

.button span {
  font-size:1.2rem;
  line-height:1
}

.button.small {
  padding:13px 20px;
  min-height:46px;
  margin-left:20px
}

.outline {
  background:transparent;
  color:var(--charcoal);
  border-color:var(--charcoal)
}

.hero {
  padding-top: 48px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--line);
}

.hero h1 {
  font-size: clamp(2.5rem,4.9vw,4.9rem);
  line-height: 1.1;
  margin-bottom: 36px;
  letter-spacing: -.04em;
}

.location {
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 0;
  margin-top: 26px;
}

.split {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 72px;
  align-items: start;
}

.lead {
  font-size: 1.0625rem;
  color: var(--muted);
  max-width: 530px;
  line-height: 1.7;
  margin-top: 24px;
}

.services {
  padding-top: 0;
}

.number {
  font:500 .8rem var(--sans);
  letter-spacing:.04em;
  color:var(--wine)
}

.text-link {
  display: inline-flex;
  gap: 16px;
  align-items: center;
  font-size: .875rem;
  letter-spacing: .025em;
  text-transform: none;
  color: var(--wine);
  font-weight: 600;
  min-height: 48px;
  margin-top: 20px;
}

.text-link:hover {
  text-decoration:underline;
  text-underline-offset:6px
}

.perspective {
  padding-block: 64px;
  background: var(--wine);
  color: var(--ivory);
}

.perspective .eyebrow {
  color:var(--pink)
}

.perspective h3 {
  margin: 0;
  font-size: clamp(2.25rem,3.7vw,3.7rem);
}

.perspective em {
  color:var(--pink)
}

.perspective-copy {
  border-left: 1px solid #ae747b;
  padding-left: 32px;
  font-size: 1.04rem;
  color: #f0ded7;
}

.perspective-copy p:last-child {
  margin:0
}

.people {
  background:var(--paper)
}

.people .button {
  margin-top:8px
}

.steps {
  list-style: none;
  padding: 0;
  margin: 36px 0 0;
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
}

.steps li {
  padding: 8px 28px 8px 0;
}

.steps li+li {
  border-left: 1px solid var(--line);
  padding-left: 28px;
}

.steps h3 {
  margin: 26px 0 16px;
  font-size: 1.85rem;
}

.steps p {
  color: var(--muted);
  font-size: 1rem;
  margin-bottom: 0;
}

.firm {
  border-top:1px solid var(--line)
}

.contact {
  background:var(--charcoal);
  color:var(--ivory)
}

.contact-grid {
  display: grid;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr);
  gap: 80px;
}

.contact .eyebrow {
  color:var(--pink)
}

.contact h2 {
  font-size: clamp(3rem,6vw,5.5rem);
}

.contact .lead {
  color:#d0c5bf;
  max-width:380px;
  margin-bottom:38px
}

.email {
  font-size:1.04rem;
  display:inline-block;
  overflow-wrap:anywhere;
  margin-bottom:20px;
  border-bottom:1px solid #91817a;
  padding-bottom:6px
}

.appointment {
  border-top:1px solid #6f625b;
  padding-top:24px;
  color:#c6b9b1;
  font-size:.9rem;
  margin-top:28px
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px
}

label {
  display: block;
  font-size: .875rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: #d0c5bf;
  margin-bottom: 28px;
}

input:not([type="radio"]),textarea {
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #91817a;
  border-radius:0;
  background:transparent;
  color:var(--ivory);
  padding:12px 0;
  font-size:1rem;
  letter-spacing:normal;
  resize:vertical;
  min-height:48px
}

.form-note {
  font-size: .875rem;
  color: #c6b9b1;
  max-width: 470px;
}

.pale {
  background:var(--pink);
  border-color:var(--pink);
  color:var(--charcoal)
}

.pale:hover {
  background:var(--ivory);
  color:var(--charcoal);
  border-color:var(--ivory)
}

.mail-result {
  padding:24px;
  border:1px solid #91817a;
  margin-top:28px;
  font-size:.93rem
}

.mail-result .text-link {
  color:var(--pink);
  margin:0
}

.result-actions {
  display:flex;
  flex-wrap:wrap;
  gap:24px;
  align-items:center
}

.result-actions button {
  background: transparent;
  border: 1px solid #91817a;
  color: var(--ivory);
  padding: 9px 14px;
  border-radius: 3px;
  min-height: 44px;
}

.mail-result textarea {
  font-size:.88rem;
  margin-top:16px
}

#copy-status {
  margin:12px 0 0
}

footer {
  background:var(--wine);
  color:var(--ivory);
  padding:48px 0 24px
}

.footer-top {
  display:flex;
  justify-content:space-between;
  gap:40px
}

.footer-top p {
  font-size: 1rem;
  color: var(--pink);
  margin-top: 20px;
}

.footer-top nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px 50px;
  align-content:start;
  font-size:.9rem
}

.footer-top nav a {
  padding:7px 0
}

.footer-top nav a:hover {
  text-decoration:underline
}

.footer-bottom {
  border-top: 1px solid #a7636d;
  margin-top: 34px;
  padding-top: 24px;
  display: flex;
  justify-content: space-between;
  gap: 36px;
  font-size: .8rem;
  color: #edccc5;
}

.footer-bottom p {
  max-width:650px;
  margin:0;
  text-align:right
}

.skip {
  position:fixed;
  top:-100px;
  left:20px;
  background:var(--ivory);
  padding:12px;
  z-index:100
}

.skip:focus {
  top:10px
}

[hidden] {
  display:none!important
}

.menu-toggle {
  background: transparent;
  border: 1px solid var(--line);
  padding: 10px 15px;
  color: var(--charcoal);
  min-height: 44px;
  font-size: .875rem;
  border-radius: 3px;
}

.menu-toggle span {
  margin-left:12px
}
/* Identity: typographic logo, with a fine divider and slightly larger IN. */
.brand-in { font-size: 1.16em; }
.brand-bar { width: 1px; height: 1em; background: var(--wine); }
.brand-legal { font-size: 1em; }
footer .brand-bar { background: var(--pink); }

/* Two immediately visible routes, without floating cards. */
.hero h1 span { color: var(--wine); }
.hero-doors { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 44px; }
.door { border-top: 1px solid var(--line); padding-top: 20px; }
.door h2 { font: 600 .875rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 10px; }
.door p { max-width: 510px; margin-bottom: 8px; color: var(--muted); }
.door .text-link { margin-top: 0; }

/* Service descriptions remain visible so visitors can recognize their need. */
.service-intro { margin-bottom: 18px; }
.service-list { list-style: none; margin: 0; padding: 0; }
.service-list li { border-top: 1px solid var(--line); padding: 19px 0; }
.service-list li:last-child { border-bottom: 1px solid var(--line); }
.service-list h3 { font: 600 .9375rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .035em; margin: 0 0 6px; }
.service-list p { font-size: 1rem; line-height: 1.65; color: var(--muted); margin: 0; }
.people .button { margin-top: 28px; }
.perspective-intro { color: var(--ivory); font-weight: 500; font-size: 1.2rem; }

/* Company engagement options. The external legal area is the central offer. */
.modalities h2 { max-width: 850px; }
.modes { list-style: none; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 36px; padding: 0; margin: 40px 0 28px; }
.modes li { border-top: 1px solid var(--line); padding-top: 20px; }
.modes h3 { font: 600 1rem/1.5 var(--sans); letter-spacing: .035em; text-transform: uppercase; margin: 24px 0 14px; }
.modes p { color: var(--muted); margin-bottom: 0; }
.modes .mode-core { border-top: 3px solid var(--wine); padding-top: 18px; }
.mode-core h3 { color: var(--wine); }

/* Situations and accompaniment. */
.situation-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 72px; margin-top: 36px; }
.situation-columns h3 { font: 600 .9375rem/1.5 var(--sans); text-transform: uppercase; letter-spacing: .05em; margin: 0 0 18px; color: var(--wine); }
.situation-columns ul { padding-left: 20px; margin: 0; }
.situation-columns li { padding-left: 4px; margin-bottom: 12px; }
.situation-columns li::marker { color: var(--wine); }
.method { background: var(--paper); }
.method h2 { max-width: 920px; }
.firm-intro { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.35fr); gap: 56px; margin-bottom: 0; }
.firm-intro h2 { font-size: clamp(2.8rem,4.8vw,4.4rem); }
.firm-intro p { font-size: 1.0625rem; }
.firm-intro p:last-child { margin: 0; }

/* Contact selector uses native radios for keyboard and screen reader access. */
.consultation-type { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.consultation-type legend { color: #d0c5bf; font-size: .875rem; letter-spacing: .05em; text-transform: uppercase; margin-bottom: 14px; }
.type-options { display: flex; flex-wrap: wrap; gap: 14px 32px; }
.type-options label { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; margin: 0; }
.type-options input { accent-color: var(--pink); width: 18px; height: 18px; margin: 0; }
.optional { text-transform: none; letter-spacing: normal; }

.hero-doors>*,.split>*,.firm-intro>*,.contact-grid>*,.modes>*,.steps>*,.form-row>* { min-width: 0; }

@media (max-width: 1100px) {
  .header nav { gap: 18px; }
  .button.small { margin-left: 0; }
  .split,.contact-grid,.situation-columns { gap: 44px; }
  .firm-intro { gap: 40px; }
  .steps { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 0; }
  .steps li:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 90px; }
  .wrap,.header-inner { width: 88%; }
  .header-inner { min-height: 74px; flex-wrap: wrap; gap: 0; }
  .brand { font-size: 1.35rem; }
  .header nav { width: 100%; flex-wrap: wrap; gap: 8px 24px; padding: 0 0 18px; }
  .header nav>a { padding-block: 10px; }
  .header nav .button { padding: 10px 16px; }
  .header nav.mobile-collapsed { display: none; }
  .header nav.mobile-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding-top: 8px; }
  .header nav.mobile-open a { padding: 13px 0; border-top: 1px solid var(--line); }
  .header nav.mobile-open .button { padding: 14px 18px; margin-top: 10px; }
  .hero { padding-top: 28px; padding-bottom: 24px; }
  .hero .eyebrow { margin-bottom: 18px; }
  .hero h1 { font-size: clamp(2rem,7.5vw,3rem); margin-bottom: 24px; line-height: 1.13; }
  .hero-doors { grid-template-columns: 1fr; gap: 16px; }
  .door { padding-top: 14px; }
  .door h2 { margin-bottom: 7px; }
  .door p { line-height: 1.5; margin-bottom: 4px; }
  .door .text-link { font-size: .875rem; min-height: 44px; }
  .location { margin-top: 18px; font-size: .75rem; }
  .section { padding-block: 56px; }
  h2 { font-size: clamp(2rem,7.5vw,3rem); }
  .split,.firm-intro,.contact-grid,.situation-columns { grid-template-columns: 1fr; gap: 28px; }
  .eyebrow { margin-bottom: 22px; }
  .lead { font-size: 1rem; margin-top: 20px; }
  .service-list li { padding-block: 16px; }
  .service-list h3 { font-size: .875rem; }
  .perspective { padding-block: 48px; }
  .perspective h3 { font-size: clamp(2rem,8vw,3rem); }
  .perspective-copy { padding-left: 20px; font-size: 1rem; }
  .perspective-intro { font-size: 1.0625rem; }
  .modes { grid-template-columns: 1fr; gap: 26px; margin-top: 28px; }
  .modes li { display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 12px 18px; }
  .modes .number { padding-top: 5px; }
  .modes h3 { margin: 0; font-size: .9375rem; }
  .modes p { grid-column: 2; }
  .button { padding: 14px 18px; gap: 16px; font-size: .875rem; text-transform: none; letter-spacing: .015em; }
  .situation-columns { gap: 28px; margin-top: 28px; }
  .steps { grid-template-columns: 1fr; gap: 0; margin-top: 28px; }
  .steps li,.steps li+li { border: 0; border-top: 1px solid var(--line); padding: 22px 0; display: grid; grid-template-columns: 26px minmax(0,1fr); gap: 12px 18px; }
  .steps .number { padding-top: 9px; }
  .steps h3 { margin: 0; font-size: 1.8rem; }
  .steps p { grid-column: 2; }
  .firm-intro { margin-bottom: 0; gap: 8px; }
  .firm-intro h2 { font-size: 3rem; }
  .firm-intro p { font-size: 1rem; }

  .contact h2 { font-size: clamp(3.2rem,16vw,4.3rem); }
  .contact .lead { max-width: none; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .footer-top { flex-direction: column; gap: 20px; }
  .footer-top nav { max-width: 320px; gap: 8px 40px; }

  .footer-bottom { flex-direction: column; gap: 15px; }
  .footer-bottom p { text-align: left; }
  .mail-result { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; }
}
@media print {
  .header,form,.mail-result { display: none; }
  body,section,footer,.perspective { background: white !important; color: black !important; }
  .section,.perspective { padding-block: 24px; }
  h2 { font-size: 28pt; }
  a,.perspective p { color: inherit; }
  .brand-bar { background: black; }
  footer .footer-top nav { display: none; }
}

/* Direct institutional contact channels, kept in the page flow. */
.contact-channels {
  border-top: 1px solid #6f625b;
  padding-top: 24px;
  margin-bottom: 28px;
}
.contact-channels .eyebrow { margin-bottom: 8px; }
.phone-number { font-size: 1.25rem; margin-bottom: 16px; }
.whatsapp-button {
  color: var(--ivory);
  background: transparent;
  border-color: var(--pink);
  font-size: .875rem;
  letter-spacing: .015em;
  text-transform: none;
}
.whatsapp-button:hover { background: var(--ivory); color: var(--charcoal); border-color: var(--ivory); }
.email-channel { margin-top: 30px; }
.email-channel .email { margin-bottom: 0; }
@media (max-width: 380px) {
  .whatsapp-button { gap: 12px; padding-inline: 14px; }
}

/* Form instruction stays with its controls on every screen size. */
.contact .form-intro { margin-top: 0; margin-bottom: 28px; max-width: none; }
.honeypot { display: none; }
.submission-status { margin-top: 24px; }
#contact-form [disabled] { opacity: .65; cursor: wait; }
