/* Lormiqa adaptation of the supplied Asa frame and navigation. */
:root { --paper:#faf8f4; --ink:#472b1e; --muted:#6d6159; --frame:clamp(1.1rem,4.5vw,5.25rem); --serif:"Cormorant Garamond",Georgia,serif; --sans:"Manrope",Arial,sans-serif; }
html { font-size:100%; scroll-behavior:smooth; }
body.lormiqa-page { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:1rem; -webkit-font-smoothing:antialiased; }
* { box-sizing:border-box; }
a,button { -webkit-tap-highlight-color:transparent; }
a,a:hover { color:inherit; }
a:hover { text-decoration:none; }
a:focus-visible,button:focus-visible { outline:2px solid var(--ink); outline-offset:6px; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:3000; padding:.8rem 1.2rem; background:var(--ink); color:var(--paper); }
.skip-link:focus { top:1rem; color:var(--paper); }
.page-shell { position:relative; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; padding:0 var(--frame); }
.brand-header { height:clamp(5.8rem,11.5vh,8.25rem); flex:none; display:flex; align-items:center; justify-content:center; }
.wordmark { display:inline-block; margin-left:.32em; font-family:var(--serif); font-size:clamp(2rem,3vw,3.125rem); font-weight:500; line-height:1; letter-spacing:.32em; }
.hero-panel { position:relative; flex:1; display:flex; min-height:36rem; isolation:isolate; background:#eee9df; }
.hero-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.asa-navigation { position:absolute; z-index:5; top:0; left:50%; transform:translateX(-50%); min-width:36rem; padding:0 4.5rem 1.15rem; }
.asa-navigation::before { content:""; position:absolute; inset:-1px 0 0; z-index:-1; background:var(--paper); clip-path:polygon(0 0,100% 0,90% 100%,10% 100%); }
.asa-navigation ul { list-style:none; display:flex; align-items:center; justify-content:center; gap:2.65rem; margin:0; padding:.8rem 0 .45rem; }
.asa-navigation a { position:relative; display:block; padding:.3rem 0 .6rem; font-size:.95rem; font-weight:500; white-space:nowrap; }
.asa-navigation a::after { content:""; position:absolute; bottom:.1rem; height:1px; width:1.55rem; background:var(--ink); left:50%; transform:translateX(-50%) scaleX(0); transition:transform .2s; }
.asa-navigation a.active::after,.asa-navigation a:hover::after,.asa-navigation a:focus-visible::after { transform:translateX(-50%) scaleX(1); }
.hero-copy { width:100%; max-width:76rem; margin:auto; padding:6.5rem 2rem 8.5rem; text-align:center; }
.eyebrow { margin:0 0 1.85rem; color:#6a594c; font-size:.875rem; font-weight:500; line-height:1.5; letter-spacing:.3em; text-transform:uppercase; }
.hero-copy h1 { margin:0; color:var(--ink); font-family:var(--serif); font-size:clamp(3.75rem,6.6vw,7rem); font-weight:400; line-height:.99; letter-spacing:-.035em; }
.hero-copy h1 span { display:block; }
.hero-description { margin:1.9rem 0 0; color:var(--muted); font-size:clamp(1rem,1.45vw,1.25rem); line-height:1.7; }
.hero-actions { display:flex; align-items:center; justify-content:center; gap:1rem; margin-top:2.65rem; }
.btn.btn-lormiqa,.btn.btn-lormiqa-outline { min-width:11.4rem; min-height:3.7rem; padding:1rem 1.5rem; border:1px solid var(--ink); border-radius:2px; font-family:var(--sans); font-size:.95rem; font-weight:500; line-height:1.5; display:inline-flex; align-items:center; justify-content:center; transition:background-color .2s,color .2s,transform .2s; }
.btn.btn-lormiqa { background:var(--ink); color:var(--paper); }
.btn.btn-lormiqa:hover { background:#604333; border-color:#604333; color:white; transform:translateY(-2px); }
.btn.btn-lormiqa-outline { background:rgb(250 248 244 / 22%); color:var(--ink); }
.btn.btn-lormiqa-outline:hover { background:var(--paper); color:var(--ink); transform:translateY(-2px); }
.social-rail { position:absolute; right:0; top:50%; transform:translateY(-50%); width:var(--frame); display:flex; flex-direction:column; align-items:center; gap:1.6rem; }
.social-rail a { width:2.75rem; height:2.75rem; display:grid; place-items:center; }
.social-rail svg { width:1.35rem; height:1.35rem; stroke:currentColor; stroke-width:1.5; }
.icon-dot { fill:currentColor; stroke:none; }
.rail-line { width:1px; height:2.2rem; background:#a59387; }
.rail-wordmark { writing-mode:vertical-rl; font-size:.75rem; letter-spacing:.23em; }
.site-footer { min-height:4.25rem; display:flex; align-items:center; justify-content:center; flex:none; }
.site-footer p { margin:0; color:#776c64; font-size:.8125rem; line-height:1.5; }
.modal { color:var(--ink); }
.modal:focus { outline:none; }
.modal-close:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.modal-close:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.modal-backdrop.show { opacity:.4; }
.modal-dialog { max-width:38rem; margin:1.5rem auto; padding:1rem; }
.modal-content { position:relative; background:var(--paper); border:1px solid #e1d9cd; border-radius:3px; box-shadow:0 30px 90px rgb(48 29 17 / 18%); }
.modal-close { position:absolute; z-index:2; right:.65rem; top:.45rem; width:2.75rem; height:2.75rem; padding:0; border:0; color:var(--ink); background:transparent; font:300 2rem/1 var(--sans); cursor:pointer; }
.modal-body { padding:3.25rem 3rem; text-align:center; }
.modal-body .eyebrow { margin-bottom:1.25rem; font-size:.8125rem; }
.modal-body h2 { color:var(--ink); font:400 clamp(2.5rem,5vw,3.5rem)/1.05 var(--serif); letter-spacing:-.025em; margin:0; }
.modal-rule { width:2.25rem; height:1px; background:#ae9887; margin:1.75rem auto; }
.modal-body p:not(.eyebrow) { color:var(--muted); font-size:1rem; line-height:1.85; margin-bottom:1rem; }
.modal-body .closing-line { font-style:italic; }
.modal-body .btn { margin-top:1rem; min-width:0; max-width:100%; }
.no-script-note { padding:1rem; text-align:center; }
@media(min-width:1600px) { .hero-copy { padding-bottom:9.5rem; } }
@media(max-width:1100px) {
  :root { --frame:2rem; }
  .hero-panel { min-height:40rem; }
  .hero-image { object-position:66% center; }
  .hero-copy { padding:7rem 1.8rem 13rem; }
  .hero-copy h1 { font-size:clamp(3.5rem,7.5vw,5.25rem); }
  .hero-description { max-width:30rem; margin-left:auto; margin-right:auto; }
  .social-rail { display:none; }
}
@media(max-width:650px) {
  :root { --frame:.85rem; }
  .brand-header { height:5.6rem; }
  .wordmark { font-size:2rem; letter-spacing:.28em; }
  .hero-panel { min-height:max(41rem,calc(100svh - 8.9rem)); }
  .hero-image { object-position:100% center; }
  .asa-navigation { min-width:0; width:calc(100% - 1.2rem); max-width:28rem; padding:0 1rem .9rem; }
  .asa-navigation ul { gap:clamp(1rem,4vw,1.8rem); padding-top:.6rem; }
  .asa-navigation a { font-size:.875rem; }
  .hero-copy { margin:0 auto; padding:6.3rem 1rem 17.3rem; }
  .eyebrow { font-size:.75rem; margin-bottom:1.55rem; letter-spacing:.27em; }
  .hero-copy h1 { font-size:clamp(2.55rem,10.5vw,4rem); line-height:1.05; letter-spacing:-.04em; }
  .hero-description { max-width:18rem; margin-top:1.25rem; font-size:1rem; line-height:1.6; text-wrap:balance; }
  .hero-actions { gap:.6rem; margin-top:1.9rem; flex-wrap:wrap; }
  .hero-actions .btn-lormiqa-outline { background:var(--paper); }
  .btn.btn-lormiqa,.btn.btn-lormiqa-outline { min-width:8.25rem; min-height:3.4rem; padding:.9rem 1rem; font-size:.875rem; }
  .site-footer { min-height:3.3rem; }
  .modal-dialog { margin:.5rem auto; padding:.6rem; }
  .modal-content { max-height:calc(100vh - 2.2rem); max-height:calc(100dvh - 2.2rem); }
  .modal-body { padding:3rem 1.4rem 2rem; overflow-y:auto; overscroll-behavior:contain; }
  .modal-body h2 { font-size:2.25rem; line-height:1.12; }
  .modal-close { background:var(--paper); border-radius:50%; }
  .asa-navigation a { min-height:44px; display:flex; align-items:center; }
}
@media(max-width:350px) {
  .asa-navigation ul { gap:.8rem; }
  .hero-copy { padding-inline:.6rem; }
  .hero-copy h1 { font-size:2.4rem; }
  .hero-actions { flex-wrap:nowrap; }
  .hero-actions .btn { flex:1; min-width:0; padding-inline:.5rem; }
  .hero-copy { padding-top:5.6rem; padding-bottom:14rem; }
  .hero-copy h1 { font-size:2.2rem; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
