/* Freiburg: existing layout, shared criminal-law interactions, restrained black/gold. */
[hidden]{display:none!important}
:root{--gold:#c4ac71;--gold-deep:#796431}
.button,.intake-button--next{border-radius:12px;background:linear-gradient(120deg,#725c29,#857039 50%,#75602d);border-color:#bca56b;color:#fff;box-shadow:inset 0 1px 0 #fff4,0 5px 22px #99804429}
.button:hover,.intake-button--next:hover{box-shadow:inset 0 1px 0 #fff4,0 6px 28px #bca56b66}
.hero{min-height:0;overflow:hidden}
.hero-background{background:none;overflow:hidden}
.hero-background:before{content:'';position:absolute;inset:0;background:url('assets/freiburg-schlossberg.jpg') center 67%/cover no-repeat;filter:grayscale(.92) brightness(.76)}
.hero-background:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#090909a8 0%,#0909096b 32%,#09090975 64%,#080808 100%)}
.hero-copy{max-width:1020px;margin-inline:auto;padding:40px 0 56px;text-align:center}
.hero-copy>.eyebrow{color:#d3bd86;font-size:11px;letter-spacing:.19em;margin:0 0 25px}
.hero-copy h1{font-size:clamp(38px,4.2vw,57px);max-width:950px}
.hero-copy h1 span{display:inline-block;max-width:850px;text-wrap:balance}
.hero-copy>p{max-width:740px;margin:26px auto;color:#ededeb;font-size:16px}
.hero-checks{display:grid;grid-template-columns:repeat(3,1fr);max-width:960px;margin:28px auto;gap:23px;font-size:13px;text-align:left}
.hero-checks li+li{margin:0}.hero-checks svg{width:24px;height:24px;margin-top:2px}
.hero-copy .hero-intake{max-width:720px;margin:30px auto 0;background:linear-gradient(135deg,#171716d9,#25231fd9);text-align:center;padding:22px 26px;border-color:#c4ac7166;box-shadow:0 14px 45px #0004;backdrop-filter:blur(12px)}
.hero-intake h2{max-width:none;font-size:26px;margin:0 0 10px;letter-spacing:-.02em}
.hero-intake p{font-size:13px;max-width:none;margin:0 0 17px}.hero-intake-options{grid-template-columns:repeat(4,1fr);gap:8px}
.hero-intake-options a{font-size:12px;background:#ffffff09;padding:13px 11px;border-color:#ffffff30;border-radius:11px}.hero-intake-options a span{color:#d2bd86}
.hero-intake-options a:hover{border-color:#c4ac71;box-shadow:0 0 20px #c4ac7126}.hero-intake-kicker{color:#c4ac71}
.proof-strip{background:#080808;padding:14px 0 44px}
.proof-strip .trust-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:0;font-family:var(--body);font-size:14px;padding-top:27px;border-top:1px solid #bba77340}
.trust-item{display:flex;gap:20px;align-items:center;padding:8px 24px;min-width:0}.trust-item:first-child{padding-left:0}.trust-item+.trust-item{border-left:1px solid #ffffff20}
.trust-item strong{display:block;font-size:14px;line-height:1.5;color:#ecebe7}.trust-item small{display:block;color:#aaa89f;font-size:11px;line-height:1.6;margin-top:5px}
.trust-item svg{width:38px;height:38px;color:#c4ac71}.trust-item .google-mark{width:35px;height:35px;stroke:none;flex:0 0 35px}
.rating-stars{display:block;letter-spacing:3px;color:#d7b95f;font-size:17px;line-height:1.1;margin-bottom:6px}.chamber-proof{transition:background .2s;border-radius:8px}.chamber-proof:hover{background:#c4ac7112}
.city-photo{filter:grayscale(.78) brightness(.85)}
.contact-photo .city-photo{object-position:64% center;filter:grayscale(.85) brightness(1.04)}
.case-card{border-color:#c4ac7124;border-radius:14px}.case-card:hover,.case-card:focus-visible{background:radial-gradient(ellipse at 50% 100%,#9e834330,#1b1b1b 75%);border-color:#c4ac71;box-shadow:0 0 26px #b49a5222}
/* The first content section now follows the hero's review strip on white. */
.orientation-light{background:#fff;color:var(--ink)}
.orientation-light .case-card{background:#fcfbf8;color:#24231f;border:1px solid #ddd7c9;box-shadow:0 5px 18px #29241a05}
.orientation-light .case-card p{color:#666258}
.orientation-light .case-card:hover,.orientation-light .case-card:focus-visible{background:radial-gradient(ellipse at 50% 100%,#eee6d180,#fff 78%);border-color:#ad9454;box-shadow:0 8px 28px #ad945623}
.orientation-light .case-number{color:#806b37;border-color:#b8a16b;box-shadow:0 0 0 5px #c4ac7112}
.orientation-light .case-card .text-link{color:#796431}
.orientation-light .carousel-progress{background:#e8e3d8}
.orientation-light .carousel-progress span{background:#a18a4d}
.orientation-light .carousel-progress{margin-bottom:0}
/* One coherent portrait/text composition, without overlapping caption cards. */
.situation-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(40px,6vw,84px);align-items:center}
.situation-portrait{margin:0;overflow:hidden;border:1px solid #d9d5cc;border-radius:12px;background:#202020}
.situation-portrait img{width:100%;height:auto;aspect-ratio:1/1.08;object-fit:cover;object-position:center 30%}
.situation-portrait figcaption{padding:25px 30px 27px}
.situation-portrait figcaption p{font:27px/1.2 var(--display);letter-spacing:-.025em;color:#fff}
.situation-portrait-note{display:block;margin-top:9px;font-size:13px;line-height:1.6;color:#dfddd7}
.situation-portrait-name{display:block;margin-top:17px;font-size:11px;line-height:1.6;letter-spacing:.035em;color:#d2bd86}
.situation-copy{min-width:0}
.situation-copy h2{font-size:clamp(42px,4.2vw,54px);line-height:1.06;margin:0 0 22px;letter-spacing:-.035em}
.situation-copy .situation-lead{font:25px/1.35 var(--display);letter-spacing:-.018em;color:#504a3d;max-width:460px;margin:0 0 27px}
.situation-copy>p:not(.situation-lead){font-size:15px;line-height:1.85;max-width:560px}
.situation-copy .button{margin-top:29px}
.situation-guidance{margin-top:64px;padding-top:37px;border-top:1px solid #d5d0c5}
.situation-guidance-heading{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
.situation-guidance-heading h3{font-size:31px;line-height:1.15}
.situation-guidance-heading p{font-size:14px;line-height:1.8}
.situation-steps{list-style:none;padding:0;margin:35px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.situation-steps li{padding:0 30px;min-width:0}
.situation-steps li:first-child{padding-left:0}
.situation-steps li:last-child{padding-right:0}
.situation-steps li+li{border-left:1px solid #d5d0c5}
.situation-step-number{color:#796431;font-size:12px;line-height:1;letter-spacing:.1em}
.situation-steps h4{font:600 15px/1.5 var(--body);margin:12px 0 9px;color:#292722}
.situation-steps p{font-size:13px;line-height:1.8}
@media(max-width:1000px) and (min-width:761px){
  .situation-layout{gap:38px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
  .situation-copy h2{font-size:43px}
  .situation-copy .situation-lead{font-size:23px;margin-bottom:22px}
  .situation-portrait img{aspect-ratio:1/1.35}
  .situation-portrait figcaption{padding:23px}
  .situation-portrait figcaption p{font-size:24px}
  .situation-guidance-heading{gap:35px}
  .situation-steps li{padding-inline:22px}
}
@media(max-width:760px){
  .situation-layout{grid-template-columns:1fr;gap:32px}
  .situation-portrait{width:100%;max-width:440px;margin-inline:auto}
  .situation-portrait img{aspect-ratio:1.12/1;object-position:center 27%}
  .situation-portrait figcaption{padding:22px 23px 24px}
  .situation-portrait figcaption p{font-size:26px}
  .situation-portrait-name{margin-top:13px}
  .situation-copy h2{font-size:39px;margin-bottom:18px}
  .situation-copy .situation-lead{font-size:24px;margin-bottom:24px;max-width:440px}
  .situation-copy>p:not(.situation-lead){font-size:15px;line-height:1.8}
  .situation-copy .button{width:100%;margin-top:26px}
  .situation-guidance{margin-top:42px;padding-top:30px}
  .situation-guidance-heading{grid-template-columns:1fr;gap:18px}
  .situation-guidance-heading h3{font-size:29px;max-width:420px}
  .situation-steps{grid-template-columns:1fr;margin-top:24px}
  .situation-steps li,.situation-steps li:first-child,.situation-steps li:last-child{padding:22px 0;display:grid;grid-template-columns:30px minmax(0,1fr);column-gap:12px}
  .situation-steps li+li{border-left:0;border-top:1px solid #d5d0c5}
  .situation-step-number{grid-column:1;grid-row:1/3;margin-top:6px}
  .situation-steps h4{grid-column:2;margin:0 0 7px;font-size:16px}
  .situation-steps p{grid-column:2;font-size:14px}
  .situation-steps li:last-child{padding-bottom:0}
}
.orientation-light + .section{border-top:1px solid #eeeae1}
.faq-section{background:#f3f1ec}.faq-section .section-heading{margin-bottom:45px}.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.faq-grid details{border:1px solid #d9d3c5;background:#fff;border-radius:14px;transition:border-color .25s,box-shadow .25s,background .25s;overflow:hidden}
.faq-grid details:hover,.faq-grid details[open]{border-color:#b8a36c;box-shadow:0 6px 30px #ad945629;background:linear-gradient(130deg,#fff,#f8f5ec)}
.faq-grid summary{position:relative;list-style:none;font-weight:600;font-size:15px;line-height:1.6;padding:24px 54px 24px 25px;min-height:94px;cursor:pointer;display:flex;align-items:center}
.faq-grid summary::-webkit-details-marker{display:none}.faq-grid summary:after{content:'+';position:absolute;right:23px;font-size:24px;font-weight:400;color:#8a733a}.faq-grid details[open] summary:after{content:'−'}
.faq-grid p{padding:0 25px 22px;font-size:14px;line-height:1.8}.faq-grid details>a{display:inline-flex;align-items:center;min-height:44px;margin:0 25px 16px;color:#796431;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.final-contact{position:relative;isolation:isolate;padding:100px 0;background:#151515}
.final-contact:before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/freiburg-oberlinden.webp') 46% center/cover no-repeat;filter:grayscale(1)}
.final-contact:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#10100fbd,#151513cf 65%,#10100fe6)}
.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:75px;align-items:start}.contact-intro{position:sticky;top:45px}.contact-intro h2{font-size:42px;line-height:1.15}.contact-intro>p{color:#deddd7}
.contact-intro>.button{margin:28px 0 15px}.contact-channel{display:block;padding:20px 0;border-bottom:1px solid #ffffff2b}.contact-channel strong{display:block;font-size:19px;color:#d5c08c}.contact-channel span{font-size:12px;color:#dedbd2}.contact-channel:hover strong{color:white}.contact-intro .contact-caution{font-size:12px;line-height:1.8;margin-top:25px;color:#d7d4cc}
.contact-form{padding:32px;border:1px solid #c4ac7166;border-radius:20px;background:#fff;color:#222;box-shadow:0 24px 70px #0003}.contact-form h3{font-size:29px;margin-bottom:18px}.contact-form .form-preview{font-size:12px;padding:12px 14px;background:#f4eee0;color:#76602f;border-radius:8px;margin:0 0 25px;line-height:1.6}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.contact-form label{display:block;font-size:12px;font-weight:600;margin-bottom:18px}.contact-form input:not([type=checkbox]),.contact-form textarea{width:100%;min-height:48px;border:1px solid #cecac0;border-radius:9px;padding:12px;color:#222;background:#fff;margin-top:7px;font-size:16px;line-height:1.4}
.contact-form textarea{resize:vertical}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid #a58e50;outline-offset:2px}
.contact-form .file-label{margin-bottom:8px}.contact-form input[type=file]{font-size:12px;background:#f7f6f1;cursor:pointer;padding:12px 8px}.contact-form input::file-selector-button{border:1px solid #cec6b1;border-radius:7px;background:#eee9db;color:#4b4126;min-height:40px;margin-right:8px;padding:8px;font:inherit;cursor:pointer}
.contact-form small{display:block;font-size:11px;line-height:1.65;color:#757269}.contact-form .form-consent{display:flex;align-items:flex-start;gap:11px;margin:22px 0;color:#656057;font-size:11px;font-weight:400;line-height:1.8}.form-consent input{margin:4px 0 0;width:20px;height:20px;flex:none;accent-color:#887039}.form-consent a{text-decoration:underline;text-underline-offset:3px}
.contact-form .button{width:100%;margin-bottom:16px}.form-feedback{margin:15px 0;padding:14px;border:1px solid #bfa45f;border-radius:9px;color:#5b4920;font-size:13px;background:#faf7ee}.form-feedback.is-error{color:#7e2620;border-color:#c78781;background:#fff4f2}
.intake-dialog{background:#faf8f2}.intake-head h2{margin:0}.intake-dialog .intake-button--next{color:white;background:linear-gradient(120deg,#8b7439,#a38b4b);border-color:#8b7439}.intake-footer{margin:0}.intake-dialog p{font-family:var(--body)}
.whatsapp{right:22px;bottom:89px;background:linear-gradient(120deg,#806a36,#ac9454);border-color:#c4ac71}.whatsapp svg{fill:currentColor;stroke:none}
.legal-bot-trigger{position:fixed;z-index:21;right:22px;bottom:19px;display:flex;align-items:center;gap:11px;border:1px solid #b49a58;border-radius:30px;background:linear-gradient(125deg,#76602b,#a98f49);color:#fff;padding:12px 18px;box-shadow:0 5px 26px #ad914039;text-align:left;font:inherit;line-height:1.3}
.legal-bot-trigger strong{display:block;font-size:13px}.legal-bot-trigger small{display:block;font-size:10px;color:#f4eee0;margin-top:3px}.legal-bot-trigger__icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid #ffffff45;border-radius:50%}.legal-bot-trigger__icon svg{width:19px;height:19px}
.legal-bot-trigger:hover{box-shadow:0 0 28px #b59c5680}.legal-bot-panel{position:fixed;z-index:23;right:22px;bottom:93px;width:390px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 125px);border:1px solid #c3ac71;border-radius:20px;background:#fff;box-shadow:0 18px 70px #0004;display:flex;flex-direction:column;overflow:hidden;color:#252525}
.legal-bot-header{display:flex;justify-content:space-between;align-items:center;gap:12px;background:linear-gradient(120deg,#6b592c,#958049);padding:20px;color:#fff}.legal-bot-kicker{display:block;font-size:9px;font-weight:700;letter-spacing:.15em}.legal-bot-header strong{font:25px/1.3 var(--display)}.legal-bot-close{border:1px solid #ffffff50;border-radius:50%;width:38px;height:38px;background:transparent;color:white;font-size:25px;flex:none}
.legal-bot-body{padding:18px;overflow:auto;overscroll-behavior:contain}.legal-bot-message{font-size:12px;line-height:1.7;color:#69645b;margin-bottom:16px}.legal-bot-quick{display:grid;grid-template-columns:1fr 1fr;gap:8px}.legal-bot-quick button{min-height:44px;border:1px solid #d6d1c7;border-radius:10px;background:#fff;padding:10px;text-align:left;font-size:11px;color:#272623;font-weight:600;line-height:1.45}.legal-bot-quick button:hover,.legal-bot-quick button.is-active{background:#857038;color:white;border-color:#857038}
.legal-bot-response{border:1px solid #d8cfb7;border-left:3px solid #a38a4d;border-radius:10px;padding:15px;margin-top:13px;background:#faf8f1}.legal-bot-response__label{display:block;font-size:9px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#806b32}.legal-bot-response p{font-size:12px;line-height:1.7;margin-top:7px;color:#514e47}.legal-bot-actions{display:grid;grid-template-columns:1.1fr 1fr;gap:8px;padding:0 18px 9px}.legal-bot-actions a{min-height:45px;padding:10px;display:flex;justify-content:center;align-items:center;gap:8px;font-size:10px;font-weight:700;line-height:1.4;border:1px solid #9d8546;border-radius:10px;color:#77632d;text-align:center}.legal-bot-actions .legal-bot-whatsapp{background:#8a7439;color:white}.legal-bot-whatsapp svg{width:18px;height:18px;fill:currentColor;stroke:none}.legal-bot-note{font-size:9px;color:#7d7970;padding:0 18px 15px;margin:0;line-height:1.6}
.legal-bot-open .whatsapp{visibility:hidden}.footer-bottom{flex-wrap:wrap}.footer-bottom a{color:#c8b47d;text-decoration:underline;text-underline-offset:4px}.image-credit{font-size:10px;line-height:1.7;margin-top:22px;padding-bottom:100px;max-width:800px}.image-credit a{text-decoration:underline;text-underline-offset:3px}.legal-content{max-width:850px;margin:auto;padding:70px 24px}.legal-content h1{font-size:44px}.legal-content h2{font-size:25px;margin:35px 0 15px}.legal-content p{margin:15px 0}.legal-content a{text-decoration:underline}
@media(max-width:1000px){.navigation nav{gap:18px}.hero-checks{max-width:760px}.trust-item{padding:8px 18px;gap:13px}.trust-item strong{font-size:12px}.trust-item small{font-size:10px}.contact-layout{gap:35px}.contact-form{padding:26px}.contact-intro h2{font-size:37px}}
@media(max-width:760px){.hero-copy{padding:27px 0 36px}.hero-copy>.eyebrow{font-size:9px;letter-spacing:.13em;margin-bottom:19px}.hero-copy h1{font-size:clamp(32px,7.5vw,43px);line-height:1.15}.hero-copy>p{font-size:14px;line-height:1.75}.hero-checks{grid-template-columns:1fr;gap:12px;max-width:420px;margin:25px auto}.hero-checks li{gap:12px;font-size:13px}.hero-checks li+li{margin:0}.hero-copy>.button{width:100%;max-width:420px}.hero-copy .hero-intake{padding:20px 17px;margin-top:23px;text-align:left}.hero-intake h2{font-size:25px}.hero-intake-options{grid-template-columns:1fr 1fr}.hero-intake-options a{min-height:49px;font-size:12px}.hero-background:before{background-position:49% 70%}.hero-background:after{background:linear-gradient(#080808ad,#08080878 50%,#080808 100%)}
.proof-strip{padding:0 0 30px}.proof-strip .trust-row{grid-template-columns:1fr;text-align:left;padding:12px 0 0;gap:0}.trust-item,.trust-item:first-child{padding:17px 10px;gap:19px}.trust-item+.trust-item{border-left:0;border-top:1px solid #ffffff1c}.trust-item strong{font-size:13px}.trust-item small{font-size:11px}.proof-strip span{max-width:none}.rating-stars{font-size:16px}.trust-item svg{width:33px;height:33px}
.faq-grid{grid-template-columns:1fr;gap:12px}.faq-grid summary{min-height:78px;padding:20px 50px 20px 20px;font-size:14px}.faq-grid p{padding:0 20px 20px;font-size:14px}.faq-section .section-heading{margin-bottom:30px}
.contact-layout{grid-template-columns:1fr;gap:38px}.final-contact{padding:60px 0}.contact-intro{position:static}.contact-intro h2{font-size:35px}.contact-intro>.button{width:100%}.contact-form{padding:24px 20px}.contact-form h3{font-size:27px}.form-grid{grid-template-columns:1fr;gap:0}.contact-channel strong{font-size:18px}
.legal-bot-trigger{right:14px;bottom:max(14px,env(safe-area-inset-bottom));padding:11px 14px;gap:8px}.legal-bot-trigger strong{font-size:12px}.legal-bot-trigger small{font-size:9px}.whatsapp{left:14px;right:auto;bottom:max(17px,env(safe-area-inset-bottom));padding:13px}.legal-bot-panel{right:12px;bottom:86px;width:calc(100vw - 24px);max-width:390px;max-height:calc(100dvh - 103px)}.image-credit{padding-bottom:85px}.footer-bottom{padding-bottom:0}
}
@media(prefers-reduced-motion:reduce){.case-card,.faq-grid details,.chamber-proof{transition:none}.hero-intake-options a:hover{transform:none}}
/* Percent sizing also accounts for a visible desktop scrollbar in mobile emulation. */
@media(max-width:760px){.legal-bot-panel{width:calc(100% - 24px);max-width:390px}}
/* Keep the city scene legible above the stacked mobile form instead of over-zooming it. */
@media(max-width:760px){.final-contact:before{background-size:auto 860px;background-position:48% top}.contact-photo .city-photo{object-position:62% center}}

/* Image polish: fixed crops, a soft reflection and a restrained gold edge. */
.photo-reveal{position:relative;isolation:isolate;overflow:hidden}
.photo-reveal img{transition:transform .75s cubic-bezier(.2,.65,.3,1)}
.photo-reveal:before,.photo-reveal:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit}
.photo-reveal:before{background:linear-gradient(115deg,transparent 20%,#f5ead51f 46%,#fff9ee38 50%,transparent 75%);transform:translateX(-110%);transition:transform 1.05s cubic-bezier(.2,.65,.3,1)}
.photo-reveal:after{border:1px solid #d7bd8133;box-shadow:inset 0 0 35px #c4ac7100;transition:border-color .4s,box-shadow .4s}
.situation-portrait{transition:border-color .4s,box-shadow .4s}
.contact-photo .photo-reveal{border-radius:10px;transition:box-shadow .4s}
.contact-photo figcaption{z-index:2}
.pillar{position:relative;isolation:isolate;border:1px solid #c4ac7159;border-radius:18px;box-shadow:inset 0 1px 0 #ffffff05,0 12px 38px #0002;transition:border-color .4s,box-shadow .4s}
.pillar:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(ellipse at 5% 0%,#baa06424,transparent 62%);opacity:0;transition:opacity .45s}
.pillar.reverse:before{background:radial-gradient(ellipse at 95% 0%,#baa06424,transparent 62%)}
.pillar-media{border-radius:10px}
.pillar-media img{object-position:center 25%}
.dark .pillar-image-note{max-width:760px;margin:28px auto 0;text-align:center;color:#aaa69b;font-size:11px;line-height:1.7}
.pillar:focus-within{border-color:#c4ac71;box-shadow:0 0 0 1px #c4ac7124,0 0 32px #c4ac7124,0 14px 42px #0003}
.pillar:focus-within:before{opacity:1}
.pillar:focus-within .photo-reveal:after,.contact-photo:focus-within .photo-reveal:after{border-color:#dfc99599;box-shadow:inset 0 0 35px #c4ac711a}
.cutout:before{content:'';position:absolute;inset:8% 2% 2%;border-radius:50%;background:radial-gradient(ellipse,#c4ac7129,transparent 70%);opacity:0;transition:opacity .6s;pointer-events:none}
.cutout img{transition:filter .6s}
.hero-background:before,.final-contact:before{transition:filter .8s}
/* The footer wordmark must define its own width, not span the entire grid column. */
.footer-grid .brand{display:inline-flex;flex-direction:column;align-items:center;width:fit-content;max-width:100%;line-height:1.05}
.footer-grid .brand span{width:100%;margin-top:10px;text-align:center}
@media(hover:hover) and (pointer:fine){
  .photo-reveal:hover img,.pillar:hover .photo-reveal img{transform:scale(1.035)}
  .photo-reveal:hover:before,.pillar:hover .photo-reveal:before{transform:translateX(110%)}
  .photo-reveal:hover:after,.pillar:hover .photo-reveal:after{border-color:#dfc99599;box-shadow:inset 0 0 35px #c4ac711a}
  .situation-portrait:hover{border-color:#b69d61;box-shadow:0 12px 32px #9e834323}
  .contact-photo:hover .photo-reveal{box-shadow:0 10px 30px #9e834329}
  .pillar:hover{border-color:#c4ac71;box-shadow:0 0 0 1px #c4ac7124,0 0 32px #c4ac7124,0 14px 42px #0003}
  .pillar:hover:before,.cutout:hover:before{opacity:1}
  .cutout:hover img{filter:drop-shadow(0 0 16px #c4ac7126) brightness(1.035)}
  .hero:hover .hero-background:before{filter:grayscale(.92) brightness(.83)}
  .final-contact:hover:before{filter:grayscale(1) brightness(1.1)}
}
@media(prefers-reduced-motion:reduce){
  .photo-reveal:hover img,.pillar:hover .photo-reveal img{transform:none}
  .photo-reveal:before{display:none}
}

/* Mobile usability: readable labels and generous, non-overlapping tap targets. */
html{scroll-padding-bottom:105px}
.intake-dialog .intake-button--next,.legal-bot-trigger,.whatsapp{background:linear-gradient(120deg,#725c29,#857039)}
body:has(#topic-dialog[open]){overflow:hidden}
.legal-bot-header,.legal-bot-actions,.legal-bot-note{flex-shrink:0}
.legal-bot-body{min-height:0}
.legal-bot-close,.close-dialog{min-width:44px;min-height:44px}
.legal-content h1{overflow-wrap:anywhere;hyphens:auto}
.privacy-settings{display:inline-flex;align-items:center;min-height:44px;padding:6px 0;border:0;background:none;color:#c8b47d;font:inherit;text-decoration:underline;text-underline-offset:4px;text-align:left}
.privacy-banner{position:fixed;left:22px;bottom:22px;z-index:22;width:min(420px,calc(100% - 44px));max-height:calc(100dvh - 44px);overflow:auto;overscroll-behavior:contain;padding:23px;background:#fffdf7;color:#28251e;border:1px solid #b49a58;border-radius:18px;box-shadow:0 12px 55px #0004;font-family:var(--body)}
.privacy-banner h2{font-size:26px;line-height:1.2;letter-spacing:-.02em;margin:0 0 12px;color:#29261e}
.privacy-banner p{font-size:13px;line-height:1.65;margin:0;color:#625c4e}
.privacy-banner .privacy-note{font-size:11px;margin-top:12px;color:#746c5a}
.privacy-actions{display:flex;align-items:center;gap:18px;margin-top:18px;flex-wrap:wrap}
.privacy-actions a{display:inline-flex;align-items:center;min-height:44px;color:#796431;font-size:13px;text-decoration:underline;text-underline-offset:4px}
.privacy-actions .button{min-height:44px;margin:0}
@media(max-width:760px){
  .utility{min-height:44px;height:auto;gap:12px;font-size:11px;flex-wrap:wrap}
  .utility a{display:inline-flex;align-items:center;min-height:44px}
  .hero-intake-options{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-intake-options a{hyphens:auto;overflow-wrap:anywhere}
  .round-button{width:44px;height:44px}
  .round-button.previous{left:-12px}.round-button.next{right:-12px}
  .text-link{min-height:44px}
  .contact-photo figcaption a{display:flex;align-items:center;min-height:44px}
  .footer-grid>div>a:not(.brand){min-height:44px;margin-bottom:2px}
  .footer-grid h3{margin-bottom:14px}
  .contact-form input::file-selector-button{min-height:44px}
  .contact-form .form-consent{font-size:12px}
  .contact-form small{font-size:12px}
  .legal-bot-trigger{max-width:calc(100% - 92px);bottom:calc(14px + env(safe-area-inset-bottom))}
  .whatsapp{bottom:calc(17px + env(safe-area-inset-bottom))}
  .legal-bot-panel{bottom:calc(86px + env(safe-area-inset-bottom));max-height:calc(100dvh - 103px - env(safe-area-inset-bottom))}
  .legal-bot-quick button{font-size:12px;hyphens:auto;overflow-wrap:anywhere}
  .legal-bot-actions a{font-size:12px;min-width:0;overflow-wrap:anywhere}
  .legal-bot-body{padding:15px}.legal-bot-response p{font-size:13px}
  .privacy-banner{left:12px;bottom:calc(84px + env(safe-area-inset-bottom));width:calc(100% - 24px);padding:20px;max-height:calc(100dvh - 110px - env(safe-area-inset-bottom))}
  .privacy-banner h2{font-size:24px}
  .privacy-actions{gap:14px;justify-content:space-between}
  .legal-bot-open .privacy-banner{visibility:hidden;pointer-events:none}
}
@media(max-width:370px){
  .hero-intake-options{grid-template-columns:minmax(0,1fr)}
  .hero-intake-options a{font-size:13px}
  .legal-content{padding-inline:20px}.legal-content h1{font-size:34px}
}
/* Leave useful reading space in landscape and short browser windows. */
@media(max-height:540px){
  .intake-dialog{width:calc(100% - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border-radius:14px}
  .intake-head{padding:10px 16px;align-items:center}
  .intake-head small{display:none}.intake-head h2{font-size:21px}
  .intake-progress{padding:4px 16px;gap:4px}
  .intake-progress button{min-height:40px;flex-direction:row;gap:6px;font-size:11px}
  .intake-body{padding:16px 18px}
  .intake-footer{padding:8px 16px max(8px,env(safe-area-inset-bottom))}
  .legal-bot-header{padding:10px 16px}.legal-bot-header strong{font-size:22px}
  .legal-bot-kicker{display:none}.legal-bot-note{padding-bottom:8px}
  .legal-bot-panel{bottom:78px;max-height:calc(100dvh - 90px)}
}
@media(max-height:540px) and (max-width:600px){
  .intake-progress button{flex-direction:column;font-size:9px;gap:2px;min-height:42px}
  .intake-progress span{width:20px;height:20px;flex-basis:20px}
}
