/* ===== Registration / login / account pages ===== */
.auth-section{padding:60px 0 110px;}
.auth-card{
  background:var(--white); border:1px solid var(--line); border-radius:10px;
  padding:38px 40px; box-shadow:0 30px 60px -40px rgba(10,54,56,.35);
  max-width:980px; margin:0 auto;
}
.auth-card.narrow{max-width:520px;}
.auth-intro{max-width:980px; margin:0 auto 26px; color:#3C5A54; font-size:15px; line-height:1.7;}
.auth-intro .note{display:flex; gap:10px; align-items:flex-start; margin-top:12px; font-size:13.5px; color:#5C7672;
  background:var(--sand); border-left:3px solid var(--gold); padding:10px 14px; border-radius:4px;}
.fgroup{margin-bottom:30px;}
.fgroup > h3{font-family:'Manrope',sans-serif; font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line);}
.frow{display:grid; gap:18px 20px; grid-template-columns:repeat(4,1fr);}
.frow + .frow{margin-top:18px;}
.span-2{grid-column:span 2;} .span-3{grid-column:span 3;} .span-4{grid-column:1 / -1;}
.field label{display:block; font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:7px;}
.field label .req{color:var(--coral);}
.field input, .field select, .field textarea{
  width:100%; font:inherit; font-size:14.5px; color:var(--ink); background:#fff;
  border:1px solid #D9D2C0; border-radius:6px; padding:11px 13px; transition:border-color .2s, box-shadow .2s;
}
.field textarea{min-height:96px; resize:vertical;}
.field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(14,138,144,.15);}
.field.invalid input, .field.invalid select{border-color:#C0432F; box-shadow:0 0 0 3px rgba(192,67,47,.1);}
.field .err{display:none; color:#C0432F; font-size:12px; margin-top:6px;}
.field.invalid .err{display:block;}
.field .hint{font-size:12px; color:#7A8F8C; margin-top:6px;}
.hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;}

.captcha-box{display:flex; align-items:center; gap:16px; flex-wrap:wrap; background:var(--sand); border-radius:8px; padding:16px 18px;}
.captcha-box .q{font-weight:800; font-size:15px; color:var(--ink);}
.captcha-box input{width:110px;}
.captcha-box button{font-size:12px; color:var(--teal); text-decoration:underline; background:none; border:0; cursor:pointer;}

.auth-actions{display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-top:26px;}
.btn-solid{background:var(--ink); color:var(--white); border:1px solid var(--ink); padding:14px 28px; font-size:12.5px;
  font-weight:700; letter-spacing:.12em; text-transform:uppercase; border-radius:4px; cursor:pointer; transition:all .25s; font-family:inherit;}
.btn-solid:hover{background:var(--gold); border-color:var(--gold);}
.btn-solid[disabled]{opacity:.55; cursor:wait;}
.auth-actions .muted{font-size:13.5px; color:#5C7672;}
.auth-actions .muted a, .link{color:var(--teal); font-weight:600; text-decoration:underline;}

.alert{padding:13px 16px; border-radius:6px; font-size:14px; line-height:1.55; margin-bottom:20px; display:none;}
.alert.show{display:block;}
.alert.error{background:#FBEAE6; color:#8E2E1F; border:1px solid #F0C6BC;}
.alert.ok{background:#E6F4EC; color:#14603F; border:1px solid #BFE3CD;}
.alert.info{background:var(--sand); color:var(--ink); border:1px solid var(--sand-2);}

.done-box{text-align:center; padding:20px 10px;}
.done-box .icon{width:64px; height:64px; border-radius:50%; background:#E6F4EC; color:#1E8F5E; display:flex; align-items:center; justify-content:center; margin:0 auto 20px;}
.done-box .icon.warn{background:#FDF0E1; color:var(--coral);}
.done-box .icon svg{width:30px; height:30px;}
.done-box h2{font-size:28px; margin-bottom:12px;}
.done-box p{color:#3C5A54; line-height:1.7; max-width:520px; margin:0 auto 14px;}
.login-id{display:inline-block; font-family:'Manrope',monospace; font-weight:800; font-size:24px; letter-spacing:.06em; color:var(--coral);
  background:var(--sand); border:1px dashed var(--gold); padding:12px 26px; border-radius:6px; margin:6px 0 18px;}
.steps-mini{display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin:22px 0 6px; font-size:12.5px;}
.steps-mini span{padding:7px 12px; border-radius:20px; background:var(--sand); color:#5C7672;}
.steps-mini span.on{background:var(--ink); color:#fff;}

.profile-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:0 30px;}
.profile-grid div{padding:12px 0; border-bottom:1px solid var(--line); font-size:14px;}
.profile-grid dt{font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:#7A8F8C; margin-bottom:3px;}

@media (max-width:880px){ .frow{grid-template-columns:repeat(2,1fr);} .span-3{grid-column:1 / -1;} }
@media (max-width:560px){
  .auth-card{padding:26px 20px;}
  .frow{grid-template-columns:1fr;} .span-2,.span-3{grid-column:1 / -1;}
  .profile-grid{grid-template-columns:1fr;}
}

/* ===== Homepage "Send us a message" ===== */
.contact-section{padding:100px 0; background:var(--paper);}
.contact-grid{display:grid; grid-template-columns:0.9fr 1.3fr; gap:60px; align-items:start;}
.contact-intro h2{font-size:clamp(30px,3.4vw,44px); margin:16px 0 16px; color:var(--ink);}
.contact-intro p{color:#3C5A54; line-height:1.75; font-size:15px; max-width:420px;}
.contact-points{margin-top:28px; display:grid; gap:14px;}
.contact-points div{display:flex; gap:14px; align-items:flex-start; font-size:14px; color:#3C5A54; line-height:1.55;}
.contact-points b{display:block; color:var(--ink); font-size:14.5px;}
.contact-points .ic{flex:0 0 38px; height:38px; border-radius:50%; background:var(--sand); color:var(--gold); display:flex; align-items:center; justify-content:center;}
.contact-points .ic svg{width:17px; height:17px;}
.contact-card{padding:34px 34px 30px; max-width:none; margin:0;}
.contact-card .frow{grid-template-columns:repeat(2,1fr);}
.contact-card .done-box{padding:40px 10px;}
@media (max-width:980px){ .contact-grid{grid-template-columns:1fr; gap:36px;} }
@media (max-width:560px){ .contact-section{padding:70px 0;} .contact-card .frow{grid-template-columns:1fr;} .contact-card{padding:24px 18px;} }

/* ===== Homepage sign-in card (visitors who are not signed in) ===== */
.hero-login[hidden]{display:none !important;}
.hero-login{position:relative; width:100%; max-width:410px; background:#fff; color:var(--ink); border-radius:10px; overflow:hidden;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.55); text-align:left;}
.hero-login .hl-anchor{position:absolute; top:-120px;}
.hero-login .hl-head{padding:30px 32px 22px; text-align:center;}
.hero-login .hl-head img{height:46px; max-width:100%; display:block; margin:0 auto 18px;}
.hero-login .hl-head img[src=""]{display:none;}
.hero-login .hl-head h2{font-family:'Manrope',sans-serif; font-weight:800; font-size:26px; letter-spacing:-.01em; color:var(--ink); margin:0;}
.hero-login .hl-body{background:#FBF8F0; padding:24px 32px 26px;}
.hero-login .field{margin-bottom:16px;}
.hero-login .field label{color:var(--ink);}
.hero-login .alert{margin-bottom:16px;}
.hero-login .hl-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
.hero-login .hl-resend{background:var(--gold); border-color:var(--gold);}
.hero-login .hl-new{margin:20px 0 0; font-size:14.5px; color:#3C5A54;}
.hero-login .hl-new a{color:var(--ink); margin-left:8px; text-decoration:none; border-bottom:1px solid transparent;}
.hero-login .hl-new a:hover{border-bottom-color:currentColor;}

/* Hero layout while signed out: headline on the left, card on the right */
html.pt-guest .hero{height:auto; min-height:100vh;}
html.pt-guest .hero-ctas{display:none;}
@media (min-width:1001px){
  html.pt-guest .hero-inner{display:grid; grid-template-columns:minmax(0,1fr) 410px; column-gap:64px; align-items:center; align-content:center;
    text-align:left; max-width:1280px; margin:0 auto; min-height:100vh; padding:170px 40px 90px;}
  html.pt-guest .hero-inner > *:not(.hero-login){grid-column:1;}
  html.pt-guest .hero-inner .eyebrow{justify-content:flex-start;}
  html.pt-guest .hero-inner h1{font-size:clamp(38px,4.6vw,66px); margin:18px 0 20px;}
  html.pt-guest .hero-inner p.lead{margin-bottom:0;}
  html.pt-guest .hero-login{grid-column:2; grid-row:1 / span 4;}
  /* Desktop: the card stays fixed on the right while the page scrolls underneath */
  html.pt-guest .hero-login{position:fixed; z-index:90; top:50%; transform:translateY(-42%);
    right:max(24px, calc((100vw - 1280px) / 2 + 40px)); width:410px;
    max-height:calc(100vh - 160px); overflow:auto;}
}
@media (max-width:1000px){
  html.pt-guest .hero-inner{height:auto; min-height:100vh; padding:150px 20px 90px;}
  html.pt-guest .hero-inner h1{font-size:clamp(34px,8vw,54px);}
  html.pt-guest .hero-inner p.lead{margin-bottom:26px;}
  html.pt-guest .hero-login{margin:0 auto;}
  html.pt-guest .hero .scroll-cue{display:none;}
}
@media (max-width:560px){
  html.pt-guest .hero-inner{padding:120px 16px 80px;}
  .hero-login .hl-head{padding:24px 22px 18px;}
  .hero-login .hl-body{padding:20px 22px 22px;}
}

/* Draw attention to the card when a locked link is clicked */
@keyframes ptCardPulse{0%{box-shadow:0 40px 80px -30px rgba(0,0,0,.55), 0 0 0 0 rgba(224,138,46,.75);}
  60%{box-shadow:0 40px 80px -30px rgba(0,0,0,.55), 0 0 0 12px rgba(224,138,46,0);}
  100%{box-shadow:0 40px 80px -30px rgba(0,0,0,.55), 0 0 0 0 rgba(224,138,46,0);}}
.hero-login.pulse{animation:ptCardPulse .9s ease-out 2;}

/* Mobile: small sign-in bar fixed at the bottom of the screen */
.hl-mbar{display:none;}
@media (max-width:1000px){
  html.pt-guest .hl-mbar.show{display:flex; position:fixed; left:12px; right:12px; bottom:12px; z-index:95; align-items:center; justify-content:space-between; gap:12px;
    background:var(--ink); color:#fff; border:0; border-radius:10px; padding:13px 16px; font:inherit; font-size:14px; font-weight:600; cursor:pointer;
    box-shadow:0 18px 40px -16px rgba(0,0,0,.6);}
  html.pt-guest .hl-mbar b{background:var(--gold); color:var(--ink); border-radius:6px; padding:7px 14px; font-size:12px; letter-spacing:.1em; text-transform:uppercase;}
}
