/* Toni North Photography — design system */

:root{
  --ink:#241F1C;
  --body:#564B42;
  --body-soft:#8A7D72;
  --cream:#FBF5EE;
  --cream-deep:#F2E6D8;
  --white:#FFFFFF;
  --rose:#C27863;
  --rose-deep:#9C5744;
  --rose-pale:#F1DCD2;
  --sage:#76815C;
  --sage-deep:#5B6448;
  --line:rgba(36,31,28,.12);
  --shadow:0 20px 50px -20px rgba(36,31,28,.25);
  --radius:2px;
  --ease:cubic-bezier(.22,1,.36,1);
}

body.tn-styled{
  background:var(--cream);
  color:var(--body);
}
.tn-styled, .tn-styled p, .tn-styled li{
  font-family:"Jost", "Work Sans", sans-serif;
}
.tn-styled h1,.tn-styled h2,.tn-styled h3,.tn-styled .tn-display{
  font-family:"Fraunces","Playfair Display",serif;
  font-optical-sizing:auto;
  color:var(--ink);
  letter-spacing:-.01em;
  line-height:1.05;
}
.tn-styled em{ font-style:italic; color:var(--rose-deep); }

/* ---------- utility ---------- */
.tn-eyebrow{
  display:inline-block;
  font-family:"Jost",sans-serif;
  font-size:13px;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:var(--rose-deep);
  font-weight:600;
  margin-bottom:14px;
}
.tn-eyebrow::before{content:"— "; color:var(--sage);}
.tn-pill{
  display:inline-flex;align-items:center;gap:8px;
  border-radius:999px;
  padding:16px 34px;
  font-family:"Jost",sans-serif;
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  text-decoration:none!important;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s;
}
a.tn-pill.tn-pill--fill{ background:var(--rose); color:#fff!important; box-shadow:0 14px 30px -12px rgba(156,87,68,.55);}
a.tn-pill.tn-pill--fill:hover{ background:var(--rose-deep); transform:translateY(-2px); box-shadow:0 18px 36px -12px rgba(156,87,68,.65);}
a.tn-pill.tn-pill--line{ background:transparent; color:var(--ink)!important; border:1.5px solid var(--ink);}
a.tn-pill.tn-pill--line:hover{ background:var(--ink); color:#fff!important; transform:translateY(-2px);}
a.tn-pill.tn-pill--line-light{ background:transparent; color:#fff!important; border:1.5px solid rgba(255,255,255,.75);}
a.tn-pill.tn-pill--line-light:hover{ background:#fff; color:var(--ink)!important;}

/* ---------- header ---------- */
.tn-header{
  position:sticky; top:0; z-index:999;
  background:rgba(251,245,238,.9);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s, box-shadow .3s, background .3s;
}
.tn-header.tn-scrolled{
  border-bottom-color:var(--line);
  box-shadow:0 10px 30px -22px rgba(36,31,28,.4);
}
.tn-header .elementor-nav-menu--main a{
  font-family:"Jost",sans-serif!important;
  font-size:13px!important;
  letter-spacing:.14em!important;
  text-transform:uppercase;
  font-weight:600!important;
  color:var(--ink)!important;
  position:relative;
}
.tn-header .elementor-nav-menu--main a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1.5px;background:var(--rose);
  transition:right .35s var(--ease);
}
.tn-header .elementor-nav-menu--main li:hover > a::after,
.tn-header .elementor-nav-menu--main li.current-menu-item > a::after{ right:0; }

/* mobile dropdown nav */
.elementor-menu-toggle{
  color:var(--ink)!important; background:transparent!important; border:1.5px solid var(--ink)!important;
  border-radius:999px!important; width:48px!important; height:48px!important; padding:0!important;
}
.elementor-nav-menu--dropdown{
  background:var(--ink)!important; border-radius:4px; margin-top:14px!important;
  padding:12px 8px!important; box-shadow:0 24px 50px -18px rgba(36,31,28,.45);
}
.elementor-nav-menu--dropdown a{
  font-family:"Fraunces",serif!important;
  font-size:22px!important;
  color:#fff!important;
  text-transform:none!important;
  letter-spacing:0!important;
  padding:14px 18px!important;
  background:transparent!important;
}
.elementor-nav-menu--dropdown li:not(:last-child){ border-bottom:1px solid rgba(255,255,255,.1); }
.elementor-nav-menu--dropdown a:hover, .elementor-nav-menu--dropdown .elementor-item-active{
  color:var(--rose)!important; background:transparent!important;
}

/* ---------- trust bar (static, calm) ---------- */
.tn-marquee{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--cream-deep); overflow:hidden;}
.tn-marquee .tn-marquee-track{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; animation:none; width:auto; }
.tn-marquee span.tn-m-item{
  font-family:"Jost",sans-serif; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  font-size:12.5px; color:var(--body); padding:16px 22px; display:inline-flex; align-items:center; gap:22px; white-space:nowrap;
}
.tn-marquee span.tn-m-item::after{ content:"\2022"; color:var(--rose); font-size:14px; }
.tn-marquee span.tn-m-item:last-child::after{ content:none; }

/* ---------- reveal ---------- */
.tn-reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.tn-reveal.tn-in{ opacity:1; transform:none; }
.tn-reveal.d1{transition-delay:.08s;} .tn-reveal.d2{transition-delay:.16s;} .tn-reveal.d3{transition-delay:.24s;} .tn-reveal.d4{transition-delay:.32s;}
@media (prefers-reduced-motion: reduce){ .tn-reveal{opacity:1!important;transform:none!important;transition:none!important;} }

/* ---------- photo tiles ---------- */
.tn-tile{ overflow:hidden; position:relative; }
.tn-tile .e-con-inner, .tn-tile{ transition:none; }
.tn-tile{ background-size:cover!important; background-position:center!important; }
.tn-tile::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(20,15,12,.35) 100%); opacity:0; transition:opacity .4s; pointer-events:none;}
.tn-hover-zoom{ overflow:hidden; }
.tn-hover-zoom .e-con-inner{ transition:transform 1.1s var(--ease); }
.tn-hover-zoom:hover .e-con-inner{ transform:scale(1.045); }

