/* LVIV — travertine, bronze and the proportions of Roman architecture.
   Presentation layer only: existing text, assets, routes and apps are retained. */
:root { color-scheme: light; }
body { background: #f5f0e6; }
.lviv-site {
  --ink: #302e26;
  --blue: #645039;
  --cream: #f5f0e6;
  --gold: #947142;
  --muted: #696357;
  --stone-line: #d7cbb6;
  background: #f5f0e6;
  color: var(--ink);
  font-family: 'Optima', 'Segoe UI', Arial, sans-serif;
  line-height: 1.8;
}
.lviv-site .wrap { width: min(1240px, 88%); }
.lviv-site h1, .lviv-site h2, .lviv-site h3,
.lviv-site .sector-card-text h3, .lviv-site .team-person h3 {
  font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, Georgia, serif;
  font-weight: 400;
  letter-spacing: -.035em;
}
.lviv-site h2 { color: #3e392e; line-height: 1.17; }
.lviv-site .eyebrow { color: #80613a; letter-spacing: .23em; font-size: 10px; }
.lviv-site a:focus-visible, .lviv-site summary:focus-visible,
.lviv-site button:focus-visible { outline: 3px solid #9b7745; outline-offset: 5px; }

/* A quiet cornice and an ivory masthead keep the original blue-and-gold seal. */
.lviv-site .topline {
  background: #30372d; color: #e4dccd;
  border-bottom: 1px solid #b59b6c; padding: 9px 0;
}
.lviv-site .topline a { color: #f7f0e2; }
.lviv-site .header {
  background: linear-gradient(110deg, #fbf8f0, #eee6d6);
  color: #3c352b; border-bottom: 5px double #b8a17b;
  box-shadow: 0 3px 0 #fdfaf3, 0 4px 0 #d7cab4;
  position: relative; z-index: 25;
}
.lviv-site .navrow { gap: 30px; padding: 19px 0 22px; }
.lviv-site .wordmark { gap: 17px; flex-shrink: 0; font-size: 34px; }
.lviv-site .brand-icon { width: 105px; height: 94px; background: transparent; padding: 0; }
.lviv-site .header .wordmark > div { color: #7e602e; letter-spacing: .08em; }
.lviv-site .header .wordmark span { color: #655c4a; font-size: 8px; letter-spacing: .21em; }
.lviv-site .navlinks { gap: 20px; font-size: 12px; letter-spacing: .025em; }
.lviv-site .header .navlinks > a,
.lviv-site .header .service-menu > summary { color: #494133; }
.lviv-site .header .navlinks > a:hover,
.lviv-site .header .navlinks > a.active,
.lviv-site .header .navlinks > a[aria-current=page],
.lviv-site .header .service-menu > summary:hover,
.lviv-site .header .service-menu[open] > summary { color: #805c23; }
.lviv-site .header .navlinks > a.nav-phone {
  color: #fff9ed; background: #5d4a30; border: 1px solid #5d4a30;
  padding: 11px 16px;
}
.lviv-site .header .navlinks > a.nav-phone:hover { color: #fff; background: #453820; border-color: #453820; }
.lviv-site .header .language-switch { border: 1px solid #c9b895; border-radius: 0; background: #fbf8ee; }
.lviv-site .header .language-switch a { color: #514737; }
.lviv-site .header .language-switch a[aria-current=page],
.lviv-site .header .language-switch a:hover { color: #805c23; }
.lviv-site .header .language-switch span { color: #9a8764; }
.lviv-site .header .service-dropdown {
  background: #fcf9f1; border: 1px solid #b8a17b;
  box-shadow: 0 24px 48px #302a222e; padding: 20px;
}
.lviv-site .header .service-dropdown a { color: #494133; padding: 9px 10px; }
.lviv-site .header .service-dropdown a:hover { background: #eee5d3; color: #6e4d1d; }
.lviv-site .header a:focus-visible,
.lviv-site .header summary:focus-visible { outline-color: #85622d; }

/* The opening photograph and all its content remain, set within a stone frame. */
.lviv-site .photohero {
  margin: 26px 26px 0; min-height: 690px;
  padding: 103px 0 28px;
  background-image: linear-gradient(90deg, #24271fe8 0%, #28281fc4 43%, #4a3a2424 100%), var(--hero-image);
  background-position: center; background-size: cover;
  color: #fff8e9; position: relative;
  border: 1px solid #a18b64;
}
.lviv-site .photohero::before {
  content: ''; position: absolute; inset: 13px;
  border: 1px solid #d7c29580; pointer-events: none;
}
.lviv-site .photohero::after {
  content: ''; position: absolute; top: 23px; bottom: 23px; right: 23px; width: 24px;
  border-block: 5px double #d4bd8d80;
  background: repeating-linear-gradient(90deg, #e8d6ad25 0 1px, transparent 1px 6px);
  pointer-events: none;
}
.lviv-site .photohero .wrap { position: relative; z-index: 1; }
.lviv-site .photohero .hero-copy { max-width: 800px; }
.lviv-site .photohero .eyebrow { color: #e3cca3; letter-spacing: .29em; margin-bottom: 27px; }
.lviv-site .photohero .home-title {
  font-size: clamp(45px, 5.7vw, 82px); line-height: 1.1;
  max-width: 820px; color: #fff9ee; letter-spacing: -.035em;
}
.lviv-site .photohero h1 em { color: #e2c996; font-style: italic; }
.lviv-site .photohero p { color: #f0e8d9; font-size: 16px; line-height: 1.9; max-width: 580px; }
.lviv-site .photohero .button { background: #e9d9b8; border: 1px solid #e9d9b8; color: #302e24; }
.lviv-site .photohero .button:hover { background: #f7e9cf; border-color: #f7e9cf; }
.lviv-site .photohero .button.outline { color: #fff7e9; border-color: #dbc69d; background: #22251d35; }
.lviv-site .photohero .button.outline:hover { background: #ddcba72b; }
.lviv-site .hero-professionals { border-color: #dac9a35e; margin-top: 39px; padding-top: 23px; }
.lviv-site .hero-person strong { font-family: Palatino, Georgia, serif; font-size: 22px; color: #fff8eb; }
.lviv-site .hero-person span { color: #e1d1b3; letter-spacing: .16em; }
.lviv-site .hero-caption { margin-top: 48px; }
.lviv-site .hero-caption .ambientazione { color: #ded5c4; }

/* Architectural spacing, fine bronze rules and a restrained travertine grain. */
.lviv-site section.block { padding: 94px 0; }
.lviv-site .intro-grid { gap: 90px; }
.lviv-site .intro-grid p { color: #696052; font-size: 15px; line-height: 1.95; }
.lviv-site .inline-link { color: #75572e; border-color: #b89b67; letter-spacing: .035em; }
.lviv-site .inline-link:hover { color: #3f301c; border-color: #6e542c; }
.lviv-site .section-heading { margin-bottom: 43px; }
.lviv-site .section-heading p { color: #6d6557; }
.lviv-site .expertise-section, .lviv-site .regulations {
  background-color: #ece4d4;
  background-image: repeating-linear-gradient(0deg, transparent 0 109px, #c5b6970d 110px, transparent 111px);
  border-block: 1px solid #d0c0a2;
}
.lviv-site .expertise-section .section-heading::before {
  content: ''; align-self: stretch; width: 12px; flex-shrink: 0;
  border-block: 5px double #a38b63;
  background: repeating-linear-gradient(90deg, #b69c702e 0 1px, transparent 1px 4px);
  margin-right: 2px;
}
.lviv-site .expertise-section .section-heading > div { margin-right: auto; }
.lviv-site .sector-gallery { gap: 35px 28px; margin-top: 46px; }
.lviv-site .sector-photo-card {
  background: #faf7ef; border: 1px solid #d3c4a9;
  box-shadow: 0 5px 0 #e1d5bf; transition: transform .22s, box-shadow .22s;
}
.lviv-site .sector-photo-card:hover { transform: translateY(-5px); box-shadow: 0 12px 25px #56492c16; }
.lviv-site .sector-photo-card img { aspect-ratio: 1.6; filter: saturate(.72); }
.lviv-site .sector-card-text { padding: 28px 26px 30px; position: relative; }
.lviv-site .sector-card-text::before { content: ''; position: absolute; left: 26px; top: 0; width: 44px; border-top: 2px solid #9c7d49; }
.lviv-site .sector-card-text .photo-tag { color: #7a5c31; font-size: 9px; letter-spacing: .14em; }
.lviv-site .sector-card-text h3 { color: #3e3629; font-size: 29px; line-height: 1.19; }
.lviv-site .sector-card-text p { color: #6a6255; font-size: 13px; line-height: 1.85; }
.lviv-site .sector-card-text .photo-link { color: #795a2d; font-size: 11px; }
.lviv-site .imagery-note { color: #776c58; }
.lviv-site .expertise-panel, .lviv-site .regulation-card {
  background: #fcf9f1; border-color: #a58a58; box-shadow: 0 4px 0 #e2d6bf;
}
.lviv-site .service-grid { border-color: #cebd9c; }
.lviv-site .service-card { background: #fbf8ef; border-color: #cebd9c; }
.lviv-site .service-card:hover { background: #ece2cc; }
.lviv-site .arrow { color: #85622d; }
.lviv-site .team-section { background: #f9f5eb; border-color: #d7cbb6; }
.lviv-site .team-person { border-top: 4px double #b49a6d; padding-top: 31px; }
.lviv-site .team-person h3 { color: #3d3528; font-size: 36px; }
.lviv-site .team-person p { color: #6c6252; }
.lviv-site .team-person .role, .lviv-site .person-email { color: #7c5f30; }
.lviv-site .step { border-top: 4px double #bdab88; padding-top: 27px; }
.lviv-site .step h3 { font-size: 29px; color: #3d3528; }
.lviv-site .step p { color: #6a6254; }
.lviv-site .step .num { color: #795c30; }

.lviv-site .button, .lviv-site .button.light, .lviv-site .portal-button {
  background: #655034; color: #fff8eb; border: 1px solid #655034;
  border-radius: 0; font-size: 12px; letter-spacing: .035em;
  padding: 15px 24px; transition: background .2s, color .2s;
}
.lviv-site .button:hover, .lviv-site .button.light:hover { background: #473a28; }
.lviv-site .button.outline { border-color: #a48a60; color: #5f482b; background: transparent; }
.lviv-site .button.outline:hover { background: #e6d9c1; }
.lviv-site .dark {
  background: linear-gradient(115deg, #30382e, #20291f);
  color: #f7f0e1; border-block: 5px double #a68c5d;
}
.lviv-site .dark h2 { color: #fbf5e8; }
.lviv-site .dark .eyebrow { color: #dbc395; }
.lviv-site .dark p, .lviv-site .dark .intro-grid p,
.lviv-site .urgent-section .section-heading p { color: #e0dacb; }
.lviv-site .dark .inline-link { color: #ecdbb6; }
.lviv-site .dark .related-grid a { border-color: #89947c; color: #fff8e9; padding: 24px; }
.lviv-site .dark .button.light { background: #e6d5ad; color: #303427; border-color: #e6d5ad; }
.lviv-site .dark .button.outline { color: #f6e8cb; border-color: #b9a17a; }
.lviv-site .cta {
  background: linear-gradient(110deg, #ece1cb, #f4edde);
  color: #3d3527; padding: 72px 0; border-block: 5px double #b7a07a;
}
.lviv-site .cta h2 { font-size: clamp(36px, 4vw, 50px); color: #3d3527; }
.lviv-site .cta p { color: #6b604d; }
.lviv-site .cta .button.outline { border-color: #a48a60; color: #5f482b; }
.lviv-site .footer { background: #292d25; color: #d2c9b7; padding: 64px 0 28px; }
.lviv-site .footer h3 { color: #ecd8ae; letter-spacing: .12em; font-size: 14px; }
.lviv-site .footer a:hover { color: #f6e2b6; }
.lviv-site .footerbrand-logo { background: #f3ecdc; border: 5px double #a99060; padding: 11px; }
.lviv-site .footer-bottom { color: #c6bca7; border-color: #827557; }
.lviv-site .footer .contact-email span { color: #d4c8af; }
.lviv-site .lviv-privacy-links { padding: 22px 6% 0; border-top: 1px solid #70684e; margin-top: 32px; font-size: 12px; }

/* Interior pages follow the same material palette. */
.lviv-site .service-hero:not(.sector-hero) {
  background: linear-gradient(105deg, #eee4d1, #fbf8ef);
  border-bottom: 5px double #bba67e; padding: 64px 0 70px;
}
.lviv-site .sector-hero {
  background-image: linear-gradient(90deg, #252a20eb, #302e23be 60%, #4a3e2830), var(--sector-image);
  border-bottom: 5px double #bca16d;
}
.lviv-site .sector-hero h1 { color: #fff9ec; }
.lviv-site .sector-hero p { color: #ebe5d7; }
.lviv-site .sector-hero .eyebrow, .lviv-site .sector-hero .lead-line { color: #e1c99e; }
.lviv-site .sector-hero .crumb { color: #e1d5be; }
.lviv-site .sector-hero .button.light { color: #302e24; background: #e8d6af; border-color: #e8d6af; }
.lviv-site .sector-hero .button.outline { color: #fff5de; border-color: #c7b183; }
.lviv-site .lead-line { color: #816337; }
.lviv-site .crumb { color: #78684f; }
.lviv-site .work-list li, .lviv-site .faq details, .lviv-site .contact-item { border-color: #cbb99a; }
.lviv-site .work-list h3 { font-family: Palatino, Georgia, serif; color: #453a29; }
.lviv-site .work-list .num { color: #876633; }
.lviv-site .work-list p, .lviv-site .faq p { color: #6b6254; }
.lviv-site .outcome, .lviv-site .contact-note, .lviv-site .portal-card,
.lviv-site .request-panel, .lviv-site .bio-contacts { background: #eae0cc; border-color: #a48a57; }
.lviv-site .portal-card p, .lviv-site .portal-note { color: #695e4d; }
.lviv-site .contact-item a { color: #72562c; }
.lviv-site .request-form input, .lviv-site .request-form select,
.lviv-site .request-form textarea { background: #fffdf7; border-color: #bca780; }
.lviv-site .request-form input:focus-visible, .lviv-site .request-form select:focus-visible,
.lviv-site .request-form textarea:focus-visible { outline-color: #9b7745; }
.lviv-site .bio-hero { background: linear-gradient(115deg, #30382e, #20291f); border-bottom: 5px double #a68c5d; }
.lviv-site .bio-hero .bio-subtitle { color: #e3dbc8; }
.lviv-site .bio-copy p, .lviv-site .bio-copy ul { color: #625a4d; }
.lviv-site .bio-service-links a { color: #79592b; border-color: #cbb99a; }
.lviv-site .bio-index nav a { border-color: #cbb99a; }
.lviv-site .bio-date { color: #776a53; }
.lviv-site .sentry-home-promo { border-block: 1px solid #a78c59; }
.lviv-privacy-notice { background: #fbf7ee; color: #3d3528; border: 1px solid #a88c58; border-radius: 0; }
.lviv-privacy-notice h2 { color: #3d3528; font-family: Palatino, Georgia, serif; }
.lviv-privacy-ok { background: #665033; border-radius: 0; }
.lviv-privacy-actions a { color: #735326; }
.lviv-legal { color: #3d3528; background: #faf6eb; }
.lviv-legal h1, .lviv-legal h2 { font-family: Palatino, Georgia, serif; font-weight: 400; }
.lviv-legal-note { background: #eae0cc; border-color: #9c7f49; }

@media (min-width: 1151px) and (max-width: 1420px) {
  .lviv-site .navrow { flex-wrap: wrap; gap: 14px; }
  .lviv-site .navlinks { width: 100%; justify-content: space-between; padding-top: 12px; border-top: 1px solid #d7cbb6; }
}
@media (max-width: 1150px) {
  .lviv-site .navrow { flex-wrap: wrap; }
  .lviv-site .navlinks { width: 100%; flex-wrap: wrap; justify-content: flex-start; gap: 14px 20px; }
}
@media (max-width: 900px) {
  .lviv-site .photohero { margin: 18px 18px 0; padding-top: 83px; min-height: 650px; }
  .lviv-site .intro-grid { gap: 42px; }
  .lviv-site .sector-gallery { gap: 28px 22px; }
  .lviv-site .cta-grid { display: block; }
  .lviv-site .cta .buttons { margin-top: 26px; }
}
@media (max-width: 640px) {
  .lviv-site .wrap { width: 88%; }
  .lviv-site .topline { padding: 9px 0; }
  .lviv-site .navrow { padding: 13px 0 18px; gap: 15px; }
  .lviv-site .brand-icon { width: 92px; height: 82px; }
  .lviv-site .wordmark { font-size: 30px; gap: 16px; }
  .lviv-site .header .wordmark span { font-size: 7px; }
  .lviv-site .navlinks { gap: 12px 17px; font-size: 12px; padding-top: 14px; border-top: 1px solid #d7cbb6; }
  .lviv-site .header .language-switch { padding: 6px 9px; margin: 0; }
  .lviv-site .header .service-dropdown { width: min(320px, 85vw); max-height: 60vh; }
  .lviv-site .photohero {
    margin: 12px 10px 0; padding: 61px 0 23px; min-height: 0;
    background-position: 60% center;
    background-image: linear-gradient(90deg, #25281fea, #29291ed1), var(--hero-image);
  }
  .lviv-site .photohero::before { inset: 8px; }
  .lviv-site .photohero::after { display: none; }
  .lviv-site .photohero .wrap { width: 84%; }
  .lviv-site .photohero .eyebrow { font-size: 8px; letter-spacing: .18em; margin-bottom: 23px; }
  .lviv-site .photohero .home-title { font-size: clamp(37px, 10.5vw, 54px); line-height: 1.12; }
  .lviv-site .photohero p { font-size: 14px; line-height: 1.85; margin-top: 24px; }
  .lviv-site .photohero .buttons { gap: 11px; margin-top: 27px; }
  .lviv-site .photohero .button { padding: 13px 17px; font-size: 11px; }
  .lviv-site .hero-professionals { margin-top: 30px; padding-top: 20px; }
  .lviv-site .hero-person strong { font-size: 21px; }
  .lviv-site .hero-person span { font-size: 8px; line-height: 1.8; }
  .lviv-site .hero-caption { margin-top: 33px; line-height: 1.8; }
  .lviv-site .hero-caption .ambientazione { font-size: 8px; }
  .lviv-site section.block { padding: 59px 0; }
  .lviv-site .intro-grid { gap: 26px; }
  .lviv-site h2 { font-size: 35px; }
  .lviv-site .section-heading { margin-bottom: 28px; }
  .lviv-site .expertise-section .section-heading::before { display: none; }
  .lviv-site .sector-gallery { grid-template-columns: 1fr; gap: 29px; margin-top: 30px; }
  .lviv-site .sector-card-text { padding: 26px 24px 28px; }
  .lviv-site .sector-card-text h3 { font-size: 29px; }
  .lviv-site .team-person h3 { font-size: 33px; }
  .lviv-site .dark .related-grid a { padding: 21px; }
  .lviv-site .cta { padding: 48px 0; }
  .lviv-site .cta h2 { font-size: 36px; }
  .lviv-site .footer { padding: 47px 0 26px; }
  .lviv-site .service-hero:not(.sector-hero) { padding: 42px 0 47px; }
  .lviv-site .sector-hero { min-height: 0; padding: 45px 0; }
  .lviv-site .sector-hero h1 { font-size: 39px; }
  .lviv-site .sector-hero p { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .lviv-site .sector-photo-card, .lviv-site .button { transition: none; }
  .lviv-site .sector-photo-card:hover { transform: none; }
}
