/* Top Perfume Factory — ivory, champagne and graphite. */
:root {
  --tp-green: #292b2d;
  --tp-deep: #202224;
  --tp-cream: #f3eee6;
  --tp-gold: #a17947;
  --tp-ink: #2b2926;
  --tp-muted: #69635b;
  --tp-line: #ded6c9;
  --page: #fcfaf6;
  --paper: #fffdfa;
  --ink: #2b2926;
  --muted: #69635b;
  --line: #ded6c9;
  --dark: #202224;
  --dark-soft: #303133;
  --green: #876037;
  --green-dark: #634626;
  --lime: #e0c49a;
  --orange: #a17947;
  --tp-champagne: #dfc394;
}
body { background:var(--page); color:var(--tp-ink); }
::selection { background:#e7d4b7; color:#292b2d; }
.tp-scroll-progress { position:fixed; inset:0 auto auto 0; width:100%; height:2px; z-index:110; background:var(--tp-champagne); transform:scaleX(0); transform-origin:left; pointer-events:none; }
.tp-utility { background:#292b2d; color:#eee2cf; }
.tp-header { background:#fcfaf6f5; border-bottom-color:#dfd6c880; transition:box-shadow .3s,background .3s; }
.tp-header.is-scrolled { background:#fcfaf6fc; box-shadow:0 6px 28px #28231c0d; }
.tp-brand-mark { border-color:#b18b57; }
.tp-brand-mark>span { background:#fcfaf6; }
.tp-brand small { color:#80633e; }
.tp-nav>a:not(.tp-nav-cta) { position:relative; }
.tp-nav>a:not(.tp-nav-cta)::after { content:''; position:absolute; bottom:-7px; left:0; width:100%; height:1px; background:var(--tp-gold); transform:scaleX(0); transform-origin:left; transition:transform .25s ease; }
.tp-nav>a:not(.tp-nav-cta):hover::after { transform:scaleX(1); }
.tp-nav .tp-nav-cta { background:#292b2d; border:1px solid #292b2d; transition:background .25s,color .25s; }
.tp-nav .tp-nav-cta:hover { background:#e0c49a; border-color:#e0c49a; color:#292b2d; }
.tp-hero { background:radial-gradient(ellipse at 8% 15%,#fffdfa 0%,#f3eee6 70%); }
.tp-hero h1 { color:#292b2d; }
.tp-hero h1 em { color:#876037; }
.tp-hero-summary,.tp-hero-notes { color:#69635b; }
.tp-photo-tag { color:#453a2c; background:#fcfaf6ed; border:1px solid #e4d5be; }
.tp-photo-caption { background:linear-gradient(transparent,#202224e8); }
.tp-photo-caption div>span { color:#ece3d7; }
.tp-pulse { background:#e0c49a; }
.tp-kicker { color:#876037; }
.tp-button { position:relative; overflow:hidden; isolation:isolate; background:#dfc394; border-color:#dfc394; color:#292b2d; transition:background .25s,box-shadow .25s,transform .25s; }
.tp-button:hover { background:#e9d1ac; color:#292b2d; box-shadow:0 8px 22px #7b5d2e19; transform:translateY(-2px); }
.tp-button>span { transition:transform .25s; }
.tp-button:hover>span { transform:translate(2px,-2px); }
.tp-button-cream { background:#f3eee6; border-color:#f3eee6; color:#292b2d; }
.tp-text-link { border-color:#bda98d; transition:color .25s,border-color .25s; }
.tp-text-link:hover { color:#876037; border-color:#876037; }
.tp-sample-link { border-color:#cfc2af; }
.tp-product-section,.tp-buying-section { background:#f1ece3; }
.tp-product-image { border:1px solid #e6dfd3; background:#fffdfa; transition:border-color .35s,box-shadow .35s; }
.tp-product-image>span { color:#74695b; }
.tp-product>button { border-color:#c8b99f; }
.tp-product>button:hover { color:#876037; border-color:#876037; }
.tp-product-image img { transition:transform .65s cubic-bezier(.2,.65,.3,1); }
.tp-caption { color:#72695e; }
.tp-footage img { border:1px solid #ddd1be; }
.tp-film-cover-play { background:#292b2de8; border-color:#e0c49a90; color:#fff6e7; transition:background .25s,border-color .25s; }
.tp-film-cover-play:hover { background:#292b2d; border-color:#e0c49a; }
.tp-factory-grid figure { background:#e6e0d5; }
.tp-factory-grid figcaption { background:linear-gradient(transparent,#202224eb); }
.tp-factory-grid figcaption>span { color:#e0c49a; }
.tp-factory-grid figcaption p { color:#e9e2d7; }
.tp-factory-identity { border-color:var(--tp-line); }
.tp-example-image { overflow:hidden; background:#f3eee6; }
.tp-example-image img { transition:transform .65s cubic-bezier(.2,.65,.3,1); }
.tp-example-image>span { background:#fcfaf6f2; color:#59452d; }
.tp-route-grid article { background:#fffdfa; border-top-color:#b18b57; }
.tp-route-label { color:#77654f; }
.tp-quality-compact { border-bottom:1px solid var(--tp-line); }
.tp-check-table strong { color:#55432d; }
.tp-faq-list summary { transition:color .2s; }
.tp-faq-list summary:hover { color:#876037; }
.tp-rfq,.standalone-rfq { background:radial-gradient(ellipse at 5% 0%,#373432,#232527 70%); color:#fcfaf6; }
.tp-rfq-copy>p:not(.tp-kicker):not(.tp-address),.tp-contact-person a,.tp-rfq .tp-address { color:#ded5c8; }
.tp-rfq .tp-kicker-light { color:#e0c49a; }
.tp-avatar { border-color:#c6ae854f; color:#e0c49a; }
.tp-address strong { color:#fff7eb; }
.tp-light-link { border-color:#a2917a; }
.tp-inquiry-form { background:#fffdfa; border-top:2px solid #d6b786; box-shadow:0 22px 60px #00000014; }
.tp-inquiry-form input:not([type=checkbox]),.tp-inquiry-form select,.tp-inquiry-form textarea { background:#faf7f1; border-color:#ded6c9; transition:background .2s,border-color .2s,box-shadow .2s; }
.tp-inquiry-form input:focus,.tp-inquiry-form select:focus,.tp-inquiry-form textarea:focus { background:#fffdfa; border-color:#a17947; outline-color:#a17947; box-shadow:0 0 0 3px #a1794714; }
.tp-inquiry-form input::placeholder,.tp-inquiry-form textarea::placeholder { color:#797269; opacity:1; }
.tp-form-secondary button { border-color:#bda98d; }
.tp-consent input { accent-color:#876037; }
.tp-footer { background:var(--page); }
.tp-footer-top>div>a:not(.tp-brand):hover { color:#876037; }
.tp-floating-contact { background:#292b2d; color:#f7e8ce; border-color:#d5b78560; box-shadow:0 6px 24px #292b2d26; transition:background .25s,transform .25s,opacity .25s; }
.tp-floating-contact:hover { background:#41403c; transform:translateY(-2px); }
.tp-floating-contact.is-hidden { transform:translateY(10px); }
.tp-film-dialog { background:#fcfaf6; }
.tp-film-dialog::backdrop { background:#171819dd; backdrop-filter:blur(5px); }
.tp-film-choices button { border-color:#cbbba3; }
.tp-film-choices button[aria-pressed=true] { background:#292b2d; border-color:#292b2d; color:#fcfaf6; }
.inner-hero { background:linear-gradient(90deg,#202224f5,#20222485),url('../img/factory/bottle-filling.webp') center/cover!important; }
.inner-hero .eyebrow { color:#e0c49a; }
.inner-hero-content>p:last-child,.tp-breadcrumb { color:#ede3d5; }
.tp-buying-section .tp-breadcrumb { color:var(--tp-muted); }
.entry-content .service-link-grid>a,.service-link-grid>a,.entry-content .content-note,.entry-content .proof-panel,.project-cta,.tp-related { background:#f3eee6; }
.service-link-grid>a { transition:background .3s,border-color .3s; }
.service-link-grid>a:hover { background:#eee4d5; border-color:#b9986a; }
.tp-product-reference,.tp-archive-reference { background:#f3eee6; }
.tp-scroll-reveal { opacity:1; transform:none; transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.3,1); transition-delay:var(--reveal-delay,0ms); }
.tp-scroll-reveal.is-pending { opacity:0; transform:translateY(18px); }
.tp-scroll-reveal:focus-within { opacity:1; transform:none; }
@media(hover:hover) and (pointer:fine) {
  .tp-product:hover .tp-product-image { border-color:#bda078; box-shadow:0 12px 28px #54401e0c; }
  .tp-example-grid article:hover .tp-example-image img { transform:scale(1.025); }
  .tp-hero-photo { transition:transform 1s cubic-bezier(.2,.65,.3,1); }
  .tp-hero-visual:hover .tp-hero-photo { transform:scale(1.018); }
}
@media(prefers-reduced-motion:no-preference) {
  .tp-hero-copy>.tp-kicker { animation:tp-enter .65s both; }
  .tp-hero-copy>h1 { animation:tp-enter .75s .08s both; }
  .tp-hero-copy>.tp-hero-summary { animation:tp-enter .75s .16s both; }
  .tp-film-dialog[open] { animation:tp-dialog .22s ease-out; }
  @keyframes tp-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
  @keyframes tp-dialog { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
}
@media(max-width:950px) {
  .tp-nav { background:#fcfaf6; box-shadow:0 15px 25px #292b2d0c; }
  .tp-nav-toggle { background:#fcfaf6; border-color:#ded6c9; }
  .tp-nav>a:not(.tp-nav-cta)::after { display:none; }
}
@media(prefers-reduced-motion:reduce) {
  .tp-scroll-reveal,.tp-scroll-reveal.is-pending { opacity:1!important; transform:none!important; transition:none!important; }
  .tp-button:hover,.tp-button:hover>span,.tp-floating-contact:hover,.tp-product:hover img,.tp-example-grid article:hover img,.tp-factory-grid figure:hover img,.tp-hero-visual:hover .tp-hero-photo { transform:none!important; }
}
@media print {
  .tp-scroll-reveal,.tp-scroll-reveal.is-pending { opacity:1!important; transform:none!important; }
  .tp-scroll-progress,.tp-floating-contact { display:none!important; }
}

/* Authorized product-planning references and project contact. */
.tp-custom-story { display:grid; grid-template-columns:1.04fr 1fr; gap:85px; align-items:center; }
.tp-custom-story h2 { margin:0; }
.tp-story-intro { max-width:420px; margin:24px 0 28px; font-size:14px; color:var(--tp-muted); line-height:1.85; }
.tp-custom-steps { list-style:none; padding:0; margin:0 0 28px; counter-reset:custom; }
.tp-custom-steps li { display:grid; grid-template-columns:30px minmax(0,1fr); gap:15px; padding:20px 0; border-top:1px solid var(--tp-line); counter-increment:custom; }
.tp-custom-steps li::before { content:counter(custom,decimal-leading-zero); color:#a17947; font-size:21px; font-family:Georgia,serif; line-height:1.3; }
.tp-custom-steps h3 { font-size:15px; font-weight:600; margin:0 0 10px; }
.tp-custom-steps p { margin:0 0 12px; color:var(--tp-muted); font-size:12px; line-height:1.85; }
.tp-custom-steps .tp-text-link { font-size:10px; }
.tp-custom-story figure { margin:0; background:#f1ece3; }
.tp-custom-story figure img { width:100%; height:auto; display:block; }
.tp-custom-story figcaption { padding:22px 25px; }
.tp-custom-story figcaption strong { display:block; font-weight:500; font-size:9px; letter-spacing:1px; color:#876037; margin-bottom:9px; }
.tp-custom-story figcaption span { display:block; font-size:11px; line-height:1.85; color:var(--tp-muted); }
/* Let inner-page titles introduce the subject without repeating a factory photo. */
.inner-hero { background:linear-gradient(115deg,#f1e9dd,#fcfaf6)!important; color:#292b2d; border-bottom:1px solid var(--tp-line); }
.inner-hero h1 { color:#292b2d; }
.inner-hero .eyebrow { color:#876037; }
.inner-hero .tp-breadcrumb,.inner-hero-content>p:last-child { color:var(--tp-muted); }
@media(max-width:1100px) { .tp-custom-story { gap:45px; } }
@media(max-width:768px) { .tp-custom-story { grid-template-columns:1fr; gap:35px; } .tp-custom-story figure { max-width:620px; } }
@media(max-width:600px) { .tp-custom-story { gap:30px; } .tp-story-intro { font-size:13px; margin:22px 0 25px; } .tp-custom-steps li { gap:10px; grid-template-columns:27px minmax(0,1fr); padding:18px 0; } .tp-custom-steps h3 { font-size:14px; } .tp-custom-story figcaption { padding:19px 20px; } }
.tp-catalogue-strip { display:grid; grid-template-columns:90px minmax(0,1fr) auto; align-items:center; gap:32px; padding:0 0 40px; margin-bottom:40px; border-bottom:1px solid var(--tp-line); }
.tp-catalogue-strip img { display:block; width:90px; height:auto; box-shadow:0 5px 18px #292b2d14; border:1px solid var(--tp-line); }
.tp-catalogue-strip .tp-kicker { font-size:8px; margin-bottom:10px; }
.tp-catalogue-strip h2 { font-family:Georgia,serif; font-size:29px; font-weight:400; line-height:1.2; margin:0 0 12px; }
.tp-catalogue-strip p:not(.tp-kicker) { color:var(--tp-muted); font-size:12px; line-height:1.8; margin:0 0 8px; }
.tp-catalogue-strip small { display:block; color:var(--tp-muted); font-size:9px; line-height:1.8; }
.tp-catalogue-actions { display:flex; flex-direction:column; gap:15px; align-items:flex-start; }
.tp-catalogue-actions .tp-text-link { font-size:11px; }
.tp-catalogue-nudge { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:30px; padding-top:23px; border-top:1px solid var(--tp-line); }
.tp-catalogue-nudge p { font-size:12px; color:var(--tp-muted); margin:0; }
@media(max-width:950px) { .tp-catalogue-strip { grid-template-columns:80px minmax(0,1fr); gap:25px; } .tp-catalogue-strip img { width:80px; } .tp-catalogue-actions { grid-column:2; flex-direction:row; align-items:center; gap:25px; } }
@media(max-width:600px) {
  .tp-hero { display:grid; grid-template-columns:minmax(0,1fr); gap:0; padding:0 0 25px; }
  .tp-hero-copy { display:contents; }
  .tp-hero-copy>.tp-kicker { grid-row:1; margin:24px 22px 12px; font-size:7px; letter-spacing:1.3px; }
  .tp-hero h1 { grid-row:2; font-size:36px; line-height:1.07; letter-spacing:-1.1px; max-width:100%; margin:0 22px 22px; }
  .tp-hero-visual { grid-row:3; height:225px; min-height:225px; width:calc(100% - 44px); margin:0 22px; }
  .tp-hero-photo { object-position:50% 54%; }
  .tp-photo-tag { top:12px; left:14px; padding:7px 9px; font-size:7px; letter-spacing:1px; }
  .tp-photo-caption { padding:60px 14px 14px; gap:8px; }
  .tp-photo-caption strong { font-size:11px; }
  .tp-photo-caption div>span { font-size:8px; }
  .tp-photo-caption .tp-pulse { width:5px; height:5px; }
  .tp-play { width:36px; height:36px; }
  .tp-hero-summary { grid-row:4; margin:19px 22px 18px; font-size:13px; line-height:1.75; }
  .tp-hero-copy>.tp-actions { grid-row:5; margin:0 22px; gap:15px; }
  .tp-hero .tp-button { font-size:10px; padding:14px 15px; gap:12px; }
  .tp-hero .tp-text-link { font-size:10px; }
  .tp-hero-copy>.tp-sample-link { grid-row:6; margin:18px 22px 0; justify-self:start; font-size:10px; }
  .tp-hero-copy>.tp-hero-notes { display:none; }
  .tp-catalogue-strip { grid-template-columns:65px minmax(0,1fr); gap:20px; padding-bottom:28px; margin-bottom:30px; }
  .tp-catalogue-strip img { width:65px; }
  .tp-catalogue-strip h2 { font-size:24px; margin-bottom:9px; }
  .tp-catalogue-strip p:not(.tp-kicker) { font-size:11px; }
  .tp-catalogue-strip small { font-size:8px; }
  .tp-catalogue-actions { grid-column:1/-1; gap:23px; flex-wrap:wrap; }
  .tp-catalogue-actions .tp-button { font-size:11px; }
  .tp-catalogue-nudge { display:block; margin-top:25px; padding-top:20px; }
  .tp-catalogue-nudge .tp-text-link { font-size:11px; margin-top:13px; }
}
@media(max-width:360px) { .tp-hero h1 { font-size:33px; } .tp-hero-visual { height:200px; min-height:200px; } .tp-hero-copy>.tp-actions { gap:15px 12px; } }
.tp-avatar-photo { width:60px; height:60px; overflow:hidden; flex-shrink:0; border:1px solid #e0c49a80; background:#e5ddd1; }
.tp-avatar-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 13%; }
.tp-project-example .tp-example-grid article:nth-child(2) img { object-fit:cover; padding:0; }
.tp-concept-caption { margin-top:17px; }
.tp-anna-card { display:grid; grid-template-columns:280px 1fr; gap:55px; align-items:center; padding-bottom:35px; border-bottom:1px solid var(--tp-line); margin-bottom:30px; }
.tp-anna-card figure { background:#e9e2d8; }
.tp-anna-card img { display:block; width:100%; height:370px; object-fit:cover; object-position:50% 15%; }
.entry-content .tp-anna-card h2 { margin:0 0 20px; font-size:43px; }
.entry-content .tp-anna-card .tp-kicker { font-size:9px; margin:0 0 17px; }
.tp-anna-card .tp-button { margin-top:10px; }
.tp-reference-pair { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:30px; }
.tp-reference-pair img { width:100%; display:block; aspect-ratio:1; object-fit:cover; }
.tp-reference-pair figcaption { font-size:9px; letter-spacing:1px; color:#876037; padding-top:12px; }
.entry-content .tp-caption { font-size:11px; line-height:1.8; }
.tp-sample-review { display:grid; grid-template-columns:1.05fr 1fr; gap:70px; align-items:center; }
.tp-sample-review figure img { width:100%; display:block; }
.tp-sample-review figcaption { margin-top:14px; font-size:10px; color:var(--tp-muted); line-height:1.8; }
.tp-sample-steps { list-style:none; padding:0; margin:28px 0; counter-reset:sample; }
.tp-sample-steps li { position:relative; padding:16px 0 16px 37px; border-top:1px solid var(--tp-line); counter-increment:sample; }
.tp-sample-steps li::before { content:counter(sample,decimal-leading-zero); position:absolute; left:0; top:16px; font-family:Georgia,serif; color:#876037; font-size:17px; }
.tp-sample-steps strong { font-size:13px; }
.tp-sample-steps p { margin:7px 0 0; font-size:12px; line-height:1.8; color:var(--tp-muted); }
.tp-buyer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; border-top:1px solid var(--tp-line); padding-top:25px; }
.tp-buyer-grid h3 { font-family:Georgia,serif; font-size:24px; font-weight:400; line-height:1.25; margin:0 0 15px; }
.entry-content .tp-buyer-grid p { font-size:13px; }
@media(max-width:950px) { .tp-anna-card { gap:30px; grid-template-columns:240px 1fr; } .tp-sample-review { gap:35px; } .tp-buyer-grid { grid-template-columns:1fr; gap:22px; } }
@media(max-width:600px) {
  .tp-anna-card { grid-template-columns:1fr; gap:25px; }
  .tp-anna-card figure { width:100%; max-width:300px; }
  .tp-anna-card img { height:340px; }
  .entry-content .tp-anna-card h2 { font-size:36px; }
  .tp-reference-pair { gap:15px; }
  .tp-reference-pair figcaption { font-size:8px; letter-spacing:.5px; }
  .tp-sample-review { grid-template-columns:1fr; gap:30px; }
  .tp-sample-review figure img { max-height:380px; object-fit:cover; }
}

/* Plain factory presentation refinements. */
.tp-kicker { letter-spacing:.9px; font-weight:600; }
.tp-hero h1 { font-size:clamp(40px,3.6vw,56px); line-height:1.1; letter-spacing:-1.2px; }
.tp-hero-copy>.tp-kicker,.tp-hero-copy>h1,.tp-hero-copy>.tp-hero-summary { animation:none; }
.tp-section h2,.tp-rfq h2 { font-size:clamp(32px,2.8vw,44px); line-height:1.15; letter-spacing:-.9px; }
.tp-hero .tp-button>span,.tp-button>span { font-size:16px; }
.tp-button:hover { transform:translateY(-1px); box-shadow:none; }
.tp-button:hover>span { transform:translateX(2px); }
.tp-hero-visual:hover .tp-hero-photo { transform:none; }
.tp-factory-grid figure:hover img { transform:none; }
.tp-scroll-reveal { transition-duration:.35s; }
.tp-scroll-reveal.is-pending { transform:translateY(8px); }
.tp-custom-story .tp-real-catalogue { background:#fff; border:1px solid var(--tp-line); max-width:480px; justify-self:end; }
.tp-real-catalogue img { max-height:640px; object-fit:contain; background:#fff; }
.tp-real-catalogue figcaption { border-top:1px solid var(--tp-line); background:#f3eee6; padding:18px 20px; }
.tp-real-catalogue figcaption>.tp-text-link { margin-top:12px; font-size:11px; }
.tp-custom-steps p { font-size:13px; }
.tp-route-grid article>p { font-size:13px; }
.tp-reference-pair img { aspect-ratio:auto; object-fit:contain; height:auto; border:1px solid var(--tp-line); background:#fff; }
.tp-sample-review-plain { display:block; max-width:1000px; }
.tp-sample-review-plain .tp-sample-steps { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; }
.tp-catalogue-strip h2 { font-size:26px; }
@media(max-width:768px) { .tp-custom-story .tp-real-catalogue { max-width:440px; justify-self:start; } }
@media(max-width:600px) {
  .tp-hero h1 { font-size:32px; letter-spacing:-.7px; line-height:1.1; }
  .tp-section h2,.tp-rfq h2 { font-size:32px; letter-spacing:-.6px; }
  .tp-hero-summary { font-size:13px; }
  .tp-custom-story .tp-real-catalogue { max-width:100%; justify-self:stretch; }
  .tp-sample-review-plain .tp-sample-steps { display:block; }
  .tp-catalogue-strip h2 { font-size:22px; }
}
