
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --bg: #ffffff; --bg-secondary: #f7f6f4; --text: #1a1a1a;
      --text-secondary: #6b6b6b; --text-tertiary: #a0a0a0;
      --border: rgba(0,0,0,0.1); --border-strong: rgba(0,0,0,0.2);
      --accent: #E24B4A; --accent-light: #FCEBEB;
      --radius: 8px; --radius-lg: 12px;
    }
    @media (prefers-color-scheme: dark) {
      :root { --bg:#141414; --bg-secondary:#1e1e1e; --text:#f0f0f0;
        --text-secondary:#999; --text-tertiary:#666;
        --border:rgba(255,255,255,0.1); --border-strong:rgba(255,255,255,0.2); --accent-light:#2a1212; }
    }
    body { font-family:'DM Sans',sans-serif; background:var(--bg); color:var(--text); font-size:16px; line-height:1.7; }
    a { text-decoration:none; color:inherit; }

    nav { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 2.5rem;
      border-bottom:0.5px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:100; }
    .nav-title { position:absolute; left:50%; transform:translateX(-50%);
      font-size:16px; font-weight:500; letter-spacing:-0.2px; pointer-events:none; white-space:nowrap; }
    .nav-title span { color:var(--accent); }
    .logo { font-size:18px; font-weight:500; letter-spacing:-0.3px; }
    .logo span { color:var(--accent); }
    .nav-logo-img { height:32px; width:auto; display:block; }
    .footer-logo-img { height:36px; width:auto; display:block; margin-bottom:0.75rem; }
    .nav-links { display:flex; gap:2rem; font-size:14px; color:var(--text-secondary); align-items:center; }
    .nav-links a { cursor:pointer; } .nav-links a:hover { color:var(--text); }
    .nav-account-btn { background:var(--text); color:var(--bg); border:none; padding:8px 16px;
      border-radius:var(--radius); font-size:13px; font-weight:500; cursor:pointer; font-family:inherit; }
    .hamburger-btn { display:block; background:none; border:none; cursor:pointer; color:var(--text);
      font-size:22px; padding:4px; line-height:1; }
    .menu-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:199; }
    .menu-overlay.visible { display:block; }
    .nav-links { position:fixed; top:0; right:0; width:280px; height:100vh;
      background:var(--bg); border-left:0.5px solid var(--border);
      display:flex; flex-direction:column; padding:0; z-index:200;
      transform:translateX(100%); transition:transform 0.25s ease;
      overflow-y:auto; }
    .nav-links.open { transform:translateX(0); }
    .sidebar-header { display:flex; align-items:center; justify-content:space-between;
      padding:1.25rem 1.5rem; border-bottom:0.5px solid var(--border); }
    .sidebar-close { background:none; border:none; cursor:pointer; color:var(--text-secondary);
      font-size:20px; padding:4px; line-height:1; }
    .sidebar-close:hover { color:var(--text); }
    .sidebar-links { display:flex; flex-direction:column; padding:0.5rem 0; flex:1; }
    .sidebar-links a { padding:0.9rem 1.5rem; font-size:15px; color:var(--text);
      border-bottom:0.5px solid var(--border); transition:background 0.15s; }
    .sidebar-links a:hover { background:var(--bg-secondary); }
    .sidebar-links a:last-of-type { border-bottom:none; }
    .nav-account-btn { margin:1.25rem 1.5rem; width:calc(100% - 3rem); padding:11px; font-size:14px; }

    .hero { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center;
      padding:5rem 2.5rem 4rem; border-bottom:0.5px solid var(--border); max-width:1100px; margin:0 auto; }
    .hero h1 { font-size:40px; font-weight:500; line-height:1.15; letter-spacing:-0.8px; margin-bottom:1rem; }
    .hero h1 em { font-style:normal; color:var(--accent); }
    .hero p { font-size:15px; color:var(--text-secondary); margin-bottom:1.75rem; max-width:420px; }
    .hero-btns { display:flex; gap:12px; }
    .btn-primary { background:var(--text); color:var(--bg); border:none; padding:11px 22px;
      border-radius:var(--radius); font-size:14px; font-weight:500; cursor:pointer; font-family:inherit; transition:opacity 0.15s; }
    .btn-primary:hover { opacity:0.85; }
    .btn-secondary { background:transparent; color:var(--text); border:0.5px solid var(--border-strong);
      padding:11px 22px; border-radius:var(--radius); font-size:14px; cursor:pointer; font-family:inherit; transition:background 0.15s; }
    .btn-secondary:hover { background:var(--bg-secondary); }
    .hero-visual { background:var(--bg-secondary); border:0.5px solid var(--border); border-radius:var(--radius-lg);
      display:flex; align-items:center; justify-content:center; min-height:240px; padding:2rem; }

    .services { padding:4rem 2.5rem; border-bottom:0.5px solid var(--border); max-width:1100px; margin:0 auto; }
    .section-label { font-size:12px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:1.2px; margin-bottom:0.5rem; }
    .section-title { font-size:26px; font-weight:500; letter-spacing:-0.3px; margin-bottom:2rem; }
    .services-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
    .service-card { background:var(--bg); border:0.5px solid var(--border); border-radius:var(--radius-lg);
      padding:1.5rem; transition:border-color 0.2s; }
    .service-card:hover { border-color:var(--border-strong); }
    .service-icon { font-size:24px; color:var(--accent); margin-bottom:0.75rem; }
    .service-card h3 { font-size:15px; font-weight:500; margin-bottom:0.4rem; }
    .service-card p { font-size:13px; color:var(--text-secondary); line-height:1.5; }

    .quote-section { padding:4rem 2.5rem; background:var(--bg-secondary); }
    .quote-wrapper { max-width:760px; margin:0 auto; background:var(--bg); border:0.5px solid var(--border);
      border-radius:var(--radius-lg); overflow:hidden; }
    .quote-header { padding:1.5rem 1.75rem; border-bottom:0.5px solid var(--border); }
    .quote-header h2 { font-size:20px; font-weight:500; }
    .quote-header p { font-size:13px; color:var(--text-secondary); margin-top:4px; }
    .quote-body { padding:1.75rem; }

    .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; margin-bottom:1.1rem; }
    .form-group label { display:block; font-size:13px; color:var(--text-secondary); margin-bottom:6px; }
    .form-group select, .form-group input {
      width:100%; padding:9px 12px; font-size:14px; font-family:inherit;
      border:0.5px solid var(--border-strong); border-radius:var(--radius);
      background:var(--bg); color:var(--text); outline:none; transition:border-color 0.15s; }
    .form-group select:focus, .form-group input:focus { border-color:var(--accent); }

    .complexity-row { display:flex; gap:8px; margin-top:6px; }
    .complexity-btn { flex:1; padding:8px 4px; font-size:13px; text-align:center;
      border:0.5px solid var(--border-strong); border-radius:var(--radius);
      cursor:pointer; background:transparent; color:var(--text-secondary); font-family:inherit; transition:all 0.15s; }
    .complexity-btn:hover { border-color:var(--accent); color:var(--accent); }
    .complexity-btn.active { border-color:var(--accent); color:var(--accent); background:var(--accent-light); }

    .quote-result { margin-top:1.5rem; background:var(--bg-secondary); border:0.5px solid var(--border);
      border-radius:var(--radius-lg); padding:1.5rem; display:none; }
    .quote-result.visible { display:block; }
    .result-label { font-size:12px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:0.8px; margin-bottom:6px; }
    .result-price { font-size:38px; font-weight:500; letter-spacing:-1px; }
    .result-breakdown { margin-top:1.1rem; border-top:0.5px solid var(--border); padding-top:1.1rem;
      display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .result-line { font-size:13px; color:var(--text-secondary); display:flex; justify-content:space-between; }
    .result-line span { color:var(--text); font-weight:500; }
    .result-note { margin-top:1rem; font-size:12px; color:var(--text-tertiary); }

    .calc-btn { width:100%; margin-top:1.1rem; background:var(--text); color:var(--bg); border:none;
      padding:12px; border-radius:var(--radius); font-size:14px; font-weight:500; cursor:pointer;
      font-family:inherit; transition:opacity 0.15s; }
    .calc-btn:hover { opacity:0.85; }

    .tab-row { display:flex; border-bottom:0.5px solid var(--border); overflow-x:auto; }
    .tab-btn { flex:1; padding:1rem 1.25rem; font-size:14px; font-weight:500; background:transparent;
      border:none; border-bottom:2px solid transparent; cursor:pointer; color:var(--text-secondary);
      font-family:inherit; white-space:nowrap; transition:all 0.15s; }
    .tab-btn:hover { color:var(--text); background:var(--bg-secondary); }
    .tab-btn.active { color:var(--accent); border-bottom-color:var(--accent); background:var(--bg); }
    .tab-panel { display:none; }
    .tab-panel.active { display:block; }

    /* AUTH MODAL */
    .modal-overlay { display:none; position:fixed; inset:0; z-index:300; background:rgba(0,0,0,0.5);
      align-items:center; justify-content:center; padding:1rem; }
    .modal-overlay.visible { display:flex; }
    .modal { background:var(--bg); border-radius:var(--radius-lg); border:0.5px solid var(--border);
      width:100%; max-width:420px; overflow:hidden; }
    .modal-header { padding:1.25rem 1.5rem; border-bottom:0.5px solid var(--border);
      display:flex; align-items:center; justify-content:space-between; }
    .modal-header h2 { font-size:18px; font-weight:500; }
    .close-btn { background:none; border:none; font-size:22px; cursor:pointer; color:var(--text-secondary); line-height:1; }
    .modal-body { padding:1.5rem; }
    .modal-tabs { display:flex; gap:0; margin-bottom:1.5rem; border:0.5px solid var(--border); border-radius:var(--radius); overflow:hidden; }
    .modal-tab { flex:1; padding:8px; font-size:13px; font-weight:500; background:transparent; border:none;
      cursor:pointer; font-family:inherit; color:var(--text-secondary); transition:all 0.15s; }
    .modal-tab.active { background:var(--text); color:var(--bg); }
    .auth-field { margin-bottom:1rem; }
    .auth-field label { display:block; font-size:13px; color:var(--text-secondary); margin-bottom:6px; }
    .auth-field input { width:100%; padding:9px 12px; font-size:14px; font-family:inherit;
      border:0.5px solid var(--border-strong); border-radius:var(--radius);
      background:var(--bg); color:var(--text); outline:none; }
    .auth-field input:focus { border-color:var(--accent); }
    .auth-btn { width:100%; background:var(--accent); color:#fff; border:none; padding:11px;
      border-radius:var(--radius); font-size:14px; font-weight:500; cursor:pointer; font-family:inherit;
      margin-top:0.5rem; transition:opacity 0.15s; }
    .auth-btn:hover { opacity:0.88; }
    .auth-msg { font-size:13px; margin-top:0.75rem; text-align:center; color:var(--text-secondary); }
    .auth-msg.error { color:var(--accent); }
    .auth-msg.success { color:#22c55e; }

    /* UPLOAD OVERLAY */
    .upload-overlay { display:none; position:fixed; inset:0; z-index:200; background:rgba(0,0,0,0.5);
      align-items:center; justify-content:center; padding:1rem; }
    .upload-overlay.visible { display:flex; }
    .upload-modal { background:var(--bg); border-radius:var(--radius-lg); border:0.5px solid var(--border);
      width:100%; max-width:560px; max-height:90vh; overflow-y:auto; }
    .upload-modal-header { padding:1.25rem 1.5rem; border-bottom:0.5px solid var(--border);
      display:flex; align-items:center; justify-content:space-between; }
    .upload-modal-header h2 { font-size:18px; font-weight:500; }
    .quote-summary-bar { background:var(--bg-secondary); border:0.5px solid var(--border);
      border-radius:var(--radius); padding:0.85rem 1rem; display:flex; justify-content:space-between;
      align-items:center; margin-bottom:1.5rem; font-size:14px; }
    .quote-summary-bar .price { font-weight:500; font-size:18px; }
    .upload-drop { border:1.5px dashed var(--border-strong); border-radius:var(--radius-lg);
      padding:2.5rem 1.5rem; text-align:center; cursor:pointer; transition:all 0.15s; margin-bottom:1.25rem; }
    .upload-drop:hover, .upload-drop.dragover { border-color:var(--accent); background:var(--accent-light); }
    .upload-drop i { font-size:32px; color:var(--text-tertiary); margin-bottom:0.75rem; display:block; }
    .upload-drop p { font-size:14px; color:var(--text-secondary); margin-bottom:0.25rem; }
    .upload-drop span { font-size:12px; color:var(--text-tertiary); }
    .upload-drop input[type=file] { display:none; }
    .file-list { margin-bottom:1.25rem; }
    .file-item { display:flex; align-items:center; gap:10px; padding:8px 10px;
      background:var(--bg-secondary); border-radius:var(--radius); margin-bottom:6px; font-size:13px; }
    .file-item i { color:var(--accent); }
    .file-item .fname { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .file-item .fsize { color:var(--text-tertiary); font-size:12px; }
    .file-item .fremove { background:none; border:none; cursor:pointer; color:var(--text-tertiary); font-size:16px; }
    .upload-fields { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1.25rem; }
    .upload-fields .form-group.full { grid-column:1/-1; }
    .upload-fields textarea { width:100%; padding:9px 12px; font-size:14px; font-family:inherit;
      border:0.5px solid var(--border-strong); border-radius:var(--radius);
      background:var(--bg); color:var(--text); resize:vertical; min-height:80px; }
    .submit-btn { width:100%; background:var(--accent); color:#fff; border:none; padding:12px;
      border-radius:var(--radius); font-size:14px; font-weight:500; cursor:pointer; font-family:inherit; transition:opacity 0.15s; }
    .submit-btn:hover { opacity:0.88; }
    .submit-success { display:none; text-align:center; padding:2rem 1rem; }
    .submit-success i { font-size:40px; color:#22c55e; display:block; margin-bottom:1rem; }
    .submit-success h3 { font-size:18px; font-weight:500; margin-bottom:0.5rem; }
    .submit-success p { font-size:14px; color:var(--text-secondary); }

    /* CUSTOMER PORTAL */
    .portal-overlay { display:none; position:fixed; inset:0; z-index:250; background:var(--bg); overflow-y:auto; }
    .portal-overlay.visible { display:block; }
    .portal-nav { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 2rem;
      border-bottom:0.5px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:10; }
    .portal-body { max-width:900px; margin:0 auto; padding:2.5rem 2rem; }
    .portal-body h2 { font-size:24px; font-weight:500; margin-bottom:0.5rem; }
    .portal-body .subtitle { font-size:14px; color:var(--text-secondary); margin-bottom:2rem; }
    .orders-list { display:flex; flex-direction:column; gap:1rem; }
    .order-card { background:var(--bg); border:0.5px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; }
    .order-card-header { padding:1.1rem 1.25rem; display:flex; align-items:center; justify-content:space-between;
      border-bottom:0.5px solid var(--border); }
    .order-card-header .order-id { font-size:12px; color:var(--text-tertiary); font-family:monospace; }
    .order-card-header .order-date { font-size:12px; color:var(--text-tertiary); }
    .order-card-body { padding:1.25rem; display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
    .order-field label { font-size:12px; color:var(--text-tertiary); display:block; margin-bottom:3px; }
    .order-field span { font-size:14px; font-weight:500; }
    .order-card-footer { padding:1rem 1.25rem; border-top:0.5px solid var(--border);
      display:flex; align-items:center; justify-content:space-between; }
    .status-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 10px;
      border-radius:20px; font-size:12px; font-weight:500; }
    .status-pending    { background:#FEF9C3; color:#854D0E; }
    .status-reviewing  { background:#DBEAFE; color:#1E40AF; }
    .status-quoted     { background:#FEF3C7; color:#92400E; }
    .status-approved   { background:#D1FAE5; color:#065F46; }
    .status-rejected   { background:#FEE2E2; color:#991B1B; }
    .status-in_production { background:#EDE9FE; color:#4C1D95; }
    .status-complete   { background:#D1FAE5; color:#065F46; }
    .status-nfa        { background:#F3F4F6; color:#374151; }

    /* PORTAL TABS */
    .portal-tab-row{display:flex;gap:6px;margin-bottom:1.5rem;}
    .portal-tab{padding:7px 18px;border:0.5px solid var(--border-strong);border-radius:20px;
      font-size:13px;cursor:pointer;background:transparent;color:var(--text-secondary);font-family:inherit;}
    .portal-tab.active{background:var(--text);color:var(--bg);border-color:var(--text);}
    .approve-btn { background:#22c55e; color:#fff; border:none; padding:8px 18px;
      border-radius:var(--radius); font-size:13px; font-weight:500; cursor:pointer; font-family:inherit; }
    .actual-price { font-size:22px; font-weight:500; color:#22c55e; }
    .empty-state { text-align:center; padding:4rem 2rem; color:var(--text-secondary); }
    .empty-state i { font-size:40px; display:block; margin-bottom:1rem; color:var(--text-tertiary); }

    /* SIDEBAR */
    .sidebar-user-section { padding:0.85rem 1.5rem; border-bottom:0.5px solid var(--border); }
    .sidebar-avatar { width:36px; height:36px; border-radius:50%; background:var(--accent);
      color:#fff; display:flex; align-items:center; justify-content:center; font-weight:500; font-size:14px; }
    .sidebar-section-label { font-size:11px; color:var(--text-tertiary); text-transform:uppercase; letter-spacing:1px; padding:1rem 1.5rem 0.35rem; }
    .sidebar-nav-link { display:flex; align-items:center; gap:0.85rem; padding:0.75rem 1.5rem;
      color:var(--text); font-size:14px; transition:background 0.15s; cursor:pointer; border:none;
      background:none; width:100%; text-align:left; font-family:inherit; }
    .sidebar-nav-link:hover { background:var(--bg-secondary); }
    .sidebar-nav-link i { font-size:18px; color:var(--text-secondary); width:22px; flex-shrink:0; }
    .sidebar-divider { height:0.5px; background:var(--border); margin:0.5rem 0; }
    .sidebar-signout { color:var(--accent) !important; }
    .sidebar-signout i { color:var(--accent) !important; }
    .sidebar-signin-btn { display:block; margin:0.75rem 1.5rem; background:var(--accent); color:#fff;
      border:none; padding:11px; border-radius:var(--radius); font-size:14px; font-weight:500;
      cursor:pointer; font-family:inherit; width:calc(100% - 3rem); text-align:center; }
    .sidebar-footer-note { padding:1rem 1.5rem; margin-top:1rem; font-size:11px; color:var(--text-tertiary); border-top:0.5px solid var(--border); }

    /* SERVICE OVERLAY PAGES */
    .service-overlay { display:none; position:fixed; inset:0; z-index:250; background:var(--bg); overflow-y:auto; }
    .service-overlay.visible { display:block; }
    .service-overlay-nav { display:flex; align-items:center; justify-content:space-between; gap:1rem;
      padding:1.25rem 2.5rem; border-bottom:0.5px solid var(--border); position:sticky; top:0; background:var(--bg); z-index:10; }
    .back-btn { display:flex; align-items:center; gap:6px; background:none; border:none;
      cursor:pointer; font-size:14px; color:var(--text-secondary); font-family:inherit; padding:0; }
    .back-btn:hover { color:var(--text); }
    .service-page { max-width:1100px; margin:0 auto; padding:3rem 2.5rem; }
    .service-page-hero { display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center;
      padding-bottom:3rem; margin-bottom:3rem; border-bottom:0.5px solid var(--border); }
    .service-page-hero h1 { font-size:36px; font-weight:500; letter-spacing:-0.5px; margin-bottom:1rem; }
    .service-page-hero h1 em { font-style:normal; color:var(--accent); }
    .service-page-hero p { font-size:15px; color:var(--text-secondary); margin-bottom:1.5rem; max-width:420px; }
    .service-artwork { background:var(--bg-secondary); border:0.5px solid var(--border);
      border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; padding:2rem; min-height:260px; }
    .service-details { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:3rem; }
    .service-detail-card { background:var(--bg-secondary); border:0.5px solid var(--border); border-radius:var(--radius-lg); padding:1.5rem; }
    .service-detail-card h3 { font-size:14px; font-weight:500; margin-bottom:0.75rem; display:flex; align-items:center; gap:0.5rem; }
    .service-detail-card h3 i { color:var(--accent); }
    .service-detail-card ul { list-style:none; display:flex; flex-direction:column; gap:6px; }
    .service-detail-card li { font-size:13px; color:var(--text-secondary); display:flex; align-items:flex-start; gap:8px; }
    .service-detail-card li::before { content:'—'; color:var(--accent); font-weight:500; flex-shrink:0; }
    .process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; margin-bottom:3rem; }
    .process-step { text-align:center; padding:1.5rem 1rem; background:var(--bg-secondary); border:0.5px solid var(--border); border-radius:var(--radius-lg); }
    .process-num { width:32px; height:32px; border-radius:50%; background:var(--accent); color:#fff;
      display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:500; margin:0 auto 0.75rem; }
    .process-step h4 { font-size:13px; font-weight:500; margin-bottom:0.35rem; }
    .process-step p { font-size:12px; color:var(--text-secondary); line-height:1.5; }
    .service-cta { background:var(--bg-secondary); border:0.5px solid var(--border); border-radius:var(--radius-lg); padding:2.5rem; text-align:center; }
    .service-cta h2 { font-size:22px; font-weight:500; margin-bottom:0.5rem; }
    .service-cta p { font-size:14px; color:var(--text-secondary); margin-bottom:1.5rem; }

    /* GALLERY */
    .gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
    .gallery-item { border-radius:var(--radius-lg); background:var(--bg-secondary); border:0.5px solid var(--border);
      aspect-ratio:4/3; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
    .gallery-label { position:absolute; bottom:0; left:0; right:0; padding:0.6rem 0.85rem;
      background:linear-gradient(transparent, rgba(0,0,0,0.6)); color:#fff; font-size:12px; font-weight:500; }

    /* ABOUT */
    .about-grid { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; align-items:center; }
    .about-text p { font-size:15px; color:var(--text-secondary); margin-bottom:1rem; max-width:460px; line-height:1.75; }
    .about-stats { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1.75rem; }
    .stat-card { background:var(--bg-secondary); border:0.5px solid var(--border); border-radius:var(--radius-lg); padding:1.25rem; }
    .stat-num { font-size:30px; font-weight:500; letter-spacing:-0.5px; color:var(--accent); }
    .stat-label { font-size:12px; color:var(--text-secondary); margin-top:2px; }
    .about-visual { background:var(--bg-secondary); border:0.5px solid var(--border);
      border-radius:var(--radius-lg); padding:2rem; display:flex; align-items:center; justify-content:center; min-height:300px; }

    /* FAQ */
    .faq-list { max-width:720px; }
    .faq-item { border-bottom:0.5px solid var(--border); }
    .faq-question { display:flex; justify-content:space-between; align-items:center;
      padding:1.1rem 0; cursor:pointer; font-size:15px; font-weight:500; gap:1rem; }
    .faq-question i { color:var(--text-tertiary); font-size:18px; flex-shrink:0; transition:transform 0.2s; }
    .faq-item.open .faq-question i { transform:rotate(45deg); color:var(--accent); }
    .faq-answer { display:none; font-size:14px; color:var(--text-secondary); line-height:1.75; padding-bottom:1.25rem; }
    .faq-item.open .faq-answer { display:block; }

    /* ACCOUNT SETTINGS */
    .settings-section { margin-bottom:1.5rem; }
    .settings-section-title { font-size:12px; font-weight:500; color:var(--text-secondary);
      text-transform:uppercase; letter-spacing:0.5px; margin-bottom:1rem;
      padding-bottom:0.5rem; border-bottom:0.5px solid var(--border); }
    .settings-danger-btn { background:none; border:0.5px solid var(--accent); color:var(--accent);
      padding:9px 16px; border-radius:var(--radius); font-size:13px; font-weight:500;
      cursor:pointer; font-family:inherit; transition:background 0.15s; }
    .settings-danger-btn:hover { background:var(--accent-light); }

    /* FOOTER */
    .site-footer { background:var(--bg-secondary); border-top:0.5px solid var(--border); padding:3rem 2.5rem 1.5rem; }
    .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:2.5rem; max-width:1100px; margin:0 auto 2.5rem; }
    .footer-brand p { font-size:13px; color:var(--text-secondary); margin-top:0.75rem; max-width:220px; line-height:1.75; }
    .footer-col h4 { font-size:13px; font-weight:500; margin-bottom:1rem; }
    .footer-col ul { list-style:none; display:flex; flex-direction:column; gap:0.65rem; }
    .footer-col li { display:flex; align-items:flex-start; gap:6px; font-size:13px; color:var(--text-secondary); }
    .footer-col li a { cursor:pointer; color:var(--text-secondary); }
    .footer-col li a:hover { color:var(--text); }
    .footer-col li i { color:var(--accent); font-size:14px; margin-top:2px; flex-shrink:0; }
    .footer-bottom { display:flex; justify-content:space-between; align-items:center;
      padding-top:1.5rem; border-top:0.5px solid var(--border); max-width:1100px; margin:0 auto;
      font-size:12px; color:var(--text-tertiary); flex-wrap:wrap; gap:0.75rem; }
    .footer-legal { display:flex; gap:1.5rem; }
    .footer-legal a { color:var(--text-tertiary); cursor:pointer; }
    .footer-legal a:hover { color:var(--text-secondary); }

    /* SERVICE CARD CLICKABLE */
    .service-card { cursor:pointer; }

    @media(max-width:900px) {
      .footer-grid { grid-template-columns:1fr 1fr; }
    }
    @media(max-width:700px) {
      .hero { grid-template-columns:1fr; padding:3rem 1.5rem; }
      .hero-visual { display:none; }
      .form-grid { grid-template-columns:1fr; }
      nav { padding:1rem 1.5rem; }
      .order-card-body { grid-template-columns:1fr; }
      .service-page-hero { grid-template-columns:1fr; }
      .service-artwork { display:none; }
      .service-details { grid-template-columns:1fr; }
      .process-steps { grid-template-columns:1fr 1fr; }
      .about-grid { grid-template-columns:1fr; }
      .about-visual { display:none; }
      .gallery-grid { grid-template-columns:1fr 1fr; }
      .footer-grid { grid-template-columns:1fr 1fr; }
      .service-overlay-nav { padding:1rem 1.5rem; }
      .service-page { padding:2rem 1.5rem; }
    }
  
/* Static public pages reuse the existing brand and responsive components. */
.seo-content {max-width:1100px;margin:auto;padding:2.5rem;}
.seo-content h1 {font-size:clamp(30px,5vw,48px);line-height:1.15;font-weight:500;margin:1rem 0 1.5rem;}
.seo-content h2 {font-size:24px;font-weight:500;margin:2rem 0 1rem;}
.seo-content p,.seo-content ul,.seo-content ol {max-width:780px;margin-bottom:1rem;}
.seo-content ul,.seo-content ol {padding-left:1.4rem;}
.seo-content p a,.seo-content li a,.breadcrumbs a {color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.breadcrumbs {position:static;display:block;padding:0 0 1rem;border:0;font-size:14px;z-index:auto;}
.link-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0;}
.link-grid a {padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);}
.btn-primary,.btn-secondary {display:inline-block;}
.seo-content #quote {padding:1.5rem 0;}
.seo-content #about,.seo-content #contact-section {padding:1.5rem 0 !important;}
details[open] .faq-answer {display:block;}
summary {list-style:none;} summary::-webkit-details-marker {display:none;}
.footer-col h3 {font-size:13px;font-weight:500;margin-bottom:1rem;}
.process-step h3 {font-size:15px;font-weight:500;}
:focus-visible {outline:2px solid var(--accent);outline-offset:4px;}
.policy-date,.policy-notice{font-size:14px;color:var(--text-secondary);}
.policy-notice{margin:1rem 0;line-height:1.6;}
.policy-notice a,.policy-cancellation a{color:var(--accent);text-decoration:underline;}
.terms-acceptance{display:flex;align-items:flex-start;gap:0.75rem;margin:1rem 0;font-size:14px;line-height:1.6;}
.terms-acceptance input{flex:0 0 18px;width:18px;height:18px;margin-top:3px;accent-color:var(--accent);cursor:pointer;}
.terms-acceptance label{cursor:pointer;}
.terms-acceptance a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.policy-table-wrap{max-width:900px;overflow-x:auto;margin:1.5rem 0;}
.policy-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px;}
.policy-table th,.policy-table td{padding:1rem;border:1px solid var(--border);vertical-align:top;}
.policy-table th{background:var(--bg-secondary);}
.policy-table code{overflow-wrap:anywhere;}
.policy-cancellation{max-width:780px;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);}
.policy-cancellation summary{cursor:pointer;font-weight:500;list-style:disclosure-closed;}
.policy-cancellation[open] summary{margin-bottom:1rem;list-style:disclosure-open;}
.footer-legal{flex-wrap:wrap;}
@media(max-width:700px){.seo-content{padding:1.5rem;}.nav-title{font-size:12px;} .nav-logo-img{max-width:95px;object-fit:contain;} .footer-grid{gap:1.5rem;}}
@media(max-width:700px){#contact-section div[style*="grid-template-columns"]{grid-template-columns:minmax(0,1fr) !important;} .footer-col{min-width:0;overflow-wrap:anywhere;} .seo-content .quote-header{padding:1.5rem;}}

.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin:2rem 0;}
.work-photo{margin:0;min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);}
.work-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;}
.hero-photo .work-photo img{aspect-ratio:4/3;}
.service-photo .work-photo img,.about-photo .work-photo img{aspect-ratio:4/3;}
@media(max-width:700px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}.hero-photo{margin-top:1rem;}}
@media(max-width:440px){.photo-grid{grid-template-columns:1fr;}}
