
/* TNOW-007 Contact v1.0 Draft */
.tncontact{
  position:relative;
  overflow:hidden;
  padding:108px 0 72px;
  color:#f6efe5;
  background:
    radial-gradient(circle at 14% 12%,rgba(211,169,95,.17),transparent 27%),
    radial-gradient(circle at 88% 72%,rgba(173,126,56,.10),transparent 31%),
    linear-gradient(148deg,#090a0d 0%,#13161b 58%,#1b1610 100%);
}
.tncontact::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:84px 84px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.78),transparent 94%);
}
.tncontact::after{
  content:"T&N";
  position:absolute;
  right:-4%;
  bottom:30px;
  color:rgba(224,193,138,.035);
  font-family:Georgia,"Yu Mincho",serif;
  font-size:clamp(12rem,23vw,27rem);
  font-weight:800;
  line-height:.8;
  letter-spacing:-.08em;
  pointer-events:none;
}
.tncontact__inner{position:relative;z-index:1}
.tncontact__header{
  padding-bottom:42px;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.tncontact__eyebrow,
.tncontact__guide-kicker,
.tncontact__closing-kicker{
  margin:0 0 16px;
  color:#c8a462;
  font-size:.66rem;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.tncontact__title{
  max-width:1120px;
  margin:0;
  font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(3rem,5vw,5.7rem);
  font-weight:500;
  line-height:1.1;
  letter-spacing:-.04em;
}
.tncontact__title span{display:block}
.tncontact__title span:last-child{
  margin-top:.05em;
  color:transparent;
  background:linear-gradient(110deg,#efdbb3,#b98c45,#ecd09a);
  -webkit-background-clip:text;
  background-clip:text;
}
.tncontact__lead-row{
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(430px,580px);
  gap:32px;
  align-items:start;
  margin-top:32px;
}
.tncontact__lead-line{
  height:1px;
  margin-top:13px;
  background:linear-gradient(90deg,rgba(220,187,125,.45),rgba(255,255,255,.06),transparent);
}
.tncontact__lead{
  margin:0;
  color:#bdb6ab;
  font-size:.98rem;
  line-height:1.95;
}

.tncontact__layout{
  display:grid;
  grid-template-columns:minmax(290px,.78fr) minmax(0,1.22fr);
  gap:20px;
  align-items:start;
  margin-top:34px;
}
.tncontact__guide{
  display:grid;
  gap:14px;
}
.tncontact__guide-card{
  padding:28px;
  border:1px solid rgba(224,200,156,.18);
  border-radius:23px;
  background:
    radial-gradient(circle at 84% 14%,rgba(203,158,81,.18),transparent 30%),
    linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  box-shadow:0 28px 72px rgba(0,0,0,.27);
  backdrop-filter:blur(16px);
}
.tncontact__guide-card h3{
  margin:0;
  font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(1.6rem,2.6vw,2.75rem);
  font-weight:500;
  line-height:1.42;
}
.tncontact__guide-card > p:last-of-type{
  margin:16px 0 0;
  color:#bbb3a8;
  font-size:.86rem;
  line-height:1.85;
}
.tncontact__details{
  display:grid;
  gap:0;
  margin:24px 0 0;
  border-top:1px solid rgba(255,255,255,.09);
}
.tncontact__details div{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:14px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.tncontact__details dt{
  color:#a89f94;
  font-size:.62rem;
  font-weight:900;
}
.tncontact__details dd{
  margin:0;
  color:#e0d8cc;
  font-size:.73rem;
  line-height:1.55;
}
.tncontact__trust{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:18px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:rgba(255,255,255,.025);
}
.tncontact__trust > span{
  color:#c8a462;
  font-family:Georgia,serif;
  font-size:1.4rem;
}
.tncontact__trust p{
  margin:0;
  color:#958e84;
  font-size:.66rem;
  line-height:1.65;
}

.tncontact__form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  padding:28px;
  border:1px solid rgba(224,200,156,.20);
  border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.028));
  box-shadow:0 30px 80px rgba(0,0,0,.32);
  backdrop-filter:blur(18px);
}
.tncontact__field{
  grid-column:1/-1;
  display:grid;
  gap:8px;
}
.tncontact__field--half{
  grid-column:span 1;
}
.tncontact__field label{
  color:#ddd5ca;
  font-size:.73rem;
  font-weight:900;
}
.tncontact__field label span{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  margin-left:7px;
  padding:0 7px;
  border-radius:999px;
  color:#17130d;
  background:#d7b77a;
  font-size:.52rem;
}
.tncontact__field label small{
  margin-left:7px;
  color:#868077;
  font-size:.58rem;
}
.tncontact__field input,
.tncontact__field select,
.tncontact__field textarea{
  width:100%;
  min-height:52px;
  padding:0 15px;
  color:#f5efe5;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  outline:none;
  background:rgba(255,255,255,.045);
  font:inherit;
  font-size:.86rem;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.tncontact__field textarea{
  min-height:170px;
  padding-top:15px;
  resize:vertical;
  line-height:1.7;
}
.tncontact__field select{
  appearance:auto;
}
.tncontact__field input::placeholder,
.tncontact__field textarea::placeholder{
  color:#77716a;
}
.tncontact__field input:focus,
.tncontact__field select:focus,
.tncontact__field textarea:focus{
  border-color:rgba(222,184,113,.72);
  box-shadow:0 0 0 4px rgba(201,154,78,.10);
  background:rgba(255,255,255,.065);
}
.tncontact__field-note{
  margin:0;
  color:#817b73;
  font-size:.61rem;
  line-height:1.6;
}
.tncontact__consent{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:11px;
  align-items:start;
  color:#aaa298;
  font-size:.7rem;
  line-height:1.7;
  cursor:pointer;
}
.tncontact__consent input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:#c49a54;
}
.tncontact__consent a{
  color:#dec38f;
  text-decoration:underline;
  text-underline-offset:3px;
}
.tncontact__submit{
  grid-column:1/-1;
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:0 20px 0 23px;
  border:0;
  border-radius:999px;
  color:#17130d;
  background:linear-gradient(135deg,#e2c58f,#ad7f39);
  font:inherit;
  font-size:.8rem;
  font-weight:900;
  cursor:pointer;
  transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease;
}
.tncontact__submit i{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:50%;
  color:#f6efe5;
  background:#201a12;
  font-style:normal;
}
.tncontact__submit:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(184,135,65,.23);
}
.tncontact__submit:disabled{
  cursor:not-allowed;
  opacity:.62;
  transform:none;
}
.tncontact__status{
  grid-column:1/-1;
  min-height:20px;
  font-size:.73rem;
  line-height:1.6;
}
.tncontact__form-note{
  grid-column:1/-1;
  margin:0;
  color:#77716a;
  font-size:.59rem;
  line-height:1.65;
  text-align:center;
}

.tncontact__closing{
  margin-top:38px;
  padding:38px 0 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.tncontact__closing-main{
  max-width:1000px;
  margin:0;
  font-family:Georgia,"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:clamp(2rem,4vw,4.45rem);
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.035em;
}
.tncontact__closing-main span{
  color:#c79f5c;
}

.tncontact--js .tncontact__header,
.tncontact--js .tncontact__guide,
.tncontact--js .tncontact__form,
.tncontact--js .tncontact__closing{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .66s cubic-bezier(.2,.8,.2,1),transform .66s cubic-bezier(.2,.8,.2,1);
}
.tncontact--js .is-visible{
  opacity:1;
  transform:none;
}

@media (min-width:768px) and (max-width:1199px){
  .tncontact{padding:92px 0 68px}
  .tncontact__lead-row{
    grid-template-columns:1fr;
    gap:18px;
  }
  .tncontact__lead-line{
    width:130px;
    margin-top:0;
  }
  .tncontact__lead{max-width:720px}
  .tncontact__layout{
    grid-template-columns:1fr;
  }
}

@media (max-width:767px){
  .tncontact{
    padding:72px 0 54px;
  }
  .tncontact .container{
    width:min(var(--max),calc(100% - 28px));
  }
  .tncontact::after{
    right:-18%;
    bottom:72px;
    font-size:clamp(9rem,48vw,14rem);
  }
  .tncontact__header{
    padding-bottom:30px;
  }
  .tncontact__title{
    font-size:clamp(2.2rem,10vw,3.05rem);
    line-height:1.17;
  }
  .tncontact__lead-row{
    grid-template-columns:1fr;
    gap:15px;
    margin-top:23px;
  }
  .tncontact__lead-line{
    width:92px;
    margin-top:0;
  }
  .tncontact__lead{
    font-size:.89rem;
    line-height:1.82;
  }
  .tncontact__layout{
    grid-template-columns:1fr;
    gap:14px;
    margin-top:24px;
  }
  .tncontact__guide-card{
    padding:21px;
    border-radius:19px;
  }
  .tncontact__trust{
    padding:15px;
  }
  .tncontact__form{
    grid-template-columns:1fr;
    gap:16px;
    padding:20px;
    border-radius:20px;
  }
  .tncontact__field--half{
    grid-column:1/-1;
  }
  .tncontact__field input,
  .tncontact__field select{
    min-height:50px;
  }
  .tncontact__field textarea{
    min-height:150px;
  }
  .tncontact__submit{
    min-height:54px;
  }
  .tncontact__closing{
    margin-top:28px;
    padding-top:30px;
  }
  .tncontact__closing-main{
    font-size:clamp(1.85rem,8.7vw,2.65rem);
    line-height:1.3;
  }
}

@media (prefers-reduced-motion:reduce){
  .tncontact__submit,
  .tncontact--js .tncontact__header,
  .tncontact--js .tncontact__guide,
  .tncontact--js .tncontact__form,
  .tncontact--js .tncontact__closing{
    transition:none !important;
  }
  .tncontact--js .tncontact__header,
  .tncontact--js .tncontact__guide,
  .tncontact--js .tncontact__form,
  .tncontact--js .tncontact__closing{
    opacity:1;
    transform:none;
  }
}


/* TNOW-007 Contact v1.2 — Production form additions */
.tncontact__honeypot{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  overflow:hidden !important;
}
.tncontact__noscript{
  grid-column:1/-1;
  margin:0;
  padding:12px 14px;
  border:1px solid rgba(222,184,113,.28);
  border-radius:12px;
  color:#d7c9b4;
  background:rgba(184,135,65,.08);
  font-size:.72rem;
  line-height:1.7;
}
.tncontact__noscript a{
  color:#efcf94;
  text-decoration:underline;
  text-underline-offset:3px;
}
.tncontact__field-error{
  margin:0;
  color:#e6aaaa;
  font-size:.64rem;
  line-height:1.5;
}
.tncontact__field input[aria-invalid="true"],
.tncontact__field select[aria-invalid="true"],
.tncontact__field textarea[aria-invalid="true"]{
  border-color:rgba(230,170,170,.75);
  box-shadow:0 0 0 4px rgba(210,98,98,.10);
}