/* ---------- hero ---------- */
.tn-hero{ position:relative; overflow:hidden; }
.tn-hero::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,16,13,.15) 0%,rgba(20,16,13,.05) 40%,rgba(20,16,13,.55) 100%); z-index:1; pointer-events:none;}
.tn-hero > .e-con-inner{ position:relative; z-index:2; }
.tn-hero .tn-display{ color:#fff; }
.tn-hero p{ color:rgba(255,255,255,.92); }
.tn-scrollcue{ position:absolute; left:50%; bottom:34px; transform:translateX(-50%); z-index:3; width:1px; height:46px; background:rgba(255,255,255,.55); overflow:hidden;}
.tn-scrollcue::after{ content:""; position:absolute; top:-46px; left:0; width:100%; height:46px; background:#fff; animation:tn-cue 2.2s ease-in-out infinite;}
@keyframes tn-cue{ 0%{top:-46px;} 60%{top:46px;} 100%{top:46px;} }

/* ---------- testimonial / pricing cards ---------- */
.tn-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.tn-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.tn-card .tn-quote-mark{ font-family:"Fraunces",serif; font-size:60px; color:var(--rose-pale); line-height:1; }
.tn-stars{ color:var(--rose); letter-spacing:3px; font-size:14px; }

.tn-pkg{ position:relative; background:#fff; border:1px solid var(--line); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s; }
.tn-pkg:hover{ transform:translateY(-8px); box-shadow:var(--shadow); border-color:transparent;}
.tn-pkg--feat{ border:1.5px solid var(--rose); }
.tn-pkg--feat::before{
  content:"Most Loved"; position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background:var(--rose); color:#fff; font-family:"Jost",sans-serif; font-size:11px; letter-spacing:.14em;
  text-transform:uppercase; font-weight:600; padding:6px 18px; border-radius:999px; white-space:nowrap;
}
.tn-pkg ul{ list-style:none; margin:0; padding:0; }
.tn-pkg ul li{ position:relative; padding-left:26px; margin-bottom:10px; font-size:15px; }
.tn-pkg ul li::before{ content:"✦"; position:absolute; left:0; top:1px; color:var(--rose); font-size:12px; }

/* ---------- FAQ accordion restyle ---------- */
.tn-faq .elementor-accordion-item{ border:none!important; border-bottom:1px solid var(--line)!important; }
.tn-faq .elementor-tab-title{
  font-family:"Fraunces",serif!important; font-size:clamp(18px,2vw,22px)!important; color:var(--ink)!important;
  padding:26px 0!important; background:transparent!important;
}
.tn-faq .elementor-tab-title .elementor-accordion-icon{ color:var(--rose)!important; }
.tn-faq .elementor-tab-content{ padding:0 0 26px!important; border:none!important; background:transparent!important; font-size:16px; }

/* ---------- editorial step row ---------- */
.tn-step-row{ border-top:1px solid var(--line); margin-top:50px; }
.tn-step{ padding:40px 28px 0!important; border-left:1px solid var(--line); text-align:left; }
.tn-step-num{ font-family:"Fraunces",serif; font-size:17px; font-weight:600; color:var(--rose); letter-spacing:.04em; }
@media(max-width:900px){ .tn-step{ border-left:none; border-top:1px solid var(--line); padding:28px 0 0!important; } }

/* ---------- footer ---------- */
.tn-footer{ background:var(--ink); color:rgba(255,255,255,.72); }
.tn-footer .tn-display{ color:#fff; }
.tn-footer a{ color:rgba(255,255,255,.72); text-decoration:none; }
.tn-footer a:hover{ color:#fff; }
.tn-social{
  width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.3);
  display:inline-flex;align-items:center;justify-content:center; transition:background .3s,border-color .3s;
}
.tn-social:hover{ background:var(--rose); border-color:var(--rose); }

/* ---------- gallery ---------- */
.tn-gallery .e-gallery-item{ border-radius:var(--radius); overflow:hidden; }
.tn-gallery .e-gallery-image{ transition:transform 1.1s var(--ease)!important; }
.tn-gallery .e-gallery-item:hover .e-gallery-image{ transform:scale(1.06); }
.tn-gallery .gallery{ display:flex!important; flex-wrap:wrap; gap:20px; }
.tn-gallery .gallery-item{ margin:0!important; width:calc(25% - 15px)!important; aspect-ratio:3/4; overflow:hidden; border-radius:var(--radius); position:relative; }
.tn-gallery .gallery-item img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.tn-gallery .gallery-item:hover img{ transform:scale(1.06); }
.tn-gallery .gallery-caption{ display:none; }
@media(max-width:900px){ .tn-gallery .gallery-item{ width:calc(50% - 10px)!important; } }
@media(max-width:560px){ .tn-gallery .gallery-item{ width:100%!important; } }

@media(max-width:767px){
  .tn-pill{ padding:14px 26px; font-size:12px; }
  .tn-marquee span.tn-m-item{ padding:14px 22px; }
}


/* width utilities */
[class*="tn-w-"]{box-sizing:border-box;}
.tn-w-10{flex:0 0 10%!important;max-width:10%!important;}
.tn-w-11{flex:0 0 11%!important;max-width:11%!important;}
.tn-w-12{flex:0 0 12%!important;max-width:12%!important;}
.tn-w-13{flex:0 0 13%!important;max-width:13%!important;}
.tn-w-14{flex:0 0 14%!important;max-width:14%!important;}
.tn-w-15{flex:0 0 15%!important;max-width:15%!important;}
.tn-w-16{flex:0 0 16%!important;max-width:16%!important;}
.tn-w-17{flex:0 0 17%!important;max-width:17%!important;}
.tn-w-18{flex:0 0 18%!important;max-width:18%!important;}
.tn-w-19{flex:0 0 19%!important;max-width:19%!important;}
.tn-w-20{flex:0 0 20%!important;max-width:20%!important;}
.tn-w-21{flex:0 0 21%!important;max-width:21%!important;}
.tn-w-22{flex:0 0 22%!important;max-width:22%!important;}
.tn-w-23{flex:0 0 23%!important;max-width:23%!important;}
.tn-w-24{flex:0 0 24%!important;max-width:24%!important;}
.tn-w-25{flex:0 0 25%!important;max-width:25%!important;}
.tn-w-26{flex:0 0 26%!important;max-width:26%!important;}
.tn-w-27{flex:0 0 27%!important;max-width:27%!important;}
.tn-w-28{flex:0 0 28%!important;max-width:28%!important;}
.tn-w-29{flex:0 0 29%!important;max-width:29%!important;}
.tn-w-30{flex:0 0 30%!important;max-width:30%!important;}
.tn-w-31{flex:0 0 31%!important;max-width:31%!important;}
.tn-w-32{flex:0 0 32%!important;max-width:32%!important;}
.tn-w-33{flex:0 0 33%!important;max-width:33%!important;}
.tn-w-34{flex:0 0 34%!important;max-width:34%!important;}
.tn-w-35{flex:0 0 35%!important;max-width:35%!important;}
.tn-w-36{flex:0 0 36%!important;max-width:36%!important;}
.tn-w-37{flex:0 0 37%!important;max-width:37%!important;}
.tn-w-38{flex:0 0 38%!important;max-width:38%!important;}
.tn-w-39{flex:0 0 39%!important;max-width:39%!important;}
.tn-w-40{flex:0 0 40%!important;max-width:40%!important;}
.tn-w-41{flex:0 0 41%!important;max-width:41%!important;}
.tn-w-42{flex:0 0 42%!important;max-width:42%!important;}
.tn-w-43{flex:0 0 43%!important;max-width:43%!important;}
.tn-w-44{flex:0 0 44%!important;max-width:44%!important;}
.tn-w-45{flex:0 0 45%!important;max-width:45%!important;}
.tn-w-46{flex:0 0 46%!important;max-width:46%!important;}
.tn-w-47{flex:0 0 47%!important;max-width:47%!important;}
.tn-w-48{flex:0 0 48%!important;max-width:48%!important;}
.tn-w-49{flex:0 0 49%!important;max-width:49%!important;}
.tn-w-50{flex:0 0 50%!important;max-width:50%!important;}
.tn-w-51{flex:0 0 51%!important;max-width:51%!important;}
.tn-w-52{flex:0 0 52%!important;max-width:52%!important;}
.tn-w-53{flex:0 0 53%!important;max-width:53%!important;}
.tn-w-54{flex:0 0 54%!important;max-width:54%!important;}
.tn-w-55{flex:0 0 55%!important;max-width:55%!important;}
.tn-w-56{flex:0 0 56%!important;max-width:56%!important;}
.tn-w-57{flex:0 0 57%!important;max-width:57%!important;}
.tn-w-58{flex:0 0 58%!important;max-width:58%!important;}
.tn-w-59{flex:0 0 59%!important;max-width:59%!important;}
.tn-w-60{flex:0 0 60%!important;max-width:60%!important;}
.tn-w-61{flex:0 0 61%!important;max-width:61%!important;}
.tn-w-62{flex:0 0 62%!important;max-width:62%!important;}
.tn-w-63{flex:0 0 63%!important;max-width:63%!important;}
.tn-w-64{flex:0 0 64%!important;max-width:64%!important;}
.tn-w-65{flex:0 0 65%!important;max-width:65%!important;}
.tn-w-66{flex:0 0 66%!important;max-width:66%!important;}
.tn-w-67{flex:0 0 67%!important;max-width:67%!important;}
.tn-w-68{flex:0 0 68%!important;max-width:68%!important;}
.tn-w-69{flex:0 0 69%!important;max-width:69%!important;}
.tn-w-70{flex:0 0 70%!important;max-width:70%!important;}
.tn-w-71{flex:0 0 71%!important;max-width:71%!important;}
.tn-w-72{flex:0 0 72%!important;max-width:72%!important;}
.tn-w-73{flex:0 0 73%!important;max-width:73%!important;}
.tn-w-74{flex:0 0 74%!important;max-width:74%!important;}
.tn-w-75{flex:0 0 75%!important;max-width:75%!important;}
.tn-w-76{flex:0 0 76%!important;max-width:76%!important;}
.tn-w-77{flex:0 0 77%!important;max-width:77%!important;}
.tn-w-78{flex:0 0 78%!important;max-width:78%!important;}
.tn-w-79{flex:0 0 79%!important;max-width:79%!important;}
.tn-w-80{flex:0 0 80%!important;max-width:80%!important;}
.tn-w-81{flex:0 0 81%!important;max-width:81%!important;}
.tn-w-82{flex:0 0 82%!important;max-width:82%!important;}
.tn-w-83{flex:0 0 83%!important;max-width:83%!important;}
.tn-w-84{flex:0 0 84%!important;max-width:84%!important;}
.tn-w-85{flex:0 0 85%!important;max-width:85%!important;}
.tn-w-86{flex:0 0 86%!important;max-width:86%!important;}
.tn-w-87{flex:0 0 87%!important;max-width:87%!important;}
.tn-w-88{flex:0 0 88%!important;max-width:88%!important;}
.tn-w-89{flex:0 0 89%!important;max-width:89%!important;}
.tn-w-90{flex:0 0 90%!important;max-width:90%!important;}
.tn-w-91{flex:0 0 91%!important;max-width:91%!important;}
.tn-w-92{flex:0 0 92%!important;max-width:92%!important;}
.tn-w-93{flex:0 0 93%!important;max-width:93%!important;}
.tn-w-94{flex:0 0 94%!important;max-width:94%!important;}
.tn-w-95{flex:0 0 95%!important;max-width:95%!important;}
@media(max-width:767px){ [class*="tn-w-"]{flex:0 0 100%!important;max-width:100%!important;} }
